From: simonpj Date: Tue, 4 May 2004 09:56:49 +0000 (+0000) Subject: [project @ 2004-05-04 09:56:49 by simonpj] X-Git-Tag: Initial_conversion_from_CVS_complete~1880 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=6ee7389261b6559c3507b90b9476aa8daf45400c;p=ghc-hetmet.git [project @ 2004-05-04 09:56:49 by simonpj] More notes for Windows and MSYS --- diff --git a/docs/building/building.sgml b/docs/building/building.sgml index 27ff5e0..169a13e 100644 --- a/docs/building/building.sgml +++ b/docs/building/building.sgml @@ -4534,7 +4534,8 @@ Win95/Win98 behave the same, and WinNT/Win2k behave the same. Make sure you read the preceding section on platforms () before reading section. - +You don't need Cygwin or MSYS to use GHC, +but you do need one or the other to build GHC. Installing and configuring MSYS @@ -4591,39 +4592,41 @@ file has too-liberal permissinos. +Here are some points to bear in mind when using MSYS: + + MSYS does some kind of special magic to binaries stored in +/bin and /usr/bin, which are by default both mapped +to c:/msys/1.0/bin (assuming you installed MSYS in c:/msys). +Do not put any other binaries (such as GHC or Alex) in this directory or its sub-directories: +they fail in mysterious ways. However, it's fine to put other binaries in /usr/local/bin, +which maps to c:/msys/1.0/local/bin. + + MSYS seems to implement symbolic links by copying, so sharing is lost. + + + +Win32 has a find command which is not the same as MSYS's find. +You will probably discover that the Win32 find appears in your PATH +before the MSYS one, because it's in the system PATH +environment variable, whereas you have probably modified the user PATH +variable. You can always invoke find with an absolute path, or rename it. + + + Installing and configuring Cygwin -You don't need Cygwin to use GHC, -but you do need it or MSYS to build GHC. - Install Cygwin from http://www.cygwin.com/. The installation process is straightforward; we install it in c:/cygwin. During the installation dialogue, make sure that you select all of the following: - - cvs, - - openssh, - - autoconf, - - binutils (includes ld and (I think) ar), - - gcc, - - flex, - - make. - - If you miss out any of these, strange things will happen to you. To see thse packages, click on the "View" button in the "Select Packages" stage of Cygwin's installation dialogue, until the view says "Full". The default view, which is @@ -4750,7 +4753,7 @@ you install Cygwin. (If not, the installer lets you update easily.) Look for < - + (Cygwin-only problem, I think.) ssh needs to access your directory .ssh, in your home directory. To determine your home directory ssh first looks in c:/cygwin/etc/passwd (or wherever you have Cygwin installed). If there's an entry @@ -4799,7 +4802,15 @@ you do that, ssh uses the $HOME environment variable instead. Other things you need to install -You have to install the following other things to build GHC: +You have to install the following other things to build GHC, listed below. + +On Windows you often install executables in directories with spaces, such as +"Program Files". However, the make system for fptools doesn't +deal with this situation (it'd have to do more quoting of binaries), so you are strongly advised +to put binaries for all tools in places with no spaces in their path. +On both MSYS and Cygwin, it's perfectly OK to install such programs in the standard Unixy places, +/usr/local/bin and /usr/local/lib. But it doesn't matter, +provided they are in your path. @@ -4894,22 +4905,6 @@ Solution: delete configure first. - -You either need to add ghc to your -PATH before you invoke -configure, or use the configure -option . - - - - -If you are paranoid, delete config.cache if it exists. -This file occasionally remembers out-of-date configuration information, which -can be really confusing. - - - - After autoreconf run ./configure in fptools/ thus: @@ -4958,6 +4953,13 @@ you'll have to do something more like: + +If you are paranoid, delete config.cache if it exists. +This file occasionally remembers out-of-date configuration information, which +can be really confusing. + + + You almost certainly want to set SplitObjs = NO