__deps__ := YASM BZIP2 ZLIB FDKAAC LIBVPX ifeq (1,$(FEATURE.qsv)) __deps__ += PTHREADW32 LIBMFX endif $(eval $(call import.MODULE.defs,FFMPEG,ffmpeg,$(__deps__))) $(eval $(call import.CONTRIB.defs,FFMPEG)) FFMPEG.FETCH.url = http://download.handbrake.fr/handbrake/contrib/libav-v11.3-0-g00abc00.tar.gz FFMPEG.CONFIGURE.deps = FFMPEG.CONFIGURE.env = FFMPEG.CONFIGURE.host = FFMPEG.CONFIGURE.build = FFMPEG.CONFIGURE.extra = \ --enable-gpl \ --disable-doc \ --disable-bsfs \ --enable-bsf=aac_adtstoasc \ --disable-avconv \ --disable-avplay \ --disable-avprobe \ --disable-avdevice \ --disable-avfilter \ --disable-muxers \ --disable-network \ --disable-hwaccels \ --disable-encoders \ --enable-encoder=aac \ --enable-encoder=ac3 \ --enable-encoder=eac3 \ --enable-encoder=flac \ --enable-encoder=mpeg2video \ --enable-encoder=mpeg4 \ --enable-libvpx \ --enable-encoder=libvpx_vp8 \ --disable-decoder=libvpx_vp8 \ --enable-zlib \ --enable-bzlib \ --cc="$(FFMPEG.GCC.gcc)" \ --extra-ldflags="$(call fn.ARGS,FFMPEG.GCC,*archs *sysroot *minver ?extra) -L$(call fn.ABSOLUTE,$(CONTRIB.build/)lib)" ifeq (1,$(FEATURE.fdk_aac)) FFMPEG.CONFIGURE.extra += \ --enable-nonfree \ --enable-libfdk-aac \ --enable-encoder=libfdk_aac endif FFMPEG.CONFIGURE.extra += \ --enable-muxer=matroska \ --enable-muxer=webm \ --enable-muxer=mov \ --enable-muxer=mp4 \ --enable-muxer=psp \ --enable-muxer=ipod ## check against tuple: B-SYSTEM where B is { 0 | 1 } for cross-compiling flag ifeq (0-cygwin,$(BUILD.cross)-$(BUILD.system)) FFMPEG.CONFIGURE.extra += --enable-pthreads --enable-memalign-hack FFMPEG.GCC.args.extra += -fno-common else ifeq (darwin,$(BUILD.system)) ## section for darwin-archs FFMPEG.CONFIGURE.extra += --enable-pthreads --enable-cross-compile --arch=$(BUILD.machine) --target-os=darwin else ifeq (1-mingw,$(BUILD.cross)-$(BUILD.system)) FFMPEG.CONFIGURE.extra += \ --enable-w32threads \ --enable-memalign-hack \ --enable-dxva2 \ --enable-hwaccel=h264_dxva2 \ --enable-hwaccel=mpeg2_dxva2 \ --enable-hwaccel=vc1_dxva2 \ --enable-hwaccel=wmv3_dxva2 \ --target-os=mingw32 \ --arch=i386 \ --enable-cross-compile --cross-prefix=$(BUILD.cross.prefix) FFMPEG.GCC.args.extra += -fno-common else FFMPEG.CONFIGURE.extra += --enable-pthreads endif ifneq (none,$(FFMPEG.GCC.g)) FFMPEG.CONFIGURE.extra += --enable-debug ifeq (max,$(FFMPEG.GCC.g)) FFMPEG.CONFIGURE.extra += --extra-cflags="$(call fn.ARGS,FFMPEG.GCC,*archs *sysroot *minver ?extra) -I$(call fn.ABSOLUTE,$(CONTRIB.build/)include) -DDEBUG" else FFMPEG.CONFIGURE.extra += --extra-cflags="$(call fn.ARGS,FFMPEG.GCC,*archs *sysroot *minver ?extra) -I$(call fn.ABSOLUTE,$(CONTRIB.build/)include) -DNDEBUG" endif else FFMPEG.CONFIGURE.extra += --disable-debug FFMPEG.CONFIGURE.extra += --extra-cflags="$(call fn.ARGS,FFMPEG.GCC,*archs *sysroot *minver ?extra) -I$(call fn.ABSOLUTE,$(CONTRIB.build/)include) -DNDEBUG" endif ifeq (none,$(FFMPEG.GCC.O)) FFMPEG.CONFIGURE.extra += --disable-optimizations endif ifeq (1,$(FEATURE.qsv)) FFMPEG.CONFIGURE.extra += --enable-qsv endif ## enable compile verbosity FFMPEG.BUILD.extra = V=1 ## ## llvm inline assembler (used in llvm-gcc and clang) runs out of registers ## on darwin i386 - unclear if it is a source code or llvm bug. ## ifeq (darwin-i386,$(BUILD.system)-$(BUILD.machine)) ## optimize mode hack: use clang ifneq (none,$(FFMPEG.GCC.O)) FFMPEG.GCC.gcc = clang endif ## debug mode hack: omit frame pointer ifneq (none,$(FFMPEG.GCC.g)) FFMPEG.GCC.args.extra += -fomit-frame-pointer endif endif ## For POSIX.1-2001 ifeq (solaris,$(BUILD.system)) FFMPEG.CONFIGURE.extra += --extra-libs=/usr/lib/values-xpg6.o endif ## MPC8 Doesn't compile on SPARC ifeq (solaris-sparc,$(BUILD.system)-$(BUILD.machine)) FFMPEG.CONFIGURE.extra += --disable-demuxer=mpc8 endif ifeq (1,$(FEATURE.local_yasm)) FFMPEG.CONFIGURE.env = PATH="$(call fn.ABSOLUTE,$(CONTRIB.build/)bin):$(PATH)" FFMPEG.BUILD.env = PATH="$(call fn.ABSOLUTE,$(CONTRIB.build/)bin):$(PATH)" endif