<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 5 is required. For Win32 platforms, you should use the binary
-supplied in the InstallShield (copy it to <filename>cygwin/bin</filename>).
-The Cygwin-supplied Perl seems not to work (it has problems with line
-endings).
+supplied in the InstallShield (copy it to <filename>/bin</filename>).
+The Cygwin-supplied Perl seems not to work.
</para>
<para>
</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—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—but in practice you
+are likely to know what's affected.
</para>
</Sect2>
<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>
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ø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>
-<login>::500:513:::/bin/sh
-</Screen>
+<Sect2><Title>Configuring ssh</Title>
-<para>
-where <Literal><login></Literal> is your login id.
-</para>
-</ListItem>
+<ItemizedList>
<ListItem>
<para>
</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>
<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>
<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>
</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
<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>
<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>
</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>