Dicas de compilação do GHC:
- usar o gcc do MingW ao invés do do Cygwin
- setar as seguintes variaveis de ambiente no cygwin.bat:
- SET MAKE_MODE=UNIX
- SET SHELL=c:/cygwin/bin/sh
- SET HOME=C:/ghc
- SET CVSROOT=:pserver:anoncvs@glass.cse.ogi.edu:/cvs
- SET TMPDIR=c:/tmp
- SET PATH=c:\MinGW\bin;C:\ghc\ghc-6.2.1\bin;C:\cygwin\usr\local\bin;C:\GreenCard;c:\cygwin\usr\bin;C:\cygwin\bin;%PATH%
- 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.
- setar as seguintes varivaies no build.mk:
HAPPY = /cygdrive/c/cygwin/usr/local/bin/happy
ALEX = /cygdrive/c/alex-2.0-win32/alex.exe
- no Cygwin, digitar:
mv /bin/sh /bin/ash
cp /bin/bash /bin/sh
- autoreconf
- ./configure --host=i386-unknown-mingw32 --with-gcc=c:/MinGW/bin/gcc
- make
Integrando o Haskell.NET ao GHC:
- 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.
-
Para gerar a dll do runtime system:
- ghc-6.2.2\ghc\rts\haskelldotnet
\RTS_2\make.bat. Será gerado o arquivo haskelldotnet.dll
-
Para gerar o subconjunto do prelúdio escrito em C#:
- Prelude_C#\RTS_2\make.bat. Serão geradas 6 dlls.
-
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.
-
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.