Inform hole substitutions of typeclass constraints (fixes #14273).
[ghc.git] / MAKEHELP.md
1 Quick `make` guide for GHC
2 ==========================
3
4 For a "Getting Started" guide, see:
5
6   https://ghc.haskell.org/trac/ghc/wiki/Building/QuickStart
7   https://ghc.haskell.org/trac/ghc/wiki/Building/Using
8   https://ghc.haskell.org/trac/ghc/wiki/Building/StandardTargets
9
10 Common commands:
11
12   - `make`
13
14     Builds everything: ghc stages 1 and 2, all libraries and tools.
15
16   - `make -j2`
17
18     Parallel build: runs up to 2 commands at a time.
19
20   - `cd <dir>; make`
21
22     Builds everything in the given directory.
23
24   - cd <dir>; make help
25
26     Shows the targets available in <dir>
27
28   - make install
29   - make install-strip
30
31     Installs GHC, libraries and tools under $(prefix). The install-strip
32     variant strips executable files while installing them.
33
34   - make sdist
35   - make binary-dist
36
37     Builds a source or binary distribution respectively
38
39   - `make show VALUE=<var>`
40   - `make show! VALUE=<var>`
41
42     Show the value of make variable <var>. The show! variant works right after
43     ./configure (it skips reading package-data.mk files).
44
45   - make clean
46   - make distclean
47   - make maintainer-clean
48
49     Various levels of cleaning: "clean" restores the tree to the
50     state after "./configure", "distclean" restores to the state
51     after "python3 boot", and maintainer-clean restores the tree to the
52     completely clean checked-out state.
53
54 Using `make` in subdirectories
55 ==============================
56
57   - `make`
58
59     Builds everything in this directory (including dependencies elsewhere
60     in the tree, if necessary)
61
62   - `make fast`
63
64     The same as 'make', but omits some phases and does not
65     recalculate dependencies.  Useful for saving time if you are sure
66     the rest of the tree is up to date.
67
68   - `make clean`
69   - `make distclean`
70   - `make maintainer-clean`
71
72     Clean just this directory
73
74   - `make html`
75   - `make pdf`
76   - `make ps`
77
78     Make documentation in this directory (if any)
79
80   - `make show VALUE=<var>`
81   - `make show! VALUE=<var>`
82
83     Show the value of make variable <var>. The show! variant works right after
84     ./configure (it skips reading package-data.mk files).
85
86   - `make <file>`
87
88     Bring a particular file up to date, e.g. make dist/build/Module.o
89     The name <file> is relative to the current directory