対象バージョン
- MinGW/MSYS … 20101030
- regex … 2.5.1 (mingw-libgnurx-2.5.1)
- MinGW の sourceforce.jp ページで配布されているパッケージを利用します。
- 配布先 URL : http://sourceforge.net/projects/mingw/files_beta/UserContributed/regex/mingw-regex-2.5.1/
- zlib … 1.2.5
- Kyoto Cabinet … 1.2.25
- Kyoto Cabinet Java バインディング … 1.14
- Java Development Kit … 1.6.0_18
1. 準備
Kyoto Cabinet のビルドを始める前に、依存ライブラリ regex と zlib をビルド&インストールする必要があります。
1.1 regex のビルド・インストール
上記 URL からダウンロードした regex の tarball を展開し、展開先ディレクトリにて
$ ./configure $ makeを実行します。make が終わったら、スタティックな libregex.a を作るため、
$ rm libregex.a $ ar rcs libregex.a regex.oとします。その後、
$ make installを実行し、regex のビルド・インストールは完了です。
1.2 zlib のビルド・インストール
zlib の tarball を展開した先のディレクトリにて、
$ make -f win32/Makefile.gccとし、Windows/gcc 環境用の Makefile を用いて make します。インストールの際は以下のように、事前に INCLUDE_PATH、LIBRARY_PATH の環境変数を定義する必要があります。
$ export INCLUDE_PATH=/usr/local/include $ export LIBRARY_PATH=/usr/local/lib $ make -f win32/Makefile.gcc install以上で準備は完了です。
2. Kyoto Cabinet core library のビルド・インストール
g++ に渡すオプションを、以下のとおり定義します。
$ export CPPFLAGS=-D_WIN32_WINNT=0x0501あとは、kyotocabinet の tarball 展開先ディレクトリにて、
$ ./configure $ make $ make check $ make installとして、ビルド&インストールが完了します。
3. Kyoto Cabinet Java バインディングのビルド・インストール
3.1 準備
Kyoto Cabinet Java バインディングをビルドする前に、JDK をインストールした先のディレクトリの情報を MSYS の fstab ファイルに追記する必要があります。
fstab ファイルは、(MinGW のインストールルート)\msys\1.0\etc ディレクトリに配置されています。以下は、"C:\Program Files\Java" ディレクトリに JDK をインストールした場合の追記内容の例です。
C:\Progra~1\Java\jdk1.6.0_18 /java上記のように、JDK をインストールした先のパスの途中に空白を含むディレクトリが存在する場合、チルダ ~ を使ってそのディレクトリ名を表記する必要があるようです(ダブルクォーテーションで括っても、MSYS は認識してくれません)。
3.2 ビルド&インストール
./configure を実行する前に、環境変数 JAVA_HOME を定義し (直し) ます。
$ export JAVA_HOME=/javaJAVA_HOME を定義したら kyotocabinet-java の tarball 展開先で
$ ./configureとします。./configure が完了したら、出力された Makefile を一部修正します。以下のようにターゲット libjkyotocabinet.so.$(LIBVER).$(LIBREV).0 の内容に、jkyotocabinet.dll を生成するためのコマンドを追記します。
libjkyotocabinet.so.$(LIBVER).$(LIBREV).0 : $(LIBOBJFILES) $(CXX) $(CXXFLAGS) -shared -Wl,-soname,libjkyotocabinet.so.$(LIBVER) -o $@ \ $(LIBOBJFILES) $(LDFLAGS) $(LIBS) ##### 以下の2行を追記する ##### $(CXX) $(CXXFLAGS) -shared -Wl,--kill-at -Wl,-soname,jkyotocabinet.dll -o jkyotocabinet.dll \ $(LIBOBJFILES) $(LDFLAGS) $(LIBS)本来なら CPPFLAGS などの環境変数で解決したい内容なのですが、何故か kyotocabinet-java の ./configure では環境変数が反映されないようなので、やむを得ずこのような work around をしています。さて、Makefile の編集が終わったところで、
$ make $ make checkとします。なお、make check は
make DBNAME="*" RNUM="10000" check-eachのテストの実行時にエラーになってしまうようです。この問題はまだ解消できていませんが、普通に利用する分には支障はないのかな、と思います。
後は、生成された jkyotocabinet.dll と kyotocabinet.jar を利用すれば、Windows 上でも Java から Kyoto Cabinet が使えるようになることでしょう(試していません…)。
0 コメント:
コメントを投稿