| ## |
| ## |
| ## Build the library |
| ## |
| ## |
| |
| LOCAL_PATH:= $(call my-dir) |
| |
| # NOTE the following flags, |
| # SQLITE_TEMP_STORE=3 causes all TEMP files to go into RAM. and thats the behavior we want |
| # SQLITE_ENABLE_FTS3 enables usage of FTS3 - NOT FTS1 or 2. |
| # SQLITE_DEFAULT_AUTOVACUUM=1 causes the databases to be subject to auto-vacuum |
| minimal_sqlite_flags := \ |
| -DNDEBUG=1 \ |
| -DHAVE_USLEEP=1 \ |
| -DSQLITE_HAVE_ISNAN \ |
| -DSQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576 \ |
| -DSQLITE_THREADSAFE=2 \ |
| -DSQLITE_TEMP_STORE=3 \ |
| -DSQLITE_POWERSAFE_OVERWRITE=1 \ |
| -DSQLITE_DEFAULT_FILE_FORMAT=4 \ |
| -DSQLITE_DEFAULT_AUTOVACUUM=1 \ |
| -DSQLITE_ENABLE_MEMORY_MANAGEMENT=1 \ |
| -DSQLITE_ENABLE_FTS3 \ |
| -DSQLITE_ENABLE_FTS3_BACKWARDS \ |
| -DSQLITE_ENABLE_FTS4 \ |
| -DSQLITE_OMIT_BUILTIN_TEST \ |
| -DSQLITE_OMIT_COMPILEOPTION_DIAGS \ |
| -DSQLITE_OMIT_LOAD_EXTENSION \ |
| -DSQLITE_DEFAULT_FILE_PERMISSIONS=0600 |
| |
| device_sqlite_flags := $(minimal_sqlite_flags) \ |
| -DSQLITE_ENABLE_ICU \ |
| -DUSE_PREAD64 \ |
| -Dfdatasync=fdatasync \ |
| -DHAVE_MALLOC_H=1 \ |
| -DHAVE_MALLOC_USABLE_SIZE |
| |
| common_src_files := sqlite3.c |
| |
| # the device library |
| include $(CLEAR_VARS) |
| |
| LOCAL_SRC_FILES := $(common_src_files) |
| |
| LOCAL_CFLAGS += $(device_sqlite_flags) |
| |
| LOCAL_SHARED_LIBRARIES := libdl |
| |
| LOCAL_MODULE:= libsqlite |
| |
| LOCAL_C_INCLUDES += $(call include-path-for, system-core)/cutils |
| |
| LOCAL_SHARED_LIBRARIES += liblog \ |
| libicuuc \ |
| libicui18n \ |
| libutils \ |
| liblog |
| |
| # include android specific methods |
| LOCAL_WHOLE_STATIC_LIBRARIES := libsqlite3_android |
| |
| include $(BUILD_SHARED_LIBRARY) |
| |
| |
| include $(CLEAR_VARS) |
| LOCAL_SRC_FILES := $(common_src_files) |
| LOCAL_LDLIBS += -lpthread -ldl |
| LOCAL_CFLAGS += $(minimal_sqlite_flags) |
| LOCAL_MODULE:= libsqlite |
| LOCAL_SHARED_LIBRARIES += libicuuc-host libicui18n-host |
| LOCAL_STATIC_LIBRARIES := liblog libutils libcutils |
| |
| # include android specific methods |
| LOCAL_WHOLE_STATIC_LIBRARIES := libsqlite3_android |
| include $(BUILD_HOST_SHARED_LIBRARY) |
| |
| ## |
| ## |
| ## Build the device command line tool sqlite3 |
| ## |
| ## |
| ifneq ($(SDK_ONLY),true) # SDK doesn't need device version of sqlite3 |
| |
| include $(CLEAR_VARS) |
| |
| LOCAL_SRC_FILES := shell.c |
| |
| LOCAL_C_INCLUDES := \ |
| $(LOCAL_PATH)/../android \ |
| $(call include-path-for, system-core)/cutils |
| |
| LOCAL_SHARED_LIBRARIES := libsqlite \ |
| libicuuc \ |
| libicui18n \ |
| liblog \ |
| libutils |
| |
| LOCAL_STATIC_LIBRARIES := libicuandroid_utils |
| |
| LOCAL_CFLAGS += $(device_sqlite_flags) |
| |
| LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) |
| |
| LOCAL_MODULE_TAGS := debug |
| |
| LOCAL_MODULE := sqlite3 |
| |
| include $(BUILD_EXECUTABLE) |
| |
| endif # !SDK_ONLY |
| |
| |
| ## |
| ## |
| ## Build the host command line tool sqlite3 |
| ## |
| ## |
| |
| include $(CLEAR_VARS) |
| |
| LOCAL_SRC_FILES := $(common_src_files) shell.c |
| LOCAL_CFLAGS += $(minimal_sqlite_flags) \ |
| -DNO_ANDROID_FUNCS=1 |
| |
| # sqlite3MemsysAlarm uses LOG() |
| LOCAL_STATIC_LIBRARIES += liblog |
| |
| LOCAL_LDLIBS_darwin += -lpthread -ldl |
| LOCAL_LDLIBS_linux += -lpthread -ldl |
| |
| LOCAL_MODULE_HOST_OS := darwin linux windows |
| |
| LOCAL_MODULE := sqlite3 |
| |
| include $(BUILD_HOST_EXECUTABLE) |
| |
| # Build a minimal version of sqlite3 without any android specific |
| # features against the NDK. This is used by libcore's JDBC related |
| # unit tests. |
| include $(CLEAR_VARS) |
| LOCAL_SRC_FILES := $(common_src_files) |
| LOCAL_CFLAGS += $(minimal_sqlite_flags) |
| LOCAL_MODULE:= libsqlite_static_minimal |
| LOCAL_SDK_VERSION := 23 |
| include $(BUILD_STATIC_LIBRARY) |
| |
| # Same as libsqlite_static_minimal, except that this is for the host. |
| include $(CLEAR_VARS) |
| LOCAL_SRC_FILES := $(common_src_files) |
| LOCAL_CFLAGS += $(minimal_sqlite_flags) |
| LOCAL_MODULE:= libsqlite_static_minimal |
| include $(BUILD_HOST_STATIC_LIBRARY) |