Find file
Fetching contributors…
Cannot retrieve contributors at this time
84 lines (58 sloc) 2.84 KB
Windows installer for the Haskell Platform.
This is a legacy repo, most current version lives in
How to make an installer
0. Install the prerequisites: Python, MSYS and NSIS.
Install GHC.
Make sure that you have the special build of NSIS with large strings support.
Add $GHCDIR/mingw/bin to PATH.
Add $GHCDIR/perl to PATH.
1. Manually install cabal-install's dependencies: zlib, transformers,
mtl, text, parsec, network, HTTP, random (in this order). Make sure
to use appropriate versions (see haskell-platform.cabal).
To install libraries manually:
$ wget http://...$PACKAGE.tar.gz
$ tar xzf $PACKAGE.tar.gz
2. Manually install cabal-install:
$ wget http://...cabal-install-$VERSION.tar.gz
$ tar xzf cabal-install-$VERSION.tar.gz
$ cd cabal-install-$VERSION
$ runghc Setup.hs configure
$ runghc Setup.hs build
$ runghc Setup.hs install
3. $ cabal update
4. $ git clone
$ cd haskell-platform
$ git checkout pre-release
5. Make sure that you have 'library-profiling' set to True, 'shared' set to
True, 'split-objs' set to True, 'user-install' set to False, and
'documentation' set to True in $APPDATA/cabal/config.
Make sure that you have glut.h and libglut32.a in
$GHCDIR/mingw/{include/GL,lib} (can be copied from the previous Platform
In the haskell-platform directory:
$ cabal install
$ cabal install alex-$ALEX_VERSION happy-$HAPPY_VERSION
6. Move all stuff from $PROGRAMFILES/Haskell/{bin,lib} to
7. Run (editing it beforehand to fix the paths).
Run ghc-pkg recache.
Run 'ghc-pkg check' to check that recaching caused no problems.
8. Go to $GHCDIR/doc/html/libraries and run $THISDIR/
(editing it beforehand)
9. Copy the contents of $GHCDIR to $THISDIR/files & uninstall GHC.
Don't forget to remove unins000.dat and unins000.exe from $THISDIR/files.
10. Build winghci (or just copy from the previous HP files) & put it into
Don't forget the runtime library (depends on the Visual Studio version:
e.g. for MSVC 9 it's msvcr900.dll, can be checked with dependency walker).
11. Update GHC_VERSION and PLATFORM_VERSION variables in Nsisfile.nsi.
12. Copy $THISDIR/icons/*.ico to $THISDIR/files/icons
13. $ files inst.dat uninst.dat
14. Build the installer (right-click Nsisfile.nsi -> Compile NSIS Script).
15. Test the installer (see the 'test' dir).
I usually check that regex-posix and glut work.
16. Don't forget to publish the MD5 sig when doing the release announcement.