|
|
# Setting up a Windows system for building GHC
|
|
|
|
|
|
|
|
|
Installing the following will get you a working build environment with MSYS (alternatively, [install Cygwin](building/windows/cygwin)). For your convenience we've cached a working set of build tools that you can download. Note: we recommend not installing anything in a directory that contains spaces.
|
|
|
Installing the following will get you a working build environment with MSYS. The instructions are current for GHC 7.2. An alternatively method for windows is to build GHC, [using Cygwin](building/windows/cygwin)). Using MSYS is the preferred approach though.
|
|
|
|
|
|
- First install a recent stable version of [GHC](http://www.haskell.org/ghc/download.html).
|
|
|
1. We don't recommend installing anything into a directory path that contains spaces.
|
|
|
|
|
|
- Install MSYS:
|
|
|
1. You will need to install the following tools:
|
|
|
|
|
|
- [http://www.haskell.org/ghc/tools/Win32/MSYS-1.0.11.exe](http://www.haskell.org/ghc/tools/Win32/MSYS-1.0.11.exe) (originally from [ http://sourceforge.net/projects/mingw/files/](http://sourceforge.net/projects/mingw/files/) under "MSYS Base System")
|
|
|
- [http://www.haskell.org/ghc/tools/Win32/msysDTK-1.0.1.exe](http://www.haskell.org/ghc/tools/Win32/msysDTK-1.0.1.exe) (originally from [ http://sourceforge.net/projects/mingw/files/](http://sourceforge.net/projects/mingw/files/) under "MSYS Supplementary Tools")
|
|
|
- [http://www.haskell.org/ghc/tools/Win32/msysCORE-1.0.11-bin.tar.gz](http://www.haskell.org/ghc/tools/Win32/msysCORE-1.0.11-bin.tar.gz) (originally from [ http://sourceforge.net/projects/mingw/files/](http://sourceforge.net/projects/mingw/files/) under "MSYS Base System") (this is a tar file, which you have to unpack in `c:/msys/1.0`, or wherever you installed MSYS. Note that you can't do that using an MSYS shell, because you can't overwrite the files in use, so make a copy of `c:/msys/1.0`, unpack it there, and then rename the copy back to `c:/msys/1.0`).
|
|
|
- [ Haskell Platform](http://hackage.haskell.org/platform/)
|
|
|
- [ Git](http://git-scm.com/)
|
|
|
- [ Python](http://python.org/) (Version 2.7 is a good choice, we don't support version 3.x at this time)
|
|
|
|
|
|
- Install [ Python](http://www.python.org/download/releases/) (version 2.6.2 is a good choice. 2.6.1 causes a problem with the test suite, and we don't support 3.x at this time).
|
|
|
1. You will need to install the MinGW and MSYS tools:
|
|
|
|
|
|
- [ MinGW with MSYS](http://www.mingw.org/)
|
|
|
|
|
|
The next three are just zip files, you can unpack them wherever you like, but you need to ensure that the programs can be found on your `PATH`. I usually put all these in `c:/tools` (NB. don't put them anywhere in `c:/msys`, that's special).
|
|
|
|
|
|
- Install Happy: [http://www.haskell.org/ghc/tools/Win32/happy-1.17.zip](http://www.haskell.org/ghc/tools/Win32/happy-1.17.zip)
|
|
|
- Install Alex: [http://www.haskell.org/ghc/tools/Win32/alex-2.2.zip](http://www.haskell.org/ghc/tools/Win32/alex-2.2.zip)
|
|
|
- Install Git: [ http://git-scm.com/](http://git-scm.com/)
|
|
|
MinGW provides a windows version of GCC while MSYS provides a minimal UNIX environment (e.g bash, make... ect). The website for MinGW is a little confusing, go to the [ getting started](http://www.mingw.org/wiki/Getting_Started) page and follow the download instructions for the 'mingw-get-inst' installer. This is an easy to use single executable for installing both MinGW and MSYS, make sure when you run it that you select to install MSYS and the MSYS Dev Kit.
|
|
|
|
|
|
1. Launch the shell by starting the 'MinGW Shell' which should be in your start menu.
|
|
|
|
|
|
Now set your `PATH`. We recommend doing this by creating a file `.profile` in your home directory (by default `c:/msys/1.0/home/<username>`). The contents of your `.profile` should be something like this:
|
|
|
1. Set your `PATH`. We recommend doing this by creating a file `.profile` in your home directory (by default `c:/MinGW/msys/1.0/home/<username>`). The contents of your `.profile` should be something like this:
|
|
|
|
|
|
```wiki
|
|
|
PATH=/c/mingw/bin:/c/ghc/ghc-6.10.1/bin:/usr/bin:/bin:/c/tools:/c/Python26:/c/windows/system32
|
|
|
# Add Git and Python to path
|
|
|
export PATH=${PATH}:/c/Git/bin:/c/Python27
|
|
|
```
|
|
|
|
|
|
|
|
|
Modify the above according to where you installed things, and change the GHC version appropriately.
|
|
|
Modify the above according to where you installed Git and Python. The Haskell platform installer should have already done the work needed to make GHC available on the path.
|
|
|
|
|
|
### Disable realtime virus-scanning for your build
|
|
|
1. You should now have a working environment for getting the source for GHC and building it!
|
|
|
|
|
|
## Disable realtime virus-scanning for your build
|
|
|
|
|
|
|
|
|
Realtime virus scanners are prone to causing weird build failures, typically "permission denied" errors that go away when the build is restarted. The best way to avoid these problems is to exclude the directory containing your GHC build from realtime virus scanning, if your scanner supports excluding particular directories. You probably also want to exclude directories in which temporary files are stored, which by default is `C:/Users/<user>/Local Settings/Temp` on Windows Vista and later, `C:/Documents and Settings/<user>/Local Settings/Temp` on Windows XP and older, or `C:/Temp`.
|
|
|
|
|
|
### Building documentation on Windows
|
|
|
## Building documentation on Windows
|
|
|
|
|
|
|
|
|
Building GHC's documentation is optional, but in order to build it in Windows you must currently use Cygwin (there isn't a working DocBook toolchain on MSYS as far as we know).
|
|
|
|
|
|
|
|
|
In the Cygwin installer, just install the complete `Doc` category. You
|
|
|
may have to help `configure` a little bit: Set the
|
|
|
environment variables `XmllintCmd` and
|
|
|
`XsltprocCmd` to the paths of the Cygwin executables
|
|
|
`xmllint` and `xsltproc`,
|
|
|
respectively, and set `fp_cv_dir_docbook_xsl` to the path
|
|
|
of the directory where the XSL stylesheets are installed,
|
|
|
e.g. `c:/cygwin/usr/share/docbook-xsl`.
|
|
|
In the Cygwin installer, just install the complete `Doc` category. You may have to help `configure` a little bit: Set the environment variables `XmllintCmd` and `XsltprocCmd` to the paths of the Cygwin executables `xmllint` and `xsltproc`, respectively, and set `fp_cv_dir_docbook_xsl` to the path of the directory where the XSL stylesheets are installed, e.g. `c:/cygwin/usr/share/docbook-xsl`.
|
|
|
|
|
|
|
|
|
If you want to build HTML Help, you have to install the
|
|
|
[ HTML Help SDK](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/hworiHTMLHelpStartPage.asp),
|
|
|
too, and make sure that `hhc` is in your `PATH`. |
|
|
If you want to build HTML Help, you have to install the [ HTML Help SDK](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/hworiHTMLHelpStartPage.asp), tool, and make sure that `hhc` is in your `PATH`. |