Android.mk 3.63 KB
Newer Older
1 2 3 4 5 6 7 8
##
##
## Build the library
##
##

LOCAL_PATH:= $(call my-dir)

9 10 11 12
# 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
13
minimal_sqlite_flags := \
Jeff Brown's avatar
Jeff Brown committed
14
	-DNDEBUG=1 \
15
	-DHAVE_POSIX_FALLOCATE=1 \
Jeff Brown's avatar
Jeff Brown committed
16
	-DHAVE_USLEEP=1 \
17
	-DSQLITE_HAVE_ISNAN \
Jeff Brown's avatar
Jeff Brown committed
18
	-DSQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576 \
19
	-DSQLITE_THREADSAFE=2 \
Jeff Brown's avatar
Jeff Brown committed
20
	-DSQLITE_TEMP_STORE=3 \
21
	-DSQLITE_POWERSAFE_OVERWRITE=1 \
22 23 24
	-DSQLITE_DEFAULT_FILE_FORMAT=4 \
	-DSQLITE_DEFAULT_AUTOVACUUM=1 \
	-DSQLITE_ENABLE_MEMORY_MANAGEMENT=1 \
Jeff Brown's avatar
Jeff Brown committed
25 26
	-DSQLITE_ENABLE_FTS3 \
	-DSQLITE_ENABLE_FTS3_BACKWARDS \
27 28 29
	-DSQLITE_ENABLE_FTS4 \
	-DSQLITE_OMIT_BUILTIN_TEST \
	-DSQLITE_OMIT_COMPILEOPTION_DIAGS \
30
	-DSQLITE_OMIT_LOAD_EXTENSION \
31 32
	-DSQLITE_DEFAULT_FILE_PERMISSIONS=0600 \
	-DSQLITE_SECURE_DELETE
33

34
device_sqlite_flags := $(minimal_sqlite_flags) \
Jeff Brown's avatar
Jeff Brown committed
35 36 37
    -DSQLITE_ENABLE_ICU \
    -DUSE_PREAD64 \
    -Dfdatasync=fdatasync \
38
    -DHAVE_MALLOC_H=1 \
Jeff Brown's avatar
Jeff Brown committed
39 40
    -DHAVE_MALLOC_USABLE_SIZE

41 42 43 44 45 46 47
common_src_files := sqlite3.c

# the device library
include $(CLEAR_VARS)

LOCAL_SRC_FILES := $(common_src_files)

Jeff Brown's avatar
Jeff Brown committed
48
LOCAL_CFLAGS += $(device_sqlite_flags)
49 50 51 52

LOCAL_SHARED_LIBRARIES := libdl

LOCAL_MODULE:= libsqlite
Jeff Brown's avatar
Jeff Brown committed
53

54
LOCAL_C_INCLUDES += $(call include-path-for, system-core)/cutils
Jeff Brown's avatar
Jeff Brown committed
55

56 57
LOCAL_SHARED_LIBRARIES += liblog \
            libicuuc \
58
            libicui18n \
Ying Wang's avatar
Ying Wang committed
59 60
            libutils \
            liblog
61 62 63 64 65 66

# include android specific methods
LOCAL_WHOLE_STATIC_LIBRARIES := libsqlite3_android

include $(BUILD_SHARED_LIBRARY)

67

68 69 70
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(common_src_files)
LOCAL_LDLIBS += -lpthread -ldl
71
LOCAL_CFLAGS += $(minimal_sqlite_flags)
72 73 74
LOCAL_MODULE:= libsqlite
LOCAL_SHARED_LIBRARIES += libicuuc-host libicui18n-host
LOCAL_STATIC_LIBRARIES := liblog libutils libcutils
75

76 77 78
# include android specific methods
LOCAL_WHOLE_STATIC_LIBRARIES := libsqlite3_android
include $(BUILD_HOST_SHARED_LIBRARY)
79

80 81 82 83 84 85 86 87 88 89 90
##
##
## 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

Jeff Brown's avatar
Jeff Brown committed
91 92
LOCAL_C_INCLUDES := \
    $(LOCAL_PATH)/../android \
93
    $(call include-path-for, system-core)/cutils
94

95 96 97
LOCAL_SHARED_LIBRARIES := libsqlite \
            libicuuc \
            libicui18n \
98
            liblog \
99
            libutils
100

101 102
LOCAL_STATIC_LIBRARIES := libicuandroid_utils

Jeff Brown's avatar
Jeff Brown committed
103
LOCAL_CFLAGS += $(device_sqlite_flags)
104 105 106

LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)

107
LOCAL_MODULE_TAGS := debug
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124

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
125
LOCAL_CFLAGS += $(minimal_sqlite_flags) \
Jeff Brown's avatar
Jeff Brown committed
126
    -DNO_ANDROID_FUNCS=1
127 128 129 130

# sqlite3MemsysAlarm uses LOG()
LOCAL_STATIC_LIBRARIES += liblog

131 132 133 134
LOCAL_LDLIBS_darwin += -lpthread -ldl
LOCAL_LDLIBS_linux += -lpthread -ldl

LOCAL_MODULE_HOST_OS := darwin linux windows
135 136 137 138

LOCAL_MODULE := sqlite3

include $(BUILD_HOST_EXECUTABLE)
139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155

# 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)