GHC Trac Home
Working on GHC
Mailing Lists & IRC
All Feature Req's
Tickets I Created
Patches for review
New Feature Req
Forgot your password?
← Previous Change
Next Change →
side by side
lines around each change
White space changes
03/31/09 02:57:17 (
= Idiom: distdir =
Often we want to build a component multiple times in different ways. For example:
* certain libraries (e.g. Cabal) are required by GHC, so we build them once with the
bootstrapping compiler, and again with stage 1 once that is built.
* GHC itself is built multiple times (stage 1, stage 2, maybe stage 3)
* some tools (e.g. ghc-pkg) are also built once with the bootstrapping compiler,
and then again using stage 1 later.
In order to support multiple builds in a directory, we place all generated files in a subdirectory, called the "distdir". The distdir can be anything at all; for example in `compiler/` we name our distdirs after the stage (`stage1`, `stage2` etc.). When there is only a single build in a directory, by convention we usually call the distdir simply "dist".
There is a related concept called ''ways'', which includes profiling and dynamic-linking. Multiple ways are currently part of the same "build" and use the same distdir, but in the future we might unify these concepts and give each way its own distdir.