17790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project##
27790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project##
37790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project## Build the library
47790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project##
57790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project##
67790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
77790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source ProjectLOCAL_PATH:= $(call my-dir)
87790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
990f23688416d9f4e1e5d0128dca5f26404b6898eJesse Wilson# NOTE the following flags,
1090f23688416d9f4e1e5d0128dca5f26404b6898eJesse Wilson#   SQLITE_TEMP_STORE=3 causes all TEMP files to go into RAM. and thats the behavior we want
1190f23688416d9f4e1e5d0128dca5f26404b6898eJesse Wilson#   SQLITE_ENABLE_FTS3   enables usage of FTS3 - NOT FTS1 or 2.
1290f23688416d9f4e1e5d0128dca5f26404b6898eJesse Wilson#   SQLITE_DEFAULT_AUTOVACUUM=1  causes the databases to be subject to auto-vacuum
1390ed05d921d6ed7f12012d9786d53f57fafee51aJeff Browncommon_sqlite_flags := \
1490ed05d921d6ed7f12012d9786d53f57fafee51aJeff Brown	-DNDEBUG=1 \
1590ed05d921d6ed7f12012d9786d53f57fafee51aJeff Brown	-DHAVE_USLEEP=1 \
169e7798db1bf08daf62d97021a5cf1609ee3b81d3Jeff Brown	-DSQLITE_HAVE_ISNAN \
1790ed05d921d6ed7f12012d9786d53f57fafee51aJeff Brown	-DSQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576 \
189e7798db1bf08daf62d97021a5cf1609ee3b81d3Jeff Brown	-DSQLITE_THREADSAFE=2 \
1990ed05d921d6ed7f12012d9786d53f57fafee51aJeff Brown	-DSQLITE_TEMP_STORE=3 \
202d758ba484351cd86f3f551c3a788255d2e8d9d0Jeff Brown	-DSQLITE_POWERSAFE_OVERWRITE=1 \
219e7798db1bf08daf62d97021a5cf1609ee3b81d3Jeff Brown	-DSQLITE_DEFAULT_FILE_FORMAT=4 \
229e7798db1bf08daf62d97021a5cf1609ee3b81d3Jeff Brown	-DSQLITE_DEFAULT_AUTOVACUUM=1 \
239e7798db1bf08daf62d97021a5cf1609ee3b81d3Jeff Brown	-DSQLITE_ENABLE_MEMORY_MANAGEMENT=1 \
2490ed05d921d6ed7f12012d9786d53f57fafee51aJeff Brown	-DSQLITE_ENABLE_FTS3 \
2590ed05d921d6ed7f12012d9786d53f57fafee51aJeff Brown	-DSQLITE_ENABLE_FTS3_BACKWARDS \
269e7798db1bf08daf62d97021a5cf1609ee3b81d3Jeff Brown	-DSQLITE_ENABLE_FTS4 \
279e7798db1bf08daf62d97021a5cf1609ee3b81d3Jeff Brown	-DSQLITE_OMIT_BUILTIN_TEST \
289e7798db1bf08daf62d97021a5cf1609ee3b81d3Jeff Brown	-DSQLITE_OMIT_COMPILEOPTION_DIAGS \
29f7a94ad459bc09a49a19c6b03c32d28843d5e6d7Geremy Condra	-DSQLITE_OMIT_LOAD_EXTENSION \
30ac0e0d5f866fbce0ebf00d0ddd615464849aa83bBen Cheng	-DSQLITE_DEFAULT_FILE_PERMISSIONS=0600
311c9f731c5a080b9b26a36b58da954b793ad3cd3bVasu Nori
32399dce677c821a43476eac5e07da340669d82321Jeff Browndevice_sqlite_flags := $(common_sqlite_flags) \
33399dce677c821a43476eac5e07da340669d82321Jeff Brown    -DSQLITE_ENABLE_ICU \
34399dce677c821a43476eac5e07da340669d82321Jeff Brown    -DUSE_PREAD64 \
35399dce677c821a43476eac5e07da340669d82321Jeff Brown    -Dfdatasync=fdatasync \
36399dce677c821a43476eac5e07da340669d82321Jeff Brown    -DHAVE_MALLOC_USABLE_SIZE
37399dce677c821a43476eac5e07da340669d82321Jeff Brown
38399dce677c821a43476eac5e07da340669d82321Jeff Brownhost_sqlite_flags := $(common_sqlite_flags)
39399dce677c821a43476eac5e07da340669d82321Jeff Brown
407790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Projectcommon_src_files := sqlite3.c
417790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
427790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project# the device library
437790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Projectinclude $(CLEAR_VARS)
447790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
457790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source ProjectLOCAL_SRC_FILES := $(common_src_files)
467790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
47399dce677c821a43476eac5e07da340669d82321Jeff BrownLOCAL_CFLAGS += $(device_sqlite_flags)
487790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
497790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source ProjectLOCAL_SHARED_LIBRARIES := libdl
507790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
517790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source ProjectLOCAL_MODULE:= libsqlite
52399dce677c821a43476eac5e07da340669d82321Jeff Brown
53399dce677c821a43476eac5e07da340669d82321Jeff BrownLOCAL_C_INCLUDES += \
54399dce677c821a43476eac5e07da340669d82321Jeff Brown    $(call include-path-for, system-core)/cutils \
55e473f2fc6652e4c92c1045e818cb64e5c554ab04Elliott Hughes    external/icu/icu4c/source/i18n \
56e473f2fc6652e4c92c1045e818cb64e5c554ab04Elliott Hughes    external/icu/icu4c/source/common
57399dce677c821a43476eac5e07da340669d82321Jeff Brown
587790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source ProjectLOCAL_SHARED_LIBRARIES += liblog \
597790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project            libicuuc \
60e919af569c13d7445daf20cb06867e186afba92aDaisuke Miyakawa            libicui18n \
6175d4463944877c09adad449d883010e3ae45564eYing Wang            libutils \
6275d4463944877c09adad449d883010e3ae45564eYing Wang            liblog
637790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
647790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project# include android specific methods
657790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source ProjectLOCAL_WHOLE_STATIC_LIBRARIES := libsqlite3_android
667790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
677790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Projectinclude $(BUILD_SHARED_LIBRARY)
687790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
6990f23688416d9f4e1e5d0128dca5f26404b6898eJesse Wilson
70f3a7b1a20e7554218f89f5cb88d121bb509c4f4dIan Rogersinclude $(CLEAR_VARS)
71f3a7b1a20e7554218f89f5cb88d121bb509c4f4dIan RogersLOCAL_SRC_FILES := $(common_src_files)
72f3a7b1a20e7554218f89f5cb88d121bb509c4f4dIan RogersLOCAL_LDLIBS += -lpthread -ldl
73e136f298d5e86a0bd995d998692bd2a6cdefcc3dIan RogersLOCAL_CFLAGS += $(host_sqlite_flags)
74f3a7b1a20e7554218f89f5cb88d121bb509c4f4dIan RogersLOCAL_MODULE:= libsqlite
75f3a7b1a20e7554218f89f5cb88d121bb509c4f4dIan RogersLOCAL_SHARED_LIBRARIES += libicuuc-host libicui18n-host
76f3a7b1a20e7554218f89f5cb88d121bb509c4f4dIan RogersLOCAL_STATIC_LIBRARIES := liblog libutils libcutils
7790f23688416d9f4e1e5d0128dca5f26404b6898eJesse Wilson
78f3a7b1a20e7554218f89f5cb88d121bb509c4f4dIan Rogers# include android specific methods
79f3a7b1a20e7554218f89f5cb88d121bb509c4f4dIan RogersLOCAL_WHOLE_STATIC_LIBRARIES := libsqlite3_android
80f3a7b1a20e7554218f89f5cb88d121bb509c4f4dIan Rogersinclude $(BUILD_HOST_SHARED_LIBRARY)
8190f23688416d9f4e1e5d0128dca5f26404b6898eJesse Wilson
827790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project##
837790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project##
847790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project## Build the device command line tool sqlite3
857790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project##
867790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project##
877790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Projectifneq ($(SDK_ONLY),true)  # SDK doesn't need device version of sqlite3
887790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
897790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Projectinclude $(CLEAR_VARS)
907790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
917790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source ProjectLOCAL_SRC_FILES := shell.c
927790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
93399dce677c821a43476eac5e07da340669d82321Jeff BrownLOCAL_C_INCLUDES := \
94399dce677c821a43476eac5e07da340669d82321Jeff Brown    $(LOCAL_PATH)/../android \
95399dce677c821a43476eac5e07da340669d82321Jeff Brown    $(call include-path-for, system-core)/cutils \
96399dce677c821a43476eac5e07da340669d82321Jeff Brown    external/icu4c/i18n \
97399dce677c821a43476eac5e07da340669d82321Jeff Brown    external/icu4c/common
987790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
991c9f731c5a080b9b26a36b58da954b793ad3cd3bVasu NoriLOCAL_SHARED_LIBRARIES := libsqlite \
1001c9f731c5a080b9b26a36b58da954b793ad3cd3bVasu Nori            libicuuc \
1011c9f731c5a080b9b26a36b58da954b793ad3cd3bVasu Nori            libicui18n \
1021c9f731c5a080b9b26a36b58da954b793ad3cd3bVasu Nori            libutils
1037790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
104399dce677c821a43476eac5e07da340669d82321Jeff BrownLOCAL_CFLAGS += $(device_sqlite_flags)
1057790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
1067790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source ProjectLOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
1077790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
108b7743da3573c9fa0a726181d8f4cd7190908f27dThe Android Open Source ProjectLOCAL_MODULE_TAGS := debug
1097790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
1107790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source ProjectLOCAL_MODULE := sqlite3
1117790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
1127790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Projectinclude $(BUILD_EXECUTABLE)
1137790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
1147790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Projectendif # !SDK_ONLY
1157790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
1167790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
1177790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project##
1187790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project##
1197790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project## Build the host command line tool sqlite3
1207790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project##
1217790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project##
1227790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
1237790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Projectinclude $(CLEAR_VARS)
1247790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
1257790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source ProjectLOCAL_SRC_FILES := $(common_src_files) shell.c
1267790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
127399dce677c821a43476eac5e07da340669d82321Jeff BrownLOCAL_CFLAGS += $(host_sqlite_flags) \
128399dce677c821a43476eac5e07da340669d82321Jeff Brown    -DNO_ANDROID_FUNCS=1
1297790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
1307790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project# sqlite3MemsysAlarm uses LOG()
1317790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source ProjectLOCAL_STATIC_LIBRARIES += liblog
1327790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
13371f6135e246c60c5ded00d36a0aa978521292a5eRaphaelifeq ($(strip $(USE_MINGW)),)
134e1542198c8ea4d244fbd7e97c22b02abff1ca850Alexey TarasovLOCAL_LDLIBS += -lpthread
135e1542198c8ea4d244fbd7e97c22b02abff1ca850Alexey Tarasovifneq ($(HOST_OS),freebsd)
136e1542198c8ea4d244fbd7e97c22b02abff1ca850Alexey TarasovLOCAL_LDLIBS += -ldl
137e1542198c8ea4d244fbd7e97c22b02abff1ca850Alexey Tarasovendif
13871f6135e246c60c5ded00d36a0aa978521292a5eRaphaelendif
1397790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
1407790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source ProjectLOCAL_MODULE := sqlite3
1417790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Project
1427790ef5367fe6731048c3e3a1c067f94b321cb4dThe Android Open Source Projectinclude $(BUILD_HOST_EXECUTABLE)
143