23Skidoo/haskell-platform-windows
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
Windows installer for the Haskell Platform. This is a legacy repo, most current version lives in https://github.com/haskell/haskell-platform/ (specifically, https://github.com/haskell/haskell-platform/tree/master/hptool/os-extras/win). 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 $ cd $PACKAGE $ ghc-install.sh 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 https://github.com/haskell/haskell-platform.git $ 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 files). 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 $GHCDIR/{lib/extralibs/bin,lib/extralibs}. 7. Run recache.py (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/haddock-gen-index.py (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 $THISDIR/files/winghci. 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. $ gen_list_files_for_nsis.py 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.