X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2FHACKING;h=181a05d9be12c46e8f595970277c035fcf91edd4;hb=e3575292c02f1757e73922393a0aded18ca49376;hp=6d6f62bcda26ea4829c68d4bebfd9c234d3eac7b;hpb=a832fad6755b121081a70c9a5eeb450853740d5b;p=ghc-hetmet.git diff --git a/ghc/HACKING b/ghc/HACKING index 6d6f62b..181a05d 100644 --- a/ghc/HACKING +++ b/ghc/HACKING @@ -81,6 +81,35 @@ SplitObjs = NO memory-consuming, so turn it off when you're hacking. +Actually building the bits +-------------------------- + +To just build everything, from the top level: + + $ autoreconf + $ ./configure + $ make + $ make install + + +Building individual parts of the tree +------------------------------------- + +The first thing to understand is that the source tree is built in two +passes. First 'make boot' builds dependencies and any other tools +required as part of the build itself. For example, +ghc/utils/genprimopcode is built as part of 'make boot', because it is +required to preprocess ghc/compiler/prelude/primops.txt.pp. + +After 'make boot', 'make' will build everything. + +If you say 'make' from the very top-level, the build system will +arrange to do the appropriate 'make boot' steps for you. If you just +want to build in a subdirectory (eg. ghc), you have to do 'make boot' +yourself. You don't need to 'make boot' after every single change, +but you might want to do it to update dependencies, for example. + + Refining the setup ------------------