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