Quick `make` guide for GHC ========================== For a "Getting Started" guide, see: - https://gitlab.haskell.org/ghc/ghc/wikis/building/quick-start - https://gitlab.haskell.org/ghc/ghc/wikis/building/using - https://gitlab.haskell.org/ghc/ghc/wikis/building/standard-targets Common commands: - `make` Builds everything: ghc stages 1 and 2, all libraries and tools. - `make -j2` Parallel build: runs up to 2 commands at a time. - `cd ; make` Builds everything in the given directory. - `cd ; make help` Shows the targets available in - `make install` - `make install-strip` Installs GHC, libraries and tools under $(prefix). The install-strip variant strips executable files while installing them. - `make sdist` - `make binary-dist` Builds a source or binary distribution respectively - `make show VALUE=` - `make show! VALUE=` Show the value of make variable . The show! variant works right after ./configure (it skips reading package-data.mk files). - `make clean` - `make distclean` - `make maintainer-clean` Various levels of cleaning: "clean" restores the tree to the state after "./configure", "distclean" restores to the state after "python3 boot", and maintainer-clean restores the tree to the completely clean checked-out state. Using `make` in subdirectories ============================== - `make` Builds everything in this directory (including dependencies elsewhere in the tree, if necessary) - `make fast` The same as 'make', but omits some phases and does not recalculate dependencies. Useful for saving time if you are sure the rest of the tree is up to date. - `make clean` - `make distclean` - `make maintainer-clean` Clean just this directory - `make html` - `make pdf` - `make ps` Make documentation in this directory (if any) - `make show VALUE=` - `make show! VALUE=` Show the value of make variable . The show! variant works right after ./configure (it skips reading package-data.mk files). - `make ` Bring a particular file up to date, e.g. make dist/build/Module.o The name is relative to the current directory Useful links: ============= See also "new Hadrian build system": - https://gitlab.haskell.org/ghc/ghc/wikis/building/hadrian