-fptools build system
-====================
+The Glasgow Haskell Compiler
+============================
-This is the top-level directory of the fptools build system. Several
-packages are part of this build system; if you got this as part of a
-source distribution (eg. for GHC), then you will have one or more of
-the following directories:
+This is the source tree for GHC, a compiler and interactive
+environment for the Haskell functional programming language.
- ghc The Glasgow Haskell Compiler
- hslibs A Collection of Haskell libraries
- haggis The Haggis GUI toolkit
- happy The Happy Haskell parser generator
- hdirect Haskell interop tool
- green-card A foreign function interface pre-processor for Haskell.
- nofib The NoFib Haskell benchmarking suite
+For more information, visit GHC's web site:
-Additional documentation for each project can be found in its
-respective directory.
+ http://www.haskell.org/ghc/
-In addition, the following directories contain project-independent bits:
+Information for developers of GHC can be found here:
- mk GNU make setup used by all of fptools
- glafp-utils Shared utility programs
- docs Documentation on the installing and using
- the fptools build system.
- distrib Tools and additional bits for building distributions
+ http://hackage.haskell.org/trac/ghc/
-Quick start: the following is *supposed* to work
- $ ./configure
- $ make
- $ make install
+Getting the Source
+==================
-where 'make' is whatever GNU make is called on your system (GNU make
-is *required*). The configuration script is a standard GNU autoconf
-script which accepts all the normal arguments, eg. --prefix=<blah> to
-install the package somewhere other than /usr/local. Try ./configure
---help to get a full list of the options.
+There are two ways to get a source tree:
-There is usually an ANNOUNCE* file with any distribution. Please
-consult that, or the <piece>/README file, to find out how to proceed.
+ 1. Download source tarballs
+ ---------------------------
-Full documentation for the fptools build system can be found on the
-GHC web pages:
+ Download the GHC source distribution:
- http://www.haskell.org/ghc/
+ ghc-<version>-src.tar.bz2
---
-The GHC Team, glasgow-haskell-users@haskell.org
+ which contains GHC itself and the "boot" libraries.
+
+ 2. Check out the source code from git
+ -------------------------------------
+
+ First get the GHC git repository:
+
+ $ git clone http://darcs.haskell.org/ghc.git/
+
+ Then run the sync-all script in that repository
+ to get the other repositories:
+
+ $ cd ghc
+ $ ./sync-all get
+
+ 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. 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].
+
+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:
+
+ $ perl boot
+ $ ./configure
+ $ make
+ $ make install
+
+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.
+
+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.
+
+
+
+References
+==========
+
+ [1] http://www.haskell.org/ghc/ GHC Home Page
+ [2] http://hackage.haskell.org/trac/ghc GHC Developer's Wiki
+ [3] http://hackage.haskell.org/trac/ghc/wiki/Building Building Guide
+ [4] http://www.haskell.org/happy/ Happy
+ [5] http://www.haskell.org/alex/ Alex
+ [6] http://www.haskell.org/haddock/ Haddock
+
+
+Contributors
+============
+
+Please see
+
+ http://www.haskell.org/ghc/contributors.html