|Version 8 (modified by 9 years ago) (diff),|
Layout of important files and directories
Everything starts with the main GHC repository (see Building/GettingTheSources). The buld system calls that directory
$(TOP). All the paths below are relative to
- This script allows you to get or pull all the additional repositories that you need to build GHC. The command-line interface is documented in the file itself.
Lists the packages that
darcs-allshould get or pull.
packagesis looked at only by
validatebefore committing (see TestingPatches). The script is documented in the file itself.
libraries/ directory contains all the packages that GHC needs to build. It has one sub-directory for each package repository (e.g.
random). Usually each such repository builds just one package but sometimes more than one (e.g DPH).
libraries/cabal-bin.hsis a little program we use for building the libraries. It's similar to cabal-install, but without the dependencies on
libraries/ifBuildable/is a utility that we use in the build system. It allows the build to continue if an extralib is not buildable (e.g., if we are missing a C library that an extralib depends on then we can still build the compiler). We expect this to disappear soon, when extralibs are removed.
libraries/bootstrapping/: In order to build
cabal-binwe need to compile
cabal-bin.hs, as well as a few libraries that we can't rely on the bootstrapping compiler having. We put the
.ofiles that result from this in
utils directory contains support utilities that GHC uses. Some of these are themselves separate repositories that
darcs-all pulls; others are part of the main GHC repository. Typically these utilities are built once and for all when your build tree is initialised.
Why isn't libffi in utils/?
These directories contain the main GHC compiler, runtime system, and documentation.
compiler/ghc.cabal: the Cabal file for GHC. If you add a module to GHC's source code, you must add it in the
ghc.cabalfile too, else you'll get link errors.
nofib/ directories contain apparatus for testing GHC. Each is a separate repository, which can be gotten with
Stuff that appears only in a build tree
This directory appears only in the build tree. It contains the
.ofiles obtained by compiling the compiler.
ghc/stage2-inplace/Code for the stage1 and stage2 compiler.
There seems to be
ghc/dist-stage1 too... what's that? Also there is