FreecivのMac版が日本語で動かない
FreecivのMac版が日本語で動かないので、なんでかな?と思って調べたら、Mac用にbuildする時に
--disable-nls
という、言語サポートをdisableにするオプション付きでコンパイルされているから、らしい。
ということで、自力でコンパイルしてみました。
Freecivの英語のwikiサイトの"Build-MacOSX"という記事を参考にします。
で、Freecivは、gettextというGNUなツールを使って多言語に対応していると書いてあるので、gettextが必要なのですが、いろいろやったところ、このgettextのインストールの失敗しているから、--disable-nls というオプションをつけないと動かないらしいと思われる。
準備としてpkg-configをインストールする。
Xcodeをインストールすると、
/usr/X11/lib/pkgconfig
に、*.pcなファイルが入っていて、この*.pcなファイルを管理するツールがpkg-configのはず、なのだけれども、なぜかpkg-config自体はインストールされていないのだ。(?)
GNUのサイトからソースコードをダウンロードして、解凍、make、installで、特に問題ない模様。
pkg-configをインストールしたら、*.pcなファイルが入っているフォルダを環境変数に登録します。
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/X11/lib/pkgconfig"
で、なぜか boostを入れます。
$tar -xf boost_1_46_1.tar.gz $cd boost_1_46_1 $./bootstrap.sh -n Building Boost.Jam with toolset darwin... tools/build/v2/engine/src/bin.macosxx86_64/bjam ...
昔、苦労した記憶があるのだが、今回は合っているっぽい。
やっぱ、その機種が売れると、いろんなモノが対応してくれるものだ。
./bjam --help
を読んで、
/boost_1_46_1/tools/build/v2/user-config.jam
というファイルをテキストエディットで開いて、ファイルの最後に
using mpi ;
を追加し、
sudo ./bjam install --libdir=/usr/local/lib --includedir=/usr/local/include
一瞬、かたまったように見えたが、iMac Intel Core i5(コア数2) 3.6 GHzで15分ぐらいでインストール出来たらしい。
やっと次に、gettextをGNUのサイトからダウンロードしてきてインストールしました。
tar -xf gettext-0.18.tar.gz cd gettext-0.18 ./configure
だーっ!とcheck項目が流れて行くので、見過ごすと思いますが、
checking for iconv... no, consider installing GNU libiconv
libiconvが無いと言われています。
いや、libiconvはあるのですが・・・、GNUのlibicovは最新でVer1.13.1なのに、MacOSに入っているlibiconvはVer.2だから、GNUのlibiconvと違うものなのかもしれない。
ここは無視して(ぉぃ
make make check
すると、
This version was built without iconv(). FAIL: ... ======================= 43 of 326 tests failed (16 tests were not run) =======================
そらそうよ。
でもinstallしてしまいます。(え!
libiconvのページに書かれているように、libiconvを再コンパイルすべきらしい。
他のページでも、libiconvを再コンパイルすることを勧めているので、libiconvを/usr/local/libに別途インストール。
tar -xf libiconv-1.13.1.tar.gz cd libiconv-1.13.1 ./configure make sudo make install
で、gettextを再ビルド
cd ../gettext-0.18 make clean export LDFLAGS="-L/usr/local/lib -liconv -L/usr/lib" ./configure --with-libexpat-prefix --with-libxml2-prefix --with-libiconv-prefix=/usr/local/lib --with-libintl-prefix --with-included-libxml
前回よりパラメータが多いけれども、本気出した、からではなく、明示的に/usr/local/libのほうの libiconv.dylibにリンクさせるため。
checking for iconv... yes checking for working iconv... yes checking for iconv declaration... extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
ほら、通った
$make $make check ======================= 1 of 326 tests failed (16 tests were not run) =======================
驚きの結果に。
再インストールしておきます。
ついでにGDライブラリーを再コンパイルします。(ついでが多すぎる気がする...)
libtiff、libjpegを入れていない人は、この段階までに別途インストールを済ませておいてください。
(MacOSに標準で入っているのはlibTIFF,libJPEGという、アルファベットが大文字の、別のものであることに注意)
cd ../gd-2.0.35 make clean ./configure --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib --with-x --with-libiconv-prefix=/usr/local/lib make sudo make install
rep2のGDライブラリを利用した画像キャッシュ機能が動いたので、多分OK
次に、GTK+のサイトから、Glibのソースコードをダウンロードして、buildします。
tar -xf glib-2.28.6.tar.gz cd glib-2.28.6 export LDFLAGS="-L/usr/local/lib -liconv -L/usr/lib" ./configure --with-libiconv=gnu make
さらっと書きましたが、このオプションにに至るまでの苦労をつらつらと書きますと
./configure make
だけだと
gconvert.c:65:2: error: #error GNU libiconv not in use but included iconv.h is from libiconv
GNUのlibiconvがないのに、GNUのiconv.hがあるのはおかしい、と言っています。
ここで、
./configure --help
を読み返して、
./configure --with-libiconv=gnu
とやると、今度は
checking for libiconv_open in -liconv... no configure: error: *** No iconv() implementation found in C library or libiconv
libiconvの中にiconvという関数が無いと言われる。
やっとここで、
/usr/local/libiconv.dylib
を見に行っていないことに気が付いて、先に/usr/localのlibiconv.dylibを見に行くようにexportでLDFLAGSを設定しておくことにしました。
gettextを再コンパイルしたことで、多分、Glibもエラーなくmake出来たのだと思われます。
次にGTK+のサイトからATKのソースをダウンロードして、
tar -xf atk-1.91.92.tar.gz cd atk-1.91.92 ./configure make sudo make install
特に問題無さげ。
なので、次にGdk-Pixbufをインストール。
tar -xf gdk-pixbuf-2.22.1.tar.gz cd gdk-pixbuf-2.22.1 ./configure --with-libiconv-prefix=/usr/local/lib --with-libintl-prefix=/usr/lib make sudo make install
libintlはgettextをインストールした時に、知らないうちにインストールされるもの。
問題ないようなので、次はpangoをインストール。
GTK+のサイトからソースコードをダウンロードしてきて、
tar -xf pango-1.28.4.tar.gz cd pango-1.28.4 ./configure --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib --with-x make make check
で
All tests passed.
なので、インストールしてしまいます。
いよいよ本丸、GTK+なのですが、最新版がVer.3.0となっているけれども、安定版のVer.2.24.4にします。
MacOS Xに入っているCairoのバージョンの都合で、これより新しいバージョンのGTK+は入れられない模様。
tar -xf gtk+-2.24.4.tar.gz cd gtk+-2.24.4 ./configure --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib --with-x make sudo make install
やっと。これで準備が終わりました。
Freecivをコンパイルします。
sourceforgeのFreecivのプロジェクトのページからソースコードをダウンロードします。
tar -xf freeciv-2.2.5.tar.bz2 cd freeciv-2.2.5 ./configure --with-readline=builtin --with-libiconv-prefix=/usr/local --enable-client=gtk2 --with-x --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib --enable-ipv6=no --disable-sdl-mixer make
コンパイルは通ったようなので、テストのために
./civ
とすると、英語で立ち上がる。
インストールしてみないと、ちゃんと日本語で動くかどうかは確認出来ない模様。
sudo make install freeciv-gtk2
で、日本語で起動しました。
ということで、Macで日本語でFreecivを動かすことに成功はしましたが、
Magic Trackpad には「中ボタン」がないので、地形を調査出来ない!!
ここまでやってから気が付くとは、アホすぎる。