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 13minimal_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 -DSQLITE_SECURE_DELETE \ 32 -Wno-unused-parameter \ 33 -Werror 34 35minimal_linux_flags := \ 36 -DHAVE_POSIX_FALLOCATE=1 \ 37 38device_sqlite_flags := $(minimal_sqlite_flags) \ 39 -DSQLITE_ENABLE_ICU \ 40 -DUSE_PREAD64 \ 41 -Dfdatasync=fdatasync \ 42 -DHAVE_MALLOC_H=1 \ 43 -DHAVE_MALLOC_USABLE_SIZE 44 45common_src_files := sqlite3.c 46 47# b/31938382, disable most clang-tidy checks to avoid segmentation fault. 48common_local_tidy_checks := -*,google-*,-google-readability-* 49 50# the device library 51include $(CLEAR_VARS) 52 53LOCAL_TIDY_CHECKS := $(common_local_tidy_checks) 54LOCAL_SRC_FILES := $(common_src_files) 55 56LOCAL_CFLAGS += $(device_sqlite_flags) 57LOCAL_CFLAGS_linux += $(minimal_linux_flags) 58 59LOCAL_SHARED_LIBRARIES := libdl 60 61LOCAL_MODULE:= libsqlite 62 63LOCAL_C_INCLUDES += $(call include-path-for, system-core)/cutils 64 65LOCAL_SHARED_LIBRARIES += liblog \ 66 libicuuc \ 67 libicui18n \ 68 libutils \ 69 liblog 70 71# include android specific methods 72LOCAL_WHOLE_STATIC_LIBRARIES := libsqlite3_android 73LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) 74 75include $(BUILD_SHARED_LIBRARY) 76 77 78include $(CLEAR_VARS) 79LOCAL_TIDY_CHECKS := $(common_local_tidy_checks) 80LOCAL_SRC_FILES := $(common_src_files) 81LOCAL_LDLIBS += -lpthread -ldl 82LOCAL_CFLAGS += $(minimal_sqlite_flags) 83LOCAL_CFLAGS_linux += $(minimal_linux_flags) 84LOCAL_MODULE:= libsqlite 85LOCAL_SHARED_LIBRARIES += libicuuc libicui18n 86LOCAL_STATIC_LIBRARIES := liblog libutils libcutils 87 88# include android specific methods 89LOCAL_WHOLE_STATIC_LIBRARIES := libsqlite3_android 90LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) 91 92include $(BUILD_HOST_SHARED_LIBRARY) 93 94## 95## 96## Build the device command line tool sqlite3 97## 98## 99ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of sqlite3 100 101include $(CLEAR_VARS) 102 103LOCAL_SRC_FILES := shell.c 104 105LOCAL_C_INCLUDES := \ 106 $(LOCAL_PATH)/../android \ 107 $(call include-path-for, system-core)/cutils 108 109LOCAL_SHARED_LIBRARIES := libsqlite \ 110 libicuuc \ 111 libicui18n \ 112 liblog \ 113 libutils 114 115LOCAL_STATIC_LIBRARIES := libicuandroid_utils 116 117LOCAL_CFLAGS += $(device_sqlite_flags) 118LOCAL_CFLAGS_linux += $(minimal_linux_flags) 119 120LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) 121 122LOCAL_MODULE_TAGS := debug 123 124LOCAL_MODULE := sqlite3 125 126include $(BUILD_EXECUTABLE) 127 128endif # !SDK_ONLY 129 130 131## 132## 133## Build the host command line tool sqlite3 134## 135## 136 137include $(CLEAR_VARS) 138 139LOCAL_TIDY_CHECKS := $(common_local_tidy_checks) 140LOCAL_SRC_FILES := $(common_src_files) shell.c 141LOCAL_CFLAGS += $(minimal_sqlite_flags) \ 142 -DNO_ANDROID_FUNCS=1 143LOCAL_CFLAGS_linux += $(minimal_linux_flags) 144 145# sqlite3MemsysAlarm uses LOG() 146LOCAL_STATIC_LIBRARIES += liblog 147 148LOCAL_LDLIBS_darwin += -lpthread -ldl 149LOCAL_LDLIBS_linux += -lpthread -ldl 150 151LOCAL_MODULE_HOST_OS := darwin linux windows 152 153LOCAL_MODULE := sqlite3 154 155include $(BUILD_HOST_EXECUTABLE) 156 157# Build a minimal version of sqlite3 without any android specific 158# features against the NDK. This is used by libcore's JDBC related 159# unit tests. 160include $(CLEAR_VARS) 161LOCAL_TIDY_CHECKS := $(common_local_tidy_checks) 162LOCAL_SRC_FILES := $(common_src_files) 163LOCAL_CFLAGS += $(minimal_sqlite_flags) 164LOCAL_CFLAGS_linux += $(minimal_linux_flags) 165LOCAL_MODULE:= libsqlite_static_minimal 166LOCAL_SDK_VERSION := 23 167LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) 168 169include $(BUILD_STATIC_LIBRARY) 170 171# Same as libsqlite_static_minimal, except that this is for the host. 172include $(CLEAR_VARS) 173LOCAL_TIDY_CHECKS := $(common_local_tidy_checks) 174LOCAL_SRC_FILES := $(common_src_files) 175LOCAL_CFLAGS += $(minimal_sqlite_flags) 176LOCAL_CFLAGS_linux += $(minimal_linux_flags) 177LOCAL_MODULE:= libsqlite_static_minimal 178LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) 179 180include $(BUILD_HOST_STATIC_LIBRARY) 181