%
-% $Header: /srv/cvs/cvs.haskell.org/fptools/ghc/docs/install_guide/Attic/installing.lit,v 1.2 1996/06/27 15:57:32 partain Exp $
+% $Header: /srv/cvs/cvs.haskell.org/fptools/ghc/docs/install_guide/Attic/installing.lit,v 1.4 1996/07/25 20:47:34 partain Exp $
%
\begin{onlystandalone}
\documentstyle[11pt,literate]{article}
\begin{document}
\title{Installing the Glasgow Functional Programming Tools\\
-Version~0.26}
-\author{The AQUA Team (scribe: Will Partain)\\
+Version~2.01}
+\author{The GHC Team\\
Department of Computing Science\\
University of Glasgow\\
Glasgow, Scotland\\
G12 8QQ\\
\\
-Email: glasgow-haskell-\{users,bugs\}-request\@dcs.glasgow.ac.uk}
+Email: glasgow-haskell-\{users,bugs\}-request\@dcs.gla.ac.uk}
\maketitle
\begin{rawlatex}
\tableofcontents
just the Glasgow Haskell compiler (GHC). This document will guide you
through the installation process, and point out the known pitfalls.
-Note: As of version~0.26, this document describes how to build {\em
-all} of the Glasgow tools, not just the Haskell compiler. The
-\tr{configure} script, etc., has changed to cope with this wider
-mandate; something to bear in mind...
-
%************************************************************************
%* *
\subsection[install-strategy]{What to install? Starting from what?}
Building GHC on an unsupported platform falls into this category.
Please see \sectionref{booting-from-C}.
+NB: For GHC~2.01, bootstrapping from \tr{.hc} files means you will get
+an all-2.01 system---possibly unduly slow. Building with GHC~0.29
+will get you a faster compiler...
+
Once you have built GHC, you can build the other Glasgow tools with
it.
%************************************************************************
%* *
-\subsection[port-info]{What machines the Glasgow tools, version~0.26, run on}
+\subsection[port-info]{What machines the Glasgow tools, version~2.01, run on}
\index{ports, GHC}
\index{GHC ports}
\index{supported platforms}
The GHC hierarchy of Porting Goodness: (a)~Best is a native-code
generator; (b)~next best is a ``registerised''
port; (c)~the bare minimum is an ``unregisterised'' port.
-``Unregisterised'' Haskell programs are much bigger and slower,
-but the port is much easier to get going.
-
-With GHC~0.26, we add ``registerised'' support for some HP-PA, iX86,
-and MIPS platforms.
+``Unregisterised'' is so terrible that we won't say more about it.
-We use Sun4s running SunOS~4.1.3 and DEC~Alphas running OSF/1~V2.0,
-so those are the ``fully-supported'' platforms, unsurprisingly. Both
-have native-code generators, for quicker compilations.
+We use Sun4s running SunOS~4.1.3 and Solaris 2.5, and DEC~Alphas
+running OSF/1~V2.0, so those are the ``fully-supported'' platforms,
+unsurprisingly. Both have native-code generators, for quicker
+compilations. The native-code generator for iX86 platforms (e.g.,
+Linux ELF) is {\em nearly} working; but is not turned on by default.
-Here's everything that's known about GHC ports, as of 0.26. We
-identify platforms by their ``canonical GNU-style'' names. We
-identify
+Here's everything that's known about GHC ports, as of 2.01. We
+identify platforms by their ``canonical GNU-style'' names.
Note that some ports are fussy about which GCC version you use; or
require GAS; or ...
%-------------------------------------------------------------------
\item[HP-PA box running HP/UX 9.x:]
\index{hppa1.1-hp-hpux: registerised port}
-GHC~0.26 works registerised. No native-code generator.
+Works registerised. No native-code generator.
For GCC, you're best off with one of the Utah releases of
GCC~2.6.3 (`u3' or later), from \tr{jaguar.cs.utah.edu}.
-We don't know if straight GCC 2.7.x works or not.
+We think a straight GCC 2.7.x works, too.
Concurrent/Parallel Haskell probably don't work (yet).
\index{hppa1.1-hp-hpux: concurrent---no}
\index{hppa1.1-hp-hpux: parallel---no}
%-------------------------------------------------------------------
-\item[\tr{i386-*-linuxaout} (PCs running Linux---\tr{a.out} format):]
-\index{i386-*-linuxaout: registerised port}
-GHC~0.26 works registerised (no native-code generator).
+\item[\tr{i386-*-linux} (PCs running Linux---ELF format):]
+\index{i386-*-linux: registerised port}
+GHC~2.01 works registerised.
You {\em must} have GCC 2.7.x or later.
+The iX86 native-code generator is {\em nearly} there, but it
+isn't turned on by default.
-Concurrent/Parallel Haskell probably don't work (yet).
-\index{i386-*-linuxaout: concurrent---no}
-\index{i386-*-linuxaout: parallel---no}
-\index{i386-*-linuxaout: profiling---maybe}
-Profiling might work, but it is untested.
+Profiling works, and Concurrent Haskell works.
+\index{i386-*-linux: profiling---yes}
+\index{i386-*-linux: concurrent---yes}
+Parallel Haskell probably works.
+\index{i386-*-linux: parallel---maybe}
+
+On old Linux a.out systems: should be the same.
+\index{i386-*-linuxaout: registerised port}
%-------------------------------------------------------------------
\item[\tr{mips-sgi-irix5}:]
\index{mips-sgi-irix5: registerised port}
-GHC~0.26 works registerised (no native-code generator).
+GHC~2.01 works registerised (no native-code generator).
I suspect any GCC~2.6.x (or later) is OK. The GCC that I used
-was built with \tr{--with-gnu-as}.
+was built with \tr{--with-gnu-as}; turns out that is important!
Concurrent/Parallel Haskell probably don't work (yet).
Profiling might work, but it is untested.
%-------------------------------------------------------------------
\item[\tr{m68k-sun-sunos4} (Sun3):]
\index{m68k-sun-sunos4: registerised port}
-GHC~0.26 works registerised. No native-code generator.
+GHC~2.01 hasn't been tried on a Sun3. GHC~0.26 worked registerised.
+No native-code generator.
Concurrent/Parallel Haskell probably don't work (yet).
\index{m68k-sun-sunos4: concurrent---no}
Use an appropriate machine, compilers, and things.
SPARC boxes and DEC Alphas running OSF/1 are fully supported.
+Linux, MIPS, and HP boxes are in pretty good shape.
\Sectionref{port-info} gives the full run-down on ports or lack
thereof.
too---\sectionref{port-info} lists any specific requirements in this
regard.
-If you are going to be making documents [unlikely], you'll need
-\tr{makeindex} as well, and maybe \tr{tgrind} [unlikely]. If you edit
-the one or two \tr{flex} files in GHC, you'll need \tr{flex}, too
-[unlikely].
-
+% If you are going to be making documents [unlikely], you'll need
+% \tr{makeindex} as well, and maybe \tr{tgrind} [unlikely]. If you edit
+% the one or two \tr{flex} files in GHC, you'll need \tr{flex}, too
+% [unlikely].
+%
If you end up yacc'ing the Haskell parser [unlikely], Sun's standard
\tr{/bin/yacc} won't cut it. Either the unbundled \tr{/usr/lang/yacc}
or \tr{bison} will do fine. Berkeley yacc (\tr{byacc}) won't do.
(separate document), to maximise the usefulness of your report.
If in doubt, please send a message to
-\tr{glasgow-haskell-bugs@dcs.glasgow.ac.uk}.
+\tr{glasgow-haskell-bugs@dcs.gla.ac.uk}.
\end{enumerate}
%************************************************************************
A basic GHC ``bundle'' gives you the compiler and the standard,
sequential libraries. The files are called
-\tr{ghc-0.26-<platform>.tar.gz}, where \tr{<platform>} is one of:
-alpha-dec-osf2, hppa1.1-hp-hpux9, i386-unknown-linuxaout,
-% i386-unknown-solaris2,
+\tr{ghc-2.01-<platform>.tar.gz}, where \tr{<platform>} is one of:
+alpha-dec-osf2, hppa1.1-hp-hpux9, i386-unknown-linux,
+i386-unknown-solaris2, i386-unknown-freebsd,
m68k-sun-sunos4, mips-sgi-irix5,
sparc-sun-sunos4, sparc-sun-solaris2.
There are plenty of ``non-basic'' GHC bundles. The files for them are
-called \tr{ghc-0.26-<bundle>-<platform>.tar.gz}, where the
+called \tr{ghc-2.01-<bundle>-<platform>.tar.gz}, where the
\tr{<platform>} is as above, and \tr{<bundle>} is one of these:
\begin{description}
\item[\tr{prof}:] Profiling with cost-centres. You probably want this.
\begin{verbatim}
cd /put/them/in/here
-gunzip < ghc-0.26-sparc-sun-sunos4.tar.gz | tar xf -
-gunzip < ghc-0.26-prof-sparc-sun-sunos4.tar.gz | tar xf -
-gunzip < ghc-0.26-conc-sparc-sun-sunos4.tar.gz | tar xf -
+gunzip < ghc-2.01-sparc-sun-sunos4.tar.gz | tar xf -
+gunzip < ghc-2.01-prof-sparc-sun-sunos4.tar.gz | tar xf -
+gunzip < ghc-2.01-conc-sparc-sun-sunos4.tar.gz | tar xf -
\end{verbatim}
If you unpacked the files in a way that does {\em not} preserve
\begin{description}
%---------------------------------------------------------------------
\item[\tr{bin/<platform>} (sometimes just \tr{bin/}):]
-Copy these executables so that they will be in users' PATHs.
+Copy (or link to) these executables so that they will be in users' PATHs.
%---------------------------------------------------------------------
\item[\tr{lib}:]
bin directory.
\item
-CHOICE \#1 (BETTER):
Edit your \tr{ghc}, \tr{mkdependHS}, and \tr{hstags} scripts:
(a)~Create a correct \tr{#!...perl} first line in each one. (Ask a
Unix-friendly person to help you, if you don't know what a
then you should set \tr{GLASGOW_HASKELL_ROOT} to \tr{/home/myself}.
\item
-CHOICE \#2:
-Set your \tr{GLASGOW_HASKELL_ROOT} environment variable, and
-don't edit the \tr{ghc}, \tr{mkdependHS}, and \tr{hstags} scripts
-at all.
-
-It's better to edit the scripts; that way, it's once for all.
+Actually setting the \tr{GLASGOW_HASKELL_ROOT} environment variable
+is a {\em bad} idea, mostly because it precludes having several
+GHC versions around at the same time.
+
+% \item
+% CHOICE \#2:
+% Set your \tr{GLASGOW_HASKELL_ROOT} environment variable, and
+% don't edit the \tr{ghc}, \tr{mkdependHS}, and \tr{hstags} scripts
+% at all.
+%
+% It's better to edit the scripts; that way, it's once for all.
\item
You {\em may} need to re-\tr{ranlib} your libraries (on Sun4s).
\begin{verbatim}
-% cd <wherever-the-lib-files-are-now>/ghc/0.26/sparc-sun-sunos4
+% cd <wherever-the-lib-files-are-now>/ghc/2.01/sparc-sun-sunos4
% foreach i ( `find . -name '*.a' -print` ) # or other-shell equiv...
? ranlib $i
? # or, on some machines: ar s $i
\item
Be sure you have a suitable Haskell compiler, or else the intermediate
-C (\tr{.hc}) files. In some cases, you might want an alternative set
-of interface (\tr{.hi}) files (quicker than generating a fresh set).
+C (\tr{.hc}) files..
\Sectionref{install-strategy} lists the various strategies you might
adopt.
Run the \tr{configure} script. It is a shell script that looks around
to find out things about your system. You can see the \tr{configure}
options by passing it a \tr{--help} flag, or by reading
-\sectionref{Configuring}.
+\sectionref{Configuring}. A typical invocation might be:
+\begin{verbatim}
+% cd <the-very-top-dir>
+% ./configure --prefix=/usr/local/fp \
+ --with-hc=ghc-0.29 --with-mkdependHS=mkdependHS-0.29
+\end{verbatim}
\item
Once configured, build the basic support utilities and make your
Haskell, you have to use some ``bootstrapping'' mechanism.
Your best choice, if available, is to use a binary distribution for
-your platform; i.e., compile GHC~0.26 with a GHC~0.26 that we have
+your platform; e.g., compile GHC~2.01 with a GHC~0.29 that we have
provided. Please see \sectionref{installing-bin-distrib} for how to
install a binary distribution.
-Your remaining choice is to use the intermediate C (\tr{.hc}) files that we
-supply. This is the {\em only} choice for anyone trying to port to
-a new or weakly-supported system.
+Your remaining choice is to use the intermediate C (\tr{.hc}) files
+that we supply. This is the {\em only} choice for anyone trying to
+port to a new or weakly-supported system.
The main drawback of the supplied-\tr{.hc} approach is that you will
have a lot of very bulky intermediate files on your disk for a while.
-One obscure note: if you're going to build GHC to have a native-code
-generator, you're well advised to get a suitable set of interface
-files (to save making them yourself). Please see \sectionref{Compiler_reconfig}
-if you plan to end up with a native-code generator.
+(With GHC~2.01, another drawback is that the \tr{.hc} files will give
+you a 2.01-built-with-2.01---normally a good thing---but, in this case,
+probably slower than a 2.01-built-with-0.29.)
% If you have to boot from C (\tr{.hc}) files, you should follow the
% directions in \sectionref{booting-from-C}.
\begin{verbatim}
% cd ghc
% make all >& make.log
+% cd ../hslibs
+% make all >& make.log
\end{verbatim}
If this fails or something seems suspicious, check the ``known
pitfalls'' (\sectionref{build-pitfalls}). If you can't figure out how
First, give yourself a convenient way to execute the driver script
\tr{ghc/driver/ghc}, perhaps something like...
\begin{verbatim}
-% ln -s /local/src/ghc-0.26/ghc/driver/ghc ~/bin/sun4/ghc
+% ln -s /local/src/ghc-2.01/ghc/driver/ghc ~/bin/alpha/ghc
% rehash
\end{verbatim}
Compile the program, using the \tr{-v} (verbose) flag to verify that
libraries, etc., are being found properly:
\begin{verbatim}
-% ghc -v -o hello -fhaskell-1.3 Main.hs
+% ghc -v -o hello Main.hs
\end{verbatim}
Now run it:
\begin{verbatim}
% cd <very-top>/ghc
% make install
+% cd <very-top>/hslibs
+% make install
\end{verbatim}
If you're a little dubious (as I usually am), you can always do a
\begin{verbatim}
% cd <very-top>/ghc
% make -n install >& temp-log-file-to-look-at
+% cd <very-top>/hslibs
+% make -n install >& temp-log-file-to-look-at
\end{verbatim}
In both cases, if something breaks, it's a {\em bug}.
%* *
%************************************************************************
-Because our documentation is in DVI/Info formats, and because there is
+Because our documentation is in DVI/Info/HTML formats, and because there is
no standard practice about how such documents are ``installed,'' we
haven't tried to automate this (at least not enough that we promise it
works).
If you want to execute out of the source tree but would like to clear
off lots and lots of stuff, you can do:
\begin{verbatim}
-% cd ghc/lib # scrub library C and object files
-% rm */*.hc
+% cd ghc/lib # scrub library .hc and object files
+% rm */*.hc */*.*_hc
% find . -name '*.o' -print | xargs /bin/rm
+% cd hslibs/ # ditto for syslibs
+% rm */src/*.hc */src/*.*_hc
+
% cd ghc/compiler # scrub compiler object files
% rm */*.o
% rm */*.hc # if you have been keeping them around
is not ``fully supported.''
To boot from C (\tr{.hc}) files, you need the regular source distribution
-(\tr{ghc-0.26-src.tar.gz}) and also some extra files in
-\tr{ghc-0.26-hc-files.tar.gz}. DON'T FORGET any extra \tr{.hc}
+(\tr{ghc-2.01-src.tar.gz}) and also some extra files in
+\tr{ghc-2.01-hc-files.tar.gz}. DON'T FORGET any extra \tr{.hc}
files for profiling, concurrent, parallel, ...
Whatever you want to build, just unpack all the files ``together'':
\begin{verbatim}
% cd <wherever>
-% gunzip -c ghc-0.26-src.tar.gz | tar xf -
-% gunzip -c ghc-0.26-hc-files.tar.gz | tar xf - # basic...
-% gunzip -c ghc-0.26-prof-hc-files.tar.gz | tar xf - # profiling...
-% gunzip -c ghc-0.26-conc-hc-files.tar.gz | tar xf - # concurrent...
+% gunzip -c ghc-2.01-src.tar.gz | tar xf -
+% gunzip -c ghc-2.01-hc-files.tar.gz | tar xf - # basic...
+% gunzip -c ghc-2.01-prof-hc-files.tar.gz | tar xf - # profiling...
+% gunzip -c ghc-2.01-conc-hc-files.tar.gz | tar xf - # concurrent...
... etc ...
\end{verbatim}
(esp. on oldish machines), so it's good to run overnight, on a quiet
machine, nice'd, etc., etc.
+You will probably continue by building the system libraries:
+\tr{cd hslibs; make all}...
+
When it's all built, test your alleged GHC system, as suggested in
\sectionref{GHC_test}.
are going to hack on GHC.
The reason you must rebuild to get a native-code generator: The
-\tr{.hc} files will {\em not} turn into a native-code generator, and
-the distributed \tr{.hi} files ``match'' those \tr{.hc} files.
+\tr{.hc} files that we supply do {\em not} include a native-code generator.
+(They are supposed to work on and for any machine.)
From here on, I presume you've installed your booted GHC as
-\tr{ghc-0.26}.
-
-If you are going for a native-code generator, you can save yourself
-some re-compiling by getting a suitable set of interface (\tr{.hi})
-files, for GHC for your machine. You should end up doing, for example:
-\begin{verbatim}
-cd ghc-0.26/ghc/compiler # note where you are!
-
-rm */*.o # scrub the old compiler files
-
-gunzip -c ghc-0.26-hi-files-alpha.tar.gz | tar xfv -
-\end{verbatim}
+\tr{ghc-2.01}.
-Now you can configure as before, but using \tr{--with-hc=ghc-0.26}
+You can configure as before, but using \tr{--with-hc=ghc-2.01}
(\tr{config.status} records what you did before).
Running \tr{sh < STARTUP} isn't strictly necessary; you only need to
rebuild in \tr{ghc/compiler}:
\begin{verbatim}
-cd ghc-0.26/ghc/compiler
+cd ghc-2.01/ghc/compiler
make Makefile # if you didn't STARTUP...
make all EXTRA_HC_OPTS=-fvia-C # -fvia-C important!
%* *
%************************************************************************
-GHC~0.26 doesn't build with HBC. (It could, but we haven't put in
-the effort to maintain it.)
+GHC~2.01 doesn't build with HBC.
-GHC~0.26 is best built with itself, GHC~0.26. We heartily recommend
-it. GHC~0.26 can certainly be built with GHC~0.23 or 0.24, and with
-some earlier versions, with some effort.
+GHC~2.01 can be built with:
+\begin{description}
+\item[GHC~0.26:]
+Provided you don't use \tr{-O} (i.e., configure with
+\tr{--disable-hsc-optimised})...
+
+\item[GHC~0.29:]
+Works fine, and builds the fastest compiler; but be sure to configure
+with \tr{--with-mkdependHS=blah}, where \tr{blah} is a name to invoke
+the \tr{mkdependHS} that comes with GHC~0.29.
-GHC has never been built with compilers other than GHC and HBC.
+\item[Itself:]
+It works, but the resulting compiler is slower.
+\end{description}
%$$ If you are going to build the compiler with HBC,
%$$ please get the appropriate set of \tr{.hi} interface
%************************************************************************
Here are the gory details about some utility programs you may need;
-\tr{perl} and \tr{gcc} are the only important ones. (PVM is important if you're going for Parallel Haskell.) The
-\tr{configure} script will tell you if you are missing something.
+\tr{perl} and \tr{gcc} are the only important ones. (PVM is important
+if you're going for Parallel Haskell.) The \tr{configure} script will
+tell you if you are missing something.
\begin{description}
\item[Perl:]
for doing shell-scripty tasks that involve lots of text processing.
It is pretty easy to install.
-(We still assume Perl version 4; experience suggests that Perl~5
-is fine, too.)
+(Perl~5 is the current version; GHC is still friendly to Perl~4 as well.)
Perl should be put somewhere so that it can be invoked by the \tr{#!}
script-invoking mechanism. (I believe \tr{/usr/bin/perl} is preferred;
we use \tr{/usr/local/bin/perl} at Glasgow.) The full pathname should
be less than 32 characters long.
-Perl version 4.035 has a bug to do with recursion that will bite if
-you run the \tr{lit2texi} script, when making Info files from
-``literate'' files of various sorts. Either use a more recent version
-(4.036, or 5.00n) or an older version
-(e.g., perl 4.019).
-
\item[GNU C (\tr{gcc}):]
\index{pre-supposed: GCC (GNU C compiler)}
\index{GCC (GNU C compiler), pre-supposed}
-The current version is 2.7.0, and has no problems that we know of.
+The current version is 2.7.2, and has no problems that we know of.
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.
run. 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.7. It is readily available on
+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 \tr{research.att.com}, in \tr{netlib}.
A PVM installation is slightly quirky, but easy to do. Just follow
%------------------------------------------------------------------------
\item
-In 0.26, when compiling via C, you'll sometimes get ``warning:
+When compiling via C, you'll sometimes get ``warning:
assignment from incompatible pointer type'' out of GCC. Harmless.
%------------------------------------------------------------------------
%$$ To create a ``user way'' or setup, put
%$$ something like this somewhere (more on ``somewhere'', below):
%$$ \begin{verbatim}
-%$$ #ifndef GhcBuild_UserWay_a
-%$$ #define GhcBuild_UserWay_a YES
+%$$ #ifndef Build_UserWay_a
+%$$ #define Build_UserWay_a YES
%$$ GHC_USER_WAY_FLAG_a = -ticky
%$$ GHC_USER_WAY_OPTS_a = -fstg-reduction-counts -O
-%$$ #endif /* ! GhcBuild_UserWay_a */
+%$$ #endif /* ! Build_UserWay_a */
%$$ \end{verbatim}
%$$ You'll be able to invoke the driver with a \tr{-ticky} option, which
%$$ will be as if you typed in all that other stuff. It will also arrange
somewhere else).''
%--------------------------------------------------------------
+\item[\tr{--with-mkdependHS=}{\em mkdep}:]
+\index{--with-mkdependHS configure option}
+
+Use {\em mkdep} as your \tr{mkdependHS} program. You should use the
+\tr{mkdependHS} that came with the GHC which you are probably
+specifying via \tr{--with-hc=...}.
+
+%--------------------------------------------------------------
+\item[\tr{--with-gcc=}{\em blah}:]
+\index{--with-gcc configure option}
+Use {\em blah} as my ``GNU C compiler.'' In case you have several,
+and want to chose a particular one.
+
+%--------------------------------------------------------------
+\item[\tr{--with-make=}{\em blub}:]
+\index{--with-make configure option}
+Ditto, for ``make''.
+
+%--------------------------------------------------------------
\item[\tr{--with-tmpdir=}{\em directory}:]
Set the directory where temporary files should be created. This is
\tr{/tmp} by default, which is Sometimes Uncool (because, e.g.,
./configure --prefix=/users/fp/partain --with-hc=c --disable-profiling
# use .hc files; don't bother with profiling
-./configure --with-hc=ghc-0.26 --with-readline-library --with-sockets-library
- # simple build with itself; for Sun4s & Alphas, you
- # should grab & use ghc-0.26-hi-files-<blah>.tar.gz
- # (because those machines have a native-code generator).
+./configure --with-hc=ghc-0.29 --with-readline-library --with-sockets-library
+ # simple build with 0.29
# For the extra libraries, you've got to have the right
# stuff to link to.
-./configure --with-hc=ghc-0.26 --disable-hsc-optimised --enable-hsc-debug
+./configure --with-hc=ghc-0.29 --disable-hsc-optimised --enable-hsc-debug
# Don't use -O on GHC itself; turn on -DDEBUG.
- # Slows things way down, but it's the right thing if
+ # Slows things down, but it's The Right Thing if
# you're hacking on GHC and doing lots of recompilations.
./configure --with-hc=c --enable-concurrent --enable-parallel --with-tmpdir=/usr/tmp
%************************************************************************
%* *
+\subsection[Configuring-HsLibs]{Haskell-libraries-specific things in \tr{configure}}
+\index{Configuring the Haskell libraries}
+%* *
+%************************************************************************
+
+The normal thing is: \tr{--enable-hslibs --with-hc-for-hslibs=in-place}.
+
+NOT DONE YET.
+
+%************************************************************************
+%* *
\subsection[Configuring-Haggis]{Haggis-specific things in \tr{configure}}
\index{Configuring for Haggis}
%* *
%* *
%************************************************************************
-Use \tr{--enable-nofib}. If you have NoFib and GHC in the same build
+Use \tr{--enable-nofib --with-setup=ghc}.
+If you have NoFib and GHC in the same build
tree but only want to build the NoFib suite, use \tr{--disable-ghc}.
+(If you were testing HBC on NoFib, you'd do \tr{--with-setup=hbc}, of course.)
+
You may want to enable or disable various sets of tests, as
suggested by \tr{./configure --help}. If you use \tr{--enable-all-tests},
be aware that many of them are GHC-specific. Also, we may not have
& \\
ghc/runtime/ & The runtime system, including the garbage-collector(s).\\
& \\
-ghc/lib/prelude/& Source for the linked-in code for the ``standard prelude''. \\
-ghc/lib/glaExts/ & Source for the linked-in code for our Glasgow extensions. \\
-ghc/lib/haskell-1.3/ & Source for the linked-in code for Haskell 1.3 I/O. \\
-ghc/lib/hbc/ & Source for the HBC `system library'. \\
-ghc/lib/ghc/ & Source for the GHC `system library'.\\
- & \\
-ghc/includes/ & The ``public'' .hi files slurped by the parser, \\
- & and .h files \tr{#include}d in generated .hc files come from.\\
+ghc/lib/ & Source for the linked-in code for the ``standard prelude''. \\
+ghc/includes/ & The .h files \tr{#include}d in generated .hc files.\\
& \\
ghc/docs/ & documents; see the README file there. \\
& \\
ghc/CONTRIB/ & reserved for contributed things \\
+ & \\
+hslibs/ghc/ & `ghc' system library (syslib) \\
+hslibs/hbc/ & `hbc' system library \\
+hslibs/posix/ & `posix' system library \\
+hslibs/contrib/ & `contrib' system library \\
+ & \\
haggis/ & Haggis Haskell X11 GUI toolkit \\
happy/ & Happy Haskell parser generator \\
nofib/ & NoFib Haskell benchmark and test suite \\