]> git.sesse.net Git - vlc/blobdiff - contrib/src/ffmpeg/rules.mak
Contribs: use xzcat for tarballs
[vlc] / contrib / src / ffmpeg / rules.mak
index bd6751aa3af80772f5f3e84ed4688a44f3e146e5..628f60695c6ace358686e3e167287ebdc7574ffc 100644 (file)
@@ -1,14 +1,21 @@
 # FFmpeg
 
-HASH=HEAD
+#Uncomment the one you want
+#USE_LIBAV ?= 1
+#USE_FFMPEG ?= 1
 
-#FFMPEG_SNAPURL := http://git.videolan.org/?p=ffmpeg.git;a=snapshot;h=$(HASH);sf=tgz
+ifdef USE_FFMPEG
+HASH=HEAD
+FFMPEG_SNAPURL := http://git.videolan.org/?p=ffmpeg.git;a=snapshot;h=$(HASH);sf=tgz
+else
+HASH=HEAD
 FFMPEG_SNAPURL := http://git.libav.org/?p=libav.git;a=snapshot;h=$(HASH);sf=tgz
+endif
 
 FFMPEGCONF = \
        --cc="$(CC)" \
+       --pkg-config="$(PKG_CONFIG)" \
        --disable-doc \
-       --disable-decoder=bink \
        --disable-encoder=vorbis \
        --enable-libgsm \
        --enable-libopenjpeg \
@@ -18,12 +25,15 @@ FFMPEGCONF = \
        --disable-avfilter \
        --disable-filters \
        --disable-bsfs \
-       --disable-bzlib
+       --disable-bzlib \
+       --disable-avresample
+
+ifdef USE_FFMPEG
+FFMPEGCONF += \
+       --disable-swresample \
+       --disable-iconv
+endif
 
-# Those tools are named differently in FFmpeg and Libav
-#      --disable-ffserver \
-#      --disable-ffplay \
-#      --disable-ffprobe
 DEPS_ffmpeg = zlib gsm openjpeg
 
 # Optional dependencies
@@ -48,7 +58,7 @@ endif
 endif
 
 ifdef HAVE_CROSS_COMPILE
-FFMPEGCONF += --enable-cross-compile
+FFMPEGCONF += --enable-cross-compile --disable-programs
 ifndef HAVE_DARWIN_OS
 FFMPEGCONF += --cross-prefix=$(HOST)-
 endif
@@ -68,6 +78,11 @@ FFMPEGCONF += --cpu=armv6 --disable-neon
 endif
 endif
 
+# ARM64 stuff
+ifeq ($(ARCH),aarch64)
+FFMPEGCONF += --arch=aarch64
+endif
+
 # MIPS stuff
 ifeq ($(ARCH),mipsel)
 FFMPEGCONF += --arch=mips
@@ -80,21 +95,32 @@ FFMPEGCONF += --arch=x86
 endif
 endif
 
+# x86_64 stuff
+ifeq ($(ARCH),x86_64)
+ifndef HAVE_DARWIN_OS
+FFMPEGCONF += --arch=x86_64
+endif
+endif
+
 # Darwin
 ifdef HAVE_DARWIN_OS
 FFMPEGCONF += --arch=$(ARCH) --target-os=darwin
+ifdef USE_FFMPEG
+FFMPEGCONF += --disable-lzma
+endif
 ifeq ($(ARCH),x86_64)
 FFMPEGCONF += --cpu=core2
 endif
-endif
 ifdef HAVE_IOS
-ifeq ($(ARCH),arm)
-FFMPEGCONF += --enable-pic --as="$(AS)"
+FFMPEGCONF += --enable-pic --extra-ldflags="$(EXTRA_CFLAGS)"
+ifdef HAVE_NEON
+FFMPEGCONF += --as="$(AS)"
 endif
 endif
 ifdef HAVE_MACOSX
 FFMPEGCONF += --enable-vda
 endif
+endif
 
 # Linux
 ifdef HAVE_LINUX
@@ -121,12 +147,22 @@ else # !Windows
 FFMPEGCONF += --enable-pthreads
 endif
 
+# Solaris
+ifdef HAVE_SOLARIS
+ifeq ($(ARCH),x86_64)
+FFMPEGCONF += --cpu=core2
+endif
+FFMPEGCONF += --target-os=sunos --enable-pic
+endif
+
 # Build
 PKGS += ffmpeg
 ifeq ($(call need_pkg,"libavcodec >= 54.25.0 libavformat >= 53.21.0 libswscale"),)
 PKGS_FOUND += ffmpeg
 endif
 
+FFMPEGCONF += --nm="$(NM)" --ar="$(AR)"
+
 $(TARBALLS)/ffmpeg-$(HASH).tar.gz:
        $(call download,$(FFMPEG_SNAPURL))
 
@@ -137,7 +173,7 @@ $(TARBALLS)/ffmpeg-$(HASH).tar.gz:
 ffmpeg: ffmpeg-$(HASH).tar.gz .sum-ffmpeg
        rm -Rf $@ $@-$(HASH)
        mkdir -p $@-$(HASH)
-       $(ZCAT) "$<" | (cd $@-$(HASH) && tar xv --strip-components=1)
+       $(XZCAT) "$<" | (cd $@-$(HASH) && tar xv --strip-components=1)
        $(MOVE)
 
 .ffmpeg: ffmpeg