diff --git a/Makefile b/Makefile index 6e76f2774..20d571d10 100644 --- a/Makefile +++ b/Makefile @@ -280,19 +280,33 @@ $(SQLITE_BASENAME).zip: #Build targets prepare-sources: build-ffmpeg build-x264 prepare-ilbc build-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) \ - BELLESIP_VERSION=$(BELLESIP_VERSION) BUILD_OPUS=$(BUILD_OPUS) BUILD_VIDEO=$(BUILD_VIDEO) +GENERATE_OPTIONS = NDK_DEBUG=$(NDK_DEBUG) BUILD_FOR_X86=$(BUILD_FOR_X86) \ + BUILD_AMRNB=$(BUILD_AMRNB) BUILD_AMRWB=$(BUILD_AMRWB) BUILD_SILK=$(BUILD_SILK) BUILD_G729=$(BUILD_G729) BUILD_OPUS=$(BUILD_OPUS) \ + BUILD_VIDEO=$(BUILD_VIDEO) BUILD_X264=$(BUILD_X264) \ + BUILD_UPNP=$(BUILD_UPNP) BUILD_GPLV3_ZRTP=$(BUILD_GPLV3_ZRTP) BUILD_WEBRTC_AECM=$(BUILD_WEBRTC_AECM) + +LIBLINPHONE_OPTIONS = $(GENERATE_OPTIONS) \ + LINPHONE_VERSION=$(LINPHONE_VERSION) BELLESIP_VERSION=$(BELLESIP_VERSION) USE_JAVAH=$(USE_JAVAH) \ + BUILD_REMOTE_PROVISIONING=$(BUILD_REMOTE_PROVISIONING) BUILD_TUNNEL=$(BUILD_TUNNEL) BUILD_TLS=$(BUILD_TLS) BUILD_SQLITE=$(BUILD_SQLITE) + +MEDIASTREAMER2_OPTIONS = $(GENERATE_OPTIONS) BUILD_MEDIASTREAMER2_SDK=1 generate-libs: prepare-sources javah $(NDK_PATH)/ndk-build $(LIBLINPHONE_OPTIONS) -j$(NUMCPUS) +generate-mediastreamer2-libs: prepare-sources + @cd $(TOPDIR)/submodules/linphone/mediastreamer2/java && \ + $(NDK_PATH)/ndk-build $(MEDIASTREAMER2_OPTIONS) -j$(NUMCPUS) + update-project: $(SDK_PATH)/android update project --path . --target $(ANDROID_MOST_RECENT_TARGET) $(SDK_PATH)/android update project --path liblinphone_tester --target $(ANDROID_MOST_RECENT_TARGET) +update-mediastreamer2-project: + @cd $(TOPDIR)/submodules/linphone/mediastreamer2/java && \ + $(SDK_PATH)/android update project --path . --target $(ANDROID_MOST_RECENT_TARGET) + liblinphone_tester: prepare-sources prepare-cunit prepare-liblinphone_tester javah $(NDK_PATH)/ndk-build -C liblinphone_tester $(LIBLINPHONE_OPTIONS) -j$(NUMCPUS) @@ -304,6 +318,12 @@ generate-apk: generate-libs echo "version.name=$(LINPHONE_ANDROID_DEBUG_VERSION)" > default.properties ant debug +generate-mediastreamer2-apk: generate-mediastreamer2-libs + @cd $(TOPDIR)/submodules/linphone/mediastreamer2/java && \ + ant partial-clean && \ + echo "version.name=$(LINPHONE_ANDROID_DEBUG_VERSION)" > default.properties && \ + ant debug + install-apk: ant installd @@ -330,6 +350,8 @@ run-tests: clean-ndk-build: $(NDK_PATH)/ndk-build clean $(LIBLINPHONE_OPTIONS) ant clean + @cd $(TOPDIR)/submodules/linphone/mediastreamer2/java && \ + ant clean clean: clean-ndk-build @@ -340,3 +362,8 @@ veryclean: clean clean-ffmpeg clean-x264 clean-vpx generate-sdk: generate-apk ant liblinphone-sdk +linphone-sdk: generate-sdk + +mediastreamer2-sdk: update-mediastreamer2-project generate-mediastreamer2-apk + @cd $(TOPDIR)/submodules/linphone/mediastreamer2/java && \ + ant mediastreamer2-sdk diff --git a/README b/README index d4f3dd47d..1b6e194c4 100644 --- a/README +++ b/README @@ -11,7 +11,9 @@ To build liblinphone for Android, you must: 4) To install the generated apk into a plugged device, run $ make install 5) (Optional) To generate a liblinphone SDK zip containing a full jar and native libraries, run - $ make generate-sdk + $ make linphone-sdk +6) (Optional) To generate a libmediastreamer2 SDK zip containing a full jar and native libraries, run + $ make mediastreamer2-sdk diff --git a/jni/Android.mk b/jni/Android.mk index 5129999cc..b4cc545ee 100755 --- a/jni/Android.mk +++ b/jni/Android.mk @@ -50,9 +50,11 @@ include $(linphone-root-dir)/submodules/externals/build/speex/Android.mk # Gsm include $(linphone-root-dir)/submodules/externals/build/gsm/Android.mk +ifeq ($(BUILD_MEDIASTREAMER2_SDK), 0) include $(linphone-root-dir)/submodules/externals/build/polarssl/Android.mk include $(linphone-root-dir)/submodules/externals/build/antlr3/Android.mk include $(linphone-root-dir)/submodules/belle-sip/build/android/Android.mk +endif diff --git a/jni/Application.mk b/jni/Application.mk index cae48dba9..a70c47849 100644 --- a/jni/Application.mk +++ b/jni/Application.mk @@ -1,7 +1,15 @@ APP_PROJECT_PATH := $(call my-dir)/../ -APP_MODULES :=libspeex libgsm libortp antlr3 libbellesip libmediastreamer2 liblinphone liblpxml2 APP_STL := stlport_static +ifeq ($(BUILD_MEDIASTREAMER2_SDK),) +BUILD_MEDIASTREAMER2_SDK=0 +endif + +APP_MODULES :=libspeex libgsm libortp libmediastreamer2 +ifeq ($(BUILD_MEDIASTREAMER2_SDK), 0) +APP_MODULES += antlr3 libbellesip liblinphone liblpxml2 +endif + #default values: ifeq ($(BUILD_AMRNB),) @@ -28,6 +36,7 @@ ifeq ($(BUILD_VIDEO),) BUILD_VIDEO=1 endif +ifeq ($(BUILD_MEDIASTREAMER2_SDK), 0) #sqlite ifeq ($(BUILD_SQLITE),1) APP_MODULES += liblinsqlite @@ -41,6 +50,7 @@ endif ifeq ($(BUILD_TLS),1) APP_MODULES +=polarssl endif +endif ifeq ($(BUILD_VIDEO),1) APP_MODULES += libavutil-linphone libavcodec-linphone libswscale-linphone @@ -85,6 +95,7 @@ APP_MODULES += libwebrtc_system_wrappers libwebrtc_spl libwebrtc_apm_utility lib APP_MODULES += libwebrtc_spl_neon libwebrtc_aecm_neon endif +ifeq ($(BUILD_MEDIASTREAMER2_SDK), 0) ifeq ($(RING),yes) APP_MODULES += libring endif @@ -92,6 +103,7 @@ endif ifeq ($(BUILD_TUNNEL), 1) APP_MODULES += libtunnelclient endif +endif ifeq ($(BUILD_GPLV3_ZRTP), 1) APP_MODULES += libcrypto-linphone libssl-linphone diff --git a/submodules/linphone b/submodules/linphone index 08d5cbbe2..20b887e72 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 08d5cbbe2c5bb72b3c9c210afc28b853b041941c +Subproject commit 20b887e7286fa49c65d2f53e246ba5f52a89e6bf