Changes between Version 6 and Version 7 of Building/Windows

Apr 12, 2007 10:11:16 AM (8 years ago)

add vista gotcha, and various updates


  • Building/Windows

    v6 v7  
    1313but you do need one or the other to ''build'' GHC. 
     15== Vista users == 
     17If you're on Vista, first of all you need to disable "installer-detection", which causes strange things to happen for binaries called "setup.exe", amongst other things.  Go to `Start -> Run` and enter `selpol.msc`.  Then under `Security Settings -> Local Policies -> Security Options`,  disable `UAC: Detect application installations and prompt for elevation`.  Then reboot. 
    1619== Installing and configuring MSYS == 
    3235      to your path.  (Of course, the version number may differ.) 
    3336      MSYS mounts the former as both {{{/bin}}} and  
    34       {{{/usr/bin}}} and the latter as {{{/usr/local/bin}}}. 
    35     * {{{HOME}}}: set to your home directory (e.g. {{{c:/userid}}}). 
     37      {{{/usr/bin}}} and the latter as {{{/usr/local/bin}}}. Make sure that the Windows paths (e.g. `C:/WINDOWS/System32`) are ''after'' the MSYS paths in your `PATH` variable. 
     38    * {{{HOME}}}: set to your home directory (e.g. {{{c:/userid}}}).   
    3639      This is where, among other things, {{{ssh}}} will look for your {{{.ssh}}} directory. 
    3740    * {{{SHELL}}}: set to {{{c:/msys/1.0/bin/sh.exe}}} 
    38     * {{{CVS_RSH}}}: set to {{{c:/msys/1.0/bin/ssh.exe}}}.  Only necessary if 
    39       you are using CVS. 
    40     * {{{MAKE_MODE}}}: set to {{{UNIX}}}.  (I'm not certain this is necessary for MSYS.) 
    4141 * Check that the {{{CYGWIN}}} environment variable is ''not'' set.  It's a bad bug 
    4242   that MSYS is affected by this, but if you have CYGWIN set to "ntsec ntea", which is right for Cygwin, it 
    5151   they fail in mysterious ways.  However, it's fine to put other binaries in {{{/usr/local/bin}}}, 
    5252   which maps to {{{c:/msys/1.0/local/bin}}}. 
    53  * MSYS seems to implement symbolic links by copying, so sharing is lost. 
    54  * Win32 has a {{{find}}} command which is not the same as MSYS's find. 
    55    You will probably discover that the Win32 {{{find}}} appears in your {{{PATH}}} 
    56    before the MSYS one, because it's in the ''system'' {{{PATH}}}  
    57    environment variable, whereas you have probably modified the ''user'' {{{PATH}}}  
    58    variable.  You can always invoke {{{find}}} with an absolute path, or rename it. 
    59  * MSYS comes with {{{bzip}}}, and MSYS's {{{tar}}}'s {{{-j}}}  
    60    will bunzip an archive (e.g. {{{tar xvjf foo.tar.bz2}}}).  Useful when you get a 
    61    bzip'd dump. 
    6354== Installing and configuring Cygwin == 
    216207   you need to add upon completion. 
    217208 * Install an executable Happy, from []. 
    218    Happy is a parser generator used to compile the Haskell grammar.  Under MSYS or Cygwin you can easily 
    219    build it from the source distribution using 
    220    {{{ 
    221 $ ./configure 
    222 $ make 
    223 $ make install 
    224 }}} 
    225    This should install it in {{{/usr/local/bin}}} (which maps to {{{c:/msys/1.0/local/bin}}} 
    226    on MSYS). 
    227    Make sure the installation directory is in your 
    228    {{{PATH}}}. 
    229  * Install an executable Alex.  This can be done by building from the 
    230    source distribution in the same way as Happy.  Sources are 
    231    available from 
    232    []. 
     209 * Install an executable Alex, froim []. 
    233210 * GHC uses the ''mingw'' C compiler to 
    234211   generate code, so you have to install that (see [wiki:Building/PlatformsScriptsFileNames#Windowsplatforms:CygwinMSYSandMinGW Windows platforms: Cygwin, MSYS, and MinGW]).