Improve libmatroska2 building

This commit is contained in:
François Grisez 2014-09-22 14:31:41 +02:00
parent d30dfa95f1
commit 26fcba04d3
10 changed files with 117 additions and 164 deletions

101
Makefile
View file

@ -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

View file

@ -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

View file

@ -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

View file

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

69
submodules/externals/build/libmatroska/Android.mk vendored Executable file → Normal file
View file

@ -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
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)
include $(PREBUILT_STATIC_LIBRARY)

View file

@ -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"

View file

@ -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

View file

@ -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)!=""

View file

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

@ -1 +1 @@
Subproject commit de9c426e2e4555cfcfc407247b6685ae830aa338
Subproject commit 728ed3077cf4e47e6e972732a3f8a1b39a96f2ed