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]).