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 := -DHAVE_USLEEP=1 -DSQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576 -DSQLITE_THREADSAFE=1 -DNDEBUG=1 -DSQLITE_ENABLE_MEMORY_MANAGEMENT=1 -DSQLITE_DEFAULT_AUTOVACUUM=1 -DSQLITE_TEMP_STORE=3 -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_BACKWARDS -DSQLITE_DEFAULT_FILE_FORMAT=4
14
15common_src_files := sqlite3.c
16
17# the device library
18include $(CLEAR_VARS)
19
20LOCAL_SRC_FILES := $(common_src_files)
21
22ifneq ($(TARGET_ARCH),arm)
23LOCAL_LDLIBS += -lpthread -ldl
24endif
25
26LOCAL_CFLAGS += $(common_sqlite_flags) -DUSE_PREAD64
27
28LOCAL_SHARED_LIBRARIES := libdl
29
30LOCAL_MODULE:= libsqlite
31LOCAL_C_INCLUDES += $(call include-path-for, system-core)/cutils
32LOCAL_SHARED_LIBRARIES += liblog \
33            libicuuc \
34            libicui18n \
35            libutils
36
37# include android specific methods
38LOCAL_WHOLE_STATIC_LIBRARIES := libsqlite3_android
39
40## Choose only one of the allocator systems below
41# new sqlite 3.5.6 no longer support external allocator 
42#LOCAL_SRC_FILES += mem_malloc.c
43#LOCAL_SRC_FILES += mem_mspace.c
44
45
46include $(BUILD_SHARED_LIBRARY)
47
48
49ifeq ($(WITH_HOST_DALVIK),true)
50    include $(CLEAR_VARS)
51    LOCAL_SRC_FILES := $(common_src_files)
52    LOCAL_LDLIBS += -lpthread -ldl
53    LOCAL_CFLAGS += $(common_sqlite_flags)
54    LOCAL_MODULE:= libsqlite
55    LOCAL_SHARED_LIBRARIES += libicuuc libicui18n
56    LOCAL_STATIC_LIBRARIES := liblog libutils libcutils
57
58    # include android specific methods
59    LOCAL_WHOLE_STATIC_LIBRARIES := libsqlite3_android
60    include $(BUILD_HOST_SHARED_LIBRARY)
61endif
62
63##
64##
65## Build the device command line tool sqlite3
66##
67##
68ifneq ($(SDK_ONLY),true)  # SDK doesn't need device version of sqlite3
69
70include $(CLEAR_VARS)
71
72LOCAL_SRC_FILES := shell.c
73
74LOCAL_C_INCLUDES := $(LOCAL_PATH)/../android $(call include-path-for, system-core)/cutils
75
76LOCAL_SHARED_LIBRARIES := libsqlite \
77            libicuuc \
78            libicui18n \
79            libutils
80
81ifneq ($(TARGET_ARCH),arm)
82LOCAL_LDLIBS += -lpthread -ldl
83endif
84
85LOCAL_CFLAGS += $(common_sqlite_flags) -DUSE_PREAD64
86
87LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
88
89LOCAL_MODULE_TAGS := debug
90
91LOCAL_MODULE := sqlite3
92
93include $(BUILD_EXECUTABLE)
94
95endif # !SDK_ONLY
96
97
98##
99##
100## Build the host command line tool sqlite3
101##
102##
103
104include $(CLEAR_VARS)
105
106LOCAL_SRC_FILES := $(common_src_files) shell.c
107
108LOCAL_CFLAGS += $(common_sqlite_flags) -DNO_ANDROID_FUNCS=1
109
110# sqlite3MemsysAlarm uses LOG()
111LOCAL_STATIC_LIBRARIES += liblog
112
113ifeq ($(strip $(USE_MINGW)),)
114LOCAL_LDLIBS += -lpthread
115ifneq ($(HOST_OS),freebsd)
116LOCAL_LDLIBS += -ldl
117endif
118endif
119
120LOCAL_MODULE := sqlite3
121
122include $(BUILD_HOST_EXECUTABLE)
123