Dicas de compilação do GHC:

  1. usar o gcc do MingW ao invés do do Cygwin
  2. setar as seguintes variaveis de ambiente no cygwin.bat:
  3. baixar o HAPPY (versao 1.14) e o alex. Instalar o alex normalmente com o instalador binario e gerar um build do happy, pois o mesmo nao tem instalador da versao 1.14 para o Windows.
  4. setar as seguintes varivaies no build.mk: HAPPY = /cygdrive/c/cygwin/usr/local/bin/happy ALEX = /cygdrive/c/alex-2.0-win32/alex.exe
  5. no Cygwin, digitar: mv /bin/sh /bin/ash cp /bin/bash /bin/sh
  6. autoreconf
  7. ./configure --host=i386-unknown-mingw32 --with-gcc=c:/MinGW/bin/gcc
  8. make

Integrando o Haskell.NET ao GHC:

  1. Baixar do CVS os seguintes módulos:
    - ghc-6.2.2
    - Prelude_C#
    - opcionalmente Testes, que contém arquivos de teste do nofib
    Copiar as pastas ghc-6.2.2\ghc\compiler\ilGen, ghc-6.2.2\ghc\compiler\main, os makefile da raiz e de ghc-6.2.2\ghc\compiler e os arquivos .mk de mk e de ghc-6.2.2\libraries\mk para a versão do ghc que tiver sido compilada.
  2. Para gerar a dll do runtime system:
    - ghc-6.2.2\ghc\rts\haskelldotnet \RTS_2\make.bat.  Será gerado o arquivo haskelldotnet.dll
  3. Para gerar o subconjunto do prelúdio escrito em C#:
    - Prelude_C#\RTS_2\make.bat.  Serão geradas 6 dlls.
  4. Para gerar o prelúdio escrito em Haskell suportado no momento:
    - ghc-6.2.2\libraries\base\make _net.sh no Cygwin.  Serão geradas 6 dlls.
  5. Para rodar qualquer programa Haskell compilado com o Haskell.NET, é preciso ter no mesmo diretório todas as dlls geradas nos passos acima. Para que os scripts funcionem, é preciso que o .NET 2.0 esteja no path.