diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..564fc0b1a --- /dev/null +++ b/Makefile @@ -0,0 +1,64 @@ +NDK_PATH=$(shell dirname `which ndk-build`) +SDK_PATH=$(shell dirname `which android`) +NUMCPUS=$(shell grep -c '^processor' /proc/cpuinfo) +TOPDIR=$(shell pwd) +PATCH_FFMPEG=$(shell cd submodules/externals/ffmpeg && git status | grep neon) + +all: prepare-sources generate-libs generate-apk install-apk + +prepare-ffmpeg: +ifeq ($(PATCH_FFMPEG),) + @patch -p0 < $(TOPDIR)/patches/ffmpeg_scalar_product_remove_alignment_hints.patch +endif + +prepare-ilbc: + @cd $(TOPDIR)/submodules/libilbc-rfc3951 && \ + ./autogen.sh && \ + ./configure && make \ + || ( echo "iLBC prepare stage failed" ; exit 1 ) + +prepare-vpx: + @cd $(TOPDIR)/submodules/externals/libvpx && \ + ./configure --target=armv7-android-gcc --sdk-path=$(NDK_PATH) --enable-error-concealment && \ + make clean && \ + make asm_com_offsets.asm \ + || ( echo "VP8 prepare stage failed." ; exit 1 ) + +prepare-silk: + @cd $(TOPDIR)/submodules/mssilk && \ + ./autogen.sh && \ + ./configure --host=arm-linux MEDIASTREAMER_CFLAGS=" " MEDIASTREAMER_LIBS=" " && \ + cd sdk && make extract-sources \ + || ( echo "SILK audio plugin prepare state failed." ; exit 1 ) + +prepare-srtp: + @cd $(TOPDIR)/submodules/externals/srtp/ && \ + cp ../build/srtp/config.h . \ + || ( echo "SRTP prepare state failed." ; exit 1 ) + +prepare-mediastreamer2: + @cd $(TOPDIR)/submodules/linphone/mediastreamer2/src/ && \ + cat Makefile.am | grep xxd | grep yuv2rgb.vs | sed 's/$$builddir/./' && \ + cat Makefile.am | grep xxd | grep yuv2rgb.fs | sed 's/$$builddir/./' && \ + 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 + +prepare-sources: prepare-ffmpeg prepare-ilbc prepare-vpx prepare-silk prepare-srtp prepare-mediastreamer2 + +generate-libs: + $(NDK_PATH)/ndk-build -j$(NUMCPUS) + +update-project: + $(SDK_PATH)/android update project --path . + +generate-apk: + ant clean debug + +install-apk: generate-apk + ant installd + +clean: + $(NDK_PATH)/ndk-build clean + ant clean + +.PHONY: clean