OSDN Git Service

git-svn-id: http://www.xerial.org/svn/project/XerialJ/trunk/sqlite-jdbc@3194 ae02f08e...
[xerial/sqlite-jdbc.git] / Makefile
1 # use JDK1.5 to build native libraries\r
2 \r
3 include VERSION\r
4 sqlite := sqlite-$(sqlite_version)\r
5 \r
6 #CURRENT_DIR = $(shell cygpath -w `pwd`)\r
7 RESOURCE_DIR = src/main/resources\r
8 \r
9 ifeq ($(findstring CYGWIN,$(shell uname)),CYGWIN)\r
10   OS := Win\r
11 endif\r
12 ifeq ($(findstring MINGW,$(shell uname)),MINGW)\r
13   OS := Win\r
14 endif\r
15 ifeq ($(shell uname),Darwin)\r
16   OS := Darwin\r
17 endif\r
18 \r
19 ifeq ($(OS),)\r
20   OS := Default\r
21 endif\r
22 \r
23 \r
24 ifeq ($(arch),)\r
25 arch := $(shell uname -m)\r
26 endif\r
27 \r
28 target = $(OS)-$(arch)\r
29 \r
30 Default_LIBNAME   := libsqlitejdbc.so\r
31 Darwin_LIBNAME   := libsqlitejdbc.jnilib\r
32 Win_LIBNAME      := sqlitejdbc.dll\r
33 LIBNAME   := $($(OS)_LIBNAME)\r
34 \r
35 \r
36 .phony: all package win mac linux native deploy\r
37 \r
38 all: package\r
39 \r
40 deploy: \r
41         mvn deploy \r
42 \r
43 \r
44 OSInfoClass=org/sqlite/OSInfo\r
45 OSINFO_PROG=target/sqlitejdbc/$(OSInfoClass).class\r
46 SQLITE_DLL=sqlitejdbc/build/$(target)/$(LIBNAME)\r
47 SQLITE_BUILD_DIR=sqlitejdbc/build/$(sqlite)-$(target)\r
48 \r
49 LIB_FOLDER = $(shell java -cp target/sqlitejdbc $(OSInfoClass))\r
50 WORK_DIR=target/dll/$(sqlite)/native\r
51 UPDATE_FLAG=target/dll/$(sqlite)/UPDATE\r
52 \r
53 $(OSINFO_PROG): src/main/java/$(OSInfoClass).java\r
54         mkdir -p target/sqlitejdbc\r
55         javac $< -d target/sqlitejdbc\r
56 \r
57 $(SQLITE_DLL): $(SQLITE_BUILD_DIR)\r
58 \r
59 $(SQLITE_BUILD_DIR): Makefile sqlitejdbc/Makefile \r
60         cd sqlitejdbc && make native \r
61 \r
62 #$(NATIVE_DLL): $(OSINFO_PROG) $(SQLITE_DLL)\r
63 #       mkdir -p $(WORK_DIR)/$(LIB_FOLDER)\r
64 #       cp $(SQLITE_DLL) $(WORK_DIR)/$(LIB_FOLDER) \r
65 \r
66 #native: sqlitejdbc/build/$(target)/$(LIBNAME) target/sqlitejdbc/$(OSInfoClass).class\r
67 \r
68 $(UPDATE_FLAG): $(OSINFO_PROG) $(SQLITE_DLL)\r
69         mkdir -p $(WORK_DIR)/$(LIB_FOLDER)\r
70         cp $(SQLITE_DLL) $(WORK_DIR)/$(LIB_FOLDER) \r
71         touch $(UPDATE_FLAG)\r
72 \r
73 native: $(UPDATE_FLAG)\r
74 \r
75 NATIVE_DLL=$(WORK_DIR)/$(LIB_FOLDER)/$(LIBNAME)\r
76 \r
77 package: $(UPDATE_FLAG)\r
78         mkdir -p $(RESOURCE_DIR)/native/$(LIB_FOLDER)\r
79         cp $(NATIVE_DLL) $(RESOURCE_DIR)/native/$(LIB_FOLDER)\r
80         mvn package\r
81 \r
82 clean-native:\r
83         rm -rf sqlitejdbc/build/$(sqlite)-$(target)\r
84 \r
85 purejava: \r
86         cd sqlitejdbc && make -f Makefile.nested\r
87         mkdir -p $(RESOURCE_DIR)/org/sqlite\r
88         cp sqlitejdbc/build/org/sqlite/SQLite.class $(RESOURCE_DIR)/org/sqlite/\r
89 \r
90 clean:\r
91         cd sqlitejdbc && make clean\r
92         rm -rf sqlitejdbc/dl\r
93         mvn clean\r
94 \r
95 \r