X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=docs%2Fbuilding%2Fbuilding.xml;h=2b448fabaa0714535f6004e5085c70ec5b719485;hb=523d16b79ef458ee7a3c9d19896e08d36c2dcbb6;hp=ae22c81d286733017018997588e925bdbe67190f;hpb=1013f2bbde5eb3e8bba4da6d851215963a93b239;p=ghc-hetmet.git diff --git a/docs/building/building.xml b/docs/building/building.xml index ae22c81..2b448fa 100644 --- a/docs/building/building.xml +++ b/docs/building/building.xml @@ -407,12 +407,12 @@ setsockopt IPTOS_THROUGHPUT: Invalid argument result in checking out the entire repository instead of just the fpconfig bit. $ cd directory -$ cvs checkout ghc hslibs libraries +$ cvs checkout ghc libraries The second command here checks out the relevant modules you want to work on. For a GHC build, for instance, you need at least the ghc, - hslibs and libraries + and libraries modules (for a full list of the projects available, see ). @@ -605,7 +605,7 @@ $ lndir source-tree $ cvs co -r ghc-4-06 fpconfig $ cd fptools -$ cvs co -r ghc-4-06 ghc hslibs +$ cvs co -r ghc-4-06 ghc libraries @@ -793,8 +793,7 @@ $ cvs checkout nofib/spectral hslibsproject - Supplemental libraries for GHC - (required for building GHC). + Old, now deprecated, libraries. Everything in here is in libraries. @@ -843,8 +842,8 @@ $ cvs checkout nofib/spectral So, to build GHC you need at least the - ghc, libraries and - hslibs projects (a GHC source distribution will + ghc and libraries + projects (a GHC source distribution will already include the bits you need). @@ -2952,6 +2951,58 @@ directive. ones in boilerplate.mk. + + Platform settings + Platform settings + + + There are three platforms of interest when building GHC: + + + + The build platform + + The platform on which we are doing this build. + + + + + The host platform + + The platform on which these binaries will run. + + + + + The target platform + + The platform for which this compiler will generate code. + + + + + These platforms are set when running the + configure script, using the + , , and + options. The mk/config.mk + file defines several symbols related to the platform settings (see + mk/config.mk for details). + + We don't currently support build & host being different, because + the build process creates binaries that are both run during the build, + and also installed. + + If host and target are different, then we are building a + cross-compiler. For GHC, this means a compiler + which will generate intermediate .hc files to port to the target + architecture for bootstrapping. The libraries and stage 2 compiler + will be built as HC files for the target system (see for details. + + More details on when to use BUILD, HOST or TARGET can be found in + the comments in config.mk. + + Pattern rules and options Pattern rules @@ -3566,7 +3617,7 @@ $ make install corresponding Haskell source (.hs or .lhs) in the compiler subdirectory ghc/compiler and in the libraries - (subdirectories of hslibs and + (subdirectories of libraries). @@ -3695,7 +3746,7 @@ $ ./configure --enable-hc-boot --enable-hc-boot-unregisterised $ cd T/ghc/includes -$ make ghcconfig.h +$ make @@ -3726,7 +3777,7 @@ GhcLibWays = SplitObjs = NO GhcWithNativeCodeGen = NO GhcWithInterpreter = NO -GhcStage1HcOpts = -O -fasm +GhcStage1HcOpts = -O GhcStage2HcOpts = -O -fvia-C -keep-hc-files SRC_HC_OPTS += -H32m GhcBootLibs = YES @@ -3755,20 +3806,19 @@ GhcBootLibs = YES Copy - T/ghc/includes/ghcconfig.h + T/ghc/includes/ghcautoconf.h, T/ghc/includes/DerivedConstants.h, and T/ghc/includes/GHCConstants.h to H/ghc/includes. Note that we are building on the host machine, using the - target machine's config.h file. This + target machine's configuration files. This is so that the intermediate C files generated here will be suitable for compiling on the target system. - - Touch ghcconfig.h, just to make - sure it doesn't get replaced during the build: -$ touch H/ghc/includes/ghcconfig.h + Touch the generated configuration files, just to make + sure they don't get replaced during the build: +$ touch H/ghc/includes/{ghcautoconf.h,DerivedConstants.h.GHCConstants.h.mkDerivedConstants.c,mkDerivedConstantsHdr,mkDerivedConstants.o,mkGHCConstants,mkGHCConstants.o} @@ -4766,6 +4816,11 @@ so you will need to add emacs/bin to your PATH + + You might want to install GLUT in your MSYS/Cygwin + installation, otherwise the GLUT package will not be built with + GHC. + Finally, check out a copy of GHC sources from