[[project @ 2002-11-19 13:39:29 by simonmar]
simonmar**20021119133929
Add some documentation about the new bootstrapping support
] {
hunk ./docs/building/building.sgml 1345
+
+ Quick Start
+
+ If you are starting from a source distribution, and just
+ want a completely standard build, then the following should
+ work:
+
+$ ./configure
+$ make
+$ make install
+
+
+ For GHC, this will do a 2-stage bootstrap build of the
+ compiler, with profiling libraries, and install the
+ results.
+
+ If you want to do anything at all non-standard, or you
+ want to do some development, read on...
+
+
hunk ./docs/building/building.sgml 1518
+ NOTE: if you're starting from a source distribution,
+ rather than CVS sources, you can skip this step.
+
hunk ./docs/building/building.sgml 1543
-
- In case you don't have autoconf
- we distribute the results, configure,
- and mk/config.h.in, with the source
- distribution. They aren't kept in the repository,
- though.
hunk ./docs/building/building.sgml 1885
+
+
+
+ Bootstrapping GHC
+
+ GHC requires a 2-stage bootstrap in order to provide
+ full functionality, including GHCi. By a 2-stage bootstrap, we
+ mean that the compiler is built once using the installed GHC,
+ and then again using the compiler built in the first stage. You
+ can also build a stage 3 compiler, but this normally isn't
+ necessary except to verify that the stage 2 compiler is working
+ properly.
+
+ Note that when doing a bootstrap, the stage 1 compiler
+ must be built, followed by the runtime system and libraries, and
+ then the stage 2 compiler. The correct ordering is implemented
+ by the top-level fptools Makefile, so if
+ you want everything to work automatically it's best to start
+ make from the top of the tree. When building
+ GHC, the top-level fptools Makefile is set
+ up to do a 2-stage bootstrap by default (when you say
+ make). Some other targets it supports
+ are:
+
+
+
+ stage1
+
+ Build everything as normal, including the stage 1
+ compiler.
+
+
+
+
+ stage2
+
+ Build the stage 2 compiler only.
+
+
+
+
+ stage3
+
+ Build the stage 3 compiler only.
+
+
+
+
+ bootstrap bootstrap2
+
+ Build stage 1 followed by stage 2.
+
+
+
+
+ bootstrap3
+
+ Build stages 1, 2 and 3.
+
+
+
+
+ install
+
+ Install everything, including the compiler built in
+ stage 2. To override the stage, say make install
+ stage=n where
+ n is the stage to install.
+
+
+
+
+ The top-level Makefile also arranges
+ to do the appropriate make boot steps (see
+ below) before actually building anything.
+
+ The stage1, stage2
+ and stage3 targets also work in the
+ ghc/compiler directory, but don't forget that
+ each stage requires its own make boot step:
+ for example, you must do
+
+ $ make boot stage=2
hunk ./docs/building/building.sgml 1969
+ before make stage2 in
+ ghc/compiler.
}