MinGW + MSYS 環境で Text::Kakasi をビルドする
MinGW + MSYS 環境で Text::Kakasi をビルドする手順。忘れないようにメモしておく。以下は、MinGW 5.1.3、MSYS 1.0.10、ActivePerl 5.8.8 build 820 での話。バージョンが違えば異なる箇所も出てくるかもしれない。
- MinGW と MSYS をインストールする
http://www.mingw.org/ からダウンロード。
インストーラがあるのでそれを使ってインストールするだけ。
- nmake をインストールする
Perl モジュールのビルドには nmake を使う。nmake はここらへんからダウンロードできる。できなければ、「nmake15」とかで検索すると出てくるかも。
- ExtUtils::FakeConfig をインストールする
http://search.cpan.org/~mbarbon/ExtUtils-FakeConfig/ からダウンロード。
ppm からもインストールできるが、バージョンが古くいろいろと不都合が生じるので CPAN から最新バージョン(これを書いている時点では 0.10)をダウンロードしてインストールする。
MSYS のホームフォルダかどこかに展開後、
でインストール。make の代わりに nmake を使う以外は特筆すべきこともなし。
- Kakasi のインストール
http://kakasi.namazu.org/ からダウンロード。
普通にインストールするだけ。
./configure
make
make install
- Text::Kakasi のインストール
http://search.cpan.org/dist/Text-Kakasi/ からダウンロード。
ExtUtils::FakeConfig を使うことを忘れないこと。
……でうまくいくはずなのだが、なぜか libkakasi.a やら libkakasi.h やらを見つけてくれないので、Makefile.PL の /usr/local/include を E:\msys\1.0\local\include に、/usr/local/lib を E:\msys\1.0\local\lib にそれぞれ置き換えて(msys は E ドライブにインストールされている)から実行する。
なにか設定が間違っているだけとか、あるいはもっといい方法がありそうな気もするが(ls /usr/local/include などとすれば libkakasi.h がちゃんと見つかるのだし)、とりあえずはこんな感じで。
MinGW + MSYS 環境で MeCab (Perl モジュールも含め)をビルドする
ExtUtils::FakeConfig までは Kakasi と共通。
- MeCab のインストール
http://mecab.sourceforge.net/ からダウンロードする。
MeCab 自体は ./configure、make、make install で何事もなくインストールすることができるのだが、このままだと Perl モジュールのビルドに失敗してしまうため、MinGw における MeCab のシェアードライブラリの問題: ナマズのブログを参考に mecab.h を修正する。具体的には、(MeCab 0.96 では)119 行目あたりにある条件式を書き換える。
あとは、
./configure
make
make install
で完了。
- 辞書のインストール
辞書は簡単。
./configure
make
make install
だけ。
Makefile.PL 内で mecab-config を呼ぶようになっているが、どうも Perl からは呼び出せずエラーになってしまうようなので、MSYS 上で mecab-config --cxx などを実行してその結果を貼付けてしまう。が、ここでも /usr/local/include などのファイルをなぜか見つけてくれないので、実行結果を貼付けつつ内容を修正する。具体的には
use ExtUtils::MakeMaker;
WriteMakefile(
'NAME' => 'MeCab',
'CC' => 'g++',
'LD' => 'g++',
'INC' => '-Ie:\msys\1.0\local\include',
'LIBS' => '-Le:\msys\1.0\local\lib -lmecab',
'VERSION' => '0.96',
'OBJECT' => 'MeCab_wrap.o'
);
こんな感じになる。あとは、
でビルド完了。