#!/usr/bin/env bash # Compile the JNI twin: javac -h generates the header, gcc builds libsqlitejni.so. Output goes to $BUILD (default ./build). set -euo pipefail unset JAVA_TOOL_OPTIONS HERE="$(cd "$(dirname "$0")/.." && pwd)" JAVA_HOME="${JAVA_HOME:?set JAVA_HOME to a JDK 25}" BUILD="${BUILD:-$HERE/build}"; mkdir -p "$BUILD/jni-classes" "$BUILD/jni-h" "$BUILD/lib" "$JAVA_HOME/bin/javac" -h "$BUILD/jni-h" -d "$BUILD/jni-classes" "$HERE/jni/SqliteJni.java" gcc -O2 -fPIC -shared -Wall -I"$JAVA_HOME/include" -I"$JAVA_HOME/include/linux" -I"$BUILD/jni-h" \ "$HERE/jni/sqlite_jni.c" -o "$BUILD/lib/libsqlitejni.so" -lsqlite3 echo "built $BUILD/lib/libsqlitejni.so with $(gcc --version | head -1)"