diff --git a/Makefile b/Makefile index fd4235cbd..0e9deaefa 100644 --- a/Makefile +++ b/Makefile @@ -204,61 +204,53 @@ clean-x264: #openh264 ifeq ($(BUILD_VIDEO),1) ifeq ($(BUILD_OPENH264), 1) -BUILD_OPENH264_DEPS=\ - $(OPENH264_BUILD_DIR)/include/codec_api.h \ - $(OPENH264_BUILD_DIR)/include/codec_app_def.h \ - $(OPENH264_BUILD_DIR)/include/codec_def.h \ - $(OPENH264_BUILD_DIR)/arm/libwels.a +BUILD_OPENH264_DEPS=build-openh264-arm ifeq ($(BUILD_FOR_X86), 1) - BUILD_OPENH264_DEPS+=$(OPENH264_BUILD_DIR)/x86/libwels.a + BUILD_OPENH264_DEPS+=build-openh264-x86 +endif endif endif OPENH264_SRC_DIR=$(TOPDIR)/submodules/externals/openh264 OPENH264_BUILD_DIR=$(TOPDIR)/submodules/externals/build/openh264 - -openh264-patch: $(OPENH264_SRC_DIR)/patch.stamp - +OPENH264_BUILD_DIR_ARM=$(OPENH264_BUILD_DIR)/arm +OPENH264_BUILD_DIR_X86=$(OPENH264_BUILD_DIR)/x86 $(OPENH264_SRC_DIR)/patch.stamp: $(TOPDIR)/patches/openh264-permissive.patch cd $(OPENH264_SRC_DIR) && patch -p1 < $(TOPDIR)/patches/openh264-permissive.patch && touch $(OPENH264_SRC_DIR)/patch.stamp -$(OPENH264_BUILD_DIR)/include/codec_api.h: - mkdir -p $(OPENH264_BUILD_DIR)/include/wels && \ - cp $(OPENH264_SRC_DIR)/codec/api/svc/codec_api.h $(OPENH264_BUILD_DIR)/include/wels/ +openh264-patch: $(OPENH264_SRC_DIR)/patch.stamp -$(OPENH264_BUILD_DIR)/include/codec_app_def.h: - mkdir -p $(OPENH264_BUILD_DIR)/include/wels && \ - cp $(OPENH264_SRC_DIR)/codec/api/svc/codec_app_def.h $(OPENH264_BUILD_DIR)/include/wels/ +openh264-install-headers: + mkdir -p $(OPENH264_SRC_DIR)/include/wels + rsync -rvLpgoc --exclude ".git" $(OPENH264_SRC_DIR)/codec/api/svc/* $(OPENH264_SRC_DIR)/include/wels/. -$(OPENH264_BUILD_DIR)/include/codec_def.h: - mkdir -p $(OPENH264_BUILD_DIR)/include/wels && \ - cp $(OPENH264_SRC_DIR)/codec/api/svc/codec_def.h $(OPENH264_BUILD_DIR)/include/wels/ +copy-openh264-x86: openh264-patch openh264-install-headers + mkdir -p $(OPENH264_BUILD_DIR) + mkdir -p $(OPENH264_BUILD_DIR_X86) + cd $(OPENH264_BUILD_DIR_X86) \ + && rsync -rvLpgoc --exclude ".git" $(OPENH264_SRC_DIR)/* . -$(OPENH264_BUILD_DIR)/arm/libwels.a: openh264-patch - mkdir -p $(OPENH264_BUILD_DIR)/arm && \ - cd $(OPENH264_SRC_DIR) && \ - make libraries -j $(NUMCPUS) OS=android ARCH=arm NDKROOT=$(NDK_PATH) TARGET=$(ANDROID_MOST_RECENT_TARGET) && \ - cp libwels.a $(OPENH264_BUILD_DIR)/arm/libwels.a && \ - make clean OS=android ARCH=arm NDKROOT=$(NDK_PATH) TARGET=$(ANDROID_MOST_RECENT_TARGET) \ - || ( echo "Build of openh264 for arm failed." ; exit 1 ) +copy-openh264-arm: openh264-patch openh264-install-headers + mkdir -p $(OPENH264_BUILD_DIR) + mkdir -p $(OPENH264_BUILD_DIR_ARM) + cd $(OPENH264_BUILD_DIR_ARM) \ + && rsync -rvLpgoc --exclude ".git" $(OPENH264_SRC_DIR)/* . -$(OPENH264_BUILD_DIR)/x86/libwels.a: openh264-patch - mkdir -p $(OPENH264_BUILD_DIR)/x86 && \ - cd $(OPENH264_SRC_DIR) && \ - make libraries -j $(NUMCPUS) OS=android ARCH=x86 NDKROOT=$(NDK_PATH) TARGET=$(ANDROID_MOST_RECENT_TARGET) && \ - cp libwels.a $(OPENH264_BUILD_DIR)/x86/libwels.a && \ - make clean OS=android ARCH=x86 NDKROOT=$(NDK_PATH) TARGET=$(ANDROID_MOST_RECENT_TARGET) \ - || ( echo "Build of openh264 for arm failed." ; exit 1 ) -endif +build-openh264-x86: copy-openh264-x86 + cd $(OPENH264_BUILD_DIR_X86) && \ + make libraries -j $(NUMCPUS) OS=android ARCH=x86 NDKROOT=$(NDK_PATH) TARGET=$(ANDROID_MOST_RECENT_TARGET) + +build-openh264-arm: copy-openh264-arm + cd $(OPENH264_BUILD_DIR_ARM) && \ + make libraries -j $(NUMCPUS) OS=android ARCH=arm NDKROOT=$(NDK_PATH) TARGET=$(ANDROID_MOST_RECENT_TARGET) build-openh264: $(BUILD_OPENH264_DEPS) clean-openh264: - cd $(OPENH264_SRC_DIR) && make clean OS=android ARCH=x86 NDKROOT=$(NDK_PATH) TARGET=$(ANDROID_MOST_RECENT_TARGET) - cd $(OPENH264_SRC_DIR) && make clean OS=android ARCH=arm NDKROOT=$(NDK_PATH) TARGET=$(ANDROID_MOST_RECENT_TARGET) - rm -rf $(OPENH264_BUILD_DIR)/arm && \ - rm -rf $(OPENH264_BUILD_DIR)/x86 + cd $(OPENH264_SRC_DIR) && git clean -dfx && git reset --hard + rm -rf $(OPENH264_BUILD_DIR_ARM) + rm -rf $(OPENH264_BUILD_DIR_X86) #libvpx ifeq ($(BUILD_VIDEO),1) diff --git a/README b/README index 439fe1c9c..b0804674b 100644 --- a/README +++ b/README @@ -4,7 +4,7 @@ To build liblinphone for Android, you must: 0) download the Android sdk with platform-tools and tools updated to latest revision (at least API 16 is needed), then add both 'tools' and 'platform-tools' folders in your path. 1) download the Android ndk (>=r9d) from google and add it to your path (no symlink !!!). -2) install yasm, nasm, curl, ant and the autotools: autoconf, automake, aclocal, libtoolize, pkgconfig +2) install yasm, nasm, curl, ant, rsync and the autotools: autoconf, automake, aclocal, libtoolize, pkgconfig On 64 bits linux systems you'll need the ia32-libs package With the latest Debian (multiarch), you need this: dpkg --add-architecture i386 diff --git a/submodules/belle-sip b/submodules/belle-sip index 0177ef2de..1b86808a1 160000 --- a/submodules/belle-sip +++ b/submodules/belle-sip @@ -1 +1 @@ -Subproject commit 0177ef2de50f9609d8ed0525e8878f957da6ab61 +Subproject commit 1b86808a1b7c6803b71b8d08607b3a0d7a2e9ea9 diff --git a/submodules/msopenh264 b/submodules/msopenh264 index 4a0ac438f..652fe94fe 160000 --- a/submodules/msopenh264 +++ b/submodules/msopenh264 @@ -1 +1 @@ -Subproject commit 4a0ac438f11eeabcf202957ff45a44dacc316c2e +Subproject commit 652fe94fe6910258ec6cacd85a39071bacbbdca1