[project @ 1997-05-26 03:14:02 by sof]
[ghc-hetmet.git] / docs / installing.lit
index d2d9bb3..9013f7f 100644 (file)
@@ -2,8 +2,6 @@
 %
 %                              Version 2.02
 %                              Feb 1997
-
-
                        
 
 \begin{onlystandalone}
@@ -27,7 +25,7 @@ Email: glasgow-haskell-\{users,bugs\}\@dcs.gla.ac.uk}
 
 This guide is intended for people who want to install or modify
 programs from the Glasgow @fptools@ suite (as distinct from those
-who merely want to {\em run} them.
+who merely want to {\em run} them).
 
 The whole install-and-make system has been completely re-done
 between GHC 2.01 and 2.02, so it will be worth your while to re-read this guide
@@ -99,7 +97,7 @@ doesn't work any more.
 
 \item[The CVS repository.]
 We make source distributions at the same time as binary distributions;
-i.e. infrequently.  They should, however, be pretty throughly tested.
+i.e. infrequently.  They should, however, be pretty thoroughly tested.
 If you want more up-to-the minute (but less tested) source code then you 
 need to get access to our CVS repository.
 
@@ -186,9 +184,8 @@ A ``platform'' is a
 architecture/manufacturer/operating-system combination,
 such as @sparc-sun-solaris2.5.1@.  Other common ones are
 @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@.
+@i386-unknown-solaris2@, @i386-unknown-freebsd@, @i386-unknown-cygwin32@,
+@m68k-sun-sunos4@, @mips-sgi-irix5@, @sparc-sun-sunos4@, @sparc-sun-solaris2@.
 
 Bear in mind that certain ``bundles'', e.g. parallel Haskell, may not
 work on all machines for which basic Haskell compiling is supported.
@@ -218,7 +215,7 @@ 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 2.01. We
+Here's everything that's known about GHC ports, as of 2.02. We
 identify platforms by their ``canonical GNU-style'' names.
 
 Note that some ports are fussy about which GCC version you use; or
@@ -274,10 +271,10 @@ On old Linux a.out systems: should be the same.
 \index{i386-*-linuxaout: registerised port}
 
 %-------------------------------------------------------------------
-\item[\tr{i386-*-*bsd} (PCs running FreeBSD (and NetBSD?):]
-\index{i386-*-freebsd: registerised port}
-GHC~2.01 works registerised. Supports same set of bundles
-as the above.
+\item[\tr{i386-*-freebsd} (PCs running FreeBSD 2.2 or higher, and
+NetBSD/OpenBSD using FreeBSD emulation):] \index{i386-*-freebsd:
+registerised port} GHC~2.01 works registerised. Supports same set of
+bundles as the above.
 
 \index{i386-*-freebsd: profiling---yes}
 \index{i386-*-freebsd: concurrent---yes}
@@ -434,15 +431,14 @@ to run the @configure@ script by changing your directory to @fptools@.
 That should convert @Makefile.in@ to @Makefile@.
 
 You can now either start using the tools {\em in-situ} without going
-through any installation process, just type @make config@ to set the
-tools up for this (you have to be in the @fptools@ directory). You'll
-also want to add the path which @make@ echoes to your @PATH@
-environment variable. This option is useful if you simply want to try
-out the package or you don't have the necessary priviledges (or
+through any installation process, just type @make in-place@ to set the
+tools up for this (you have to be in the @fptools@ directory for
+this). You'll also want to add the path which @make@ will now echo to
+your @PATH@ environment variable. This option is useful if you simply want
+to try out the package and/or you don't have the necessary priviledges (or
 inclination) to properly install the tools locally. Note that if you
 do decide to install the package `properly' at a later date, you have
-to go through the installation steps that 
-follows.
+to go through the installation steps that follows.
 
 To install an @fptools@ package, you'll have to do the following:
 
@@ -465,7 +461,7 @@ diff to see if the values match your expectations is always a Good Idea.
 @Makefile.in@ to @Makefile@ and set all these variables directly
 yourself.  But do it right!}
 
-\item Run @make install@.  This {\em  should} works with ordinary Unix
+\item Run @make install@.  This {\em  should} work with ordinary Unix
 @make@ -- no need for fancy stuff like GNU @make@. 
 
 \item \tr{rehash} (t?csh users), so your shell will see the new stuff
@@ -584,9 +580,10 @@ tell you if you are missing something.
 for doing shell-scripty tasks that involve lots of text processing.
 It is pretty easy to install.
 
-(Perl~5 is the current version; GHC might be Perl~4 friendly, we've
-run into some trouble with our scripts on \tr{alpha-dec-osf\{1,2\}}
-using Perl~4 (patchlevel 36))
+Perl~5 is the current version; GHC should be Perl~4 friendly though.
+For Win32 platforms, Perl~5 is recommended, we even strongly suggest
+you pick up a port of Perl~5 for \tr{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 \tr{#!}
 script-invoking mechanism. (I believe \tr{/usr/bin/perl} is preferred;
@@ -686,9 +683,9 @@ build-configuration.  2.0.5 is ok. Others are probably ok too
 Two @fptools@ projects are worth a quick note at this point, because
 they are useful for all the others:
 \begin{itemize}
-\item @glafp-utils@ contains several small utilities 
-which aren't particularly Glasgow-ish, but which are sometimes not
-available on Unix systems. 
+\item @glafp-utils@ contains several utilities which aren't
+particularly Glasgow-ish, but Occasionally Indispensable.
+
 
 \item @literate@ contains the Glasgow-built tools for generating
 documentation.  (The unoriginal idea is to be able to generate @latex@, @info@,
@@ -737,12 +734,12 @@ operating system.
 \end{itemize}
 All the other directories are individual {\em projects} of the
 @fptools@ system --- for example, the Glasgow Haskell Compiler (@ghc@),
-the Happy parser generator (@happy@), the @nofib@ benchmark stuite, 
+the Happy parser generator (@happy@), the @nofib@ benchmark suite, 
 and so on.
 You can have zero or more of these.  Needless to say, some of them
 are needed to build others.  For example, you need @happy@ to build
 @ghc@.  You can either grab @happy@ too, or else you can use
-an version of @happy@ that's already installed on your system, or 
+a version of @happy@ that's already installed on your system, or 
 grab a binary distribution of @happy@ and install it.
 
 The important thing to remember is that even if you want only
@@ -765,7 +762,9 @@ Each build tree is initially an exact copy of the source tree,
 except that each file is a symbolic link to the source file, 
 rather than being a copy of the source file.  There are ``standard''
 Unix utilities that make such copies, so standard that they go by
-different names: @lndir@, @mkshadowdir@ are two.  
+different names: @lndir@, @mkshadowdir@ are two (If you don't have
+either, the source distribution includes sources for the \tr{X11}
+\tr{lndir} --- check out \tr{fptools/glafp-utils/lndir} ).
 
 The build
 tree does not need to be anywhere near the source tree in the
@@ -1002,11 +1001,15 @@ In any directory you should be able to make the following:
 for the real work.  Notably, it does @gmake depend@ in all directories
 that contain programs.  But @boot@ does more.  For example, you can't
 do @gmake depend@ in a directory of C program until you have converted
-the literate @.lh@ header files into standard @.h@ header files.  Similarly, you convert a literate file to illiterate
-form until you have built the @literate@ tools.  @boot@ takes care of these
+the literate @.lh@ header files into standard @.h@ header files.
+Similarly, you convert a literate file to illiterate form until you
+have built the @literate@ tools.  @boot@ takes care of these
 inter-directory dependencies.
 
-You should say @gmake boot@ right after configuring your build tree.
+You should say @gmake boot@ right after configuring your build tree,
+but note that this is a one-off, i.e., there's no need to re-do
+@gmake boot@ if you should re-configure your build tree at a later
+stage (no harm caused if you do though).
 
 \item[@all@:] makes all the final target(s) for this Makefile.
 Depending on which directory you are in a ``final target''