From 26fcba04d39ddda7ced0c113b149df155d1584ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grisez?= Date: Mon, 22 Sep 2014 14:31:41 +0200 Subject: [PATCH] Improve libmatroska2 building --- Makefile | 101 +++--------------- jni/Android.mk | 9 +- jni/Application.mk | 2 +- .../externals/build/libebml2/Android.mk | 7 -- .../externals/build/libmatroska/Android.mk | 69 +++++++++++- .../build/libmatroska/android_x86.build | 13 --- .../externals/build/libmatroska/config.h | 9 -- .../build/libmatroska/coremake_fix.patch | 38 ------- .../build/libmatroska/fix_libmatroska2.patch | 31 ++++++ submodules/linphone | 2 +- 10 files changed, 117 insertions(+), 164 deletions(-) delete mode 100644 submodules/externals/build/libebml2/Android.mk mode change 100755 => 100644 submodules/externals/build/libmatroska/Android.mk delete mode 100644 submodules/externals/build/libmatroska/android_x86.build delete mode 100644 submodules/externals/build/libmatroska/config.h delete mode 100644 submodules/externals/build/libmatroska/coremake_fix.patch create mode 100644 submodules/externals/build/libmatroska/fix_libmatroska2.patch diff --git a/Makefile b/Makefile index 5e46b1c5f..0aa205cdd 100644 --- a/Makefile +++ b/Makefile @@ -289,91 +289,6 @@ clean-vpx: rm -rf submodules/externals/build/libvpx/arm && \ rm -rf submodules/externals/build/libvpx/x86 -#libmatroska -ifeq ($(BUILD_VIDEO), 1) -ifeq ($(BUILD_MATROSKA),1) -BUILD_MATROSKA_DEPS=$(LIBEBML2_BUILD_DIR)/arm/libebml2.a $(LIBMATROSKA_BUILD_DIR)/arm/libmatroska2.a -ifeq ($(BUILD_FOR_X86), 1) -BUILD_MATROSKA_DEPS+=$(LIBEBML2_BUILD_DIR)/x86/libebml2.a $(LIBMATROSKA_BUILD_DIR)/x86/libmatroska2.a -endif #BUILD_FOR_X86 -BUILD_MATROSKA_DEPS += $(LIBEBML2_BUILD_DIR)/include $(LIBMATROSKA_BUILD_DIR)/include -endif #BUILD_MATROSKA -endif #BUILD_VIDEO -LIBMATROSKA_SRC_DIR=$(TOPDIR)/submodules/externals/libmatroska -LIBMATROSKA_BUILD_DIR=$(TOPDIR)/submodules/externals/build/libmatroska -LIBEBML2_BUILD_DIR=$(TOPDIR)/submodules/externals/build/libebml2 -COREMAKE=$(LIBMATROSKA_SRC_DIR)/corec/tools/coremake/coremake -HOST_ARCH=$(shell basename `find $(NDK_PATH)/prebuilt -name linux-*`) - -build-matroska: $(BUILD_MATROSKA_DEPS) - -$(LIBEBML2_BUILD_DIR)/arm/libebml2.a: $(LIBMATROSKA_SRC_DIR)/release/android_armv7/libebml2.a - mkdir -p $(LIBEBML2_BUILD_DIR)/arm - cp $< $@ - -$(LIBMATROSKA_BUILD_DIR)/arm/libmatroska2.a: $(LIBMATROSKA_SRC_DIR)/release/android_armv7/libmatroska2.a - mkdir -p $(LIBMATROSKA_BUILD_DIR)/arm - cp $< $@ - -$(LIBEBML2_BUILD_DIR)/x86/libebml2.a: $(LIBMATROSKA_SRC_DIR)/release/android_x86/libebml2.a - mkdir -p $(LIBEBML2_BUILD_DIR)/x86 - cp $< $@ - -$(LIBMATROSKA_BUILD_DIR)/x86/libmatroska2.a: $(LIBMATROSKA_SRC_DIR)/release/android_x86/libmatroska2.a - mkdir -p $(LIBMATROSKA_BUILD_DIR)/x86 - cp $< $@ - -$(LIBMATROSKA_SRC_DIR)/release/android_armv7/libebml2.a: $(LIBMATROSKA_SRC_DIR)/builded.txt - -$(LIBMATROSKA_SRC_DIR)/release/android_armv7/libmatroska2.a: $(LIBMATROSKA_SRC_DIR)/builded.txt - -$(LIBMATROSKA_SRC_DIR)/release/android_x86/libebml2.a: $(LIBMATROSKA_SRC_DIR)/builded.txt - -$(LIBMATROSKA_SRC_DIR)/release/android_x86/libmatroska2.a: $(LIBMATROSKA_SRC_DIR)/builded.txt - -$(LIBMATROSKA_SRC_DIR)/builded.txt: $(COREMAKE) $(LIBMATROSKA_SRC_DIR)/configure_config_h.txt $(LIBMATROSKA_SRC_DIR)/fix_coremake.txt - cd $(LIBMATROSKA_SRC_DIR) ; $(COREMAKE) android_armv7 -f $(LIBMATROSKA_SRC_DIR)/root.proj - make -C $(LIBMATROSKA_SRC_DIR) ebml2 - make -C $(LIBMATROSKA_SRC_DIR) matroska2 -ifeq ($(BUILD_FOR_X86), 1) - cd $(LIBMATROSKA_SRC_DIR) ; $(COREMAKE) android_x86 -f $(LIBMATROSKA_SRC_DIR)/root.proj - make -C $(LIBMATROSKA_SRC_DIR) ebml2 - make -C $(LIBMATROSKA_SRC_DIR) matroska2 -endif - touch $@ - -$(COREMAKE): - make -C $(LIBMATROSKA_SRC_DIR)/corec/tools/coremake - -$(LIBMATROSKA_SRC_DIR)/configure_config_h.txt: $(LIBMATROSKA_BUILD_DIR)/config.h - cp $(LIBMATROSKA_BUILD_DIR)/config.h $(LIBMATROSKA_SRC_DIR) - echo "#define COREMAKE_STATIC" >> $(LIBMATROSKA_SRC_DIR)/config.h - echo "#define COREMAKE_UNICODE" >> $(LIBMATROSKA_SRC_DIR)/config.h - echo "#define COREMAKE_CONFIG_HELPER" >> $(LIBMATROSKA_SRC_DIR)/config.h - echo "#define CONFIG_ANDROID_NDK $(NDK_PATH)" >> $(LIBMATROSKA_SRC_DIR)/config.h - echo "#define CONFIG_ANDROID_VERSION $(ANDROID_MOST_RECENT_TARGET)" >> $(LIBMATROSKA_SRC_DIR)/config.h - echo "#define CONFIG_ANDROID_PLATFORM $(HOST_ARCH)" >> $(LIBMATROSKA_SRC_DIR)/config.h - touch $@ - -$(LIBMATROSKA_SRC_DIR)/fix_coremake.txt: - cd $(LIBMATROSKA_SRC_DIR); patch -p0 < ../build/libmatroska/coremake_fix.patch - cp $(LIBMATROSKA_BUILD_DIR)/android_x86.build $(LIBMATROSKA_SRC_DIR)/corec/tools/coremake - touch $@ - -$(LIBEBML2_BUILD_DIR)/include: $(LIBMATROSKA_SRC_DIR)/libebml2/ebml $(LIBMATROSKA_SRC_DIR)/corec/corec $(LIBMATROSKA_BUILD_DIR)/config.h - mkdir -p $@ - cp -r $(LIBMATROSKA_SRC_DIR)/libebml2/ebml $(LIBMATROSKA_SRC_DIR)/corec/corec $@ - cp $(LIBMATROSKA_BUILD_DIR)/config.h $(LIBEBML2_BUILD_DIR)/include/corec - -$(LIBMATROSKA_BUILD_DIR)/include: $(LIBMATROSKA_SRC_DIR)/libmatroska2/matroska - mkdir -p $@ - cp -r $(LIBMATROSKA_SRC_DIR)/libmatroska2/matroska $@ - -clean-matroska: - rm -rf $(LIBMATROSKA_BUILD_DIR)/{arm,x86,include} - rm -rf $(LIBEBML2_BUILD_DIR)/{arm,x86,include} - cd $(LIBMATROSKA_SRC_DIR); $(COREMAKE) clean - rm -rf $(LIBMATROSKA_SRC_DIR)/builded.txt #SILK LIBMSSILK_SRC_DIR=$(TOPDIR)/submodules/mssilk @@ -466,8 +381,20 @@ $(SQLITE_BUILD_DIR)/sqlite3.c: $(SQLITE_BASENAME).zip $(SQLITE_BASENAME).zip: curl -sO $(SQLITE_URL) +#Matroska2 +MATROSKA_SRC_DIR=$(TOPDIR)/submodules/externals/libmatroska +MATROSKA_BUILD_DIR=$(TOPDIR)/submodules/externals/build/libmatroska +ifeq ($(BUILD_MATROSKA), 1) +prepare-matroska2: $(MATROSKA_SRC_DIR)/patch_applied.txt +else +prepare-matroska2: +endif + +$(MATROSKA_SRC_DIR)/patch_applied.txt: $(MATROSKA_BUILD_DIR)/fix_libmatroska2.patch + cd $(MATROSKA_SRC_DIR); patch -p1 < $<; touch $@ + #Build targets -prepare-sources: build-ffmpeg build-x264 build-openh264 prepare-ilbc build-vpx build-matroska prepare-silk prepare-srtp prepare-mediastreamer2 prepare-antlr3 prepare-belle-sip $(TOPDIR)/res/raw/rootca.pem prepare-sqlite3 +prepare-sources: build-ffmpeg build-x264 build-openh264 prepare-ilbc build-vpx prepare-silk prepare-srtp prepare-mediastreamer2 prepare-antlr3 prepare-belle-sip $(TOPDIR)/res/raw/rootca.pem prepare-sqlite3 prepare-matroska2 GENERATE_OPTIONS = NDK_DEBUG=$(NDK_DEBUG) BUILD_FOR_X86=$(BUILD_FOR_X86) \ @@ -552,7 +479,7 @@ clean-ndk-build: clean: clean-ndk-build ant clean -veryclean: clean clean-ffmpeg clean-x264 clean-openh264 clean-vpx clean-matroska +veryclean: clean clean-ffmpeg clean-x264 clean-openh264 clean-vpx .PHONY: clean install-apk run-linphone diff --git a/jni/Android.mk b/jni/Android.mk index 9c0309627..83d20958c 100755 --- a/jni/Android.mk +++ b/jni/Android.mk @@ -52,6 +52,11 @@ include $(linphone-root-dir)/submodules/externals/build/speex/Android.mk # Gsm include $(linphone-root-dir)/submodules/externals/build/gsm/Android.mk +# Matroska +ifeq ($(BUILD_MATROSKA), 1) +include $(linphone-root-dir)/submodules/externals/build/libmatroska/Android.mk +endif + 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 @@ -100,10 +105,6 @@ endif include $(linphone-root-dir)/submodules/externals/build/ffmpeg/Android.mk include $(linphone-root-dir)/submodules/externals/build/libvpx/Android.mk -ifeq ($(BUILD_MATROSKA), 1) -include $(linphone-root-dir)/submodules/externals/build/libebml2/Android.mk -include $(linphone-root-dir)/submodules/externals/build/libmatroska/Android.mk -endif endif #_BUILD_VIDEO diff --git a/jni/Application.mk b/jni/Application.mk index 69b5757bb..b9b66a9b9 100644 --- a/jni/Application.mk +++ b/jni/Application.mk @@ -66,7 +66,7 @@ ifeq ($(BUILD_OPENH264),1) APP_MODULES += libopenh264 libmsopenh264 endif ifeq ($(BUILD_MATROSKA), 1) -APP_MODULES += libebml2 libmatroska2 +APP_MODULES += libmatroska2 endif endif # BUILD_VIDEO diff --git a/submodules/externals/build/libebml2/Android.mk b/submodules/externals/build/libebml2/Android.mk deleted file mode 100644 index 418edf082..000000000 --- a/submodules/externals/build/libebml2/Android.mk +++ /dev/null @@ -1,7 +0,0 @@ -LOCAL_PATH:= $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_MODULE := libebml2 -LOCAL_SRC_FILES := $(TARGET_ARCH)/libebml2.a - -include $(PREBUILT_STATIC_LIBRARY) \ No newline at end of file diff --git a/submodules/externals/build/libmatroska/Android.mk b/submodules/externals/build/libmatroska/Android.mk old mode 100755 new mode 100644 index 8814d1a39..5b5e981c2 --- a/submodules/externals/build/libmatroska/Android.mk +++ b/submodules/externals/build/libmatroska/Android.mk @@ -1,7 +1,68 @@ -LOCAL_PATH:= $(call my-dir) +LOCAL_PATH:=$(call my-dir)/../../libmatroska + include $(CLEAR_VARS) -LOCAL_MODULE := libmatroska2 -LOCAL_SRC_FILES := $(TARGET_ARCH)/libmatroska2.a +LOCAL_SRC_FILES := \ + corec/corec/array/array.c \ + corec/corec/helpers/charconvert/charconvert_utf8.c \ + corec/corec/helpers/date/date_libc.c \ + corec/corec/helpers/file/bufstream.c \ + corec/corec/helpers/file/memstream.c \ + corec/corec/helpers/file/streams.c \ + corec/corec/helpers/file/tools.c \ + corec/corec/helpers/file/file_libc.c \ + corec/corec/helpers/file/stream_stdio.c \ + corec/corec/helpers/parser/parser2.c \ + corec/corec/helpers/parser/strtab.c \ + corec/corec/helpers/parser/strtypes.c \ + corec/corec/helpers/parser/dataheap.c \ + corec/corec/helpers/parser/buffer.c \ + corec/corec/helpers/parser/hotkey.c \ + corec/corec/helpers/parser/nodelookup.c \ + corec/corec/helpers/parser/urlpart.c \ + corec/corec/multithread/multithread_pthread.c \ + corec/corec/node/node.c \ + corec/corec/node/nodetree.c \ + corec/corec/str/str.c \ + corec/corec/str/str_linux.c -include $(PREBUILT_STATIC_LIBRARY) +LOCAL_C_INCLUDES := \ + $(LOCAL_PATH) \ + $(LOCAL_PATH)/corec + +LOCAL_SRC_FILES += \ + libebml2/ebmlbinary.c \ + libebml2/ebmlcrc.c \ + libebml2/ebmlcrc.h \ + libebml2/ebmldate.c \ + libebml2/ebmlelement.c \ + libebml2/ebmlmain.c \ + libebml2/ebmlmaster.c \ + libebml2/ebmlnumber.c \ + libebml2/ebmlstring.c \ + libebml2/ebmlvoid.c + +LOCAL_C_INCLUDES += \ + $(LOCAL_PATH)/libebml2 + +LOCAL_SRC_FILES += \ + libmatroska2/matroskablock.c \ + libmatroska2/matroskamain.c \ + libmatroska2/matroska_sem.c + +LOCAL_C_INCLUDES += \ + $(LOCAL_PATH)/libmatroska2 + +LOCAL_CFLAGS := \ + -DCOREC_PARSER \ + -DNDEBUG \ + -DCONFIG_EBML_WRITING \ + -DCONFIG_EBML_UNICODE \ + -DCONFIG_STDIO \ + -DCONFIG_FILEPOS_64 + + +LOCAL_MODULE := libmatroska2 + +include $(BUILD_STATIC_LIBRARY) + diff --git a/submodules/externals/build/libmatroska/android_x86.build b/submodules/externals/build/libmatroska/android_x86.build deleted file mode 100644 index 88b7ccd12..000000000 --- a/submodules/externals/build/libmatroska/android_x86.build +++ /dev/null @@ -1,13 +0,0 @@ -#define TARGARCH x86 -#define TARGARCH_ABI x86 -#define TARGOPTIM release -#define IX86 - -CCFLAGS += -O3 -m32 -march=i486 -msse -mmmx -Wno-multichar -fvisibility=hidden -fno-PIC -DRESOURCE_COREC -ANDROID_ABI += x86 -ANDROID_ARCH = arch-x86 -ANDROID_GCC_PREFIX = i686-linux-android- -ANDROID_GCC = x86-4.8 -ANDROID_GCC_LIB = gcc/i686-linux-android/4.8/libgcc.a - -#include "android.inc" diff --git a/submodules/externals/build/libmatroska/config.h b/submodules/externals/build/libmatroska/config.h deleted file mode 100644 index e1f7935e0..000000000 --- a/submodules/externals/build/libmatroska/config.h +++ /dev/null @@ -1,9 +0,0 @@ -#define CONFIG_EBML_WRITING -#define CONFIG_EBML_UNICODE -#define HAVE_EBML2 -#define CONFIG_ZLIB -#define CONFIG_MATROSKA2 -#define USE_PRECOMPILED_HEADERS -//#define CONFIG_DEBUGCHECKS -#define CONFIG_STDIO -#define CONFIG_FILEPOS_64 diff --git a/submodules/externals/build/libmatroska/coremake_fix.patch b/submodules/externals/build/libmatroska/coremake_fix.patch deleted file mode 100644 index 5d96ca429..000000000 --- a/submodules/externals/build/libmatroska/coremake_fix.patch +++ /dev/null @@ -1,38 +0,0 @@ ---- corec/tools/coremake/android_arm.inc -+++ corec/tools/coremake/android_arm.inc -@@ -7,8 +7,8 @@ - SFLAGS += -march=armv7-a - ANDROID_ABI += armeabi - ANDROID_ARCH = arch-arm --ANDROID_GCC_PREFIX = arm-eabi- --ANDROID_GCC = arm-eabi-4.4.0 --ANDROID_GCC_LIB = gcc/arm-eabi/4.4.0/libgcc.a -+ANDROID_GCC_PREFIX = arm-linux-androideabi- -+ANDROID_GCC = arm-linux-androideabi-4.8 -+ANDROID_GCC_LIB = gcc/arm-linux-androideabi/4.8/libgcc.a - - #include "android.inc" ---- corec/tools/coremake/android.inc -+++ corec/tools/coremake/android.inc -@@ -12,8 +12,8 @@ - - CONFIG - --ANDROID_LIBC_DIR = %(§CONFIG_ANDROID_NDK)/build/platforms/android-%(CONFIG_ANDROID_VERSION)/%(ANDROID_ARCH)/usr --ANDROID_GCC_DIR = %(§CONFIG_ANDROID_NDK)/build/prebuilt/%(CONFIG_ANDROID_PLATFORM)/%(ANDROID_GCC)/bin -+ANDROID_LIBC_DIR = %(§CONFIG_ANDROID_NDK)/platforms/%(CONFIG_ANDROID_VERSION)/%(ANDROID_ARCH)/usr -+ANDROID_GCC_DIR = %(§CONFIG_ANDROID_NDK)/toolchains/%(ANDROID_GCC)/prebuilt/%(CONFIG_ANDROID_PLATFORM)/bin - - IFNDEF CONFIG_ANDROID_NDK - ECHO Android NDK path not defined ! (CONFIG_ANDROID_NDK) ---- corec/tools/coremake/gcc_mak.inc -+++ corec/tools/coremake/gcc_mak.inc -@@ -85,7 +85,7 @@ - PRINTNL CCFLAGS += -include %(PRECOMPILED_HEADER) - ENDIF - IF %(OS_INCLUDE)!="" -- PRINTNL CCFLAGS += %(|OS_INCLUDE:%=-isystem '%') -+ PRINTNL CCFLAGS += %(OS_INCLUDE:%=-isystem '%') - ENDIF - PRINTNL CCFLAGS += %(DEFINE:%=-D%) -I . %(@INCLUDE:%=-I '%') %(@SYSINCLUDE:%=-I '%') %(@CONFIG_INCLUDE:%=-I '%') - IF %(CCFLAGS)!="" diff --git a/submodules/externals/build/libmatroska/fix_libmatroska2.patch b/submodules/externals/build/libmatroska/fix_libmatroska2.patch new file mode 100644 index 000000000..ab689c6e8 --- /dev/null +++ b/submodules/externals/build/libmatroska/fix_libmatroska2.patch @@ -0,0 +1,31 @@ +diff --git a/config.h b/config.h +index 8b74169..e69de29 100644 +--- a/config.h ++++ b/config.h +@@ -1,13 +0,0 @@ +-#define COREMAKE_STATIC +-#define COREMAKE_UNICODE +-#define CONFIG_EBML_WRITING +-#define CONFIG_EBML_UNICODE +-#define HAVE_EBML2 +-#define CONFIG_ZLIB +-#define CONFIG_MATROSKA2 +-#define USE_PRECOMPILED_HEADERS +-#define CONFIG_DEBUGCHECKS +-#define CONFIG_STDIO +-#define CONFIG_FILEPOS_64 +-#define COREMAKE_CONFIG_HELPER +-//#define CONFIG_DEBUG_LEAKS +diff --git a/corec/corec/helpers/parser/parser2.c b/corec/corec/helpers/parser/parser2.c +index 3126ae8..0d8512a 100644 +--- a/corec/corec/helpers/parser/parser2.c ++++ b/corec/corec/helpers/parser/parser2.c +@@ -2019,7 +2019,7 @@ NOINLINE bool_t ExprIsTokenEx(const tchar_t** p,const tchar_t* Name,...) + + NOINLINE bool_t ExprIsToken(const tchar_t** p,const tchar_t* Name) + { +- return ExprIsTokenEx(p,Name); ++ return ExprIsTokenEx(p,Name,""); + } + + uint32_t StringToIP(const tchar_t *Address) diff --git a/submodules/linphone b/submodules/linphone index de9c426e2..728ed3077 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit de9c426e2e4555cfcfc407247b6685ae830aa338 +Subproject commit 728ed3077cf4e47e6e972732a3f8a1b39a96f2ed