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.
PVM is the Parallel Virtual Machine on which
Parallel Haskell programs run. (You only need this if you
plan to run Parallel Haskell. Concurent Haskell, which
runs concurrent threads on a uniprocessor doesn't need
it.) Underneath PVM, you can have (for example) a network
of workstations (slow) or a multiprocessor box
(faster).
The current version of PVM is 3.3.11; we use 3.3.7.
It is readily available on the net; I think I got it from
research.att.com, in
netlib.
A PVM installation is slightly quirky, but easy to
do. Just follow the Readme
instructions.
bash:
Sadly, the gr2ps script, used to
convert “parallelism profiles” to PostScript,
is written in Bash (GNU's Bourne Again shell). This bug
will be fixed (someday).
This is a quite-a-bit-better-than-Lex lexer. Used
to build a couple of utilities in
glafp-utils. Depending on your
operating system, the supplied lex may
or may not work; you should get the GNU version.
More tools are required if you want to format the documentation
that comes with GHC and other fptools projects. See Section 9.