2017年5月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

tweet

  • tweets

« CSAプロトコルでの詰みの扱い | トップページ | 詰ますや詰まさざるや »

GPSをソースからビルドしてみた(無謀にも)

プロトコルの件はいくつかコメントをいただきまして、こちらも少し考えております。後ほど何か書きます。

ちょっとした実験を思い立ちまして、それを試すためにGPSをビルドしてみました。だいぶ以前にたしか1回やったことあるはずなんですが全然忘れてまして、今回やったらかなりハマったのでやり方メモしておきます。(当然ですけど、Linuxですよ。)

まずは「GPS将棋」+ I'm Feeling Lucky で出てくる
http://gps.tanaka.ecc.u-tokyo.ac.jp/gpsshogi/
を見にいきます。ところがまず、ここを見てもどうやってビルドすればいいのかぱっとはわからないんですよね…というところでハマります。いろいろ探しまわるとまあ何とかわかるんですが。結論から言うと、
 ・gpsshogiとoslの2つの部分がある
 ・事前にboostとcppunitのインストールが必要
ということで、
1. boost インストール
2. cppunit インストール
3. osl ビルド
4. gpsshogi ビルド
5. スクリプトをいじって実行
という順に進めます。(1と2は逆でも可)

1. boost インストール

http://www.boost.org からソースを入手します。boost_1_43_0.tar.gz とかいう名前のファイルを解凍して、
cd path/to/boost_1_43_0
./bootstrap.sh --prefix=path/to/install
./bjam
./bjam -install
bjamって何だかわかってませんが、とにかくドキュメントに従います。そうそう、boostのドキュメントも不便で、READMEとかINSTALLとかにさくっと書いといてほしいんですが、INSTALLを見ると「index.htmlを見ろ」とかほざいてます。それ見てもぱっとわからず、更に2,3回リンクをたどらないとインストールのやり方までたどりつきません。おまけに途中わかりづらいし。なめとんのかお前は。いやつい激昂してしまいました。失礼しました。

2. cppunit インストール

これもググって http://sourceforge.net/projects/cppunit/ に取りに行くんですが、ここでDLするとなぜか cvsの*repository*のファイルが来ます。xxx,vとかいうやつ。なぜこうなる?何考えてるんでしょうかこの人たちは。頭おかしいんじゃないでしょうか。いやつい激昂してしまいました。失礼しました。暑いと怒りっぽいんです。
どうやるかというと、"view all files"をクリックして、"cppunit"を開くと各リリースのディレクトリが出ますんで、そこだと cppunit-1.12.1.tar.gz とかいうファイルがあります。
こっちはINSTALLにちゃんとやり方書いてあります。
./configure --prefix=path/to/install
make
make install
という見慣れたやり方。

ちなみにググると yum なり apt-get なりで一発インストールする方法もある雰囲気もありましたが、今回は諸般の事情でroot権限のないマシンを使っていたため、/usr/localに書けないのでboostもcppunitもソースから作ってました。

3. osl ビルド

GPS将棋のページから「使い方(ソースから)」~「osl/Install」で行ける
http://gps.tanaka.ecc.u-tokyo.ac.jp/gpsshogi/index.php?osl%2FInstall
に従うんですけれども、まずmakefile.localで何をどう選べばいいのかがまたわからないんですよね~ とりあえず私がやったのは、CPUOPTION=-fno-strict-aliasing のみ。
BOOST_POSTFIX[_MT] は消す。INCLUDES と LDFLAGS は boost と cppunit の include, libを指定。更に、Linux(RHEL)なんですが "LDLIBS += -ldl" も必要でした。memory allocator は default にしたがう。これでmake。あそうそう、LD_LIBRARY_PATHもboostとcppunitのlibを指定しました。

7/15/2010 にDLしたcvs tarballを使ったんですが、2か所ほどコンパイルでエラーに。gccは4.1.2です。
lib/search/searchTimer.cc
lib/Annotate/analyzer.cc
両方ともint(/uint64_t)とdoubleの暗黙変換関連。warningがあるとエラーでビルド止まるようです("-Werror"がそれかな?)。warningでも止まらないようにしようかとも一瞬思いましたがさすがにちょっと恐いので、ソースを見てみます。幸い両方ともちょこっとキャストすれば通りそうなところだったので、"(int)"をつけたり、"* 0.9" を "* 9 / 10"とかにして切り抜けます。(正しいのかよくわからんが)

以上で何とかビルドは通りました。

テストができるとのことなので、test/ をビルドして testAll を実行。何かいっぱい出てきます。

Failures !!!
Run: 548   Failure total: 73   Failures: 70   Errors: 3

…ま、8割以上通ってるから問題ないんでしょう。(<いいのかそれで)

>一部のテストは著作権の問題で公開できないデータに依存しているため,失敗します.

とありますし。そうですか。失敗するんですか。まあ細かいことにはこだわらずに次に進みます。

4. gpsshogi ビルド

GPS将棋のページから「使い方(ソースから)」~「gpsshogi」で行ける
http://gps.tanaka.ecc.u-tokyo.ac.jp/gpsshogi/index.php?%BB%C8%A4%A4%CA%FD%2Fgpsshogi
を見ます。
cd gpsshogi/bin     # gpsshogi/ は osl/ と同じdirに置く
make gpsshogi RELEASE=t

ここは特に問題なし。ちなみに私はもっぱらshogi-server経由で対戦するだけなので、GUIとかは目もくれません。gpsshogiだけあればおk。

5. スクリプトをいじって実行

gpsshogi/bin/scripts-for-game/ の下にいくつかスクリプトがあります。適当そうなのを選んでいじって使えばよいっぽい。私はwdoor.sh をとってきていじってました。これはenvを設定して network_x1.pl を呼ぶだけなので、わからないことがあったら network_x1.pl をみます。shogi-serverがローカルだったら"SERVER=localhost"でよさそうだな、とか適当に見当をつけて使います。

なお、以前にやってたときのうろ覚えですが、GPS将棋の時間設定はたしかGAMENAMEからとってくるんですよね。これだと不便なこともあるので、直接時間設定をするときはスクリプトをいじった記憶があります。今ぱっと見たところ、gpsshogi/bin/network/CsaClient.pm のなかの timeleft/byoyomi をセットしたんだったかな?

以上でいちおうローカルのshogi-serverと接続してGPS対ボナで対戦できました。1回だけやってボナが勝ったんですが、テストの結果とかから見ても、GPSが変に弱くなってる可能性はなきにしもあらず?

« CSAプロトコルでの詰みの扱い | トップページ | 詰ますや詰まさざるや »

将棋プロセサ」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/507007/36192623

この記事へのトラックバック一覧です: GPSをソースからビルドしてみた(無謀にも):

« CSAプロトコルでの詰みの扱い | トップページ | 詰ますや詰まさざるや »