2010年3月21日日曜日

Haskell(GHC)をMac OSX 10.6 Snow Leopardにインストールする方法


Mac OSX 10.6 (Snow Leopard)にGHCをインストールするときの注意点をまとめました。

Mac Portsではインストールできない


MacPortsのghcはまだOSX 10.6には対応していないので、MacPortsからGHCをインストールすることはできません。

$ sudo port install ghc
---> Computing dependencies for ghc
---> Fetching ghc
Error: Target org.macports.fetch returned: ghc is not yet supported on Mac OS X 10.6.x (SnowLeopard)

ではどうやってインストールするのか?


OSX 10.6にGHCを入れるには、Haskell Platformにあるバイナリを使います。

HaskellPlatform

ところが・・・

それでも動かない!


実は、HaskellPlatformのバイナリをインストールしても、そのままでは動きません。

理由は、Snow Leopardとその中にあるコンパイラが基本的に64bitでの処理となったことに伴い、GHCがOSX用に生成する32bitのコードでは、アセンブラとリンカがエラーを出してしまうためです。

じゃあどうすればいいの?


GHCが動作するようにするには、ghcにパッチを当てて、32bitコードのままバイナリが生成されるようにします。

具体的には、/usr/bin/ghc (GHC自体を呼び出すためのシェルスクリプト)をテキストエディタで編集して、オプションに-optc-m32 -opta-m32 -optl-m32を追加します。

/usr/bin/ghc
#!/bin/sh

exec /Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/ghc -optc-m32 -opta-m32 -optl-m32 -B/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/. -dynload wrapped ${1+"$@"}

これで、OSX 10.6でGHCを使えるようになります。


■最近のエントリ
Silverlightとトロイの木馬
ghciのコマンドまとめ
MacBookPro用インナーケースまとめ
欧米企業のソーシャル・メディア・マーケティングの普及状況
Google Analyticsのカスタム変数機能とは?
-

0 件のコメント: