7. Booting/porting from C (.hc) files

This section is for people trying to get GHC going by using the supplied intermediate C (.hc) files. This would probably be because no binaries have been provided, or because the machine is not ``fully supported''.

The intermediate C files are normally made available together with a source release, please check the announce message for exact directions of where to find them. If we haven't made them available or you can't find them, please ask.

Assuming you've got them, unpack them on top of a fresh source tree. Then follow the `normal' instructions in Section 5 for setting up a build tree. When you invoke the configure script, you'll have to tell the script about your intentions:

foo% ./configure --enable-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. 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 without the --enable-hc-boot option. After that re-create the contents of ghc/lib:

foo% ./configure
foo% cd ghc/lib
foo% make clean
foo% make boot
foo% make all

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.)