programs from the Glasgow @fptools@ suite (as distinct from those
who merely want to <em/run/ them).
-The whole install-and-make system was completely re-done between GHC
-2.01 and 2.02, so it will be worth your while to re-read this guide
-even if you have read earlier versions.
</abstract>
<toc>
Source-only distributions are either bugfix releases or snapshots of
current state of development. The release has undergone some testing.
-Source releases of 2.0x can be compiled up using 2.07 (or subsequent
-bugfix releases) or the Good Old Compiler, GHC~0.29. Compiling with
-0.29 is recommended if you're a performance junkie, as 0.29 (still)
-generates zippier code, but GHC~2.0x is catching up.
+Source releases of 3.xx can be compiled up using 2.10 or later.
+Compiling with version 0.29 won't work any more: we use Haskell 1.4
+features in the compiler.
<tag/Build GHC from intermediate C @.hc@ files<nidx/hc files/:/ You
need a working GHC to use a source distribution. What if you don't
<nidx>m68k-next-nextstep3: concurrent---no</nidx>
<nidx>m68k-next-nextstep3: parallel---no</nidx>
-<tag/m68k-sun-sunos4 (Sun3):/
-<nidx>m68k-sun-sunos4: registerised port</nidx>
-GHC 2.0x hasn't been tried on a Sun3. GHC~0.26 worked registerised.
-No native-code generator.
+<tag/m68k-sun-sunos4 (Sun3):/ <nidx>m68k-sun-sunos4: registerised
+port</nidx> GHC 2.0x and 3.0x haven't been tried on a Sun3. GHC~0.26
+worked registerised. No native-code generator.
Concurrent/Parallel Haskell probably don't work (yet).
<nidx>m68k-sun-sunos4: concurrent---no</nidx>
to tell the script about your intentions:
<tscreen><verb>
-foo% ./configure --enable-hc-booting
+foo% ./configure --enable-hc-boot
</verb></tscreen>
-<ncdx/--enable-hc-booting/
-<ncdx/--disable-hc-booting/
+<ncdx/--enable-hc-boot/
+<ncdx/--disable-hc-boot/
Assuming it configures OK and you don't need to create @mk/build.mk@
for any other purposes, the next step is to proceed with a @make boot@
-followed by @make all@.
+followed by @make all@. At the successful completion of @make all@,
+you should end up with a binary of the compiler proper,
+@ghc/compiler/hsc@, plus archives (but no @.hi@ files!) of the prelude
+libraries. To generate the Prelude interface files (and test drive the
+bootstrapped compiler), re-run the @configure@ script, but this time
+witout the @--enable-hc-boot@ option. After that re-create the
+contents of @ghc/lib@:
+
+<tscreen><verb>
+foo% ./configure
+ ....
+foo% cd ghc/lib
+foo% make clean
+foo% make boot
+foo% make all
+</verb></tscreen>
+
That's the mechanics of the boot process, but, of course, if you're
trying to boot on a platform that is not supported and significantly
`different' from any of the supported ones, this is only the start of
the adventure...(ToDo: porting tips - stuff to look out for, etc.)
-The end product of this will (hopefully) be a binary of the
-compiler proper, @ghc/compiler/hsc@ plus an archive of the Haskell
-Prelude libraries.
<sect>Known pitfalls in building Glasgow Haskell
<label id="sec:build-pitfalls">