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: 1cfb44aa38

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