|Version 4 (modified by 5 years ago) (diff),|
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
suffix.mk contain make targets, definitions of variables containing paths, and suffix rules, respectively.
The Coding style guidelines may be found on the wiki.