Version 3 (modified by guest, 11 years ago) (diff)

Include (optional) automake

Prerequisites for Buiding GHC

Here are the gory details about some utility programs you may need; GHC, perl, gcc, happy and alex are the only important ones. The configure script will tell you if you are missing something.

GHC is required to build GHC, because GHC itself is written in Haskell, and uses GHC extensions. It is possible to build GHC using just a C compiler, and indeed some distributions of GHC do just that, but it isn't the best supported method, and you may encounter difficulties. Full instructions are in Porting GHC.

GHC can be built using either an earlier released version of GHC (currently 5.04 and later are supported), or bootstrapped using a GHC built from exactly the same sources. Note that this means you cannot in general build GHC using an arbitrary development snapshot, or a build from say last week. It might work, it might not - we don't guarantee anything. To be on the safe side, start your build using the most recently released stable version of GHC.
You must have Perl to proceed'' Perl version 5 at least is required. GHC has been known to tickle bugs in Perl, so if you find that Perl crashes when running GHC try updating (or downgrading) your Perl installation. Versions of Perl before 5.6 have been known to have various bugs tickled by GHC, so the configure script will look for version 5.6 or later. Perl should be put somewhere so that it can be invoked by the #! script-invoking mechanism.
GNU C (gcc)
Most GCC versions should work with the most recent GHC sources. Expect trouble if you use a recent GCC with an older GHC, though (trouble in the form of mis-compiled code, link errors, and errors from the ghc-asm script).

If your GCC dies with "internal error"" on some GHC source file, please let us know, so we can report it and get things improved. (Exception: on x86 boxes, you may need to fiddle with GHC's -monly-N-regs option; see the User's Guide).
GNU Make
The GHC build system makes heavy use of features specific to GNU make, so you must have this installed in order to build GHC.

NB. it has been reported that version 3.79 no longer works to build GHC, and 3.80 is required.
Happy is a parser generator tool for Haskell, and is used to generate GHC's parsers.

If you start from a source tarball of GHC (i.e. not a darcs checkout), then you don't need Happy, because we supply the pre-processed versions of the Happy parsers. If you intend to modify the compiler and/or you're using a darcs checkout, then you need Happy.

Happy version 1.15 is currently required to build GHC. Grab a copy from Happy's Web Page.
Alex is a lexical-analyser generator for Haskell, which GHC uses to generate its lexer.

Like Happy, you don't need Alex if you're building GHC from a source tarball, but you do need it if you're modifying GHC and/or building a darcs checkout.

Alex is written in Haskell and is a project in the darcs repository. Alex distributions are available from Alex's Web Page.
GNU automake is needed if you intend to build using "./autoreconf". Version 1.9 works.
GNU autoconf is needed if you intend to build from the darcs sources, it is not needed if you just intend to build a standard source distribution.

Version 2.52 or later of the autoconf package is required. NB. version 2.13 will no longer work, as of GHC version 6.1.

autoreconf (from the autoconf package) recursively builds configure scripts from the corresponding and aclocal.m4 files. If you modify one of the latter files, you'll need autoreconf to rebuild the corresponding configure.
You need a working sed if you are going to build from sources. The build-configuration stuff needs it. GNU sed version 2.0.4 is no good! It has a bug in it that is tickled by the build-configuration. 2.0.5 is OK. Others are probably OK too (assuming we don't create too elaborate configure scripts.)