msys2でBerkeley DB4.3.29のJavaAPIをビルド

覚書。

環境
  • msys2 MinGW64
  • OpenJDK 11.0.1
前準備

Windowsにインストールされているjava.exeがある場所にPATHを通す。

mingw-w64-x86_64-clangをインストールして

export CC=clang

しておく。

build_unix

../dist/configure --enable-java --enable-mingw

を実行。

arがないと怒られる

mingw-w64-x86_64-toolchainをインストール。

java Testが失敗する

export JAVAFLAG="cp."

でクラスパスにカレントディレクトリを追加する。

Java 1.3以上が必要と怒られる

configureで以下のいずれかにマッチしてないとダメ。14年前だしシカタナイネ。

  • 1.[3456789]*
  • 1.[1-9][0-9]*
  • [23456789]*

もうどうしようもないのでconfigureを書き換えて実行。

makeがない

mingw-w64-x86_64-toolchainに含まれているような。探すのもめんどいので msys2/makeをインストール。

mkdirが2引数とっていて怒られる

もうソース書きなおしてmake。

jni_md.hが見付からない

export CPPFLAGS=-I$JAVA_HOME/include/win32

してconfigureからやりなおし。

まとめ

export CC=clang

export JAVAFLAG="cp."

export CPPFLAGS="-I$JAVA_HOME/include/win32"

Java10以降の場合はconfigure直さないとダメ mkdirは1引数に直さないとダメ