| Version 49 (modified by simonmar, 4 years ago) |
|---|
If you're looking for instructions for building GHC on Windows, they are now incorporated in the main Building Guide.
A Windows build log using Cygwin
Here is a complete, from-scratch, log of all you need to build GHC using Cygwin, kindly provided by Claus Reinke. It does not discuss alternative choices, but it gives a single path that works. Please help us to keep this up to date: if you are using newer versions, let us know whether you succeed or run into issues while following this log.
Note: starting with the August 2008 version of 'setup.exe', adding 'http://www.haskell.org/ghc/cygwin' will not work unless you disable verification (not recommended) - until that site has a signature, you can add the dependencies from Devel->ghc-depends manually.
- Install some editor (vim, emacs, whatever)
- Install cygwin (http://www.cygwin.com)
; i used 1.5.16-1, installed in c:\cygwin
- run 'setup.exe'
Choose a Download Source:
select 'download from internet';
Select Root Install Directory:
root dir: c:\cygwin;
install for: all users;
default file type: unix
Select Local Package Directory
choose a spare temporary home
Select Your Internet Connection
Use IE5 settings
Choose a Download Site
Choose your preferred main mirror and
Add 'http://www.haskell.org/ghc/cygwin'
Select Packages
In addition to 'Base' (default install),
select 'Devel->ghc-depends'
- Install mingw (http://www.mingw.org/)
; i used MinGW-3.1.0-1.exe
; installed in c:\mingw
- you probably want to add GLUT
; (http://www.xmission.com/~nate/glut.html)
; i used glut-3.7.3-mingw32.tar
- Get recent binary snapshot of ghc-6.4.1 for mingw
; (http://www.haskell.org/ghc/dist/stable/dist/)
- unpack in c:/ghc
- add C:\ghc\ghc-6.4.1\bin to %PATH%
(Start->Control Panel->System->Advanced->Environment Variables)
- Get and install binary release of darcs
; (http://zooko.com/darcs/darcsdir-cygwin-1.0.7.tar.bz2)
- In the following, shell commands are entered in cygwin bash
- Get darcs version of ghc
; also, subscribe to cvs-ghc@haskell.org, and possibly
; to cvs-libraries@haskell.org, or follow the mailing list
; archives, in case you checkout a version with problems
; http://www.haskell.org/mailman/listinfo/cvs-ghc/
; http://www.haskell.org/mailman/listinfo/cvs-libraries/
- mkdir c:/ghc-build; cd c:/ghc-build
; (or whereever you want your darcs tree to be)
- darcs get --partial http://darcs.haskell.org/ghc
- cd ghc
- chmod +x darcs-all
- ./darcs-all get
- Build ghc, using cygwin and mingw, targetting mingw
- export PATH=/cygdrive/c/ghc/ghc-6.4.1:$PATH
; for haddock, alex, happy (*)
- export PATH=/cygdrive/c/mingw/bin:$PATH
; without, we pick up some cygwin tools at best!
- cd c:/ghc-build/ghc
; (if you aren't there already)
- sh boot
- ./configure --host=i386-unknown-mingw32 --with-gcc=C:/Mingw/bin/gcc.exe --with-ld=C:/Mingw/bin/ld.exe
; we use cygwin, but build for windows
- cp mk/build.mk.sample mk/build.mk
- in mk/build.mk:
add line: SplitObjs = NO
(MSYS seems slow when there are zillions of object files)
uncomment line: BuildFlavour = perf
(or BuildFlavour = devel, if you are doing development)
add line: BIN_DIST=1
- make 2>&1 | tee make.log
; always useful to have a log around
- Package up binary distribution
- make binary-dist 2>&1 | tee make-bin-dist.log
; always useful to have a log around
- unpack ghc-<version>-i386-unknown-mingw32.tar.bz2 somewhere in your filesystem...
Additional notes from Neil Mitchell:
- cygwin installation doesn't quite work with the latest version because the ghc
depends file doesn't have a .sig file with it
- for mingw installation just select the minimal package (or at least i did...)
- I got the following hiccup, which seemed transient:
----------
nmitche6@wlon1207009001 /cygdrive/c/ghc-build/ghc
$ sh boot
Booting .
/usr/bin/m4:configure.ac:1281: cannot create temporary file for diversion: Permi
ssion denied
autom4te-2.61: /usr/bin/m4 failed with exit status: 1
Booting libraries/base
Booting libraries/directory
Booting libraries/editline
Booting libraries/old-time
Booting libraries/process
Booting libraries/unix
nmitche6@wlon1207009001 /cygdrive/c/ghc-build/ghc
$ ./configure --host=i386-unknown-mingw32 --with-gcc=C:/Mingw/bin/gcc.exe --wit
h-ld=C:/Mingw/bin/ld.exe
configure: WARNING: If you wanted to set the --build type, don't use --host.
If a cross compiler is detected then cross compile mode will be used.
mk/config.h.in doesn't exist: perhaps you haven't run 'sh boot'?
nmitche6@wlon1207009001 /cygdrive/c/ghc-build/ghc
$ sh boot
Booting .
Booting libraries/base
Booting libraries/directory
Booting libraries/editline
Booting libraries/old-time
Booting libraries/process
Booting libraries/unix
---------
- I required happy, haddock and alex to be installed
- Everything failed a few minutes in to the compile:
http://www.haskell.org/pipermail/glasgow-haskell-users/2008-September/015429.html
No solutions are yet known
- http://www.nabble.com/cc1-not-found-td9742088.html - looks interesting, tried adding
c:\mingw\libexec\gcc\mingw32\3.4.5 to the $PATH
- Some hacks make the build get further:
http://www.haskell.org/pipermail/glasgow-haskell-users/2008-September/015434.html
- Plus some things that don't work with the latest mingw:
http://www.haskell.org/pipermail/cvs-ghc/2008-September/044945.html
