Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Windows installer for the Haskell Platform
Python Haskell Shell
tree: c8e19715ab

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
etc
icons
test
ANNOUNCEMENT
CreateInternetShortcut.nsh
EnvVarUpdate.nsh
LICENSE
NEWS
Nsisfile.nsi
Platform.png
README
TODO
bootstrap.py
gen_list_files_for_nsis.py
ghc-install.sh
haddock-gen-index.py
parse-cabal.py
recache.py
welcome.bmp

README

Windows installer for the Haskell Platform.

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, '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

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 & 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.
Something went wrong with that request. Please try again.