#!/this/is/make #^^^^ help emacs out # # This is a POSIX-make-compatible makefile for building the sqlite3 # JNI library from "dist" zip file. It must be edited to set the # proper top-level JDK directory and, depending on the platform, add a # platform-specific -I directory. It should build as-is with any # 2020s-era version of gcc or clang. It requires JDK version 8 or # higher and that JAVA_HOME points to the top-most installation # directory of that JDK. On Ubuntu-style systems the JDK is typically # installed under /usr/lib/jvm/java-VERSION-PLATFORM. default: all JAVA_HOME = /usr/lib/jvm/java-1.8.0-openjdk-amd64 CFLAGS = \ -fPIC \ -Isrc \ -I$(JAVA_HOME)/include \ -I$(JAVA_HOME)/include/linux \ -I$(JAVA_HOME)/include/apple \ -I$(JAVA_HOME)/include/bsd \ -Wall SQLITE_OPT = \ -DSQLITE_ENABLE_RTREE \ -DSQLITE_ENABLE_EXPLAIN_COMMENTS \ -DSQLITE_ENABLE_STMTVTAB \ -DSQLITE_ENABLE_DBPAGE_VTAB \ -DSQLITE_ENABLE_DBSTAT_VTAB \ -DSQLITE_ENABLE_BYTECODE_VTAB \ -DSQLITE_ENABLE_OFFSET_SQL_FUNC \ -DSQLITE_OMIT_LOAD_EXTENSION \ -DSQLITE_OMIT_DEPRECATED \ -DSQLITE_OMIT_SHARED_CACHE \ -DSQLITE_THREADSAFE=1 \ -DSQLITE_TEMP_STORE=2 \ -DSQLITE_USE_URI=1 \ -DSQLITE_ENABLE_FTS5 \ -DSQLITE_DEBUG sqlite3-jni.dll = libsqlite3-jni.so $(sqlite3-jni.dll): @echo "************************************************************************"; \ echo "*** If this fails to build, be sure to edit this makefile ***"; \ echo "*** to configure it for your system. ***"; \ echo "************************************************************************" $(CC) $(CFLAGS) $(SQLITE_OPT) \ src/sqlite3-jni.c -shared -o $@ @echo "Now try running it with: make test" test.flags = -Djava.library.path=. sqlite3-jni-*.jar test: $(sqlite3-jni.dll) java -jar $(test.flags) java -jar $(test.flags) -t 7 -r 10 -shuffle clean: -rm -f $(sqlite3-jni.dll) all: $(sqlite3-jni.dll)