1. Download source tarballs
---------------------------
- The GHC source distribution comes in two parts:
+ Download the GHC source distribution:
ghc-<version>-src.tar.bz2
- ghc-<version>-src-extralibs.tar.bz2
- You only need the first one, which contains GHC itself and
- the "boot" libraries.
+ which contains GHC itself and the "boot" libraries.
- The extralibs package contains a bunch of optional libraries. If
- you want, you can unpack this over the top of your source tree, and
- these extra libraries will be built and installed automatically.
- Make sure you unpack the extralibs package before running configure
- (see below).
+ 2. Check out the source code from git
+ -------------------------------------
- If you don't build extralibs now, you can add them later by building
- and installing individual packages using Cabal.
+ First get the GHC git repository:
- 2. Get the source from darcs
- ----------------------------
+ $ git clone http://darcs.haskell.org/ghc.git/
- First get the GHC darcs repository:
-
- $ darcs get http://darcs.haskell.org/ghc/
-
- Then run the darcs-all script in that repository
+ Then run the sync-all script in that repository
to get the other repositories:
$ cd ghc
- $ chmod +x darcs-all
- $ ./darcs-all get
-
- This grabs the "boot" packages by default. To get the full set of
- packages, instead say
-
- $ ./darcs-all --extra get
+ $ ./sync-all get
- This also downloads the libraries that are normally bundled in the
- "extralibs" package (see above).
+ This checks out the "boot" packages.
Building & Installing
=====================
+For full information on building GHC, see the GHC Building Guide [3].
+Here follows a summary - if you get into trouble, the Building Guide
+has all the answers.
+
NB. you need GHC installed in order to build GHC, because the compiler
-is itself written in Haskell. It is possible to build GHC using just
-a C compiler, but we don't recommend this as the normal route. If you
-*really* want to do it this way, then see the Building Guide (link
-below).
+is itself written in Haskell. For instructions on how to port GHC to a
+new platform, see the Building Guide.
+
+If you're building from git sources (as opposed to a source
+distribution) then you also need to install Happy [4] and Alex [5].
-You also need a few other tools installed: Happy [4], Alex [5], and
-Haddock [6] (for building library documentation), and a good DocBook
-XML toolchain if you want to build the compiler documentation.
+For building library documentation, you'll need Haddock [6]. To build
+the compiler documentation, you need a good DocBook XML toolchain and
+dblatex.
Quick start: the following gives you a default build:
- $ sh boot
+ $ perl boot
$ ./configure
$ make
$ make install
-The "sh boot" step is only necessary if this is a tree checked out
-from darcs. For source distributions downloaded from GHC's web site,
+The "perl boot" step is only necessary if this is a tree checked out
+from git. For source distributions downloaded from GHC's web site,
this step has already been performed.
-If you want the documentation too then use these commands instead:
-
- $ echo "XMLDocWays = html" > mk/build.mk
- $ echo "HADDOCK_DOCS = YES" >> mk/build.mk
- $ sh boot
- $ ./configure
- $ make
- $ make install
- $ make install-docs
-
These steps give you the default build, which includes everything
optimised and built in various ways (eg. profiling libs are built).
-It can take a long time. To customise the build, see the file
-HACKING.
+It can take a long time. To customise the build, see the file HACKING.
-For full information on building GHC, see the GHC Building Guide [3].
References