MAKEHELP.md 2.07 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Quick `make` guide for GHC
==========================

For a "Getting Started" guide, see:

  http://ghc.haskell.org/trac/ghc/wiki/Building/Hacking

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 <dir>; make`

    Builds everything in the given directory.

  - cd <dir>; make help

    Shows the targets available in <dir>

  - make install
27
  - make install-strip
28

29 30
    Installs GHC, libraries and tools under $(prefix). The install-strip
    variant strips executable files while installing them.
31 32 33 34 35 36 37

  - make sdist
  - make binary-dist

    Builds a source or binary distribution respectively

  - `make show VALUE=<var>`
38 39
  - `make show! VALUE=<var>`

40 41
    Show the value of make variable <var>. The show! variant works right after
    ./configure (it skips reading package-data.mk files).
42

43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
  - 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 "perl 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)

78 79
  - `make show VALUE=<var>`
  - `make show! VALUE=<var>`
80

81 82
    Show the value of make variable <var>. The show! variant works right after
    ./configure (it skips reading package-data.mk files).
83 84 85 86 87

  - `make <file>`

    Bring a particular file up to date, e.g. make dist/build/Module.o
    The name <file> is relative to the current directory