[[project @ 2000-01-24 10:40:05 by simonpj] simonpj**20000124104005 Extra install stuff ] { hunk ./ghc/docs/users_guide/installing.sgml 543 -Much of the Unixy stuff below involves setting environment variables. For example, on WinNT/Win2k, to edit your PATH variable, +Much of the Unixy stuff below involves setting environment variables. +This section summarises how to set these variables on a Windows machine, in +case you don't know alread.y +On WinNT/Win2k, to edit your PATH variable (for example), hunk ./ghc/docs/users_guide/installing.sgml 588 - - -The cygwin toolchain (beta20.1) - +You need two chunks of software other than GHC itself: the Cygwin toolchain, and +Perl. Here's how to get and install them. + +The cygwin toolchain (beta20.1) + hunk ./ghc/docs/users_guide/installing.sgml 666 -Copy bash.exe from the bin directory of the cygwin tree (cygwin-b20/H-i586-cygwin32/bin/bash.exe) to -/bin as sh.exe. This is where Emacs looks for a shell (I think). - - - - - -You might think that it was easier to use bash directly from it original -Cygwin directory, but (a) some UNIX utils have got /bin/sh hardwired in, and (b) the path following #! is limited to 32 characters. +Copy bash.exe from the bin +directory of the cygwin tree +(cygwin-b20/H-i586-cygwin32/bin/bash.exe) to +/bin as sh.exe. You might +think that it was easier to use bash directly from it original Cygwin +directory, but (a) some UNIX utils have got +/bin/sh hardwired in, and (b) the path following +#! is limited to 32 characters. hunk ./ghc/docs/users_guide/installing.sgml 713 -Set the TMPDIR user environment variable to /tmp. For some reason, Win2k invisibly sets this variable to point to a temporary directory in your profile, that contains embedded spaces. If GHC sees the TMPDIR variable set, it tries to use it for temporary files, but -Cygwin doesn't grok filenames with spaces, so disaster results. +Set the TMPDIR user environment variable to +c:/tmp. For some reason, Win2k invisibly sets +this variable to point to a temporary directory in your profile, that +contains embedded spaces. If GHC sees the TMPDIR +variable set, it tries to use it for temporary files, but Cygwin +doesn't grok filenames with spaces, so disaster results. hunk ./ghc/docs/users_guide/installing.sgml 720 + +Furthermore, it seems that TMPDIR must be set to a directory +in the same file system in which you invoke GHC. Otherwise you get very werid messages +when you invoke GHC, such as: + + does not exist + Action: openFile + Reason: file does not exist /tmp/ghc11068.cpp + +We think this is due to a bug in Cygwin. hunk ./ghc/docs/users_guide/installing.sgml 741 + hunk ./ghc/docs/users_guide/installing.sgml 743 - - +Perl5 hunk ./ghc/docs/users_guide/installing.sgml 745 - -Perl5 - + hunk ./ghc/docs/users_guide/installing.sgml 752 - - - - - - - - -Installing the supporting software - - - - -Download cygwin beta20.1 (full.exe). Install this somewhere locally. - - - - - -After having successfully installed this, make sure you do the following: - hunk ./ghc/docs/users_guide/installing.sgml 753 - - - -Create a /bin directory (using mkdir -p /bin). - - + hunk ./ghc/docs/users_guide/installing.sgml 755 - - -Copy bash.exe from the bin directory of the cygwin tree (cygwin-b20/H-i586-cygwin32/bin/bash.exe) to -/bin as sh.exe. - - - - - -If you haven't already got one, create a /tmp directory. - - - - - -If you're an Emacs user and want to be able to run bash -from within a shell buffer, see the NT Emacs home page for -instructions on how to set this up. - - - - - - - - - - -With the supporting software in place, we can finally get on to installing GHC itself. - - - + hunk ./ghc/docs/users_guide/installing.sgml 831 +Make sure that you set all the environment variables described above +under Cygwin installation, including TMPDIR + + }