| 1 | include ../VERSION |
|---|
| 2 | |
|---|
| 3 | ifndef JAVA_HOME |
|---|
| 4 | $(error Set JAVA_HOME environment variable) |
|---|
| 5 | endif |
|---|
| 6 | |
|---|
| 7 | ifeq ($(os),) |
|---|
| 8 | ifeq ($(shell uname),Darwin) |
|---|
| 9 | os := Darwin |
|---|
| 10 | endif |
|---|
| 11 | ifeq ($(findstring CYGWIN,$(shell uname)),CYGWIN) |
|---|
| 12 | os := Win |
|---|
| 13 | endif |
|---|
| 14 | ifeq ($(findstring MINGW,$(shell uname)),MINGW) |
|---|
| 15 | os := Win |
|---|
| 16 | endif |
|---|
| 17 | endif |
|---|
| 18 | ifeq ($(os),) |
|---|
| 19 | os := Default |
|---|
| 20 | endif |
|---|
| 21 | |
|---|
| 22 | # Windows uses different path separators, because they hate me |
|---|
| 23 | ifeq ($(os),Win) |
|---|
| 24 | sep := ; |
|---|
| 25 | else |
|---|
| 26 | sep := : |
|---|
| 27 | endif |
|---|
| 28 | |
|---|
| 29 | ifeq ($(arch),) |
|---|
| 30 | arch := $(shell uname -m) |
|---|
| 31 | endif |
|---|
| 32 | |
|---|
| 33 | sqlite := sqlite-$(version) |
|---|
| 34 | |
|---|
| 35 | jni_md := $(shell find -L "$(JAVA_HOME)" -name jni_md.h) |
|---|
| 36 | ifneq ($(jni_md),) |
|---|
| 37 | jni_include := $(shell dirname "$(jni_md)") |
|---|
| 38 | endif |
|---|
| 39 | |
|---|
| 40 | libjdbc := $(wildcard lib/jdbc-*.jar) |
|---|
| 41 | libjunit := $(wildcard lib/junit-*.jar) |
|---|
| 42 | |
|---|
| 43 | JAVA := "$$JAVA_HOME/bin/java" |
|---|
| 44 | JAVAC := "$$JAVA_HOME/bin/javac" -Xbootclasspath/p:$(libjdbc) |
|---|
| 45 | JAVAH := "$$JAVA_HOME/bin/javah" |
|---|
| 46 | |
|---|
| 47 | java_sources = $(wildcard ../src/main/java/org/sqlite/*.java) |
|---|
| 48 | java_classes = $(java_sources:../src/main/java/org/sqlite/%.java=build/org/sqlite/%.class) |
|---|
| 49 | native_classes = $(filter-out %NestedDB.class,$(java_classes)) |
|---|
| 50 | java_classlist = $(subst $$,\$$,$(patsubst build/%, %, $(wildcard $(java_classes:%.class=%*)))) |
|---|
| 51 | test_sources = $(wildcard ../src/test/java/org/sqlite/*.java) |
|---|
| 52 | test_classes = $(test_sources:../src/test/java/org/sqlite/%.java=build/test/org/sqlite/%.class) |
|---|
| 53 | tests = $(subst /,.,$(patsubst build/test/org/sqlite/%.class,org/sqlite/%,$(test_classes))) |
|---|
| 54 | |
|---|
| 55 | target := $(os)-$(arch) |
|---|
| 56 | |
|---|
| 57 | # os=Default is meant to be generic unix/linux |
|---|
| 58 | Default_CC := gcc |
|---|
| 59 | Default_STRIP := strip |
|---|
| 60 | Default_CFLAGS := -I$(JAVA_HOME)/include -Ilib/inc_mac -Os -fPIC |
|---|
| 61 | Default_LINKFLAGS := -shared |
|---|
| 62 | Default_LIBNAME := libsqlitejdbc.so |
|---|
| 63 | |
|---|
| 64 | Support10_4 := -isysroot /Developer/SDKs/MacOSX10.4u.sdk |
|---|
| 65 | #Darwin_CC := gcc -arch $(arch) -mmacosx-version-min=10.4 $(Support10_4) |
|---|
| 66 | Darwin_CC := gcc -arch $(arch) |
|---|
| 67 | Darwin_STRIP := strip -x |
|---|
| 68 | Darwin_CFLAGS := -I$(JAVA_HOME)/include -Os -fPIC |
|---|
| 69 | Darwin_LINKFLAGS := -dynamiclib $(Support10_4) |
|---|
| 70 | Darwin_LIBNAME := libsqlitejdbc.jnilib |
|---|
| 71 | |
|---|
| 72 | #Win_CC := $(arch)-mingw32msvc-gcc |
|---|
| 73 | #Win_STRIP := $(arch)-mingw32msvc-strip |
|---|
| 74 | Win_CC := mingw32-gcc |
|---|
| 75 | Win_STRIP := strip |
|---|
| 76 | Win_CFLAGS := -D_JNI_IMPLEMENTATION_ -Ilib/inc_win -O |
|---|
| 77 | Win_LINKFLAGS := -Wl,--kill-at -shared |
|---|
| 78 | Win_LIBNAME := sqlitejdbc.dll |
|---|
| 79 | |
|---|
| 80 | CC := $($(os)_CC) |
|---|
| 81 | STRIP := $($(os)_STRIP) |
|---|
| 82 | CFLAGS := $($(os)_CFLAGS) |
|---|
| 83 | LINKFLAGS := $($(os)_LINKFLAGS) |
|---|
| 84 | LIBNAME := $($(os)_LIBNAME) |
|---|
| 85 | |
|---|
| 86 | CFLAGS := $(CFLAGS) -Ibuild/$(sqlite)-$(target) -Ibuild |
|---|
| 87 | ifneq ($(jni_include),) |
|---|
| 88 | CFLAGS := $(CFLAGS) -I"$(jni_include)" |
|---|
| 89 | endif |
|---|