From 4f888a591962ab43ac576ef8654d9b2f2c0821e5 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 8 Aug 2013 12:45:47 +0200 Subject: [PATCH] Added sqlite compilation to liblinphone --- .gitignore | 2 ++ Makefile | 28 +++++++++++++++++--- README | 1 + jni/Android.mk | 5 ++++ jni/Application.mk | 7 ++++- submodules/externals/build/sqlite/Android.mk | 10 +++++++ submodules/linphone | 2 +- 7 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 submodules/externals/build/sqlite/Android.mk diff --git a/.gitignore b/.gitignore index 10d46ec48..1ab656636 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,5 @@ tests/build.xml res/.DS_Store bc-android.keystore res/raw/lpconfig.xsd +res/raw/rootca.pem +submodules/externals/sqlite3/sqlite3.* diff --git a/Makefile b/Makefile index 1ab775c71..ab7a75fd1 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,9 @@ PATCH_FFMPEG=$(shell cd submodules/externals/ffmpeg && git status | grep neon) LINPHONE_VERSION=$(shell cd submodules/linphone && git describe --always) LINPHONE_ANDROID_DEBUG_VERSION=$(shell git describe --always) ANDROID_MOST_RECENT_TARGET=$(shell android list target -c | grep android | tail -n1) +SQLITE_VERSION=3071700 +SQLITE_BASENAME=sqlite-amalgamation-$(SQLITE_VERSION) +SQLITE_URL=http://www.sqlite.org/2013/$(SQLITE_BASENAME).zip NDK_DEBUG=0 BUILD_UPNP=1 @@ -23,6 +26,7 @@ BUILD_FOR_X86=1 USE_JAVAH=1 LINPHONE_VIDEO=1 BUILD_TLS=1 +BUILD_SQLITE=1 # Checks CHECK_MSG=$(shell ./check_tools.sh) @@ -106,6 +110,7 @@ $(TOPDIR)/submodules/externals/srtp/config.h : $(TOPDIR)/submodules/externals/bu prepare-srtp: $(TOPDIR)/submodules/externals/srtp/config.h +#ms2 prepare-mediastreamer2: @cd $(TOPDIR)/submodules/linphone/mediastreamer2/src/ && \ eval `cat Makefile.am | grep xxd | grep yuv2rgb.vs | sed 's/\$$(abs_builddir)/./'` && \ @@ -113,6 +118,7 @@ prepare-mediastreamer2: if ! [ -e yuv2rgb.vs.h ]; then echo "yuv2rgb.vs.h creation error (do you have 'xxd' application installed ?)"; exit 1; fi && \ if ! [ -e yuv2rgb.fs.h ]; then echo "yuv2rgb.fs.h creation error (do you have 'xxd' application installed ?)"; exit 1; fi +#antlr3 ANLTR3_SRC_DIR=$(TOPDIR)/submodules/externals/antlr3/runtime/C/include/ ANTLR3_BUILD_DIR=$(ANTLR3_SRC_DIR) $(ANLTR3_SRC_DIR)/antlr3config.h: $(TOPDIR)/submodules/externals/build/antlr3/antlr3config.h @@ -122,10 +128,12 @@ prepare-antlr3: $(ANLTR3_SRC_DIR)/antlr3config.h %.tokens: %.g $(ANTLR) -make -fo $(dir $^) $^ +#Belle-sip BELLESIP_SRC_DIR=$(TOPDIR)/submodules/belle-sip BELLESIP_BUILD_DIR=$(BELLESIP_SRC_DIR) prepare-belle-sip: $(BELLESIP_SRC_DIR)/src/belle_sip_message.tokens $(BELLESIP_SRC_DIR)/src/belle_sdp.tokens +#CUnit prepare-cunit: $(TOPDIR)/submodules/externals/cunit/CUnit/Headers/*.h [ -d $(TOPDIR)/submodules/externals/build/cunit/CUnit ] || mkdir $(TOPDIR)/submodules/externals/build/cunit/CUnit cp $^ $(TOPDIR)/submodules/externals/build/cunit/CUnit @@ -136,11 +144,25 @@ $(TOPDIR)/res/raw/rootca.pem: prepare-liblinphone_tester: $(TOPDIR)/submodules/linphone/tester/*_lrc $(TOPDIR)/submodules/linphone/tester/*_rc $(TOPDIR)/submodules/linphone/tester/tester_hosts $(TOPDIR)/submodules/linphone/tester/certificates/* $(TOPDIR)/res/raw/rootca.pem for file in $^; do \ cp -f $$file $(TOPDIR)/liblinphone_tester/res/raw/. \ - ;done + ;done -prepare-sources: prepare-ffmpeg prepare-ilbc prepare-vpx prepare-silk prepare-srtp prepare-mediastreamer2 prepare-antlr3 prepare-belle-sip $(TOPDIR)/res/raw/rootca.pem +#SQLite3 +SQLITE_SRC_DIR=$(TOPDIR)/submodules/externals/sqlite3 +SQLITE_BUILD_DIR=$(SQLITE_SRC_DIR) +prepare-sqlite3: $(SQLITE_BUILD_DIR)/sqlite3.c -LIBLINPHONE_OPTIONS = NDK_DEBUG=$(NDK_DEBUG) LINPHONE_VERSION=$(LINPHONE_VERSION) BUILD_UPNP=$(BUILD_UPNP) BUILD_REMOTE_PROVISIONING=$(BUILD_REMOTE_PROVISIONING) BUILD_X264=$(BUILD_X264) BUILD_AMRNB=$(BUILD_AMRNB) BUILD_AMRWB=$(BUILD_AMRWB) BUILD_GPLV3_ZRTP=$(BUILD_GPLV3_ZRTP) BUILD_SILK=$(BUILD_SILK) BUILD_G729=$(BUILD_G729) BUILD_TUNNEL=$(BUILD_TUNNEL) BUILD_WEBRTC_AECM=$(BUILD_WEBRTC_AECM) BUILD_FOR_X86=$(BUILD_FOR_X86) USE_JAVAH=$(USE_JAVAH) BUILD_TLS=$(BUILD_TLS) +$(SQLITE_BUILD_DIR)/sqlite3.c: $(SQLITE_BASENAME).zip + unzip -oq "$<" "*/sqlite3.?" -d $(SQLITE_BUILD_DIR)/ + mv "$(SQLITE_BUILD_DIR)/$(SQLITE_BASENAME)/sqlite3".? $(SQLITE_BUILD_DIR)/ + rmdir "$(SQLITE_BUILD_DIR)/$(SQLITE_BASENAME)/" + +$(SQLITE_BASENAME).zip: + curl -sO $(SQLITE_URL) + +#Build targets +prepare-sources: prepare-ffmpeg prepare-ilbc prepare-vpx prepare-silk prepare-srtp prepare-mediastreamer2 prepare-antlr3 prepare-belle-sip $(TOPDIR)/res/raw/rootca.pem prepare-sqlite3 + +LIBLINPHONE_OPTIONS = NDK_DEBUG=$(NDK_DEBUG) LINPHONE_VERSION=$(LINPHONE_VERSION) BUILD_UPNP=$(BUILD_UPNP) BUILD_REMOTE_PROVISIONING=$(BUILD_REMOTE_PROVISIONING) BUILD_X264=$(BUILD_X264) BUILD_AMRNB=$(BUILD_AMRNB) BUILD_AMRWB=$(BUILD_AMRWB) BUILD_GPLV3_ZRTP=$(BUILD_GPLV3_ZRTP) BUILD_SILK=$(BUILD_SILK) BUILD_G729=$(BUILD_G729) BUILD_TUNNEL=$(BUILD_TUNNEL) BUILD_WEBRTC_AECM=$(BUILD_WEBRTC_AECM) BUILD_FOR_X86=$(BUILD_FOR_X86) USE_JAVAH=$(USE_JAVAH) BUILD_TLS=$(BUILD_TLS) BUILD_SQLITE=$(BUILD_SQLITE) generate-libs: prepare-sources javah $(NDK_PATH)/ndk-build $(LIBLINPHONE_OPTIONS) -j$(NUMCPUS) diff --git a/README b/README index 19a458a83..919ecb58d 100644 --- a/README +++ b/README @@ -38,5 +38,6 @@ BUILD_TUNNEL 0 (don't build tunnel), 1 (build tunnel) [requires a tunne BUILD_WEBRTC_AECM 0 (don't build echo canceler), 1 (build echo canceler) | 1 USE_JAVAH 0 (don't generate header), 1 (generate header for linphone_core_jni) [used to check errors at liblinphone compilation] | 1 BUILD_FOR_X86 0 (don't generate liblinphone libraries for x86 architecture), 1 (build liblinphone libraries for x86 architecture) | 1 +BUILD_SQLITE 0 (don't build sqlite3), 1 (build sqlite3) [used to store chat messages inside liblinphone] | 1 If you encounter troubles with the make clean target and you are using the 8e android ndk, the solution can be found here: https://groups.google.com/forum/?fromgroups=#!topic/android-ndk/3wIbb-h3nDU diff --git a/jni/Android.mk b/jni/Android.mk index 0902fb002..c97fc7d7b 100755 --- a/jni/Android.mk +++ b/jni/Android.mk @@ -36,6 +36,11 @@ SRTP_C_INCLUDE= \ endif #endif +#sqlite +ifeq ($(BUILD_SQLITE),1) +include $(linphone-root-dir)/submodules/externals/build/sqlite/Android.mk +endif + #libupnp ifeq ($(BUILD_UPNP),1) include $(linphone-root-dir)/submodules/externals/build/libupnp/Android.mk diff --git a/jni/Application.mk b/jni/Application.mk index 82ee19380..ceb1024cc 100644 --- a/jni/Application.mk +++ b/jni/Application.mk @@ -1,7 +1,12 @@ APP_PROJECT_PATH := $(call my-dir)/../ -APP_MODULES :=libspeex libgsm libortp antlr3 libbellesip libmediastreamer2 liblinphone liblinphonenoneon libneon liblpxml2 +APP_MODULES :=libspeex libgsm libortp antlr3 libbellesip libmediastreamer2 liblinphone liblinphonenoneon libneon liblpxml2 liblinsqlite APP_STL := stlport_static +#sqlite +ifeq ($(BUILD_SQLITE),1) +APP_MODULES += liblinsqlite +endif + #uPnp ifeq ($(BUILD_UPNP),1) APP_MODULES += libupnp diff --git a/submodules/externals/build/sqlite/Android.mk b/submodules/externals/build/sqlite/Android.mk new file mode 100644 index 000000000..f163d55eb --- /dev/null +++ b/submodules/externals/build/sqlite/Android.mk @@ -0,0 +1,10 @@ +LOCAL_PATH:= $(call my-dir)/../../sqlite3 +include $(CLEAR_VARS) + +LOCAL_SRC_FILES := \ + sqlite3.c + +LOCAL_MODULE:= liblinsqlite + +include $(BUILD_STATIC_LIBRARY) + diff --git a/submodules/linphone b/submodules/linphone index 491294b27..9d3fb1200 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 491294b2794bfa6f60e80169fb44d028b3818c2a +Subproject commit 9d3fb120064b0d42048e3e14c0f0e1d6f4857a46