|Version 4 (modified by dterei, 19 months ago)|
Source Tree Layout
An overview of the source tree may be found here.
Build System Basics
Detailed information about the build system may be found here; what follows is a quick overview, highlighting the areas where GHC's build system diverges substantially from the way make is used in most other projects.
Most projects keep the parts of their build machinery in files called Makefile found in many/most subdirectories of the source tree. GHC uses the filename ghc.mk instead; you'll find a file with this name in quite a number of subdirectories.
There are subdirectories of name mk/ at various levels that contain rules, targets, and so on specific to a project - or, in the case of the toplevel, the default rules for the whole system. Each mk/ directory contains a file boilerplate.mk that ties the various other makefiles together. Files called target.mk, paths.mk, and suffix.mk contain make targets, definitions of variables containing paths, and suffix rules, respectively.
The Coding style guidelines may be found on the wiki.