読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

囲碁思考エンジンFuegoをMacにインストールする

コンピュータ将棋が大変なことになってきました。(第二回電王戦)
次はコンピュータ囲碁の番です?

一から作るのは大変ですが、幸いFuegoというモンテカルロ木検索も実装したオープンソース囲碁思考エンジンがあります。

これをMacにインストールするのに手間取りましたので、情報共有します。

HomeBrewにfuegoのFormulaがありますが、バージョン1.0で古いです。(投稿時点での最新公開版は1.1)そして、このFormula、少なくともMountain Lionでは通りません。
なので、fuegoのサイトから最新版をダウンロードしてコンパイルします。

0. ソース(バージョン1.1)をダウンロードします。
http://sourceforge.net/projects/fuego/

1. Fuegoをコンパイルする前に、C++ライブラリboostをインストールします。
インストールは、HomeBrewでもMacPortsでも可です。(投稿時点でのバージョンは1.53.0)

brew install boost

Fuego version 1.1はboostのV3に未対応です。
これに対応するには、ソースの修正とコンパイルオプションの指定を行います。

2. ソースを修正します。
展開したソースのgtpengine/GtpEngine.cppとgo/GoGtpEngine.cppに以下のChangesetを適用します。

http://sourceforge.net/apps/trac/fuego/changeset/1603

3. .configureします。

./configure CC="llvm-gcc -arch x86_64" CXX="llvm-g++ -arch x86_64 -fpermissive -DBOOST_FILESYSTEM_DEPRECATED" CPP="llvm-gcc -E" CXXCPP="llvm-g++ -E"

ポイントは、
a. コンパイラllvm-gccを使うこと
/usr/bin/{cc,c++}を使うと後述の-fpermissiveオプションが認識されません。/usr/local/bin/{cc,c++,gcc,g++}を使うと実行寺にmallocエラーが出ます。
b. -fpermissive -DBOOST_FILESYSTEM_DEPRECATEDオプションを付けること
理由は、http://sourceforge.net/apps/trac/fuego/ticket/80

4. makeしてmake installします。

make
make install

Fuego推奨のGUI go-guiはHomeBrewにFormulaがあって普通にインストールできます。

追記:
Fuegoのsvn版だと、(当たり前と言えば当たり前ですが)工程の2番は不要で、代わりに

aclocal
autoheader
autoreconf -i

を実行した後、上記のconfigure以降の工程を実行すればOKです。