[project @ 2001-07-31 10:48:02 by simonmar]
[ghc-hetmet.git] / docs / building / building.sgml
index 1ad8411..3c71aa5 100644 (file)
@@ -449,24 +449,20 @@ script will tell you if you are missing something.
 <IndexTerm><Primary>Perl, pre-supposed</Primary></IndexTerm>
 <ListItem>
 <para>
-<Emphasis>You have to have Perl to proceed!</Emphasis> Perl is a
-language quite good for doing shell-scripty tasks that involve lots of
-text processing.  It is pretty easy to install.
+<Emphasis>You have to have Perl to proceed!</Emphasis>
+It is pretty easy to install.
 </para>
 
 <para>
-Perl&nbsp;5 is required.  For Win32 platforms, we strongly suggest you
-pick up a port of Perl&nbsp;5 for <Literal>cygwin32</Literal>, as the
-common Hip/ActiveWare port of Perl is Not Cool Enough for our
-purposes.
+Perl&nbsp;5 is required.  For Win32 platforms, you should use the binary
+supplied in the InstallShield (copy it to <filename>/bin</filename>).
+The Cygwin-supplied Perl seems not to work.
 </para>
 
 <para>
 Perl should be put somewhere so that it can be invoked by the
-<Literal>&num;!</Literal> script-invoking mechanism. (I believe
-<Filename>/usr/bin/perl</Filename> is preferred; we use
-<Filename>/usr/local/bin/perl</Filename> at Glasgow.)  The full
-pathname should may need to be less than 32 characters long on some
+<Literal>&num;!</Literal> script-invoking mechanism. The full
+pathname may need to be less than 32 characters long on some
 systems.
 </para>
 
@@ -1182,11 +1178,12 @@ emacs mk/build.mk
 
 </OrderedList>
 
-You can make subsequent changes to <filename>mk/build.mk</filename> as often 
-as you like.  You do not have to run any further configuration 
-programs to make these changes take effect.
-In theory you should, however, say <Command>gmake clean</Command>, <Command>gmake all</Command>,
-because configuration option changes could affect anything&mdash;but in practice you are likely to know what's affected.
+You can make subsequent changes to <filename>mk/build.mk</filename> as often
+as you like.  You do not have to run any further configuration programs to
+make these changes take effect. In theory you should, however, say
+<Command>gmake clean</Command>, <Command>gmake all</Command>, because
+configuration option changes could affect anything&mdash;but in practice you
+are likely to know what's affected.
 </para>
 
 </Sect2>
@@ -2470,7 +2467,7 @@ WARNINGS about pitfalls and known ``problems'':
 
 <para>
 One difficulty that comes up from time to time is running out of space
-in <filename>/tmp</filename>.  (It is impossible for the configuration stuff to
+in <literal>TMPDIR</literal>.  (It is impossible for the configuration stuff to
 compensate for the vagaries of different sysadmin approaches to temp
 space.)
 <IndexTerm><Primary>tmp, running out of space in</Primary></IndexTerm>
@@ -2646,71 +2643,32 @@ Workaround: don't put weird things in string args to <Command>cpp</Command> macr
 This section summarises how to get the utilities you need on your
 Win95/98/NT/2000 machine to use CVS and build GHC. Similar notes for
 installing and running GHC may be found in the user guide. In general,
-Win95/Win98 behave the same, and WinNT/Win2k behave the same. It is based
-largely on detailed advice from Sigbj&oslash;rn Finne. You should read the
-GHC installation guide sections on Windows (in the user guide) before
-continuing to read these notes.
+Win95/Win98 behave the same, and WinNT/Win2k behave the same.
+You should read the GHC installation guide sections on Windows (in the user
+guide) before continuing to read these notes.
 </para>
 
-
-<Sect2><Title>Installing ssh</Title>
-
-<ItemizedList>
-
-<ListItem>
-<para>
-Extract the whole of <ULink URL="http://research.microsoft.com/~simonpj/ssh-1_2_26-cygwinb19.tar.gz">the ssh archive</ULink> into your <filename>C:\</filename> directory, and use the ``All files'' and ``User folder names'' options in WinZip extract dialogue box. This populates your <filename>C:\usr\local</filename> tree.
-</para>
-</ListItem>
-
-<ListItem>
-<para>
-Extract <ULink URL="http://research.microsoft.com/~simonpj/cygwinb19.dll.zip">cygwinb19.dll</ULink> into <filename>/usr/local/bin</filename>.  The current version
-of Cywin is b20, but this version of ssh was compiled with b19.
-</para>
-</ListItem>
-
-<ListItem>
-<para>
-On a Win2k machine, open up a bash and do 
-</para>
-
-<Screen>
-foo$ cd /etc
-foo$ mkpasswd -l > passwd
-</Screen>
-
 <para>
-Check that your login entry is on the first line
-of that file. If not, move it to the top.  It's OK
-for 'Administrator' to be the first entry, assuming you are one.
+Because of various hard-wired infelicities, you need to copy
+<Filename>bash.exe</Filename> (from GHC's <Filename>extra-bin</Filename>
+directory), and <Filename>perl.exe</Filename> and
+<Filename>cat.exe</Filename> (from GHC's <Filename>bin</Filename> directory)
+to <Filename>/bin</Filename> (discover where your Cygwin root directory is
+by typign <Command>mount</Command>).
 </para>
 
 <para>
-However, Win9x doesn't support the calls that <Command>mkpasswd</Command> relies on
-(e.g., <Function>NetUserEnum</Function>). If you run <Command>mkpasswd</Command> you
-get errors like:
+Before you start, you need to make sure that the user environment variable
+<Constant>MAKE_MODE</Constant> is set to <Literal>UNIX</Literal>. If you
+don't do this you get very weird messages when you type
+<Command>make</Command>, such as:
 </para>
-
 <Screen>
-linked to missing export netapi32.dll:NetUserEnum
-</Screen>
-
-<para>
-The passwd file is used
-by ssh in a fairly rudimentary manner, so I'd simply 
-synthesise/copy an existing Unix <filename>/etc/passwd</filename>, i.e., create
-an <filename>/etc/passwd</filename> file containing the line
-</para>
+/c: /c: No such file or directory</Screen>
 
-<Screen>
-&lt;login&gt;::500:513:::/bin/sh
-</Screen>
+<Sect2><Title>Configuring ssh</Title>
 
-<para>
-where <Literal>&lt;login&gt;</Literal> is your login id.
-</para>
-</ListItem>
+<ItemizedList>
 
 <ListItem>
 <para>
@@ -2767,21 +2725,12 @@ If you don't have an account on <Literal>cvs.haskell.org</Literal>, send
 </Sect2>
 
 
-<Sect2><Title>Installing CVS</Title>
+<Sect2><Title>Configuring CVS</Title>
 
 <ItemizedList>
 
 <ListItem>
 <para>
-Unpack 
-<ULink URL="http://research.microsoft.com/~simonpj/cvs-1_10-win.zip">
-CVS</ULink> and, following the instructions in the <filename>README</filename>, copy the
-appropriate files into <filename>/usr/local/bin</filename>.
-</para>
-</ListItem>
-
-<ListItem>
-<para>
 From the System control panel,
 set the following <Emphasis>user</Emphasis> environment variables (see the GHC user guide)
 </para>
@@ -2796,7 +2745,7 @@ will look for its <filename>.cvsrc</filename> file.
 
 <ListItem>
 <para>
-<Constant>CVS_RSH</Constant>: <filename>c:/usr/local/bin/ssh1</filename>
+<Constant>CVS_RSH</Constant>: <filename>c:/path_to_ghc/extra-bin/ssh</filename>
 </para>
 </ListItem>
 
@@ -2812,6 +2761,14 @@ where <Literal>username</Literal> is your userid
 <Constant>CVSEDITOR</Constant>: <filename>bin/gnuclient.exe</filename> if you want to use an Emacs buffer for typing in those long commit messages.
 </para>
 </ListItem>
+
+<ListItem>
+<para>
+<Constant>SHELL</Constant>: To use bash as the shell in Emacs, you need to
+set this to point to <Filename>bash.exe</Filename>.
+</para>
+</ListItem>
+
 </ItemizedList>
 </ListItem>
 
@@ -2834,7 +2791,7 @@ free to change them.)
 </para>
 
 <para>
-Filenames starting with "<filename>.</filename>" were illegal in 
+Filenames starting with <filename>.</filename> were illegal in 
 the 8.3 DOS filesystem, but that restriction should have
 been lifted by now (i.e., you're using VFAT or later filesystems.) If
 you're still having problems creating it, don't worry; <filename>.cvsrc</filename> is entirely
@@ -2846,7 +2803,8 @@ optional.
 <para>
 Try doing <Command>cvs co fpconfig</Command>. All being well, bytes should
 start to trickle through, leaving a directory <filename>fptools</filename>
-in your current directory.  (You can <Command>rm</Command> it if you don't want to keep it.)  The following messages appear to be harmless:
+in your current directory.  (You can <Command>rm</Command> it if you don't
+want to keep it.) The following messages appear to be harmless:
 </para>
 
 <Screen>
@@ -2856,10 +2814,10 @@ setsockopt IPTOS_THROUGHPUT: Invalid argument
 
 <para>
 At this point I found that CVS tried to invoke a little dialogue with
-me (along the lines of `do you want to talk to this host'), but
-somehow bombed out.  This was from a bash shell running in emacs.
+me (along the lines of `do you want to talk to this host?'), but
+for some reason bombed out.  This was from a bash shell running in Emacs.
 I solved this by invoking a Cygnus shell, and running CVS from there.
-Once things are dialogue free, it seems to work OK from within emacs.
+Once things are dialogue free, it seems to work OK from within Emacs.
 </para>
 </ListItem>
 
@@ -2900,51 +2858,6 @@ I have not tried it yet.
 </Sect2>
 
 
-<Sect2><Title>Installing autoconf</Title>
-
-<para>
-Only required if you are doing builds from GHC's sources
-checked out from the CVS tree.
-</para>
-
-<ItemizedList>
-<ListItem>
-<para>
-Fetch the (standard, Unix) <Command>autoconf</Command> distribution from
-<ULink URL="ftp://ftp.gnu.org/gnu/autoconf">ftp.gnu.org</ULink>.
-</para>
-</ListItem>
-<ListItem>
-<para>
-Unpack it into an arbitrary directory.
-</para>
-</ListItem>
-<ListItem>
-<para>
-Make sure that the directory <filename>/usr/local/bin</filename> exists.
-</para>
-</ListItem>
-<ListItem>
-<para>
-Say "<filename>./configure</filename>".
-</para>
-</ListItem>
-<ListItem>
-<para>
-Now <Command>make install</Command>.  This should put <filename>autoheader</filename>
-and <filename>autoconf</filename> in <filename>/usr/local/bin</filename>.
-</para>
-</ListItem>
-</ItemizedList>
-
-<para>
-<Command>autoheader</Command> doesn't seem to work, but you don't need it
-for GHC.
-</para>
-
-</Sect2>
-
-
 <Sect2><Title>Building GHC</Title>
 
 <ItemizedList>