| ############################################################# |
| # |
| # ffmpeg |
| # |
| ############################################################# |
| |
| FFMPEG_VERSION = 0.8.10 |
| FFMPEG_SOURCE = ffmpeg-$(FFMPEG_VERSION).tar.bz2 |
| FFMPEG_SITE = http://ffmpeg.org/releases |
| FFMPEG_INSTALL_STAGING = YES |
| |
| FFMPEG_CONF_OPT = \ |
| --prefix=/usr \ |
| --disable-avfilter \ |
| $(if $(BR2_HAVE_DOCUMENTATION),,--disable-doc) |
| |
| ifeq ($(BR2_PACKAGE_FFMPEG_GPL),y) |
| FFMPEG_CONF_OPT += --enable-gpl |
| else |
| FFMPEG_CONF_OPT += --disable-gpl |
| endif |
| |
| ifeq ($(BR2_PACKAGE_FFMPEG_NONFREE),y) |
| FFMPEG_CONF_OPT += --enable-nonfree |
| else |
| FFMPEG_CONF_OPT += --disable-nonfree |
| endif |
| |
| ifeq ($(BR2_PACKAGE_FFMPEG_FFMPEG),y) |
| FFMPEG_CONF_OPT += --enable-ffmpeg |
| else |
| FFMPEG_CONF_OPT += --disable-ffmpeg |
| endif |
| |
| ifeq ($(BR2_PACKAGE_FFMPEG_FFPLAY),y) |
| FFMPEG_DEPENDENCIES += sdl |
| FFMPEG_CONF_OPT += --enable-ffplay |
| FFMPEG_CONF_ENV += SDL_CONFIG=$(STAGING_DIR)/usr/bin/sdl-config |
| else |
| FFMPEG_CONF_OPT += --disable-ffplay |
| endif |
| |
| ifeq ($(BR2_PACKAGE_FFMPEG_FFSERVER),y) |
| FFMPEG_CONF_OPT += --enable-ffserver |
| else |
| FFMPEG_CONF_OPT += --disable-ffserver |
| endif |
| |
| ifeq ($(BR2_PACKAGE_FFMPEG_POSTPROC),y) |
| FFMPEG_CONF_OPT += --enable-postproc |
| else |
| FFMPEG_CONF_OPT += --disable-postproc |
| endif |
| |
| ifeq ($(BR2_PACKAGE_FFMPEG_SWSCALE),y) |
| FFMPEG_CONF_OPT += --enable-swscale |
| else |
| FFMPEG_CONF_OPT += --disable-swscale |
| endif |
| |
| ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_ENCODERS)),all) |
| FFMPEG_CONF_OPT += --disable-encoders \ |
| $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_ENCODERS)),--enable-encoder=$(x)) |
| endif |
| |
| ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_DECODERS)),all) |
| FFMPEG_CONF_OPT += --disable-decoders \ |
| $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_DECODERS)),--enable-decoder=$(x)) |
| endif |
| |
| ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_MUXERS)),all) |
| FFMPEG_CONF_OPT += --disable-muxers \ |
| $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_MUXERS)),--enable-muxer=$(x)) |
| endif |
| |
| ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_DEMUXERS)),all) |
| FFMPEG_CONF_OPT += --disable-demuxers \ |
| $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_DEMUXERS)),--enable-demuxer=$(x)) |
| endif |
| |
| ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_PARSERS)),all) |
| FFMPEG_CONF_OPT += --disable-parsers \ |
| $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_PARSERS)),--enable-parser=$(x)) |
| endif |
| |
| ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_BSFS)),all) |
| FFMPEG_CONF_OPT += --disable-bsfs \ |
| $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_BSFS)),--enable-bsf=$(x)) |
| endif |
| |
| ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_PROTOCOLS)),all) |
| FFMPEG_CONF_OPT += --disable-protocols \ |
| $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_PROTOCOLS)),--enable-protocol=$(x)) |
| endif |
| |
| ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_FILTERS)),all) |
| FFMPEG_CONF_OPT += --disable-filters \ |
| $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_FILTERS)),--enable-filter=$(x)) |
| endif |
| |
| ifeq ($(BR2_PACKAGE_FFMPEG_INDEVS),y) |
| FFMPEG_CONF_OPT += --enable-indevs |
| else |
| FFMPEG_CONF_OPT += --disable-indevs |
| endif |
| |
| ifeq ($(BR2_PACKAGE_FFMPEG_OUTDEVS),y) |
| FFMPEG_CONF_OPT += --enable-outdevs |
| else |
| FFMPEG_CONF_OPT += --disable-outdevs |
| endif |
| |
| ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) |
| FFMPEG_CONF_OPT += --enable-pthreads |
| else |
| FFMPEG_CONF_OPT += --disable-pthreads |
| endif |
| |
| ifeq ($(BR2_PACKAGE_ZLIB),y) |
| FFMPEG_CONF_OPT += --enable-zlib |
| FFMPEG_DEPENDENCIES += zlib |
| else |
| FFMPEG_CONF_OPT += --disable-zlib |
| endif |
| |
| ifeq ($(BR2_i386)$(BR2_x86_64),y) |
| # MMX on is default for x86, disable it for lowly x86-type processors |
| ifeq ($(BR2_x86_i386)$(BR2_x86_i486)$(BR2_x86_i586)$(BR2_x86_i686)$(BR2_x86_pentiumpro)$(BR2_x86_geode),y) |
| FFMPEG_CONF_OPT += --disable-mmx |
| else |
| # If it is enabled, nasm is required |
| FFMPEG_DEPENDENCIES += host-nasm |
| endif |
| endif |
| |
| # ARM defaults to v5: clear if less, add extra if more |
| ifeq ($(BR2_generic_arm)$(BR2_arm7tdmi)$(BR2_arm610)$(BR2_arm710)$(BR2_arm720t)$(BR2_arm920t)$(BR2_arm922t),y) |
| FFMPEG_CONF_OPT += --disable-armv5te |
| endif |
| ifeq ($(BR2_arm1136jf_s)$(BR2_arm1176jz_s)$(BR2_arm1176jzf-s),y) |
| FFMPEG_CONF_OPT += --enable-armv6 |
| endif |
| ifeq ($(BR2_arm10)$(BR2_arm1136jf_s)$(BR2_arm1176jz_s)$(BR2_arm1176jzf-s)$(BR2_cortex_a8)$(BR2_cortex_a9),y) |
| FFMPEG_CONF_OPT += --enable-armvfp |
| endif |
| # NEON is optional for A9 |
| ifeq ($(BR2_cortex_a8),y) |
| FFMPEG_CONF_OPT += --enable-neon |
| endif |
| # Set powerpc altivec appropriately |
| ifeq ($(BR2_powerpc),y) |
| ifeq ($(BR2_powerpc_7400)$(BR2_powerpc_7450)$(BR2_powerpc_970),y) |
| FFMPEG_CONF_OPT += --enable-altivec |
| else |
| FFMPEG_CONF_OPT += --disable-altivec |
| endif |
| endif |
| |
| FFMPEG_CONF_OPT += $(call qstrip,$(BR2_PACKAGE_FFMPEG_EXTRACONF)) |
| |
| # Override FFMPEG_CONFIGURE_CMDS: FFmpeg does not support --target and others |
| define FFMPEG_CONFIGURE_CMDS |
| (cd $(FFMPEG_SRCDIR) && rm -rf config.cache && \ |
| $(TARGET_CONFIGURE_OPTS) \ |
| $(TARGET_CONFIGURE_ARGS) \ |
| $(FFMPEG_CONF_ENV) \ |
| $(LOGLINEAR) ./configure \ |
| --enable-cross-compile \ |
| --cross-prefix=$(TARGET_CROSS) \ |
| --sysroot=$(STAGING_DIR) \ |
| --host-cc="$(HOSTCC)" \ |
| --arch=$(BR2_ARCH) \ |
| --target-os=linux \ |
| --extra-cflags=-fPIC \ |
| $(SHARED_STATIC_LIBS_OPTS) \ |
| $(FFMPEG_CONF_OPT) \ |
| ) |
| endef |
| |
| $(eval $(call AUTOTARGETS)) |