6. Installing pre-supposed utilities

Here are the gory details about some utility programs you may need; perl, gcc and happy are the only important ones. (PVM is important if you're going for Parallel Haskell.) The configure script will tell you if you are missing something.

Perl

You have to 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 that we use and are known to be fairly stable are 5.005 and 5.6.1.

For Win32 platforms, you should use the binary supplied in the InstallShield (copy it to /bin). The Cygwin-supplied Perl seems not to work.

Perl should be put somewhere so that it can be invoked by the #! script-invoking mechanism. The full pathname may need to be less than 32 characters long on some systems.

GNU C (gcc)

We recommend using GCC version 2.95.2 on all platforms. Failing that, version 2.7.2 is stable on most platforms. Earlier versions of GCC can be assumed not to work, and versions in between 2.7.2 and 2.95.2 (including egcs) have varying degrees of stability depending on the platform.

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 iX86 boxes—you may need to fiddle with GHC's -monly-N-regs option; see the User's Guide)

GNU Make

The fptools build system makes heavy use of features specific to GNU make, so you must have this installed in order to build any of the fptools suite.

Happy

Happy is a parser generator tool for Haskell, and is used to generate GHC's parsers. Happy is written in Haskell, and is a project in the CVS repository (fptools/happy). It can be built from source, but bear in mind that you'll need GHC installed in order to build it. To avoid the chicken/egg problem, install a binary distribtion of either Happy or GHC to get started. Happy distributions are available from Happy's Web Page.

Autoconf

GNU Autoconf is needed if you intend to build from the CVS sources, it is not needed if you just intend to build a standard source distribution.

Autoconf builds the configure script from configure.in and aclocal.m4. If you modify either of these files, you'll need autoconf to rebuild configure.

sed

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.)

One fptools project is worth a quick note at this point, because it is useful for all the others: glafp-utils contains several utilities which aren't particularly Glasgow-ish, but Occasionally Indispensable. Like lndir for creating symbolic link trees.

6.1. Tools for building parallel GHC (GPH)

6.2. Other useful tools

More tools are required if you want to format the documentation that comes with GHC and other fptools projects. See Section 9.