root/XerialJ/trunk/sqlite-jdbc/Makefile

Revision 3601, 2.4 kB (checked in by leo, 2 years ago)
Line 
1# use JDK1.5 to build native libraries
2
3include VERSION
4sqlite := sqlite-$(sqlite_version)
5
6#CURRENT_DIR = $(shell cygpath -w `pwd`)
7RESOURCE_DIR = src/main/resources
8
9ifeq ($(findstring CYGWIN,$(shell uname)),CYGWIN)
10  OS := Win
11endif
12ifeq ($(findstring MINGW,$(shell uname)),MINGW)
13  OS := Win
14endif
15ifeq ($(shell uname),Darwin)
16  OS := Darwin
17endif
18
19ifeq ($(OS),)
20  OS := Default
21endif
22
23
24ifeq ($(arch),)
25arch := $(shell uname -m)
26endif
27
28target = $(OS)-$(arch)
29
30Default_LIBNAME   := libsqlitejdbc.so
31Darwin_LIBNAME   := libsqlitejdbc.jnilib
32Win_LIBNAME      := sqlitejdbc.dll
33LIBNAME   := $($(OS)_LIBNAME)
34
35
36.phony: all package win mac linux native deploy
37
38all: package
39
40deploy: 
41        mvn deploy
42
43
44OSInfoClass=org/sqlite/OSInfo
45OSINFO_PROG=target/sqlitejdbc/$(OSInfoClass).class
46SQLITE_DLL=sqlitejdbc/build/$(target)/$(LIBNAME)
47SQLITE_BUILD_DIR=sqlitejdbc/build/$(sqlite)-$(target)
48
49LIB_FOLDER = $(shell java -cp target/sqlitejdbc $(OSInfoClass))
50WORK_DIR=target/dll/$(sqlite)/native
51UPDATE_FLAG=target/dll/$(sqlite)/UPDATE
52
53$(OSINFO_PROG): src/main/java/$(OSInfoClass).java
54        mkdir -p target/sqlitejdbc
55        javac $< -d target/sqlitejdbc
56
57$(SQLITE_DLL): $(SQLITE_BUILD_DIR)
58
59$(SQLITE_BUILD_DIR): Makefile sqlitejdbc/Makefile
60        cd sqlitejdbc && make native
61
62#$(NATIVE_DLL): $(OSINFO_PROG) $(SQLITE_DLL)
63#       mkdir -p $(WORK_DIR)/$(LIB_FOLDER)
64#       cp $(SQLITE_DLL) $(WORK_DIR)/$(LIB_FOLDER)
65
66#native: sqlitejdbc/build/$(target)/$(LIBNAME) target/sqlitejdbc/$(OSInfoClass).class
67
68$(UPDATE_FLAG): $(OSINFO_PROG) $(SQLITE_DLL)
69        mkdir -p $(WORK_DIR)/$(LIB_FOLDER)
70        cp $(SQLITE_DLL) $(WORK_DIR)/$(LIB_FOLDER)
71        mkdir -p $(RESOURCE_DIR)/native/$(LIB_FOLDER)
72        cp $(NATIVE_DLL) $(RESOURCE_DIR)/native/$(LIB_FOLDER)
73        touch $(UPDATE_FLAG)
74
75native: $(UPDATE_FLAG)
76
77NATIVE_DLL=$(WORK_DIR)/$(LIB_FOLDER)/$(LIBNAME)
78
79package: $(UPDATE_FLAG)
80        mkdir -p $(RESOURCE_DIR)/native/$(LIB_FOLDER)
81        cp $(NATIVE_DLL) $(RESOURCE_DIR)/native/$(LIB_FOLDER)
82        rm -rf target/dependency-maven-plugin-markers
83        mvn package
84
85clean-native:
86        rm -rf sqlitejdbc/build/$(sqlite)-$(target)
87
88purejava: 
89        cd sqlitejdbc && make -f Makefile.nested
90        mkdir -p $(RESOURCE_DIR)/org/sqlite
91        cp sqlitejdbc/build/org/sqlite/SQLite.class $(RESOURCE_DIR)/org/sqlite/
92
93test-purejava:
94        mvn -DargLine="-Dsqlite.purejava=true" test     
95
96clean:
97        cd sqlitejdbc && make clean
98        rm -rf sqlitejdbc/dl
99        mvn clean
100
Note: See TracBrowser for help on using the browser.