Version 4 (modified by dterei, 6 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 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 that ties the various other makefiles together. Files called,, and contain make targets, definitions of variables containing paths, and suffix rules, respectively.

Coding Style

The Coding style guidelines may be found on the wiki.