diff --git a/contrib/src/ffmpeg/rules.mak b/contrib/src/ffmpeg/rules.mak index ff0d24c4ac13e8f3d178ae4197a6e4b1bce14f1d..34d0263ce1bdece6671515d1f60b1d5df3fe9a69 100644 --- a/contrib/src/ffmpeg/rules.mak +++ b/contrib/src/ffmpeg/rules.mak @@ -33,9 +33,11 @@ FFMPEGCONF += \ --enable-parser=vp8 #librairies +ifndef HAVE_ANDROID FFMPEGCONF += \ --enable-libx264 \ --enable-libvpx +endif #encoders/decoders FFMPEGCONF += \ @@ -88,6 +90,18 @@ FFMPEGCONF += \ DEPS_ffmpeg = iconv zlib x264 vpx opus speex $(DEPS_vpx) +# Linux +ifdef HAVE_LINUX +FFMPEGCONF += --target-os=linux --enable-pic +ifndef HAVE_ANDROID +FFMPEGCONF += --enable-indev=v4l2 --enable-indev=x11grab --enable-x11grab +else +# used to avoid Text Relocations +FFMPEGCONF += --extra-cxxflags=-fPIC --extra-cflags=-fPIC +FFMPEGCONF += --disable-asm +endif +endif + ifdef HAVE_CROSS_COMPILE FFMPEGCONF += --cross-prefix=$(HOST)- endif @@ -101,6 +115,25 @@ ifeq ($(ARCH),x86_64) FFMPEGCONF += --arch=x86_64 endif +# ARM stuff +ifeq ($(ARCH),arm) +FFMPEGCONF += --arch=arm +ifdef HAVE_NEON +FFMPEGCONF += --enable-neon +endif +ifdef HAVE_ARMV7A +FFMPEGCONF += --cpu=cortex-a8 +endif +ifdef HAVE_ARMV6 +FFMPEGCONF += --cpu=armv6 --disable-neon +endif +endif + +# ARM64 stuff +ifeq ($(ARCH),aarch64) +FFMPEGCONF += --arch=aarch64 +endif + # Windows ifdef HAVE_WIN32 FFMPEGCONF += --target-os=mingw32 --enable-memalign-hack @@ -128,6 +161,6 @@ ffmpeg: ffmpeg-$(FFMPEG_HASH).tar.xz .sum-ffmpeg .ffmpeg: ffmpeg cd $< && $(HOSTVARS) ./configure \ --extra-ldflags="$(LDFLAGS)" $(FFMPEGCONF) \ - --prefix="$(PREFIX)" --enable-static --disable-shared + --prefix="$(PREFIX)" --enable-static --disable-shared cd $< && $(MAKE) install-libs install-headers touch $@ diff --git a/contrib/src/vpx/rules.mak b/contrib/src/vpx/rules.mak index 7602ccb3df4c09b2c2d577c6f8bfbfbde97ec396..10b6cf400083688d9c9c1d149b7293b32fc62b7a 100644 --- a/contrib/src/vpx/rules.mak +++ b/contrib/src/vpx/rules.mak @@ -97,16 +97,20 @@ endif ifdef HAVE_IOS VPX_CONF += --sdk-path=$(SDKROOT) endif +LOCAL_HOSTVARS= ifdef HAVE_ANDROID # vpx configure.sh overrides our sysroot and it looks for it itself, and # uses that path to look for the compiler (which we already know) VPX_CONF += --sdk-path=$(shell dirname $(shell which $(CROSS_COMPILE)gcc)) # needed for cpu-features.h VPX_CONF += --extra-cflags="-I $(ANDROID_NDK)/sources/cpufeatures/" +# set an explicit alternative libc since the sysroot override can make it blank +VPX_CONF += --libc=$(SYSROOT) +LOCAL_HOSTVARS=$(HOSTVARS) endif .vpx: libvpx - cd $< && CROSS=$(VPX_CROSS) ./configure --target=$(VPX_TARGET) \ + cd $< && CROSS=$(VPX_CROSS) $(LOCAL_HOSTVARS) ./configure --target=$(VPX_TARGET) \ $(VPX_CONF) --prefix=$(PREFIX) cd $< && $(MAKE) cd $< && ../../../contrib/src/pkg-static.sh vpx.pc