Quick `make` guide for GHC
==========================
For a "Getting Started" guide, see:
https://ghc.haskell.org/trac/ghc/wiki/Building/QuickStart
https://ghc.haskell.org/trac/ghc/wiki/Building/Using
https://ghc.haskell.org/trac/ghc/wiki/Building/StandardTargets
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