Here are the gory details about some utility programs you may need;
gcc are the only important ones. (PVM is important
if you're going for Parallel Haskell.) The
script will tell you if you are missing something.
You have to have Perl to proceed! Perl is a language quite good for doing shell-scripty tasks that involve lots of text processing. It is pretty easy to install.
Perl 5 is the current version; GHC is Perl 4 friendly though. For
Win32 platforms, Perl 5 is recommended, we even strongly suggest you
pick up a port of Perl 5 for
cygwin32, as the common Hip/ActiveWare
port of Perl is not Cool Enough for our purposes.
Perl should be put somewhere so that it can be invoked by the
script-invoking mechanism. (I believe
/usr/bin/perl is preferred;
/usr/local/bin/perl at Glasgow.) The full pathname should
be less than 32 characters long.
The current version is 2.7.2.
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.
iX86 boxes---you may need to fiddle with GHC's
-monly-N-regs option; ask if confused...)
EGCS (the Enhanced GNU Compiler Suite) may or may not work, we haven't tested it fully yet.
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
A PVM installation is slightly quirky, but easy to do. Just follow
The GHC libraries are put together with something like:
Unfortunately the Solaris
find bunch-of-dirs -name '*.o' -print | xargs ar q ...
xargs(the shell-script equivalent of
map) only ``bites off'' the
.ofiles a few at a time---with near-infinite rebuilding of the symbol table in the
The best solution is to install a sane
xargs from the GNU
findutils distribution. You can unpack, build, and install the GNU
version in the time the Solaris
xargs mangles just one GHC
GNU Autoconf is used to build the
configure script from
configure.in in a source distribution. If you modify
configure.in, you'll need
autoconf to regenerate
bash(Parallel Haskell only):
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 GHC's
lexer, and a couple of utilities in
glafp-utils. On our machines,
the version in
/bin doesn't work; you need the GNU version. Find
out by saying
flex --version (our current version is 2.5.3, but
maybe earlier ones will work). If it doesn't know about the
--version flag, it ain't the right
If you mess with the Haskell parser, you'll need a Yacc that can cope.
/usr/lang/yacc is OK; the GNU
bison is OK; Berkeley
byacc, is not OK.
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..)
fptools projects is worth a quick note at this point, because
it is useful for all the others:
glafp-utilscontains several utilities which aren't particularly Glasgow-ish, but Occasionally Indispensable. Like
lndirfor creating symbolic link trees.
The following additional tools are required if you want to format the
documentation that comes with the
All our documentation is written in SGML, using the LinuxDoc DTD that comes with the SGML-Tools, which is the most shrink-wrapped SGML suite that we could find. Should unpack and build painlessly on most architectures, and you can use it to generate HTML, Info, LaTeX (and hence DVI and Postscript), Groff, and plain text output from any LinuxDoc source file (including this manual). Sources are available from The SGML-Tools Web Page.
A decent TeX distribution is required if you want to produce printable documentation. We recomment teTeX, which includes just about everything you need.