1##
2##
3## Build the library
4##
5##
6
7LOCAL_PATH:= $(call my-dir)
8
9# NOTE the following flags,
10#   SQLITE_TEMP_STORE=3 causes all TEMP files to go into RAM. and thats the behavior we want
11#   SQLITE_ENABLE_FTS3   enables usage of FTS3 - NOT FTS1 or 2.
12#   SQLITE_DEFAULT_AUTOVACUUM=1  causes the databases to be subject to auto-vacuum
13common_sqlite_flags := \
14	-DNDEBUG=1 \
15	-DHAVE_USLEEP=1 \
16	-DSQLITE_HAVE_ISNAN \
17	-DSQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576 \
18	-DSQLITE_THREADSAFE=2 \
19	-DSQLITE_TEMP_STORE=3 \
20	-DSQLITE_POWERSAFE_OVERWRITE=1 \
21	-DSQLITE_DEFAULT_FILE_FORMAT=4 \
22	-DSQLITE_DEFAULT_AUTOVACUUM=1 \
23	-DSQLITE_ENABLE_MEMORY_MANAGEMENT=1 \
24	-DSQLITE_ENABLE_FTS3 \
25	-DSQLITE_ENABLE_FTS3_BACKWARDS \
26	-DSQLITE_ENABLE_FTS4 \
27	-DSQLITE_OMIT_BUILTIN_TEST \
28	-DSQLITE_OMIT_COMPILEOPTION_DIAGS \
29	-DSQLITE_OMIT_LOAD_EXTENSION \
30	-DSQLITE_DEFAULT_FILE_PERMISSIONS=0600
31
32common_src_files := sqlite3.c
33
34# the device library
35include $(CLEAR_VARS)
36
37LOCAL_SRC_FILES := $(common_src_files)
38
39ifneq ($(TARGET_ARCH),arm)
40LOCAL_LDLIBS += -lpthread -ldl
41endif
42
43LOCAL_CFLAGS += $(common_sqlite_flags) -DUSE_PREAD64 -Dfdatasync=fdatasync \
44				-DHAVE_MALLOC_USABLE_SIZE
45
46LOCAL_SHARED_LIBRARIES := libdl
47
48LOCAL_MODULE:= libsqlite
49LOCAL_C_INCLUDES += $(call include-path-for, system-core)/cutils
50LOCAL_SHARED_LIBRARIES += liblog \
51            libicuuc \
52            libicui18n \
53            libutils \
54            liblog
55
56# include android specific methods
57LOCAL_WHOLE_STATIC_LIBRARIES := libsqlite3_android
58
59
60include $(BUILD_SHARED_LIBRARY)
61
62
63ifeq ($(WITH_HOST_DALVIK),true)
64    include $(CLEAR_VARS)
65    LOCAL_SRC_FILES := $(common_src_files)
66    LOCAL_LDLIBS += -lpthread -ldl
67    LOCAL_CFLAGS += $(common_sqlite_flags)
68    LOCAL_MODULE:= libsqlite
69    LOCAL_SHARED_LIBRARIES += libicuuc-host libicui18n-host
70    LOCAL_STATIC_LIBRARIES := liblog libutils libcutils
71
72    # include android specific methods
73    LOCAL_WHOLE_STATIC_LIBRARIES := libsqlite3_android
74    include $(BUILD_HOST_SHARED_LIBRARY)
75endif
76
77##
78##
79## Build the device command line tool sqlite3
80##
81##
82ifneq ($(SDK_ONLY),true)  # SDK doesn't need device version of sqlite3
83
84include $(CLEAR_VARS)
85
86LOCAL_SRC_FILES := shell.c
87
88LOCAL_C_INCLUDES := $(LOCAL_PATH)/../android $(call include-path-for, system-core)/cutils
89
90LOCAL_SHARED_LIBRARIES := libsqlite \
91            libicuuc \
92            libicui18n \
93            libutils
94
95ifneq ($(TARGET_ARCH),arm)
96LOCAL_LDLIBS += -lpthread -ldl
97endif
98
99LOCAL_CFLAGS += $(common_sqlite_flags) -DUSE_PREAD64
100
101LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
102
103LOCAL_MODULE_TAGS := debug
104
105LOCAL_MODULE := sqlite3
106
107include $(BUILD_EXECUTABLE)
108
109endif # !SDK_ONLY
110
111
112##
113##
114## Build the host command line tool sqlite3
115##
116##
117
118include $(CLEAR_VARS)
119
120LOCAL_SRC_FILES := $(common_src_files) shell.c
121
122LOCAL_CFLAGS += $(common_sqlite_flags) -DNO_ANDROID_FUNCS=1
123
124# sqlite3MemsysAlarm uses LOG()
125LOCAL_STATIC_LIBRARIES += liblog
126
127ifeq ($(strip $(USE_MINGW)),)
128LOCAL_LDLIBS += -lpthread
129ifneq ($(HOST_OS),freebsd)
130LOCAL_LDLIBS += -ldl
131endif
132endif
133
134LOCAL_MODULE := sqlite3
135
136include $(BUILD_HOST_EXECUTABLE)
137