kumquat-buildroot/package/gstreamer1/gst1-libav/gst1-libav.mk
Fabrice Fontaine 902d3d27bc package/gst1-libav: fix build on mips64el
Apply the same behavior for CPU in gst1-libav than in ffmpeg:
 - use generic cpu for all mips architectures
 - use GCC_TARGET_{ARCH,CPU} instead of BR2_TARGET_{ARCH,CPU}

Fixes:
 - http://autobuild.buildroot.org/results/776028a43bd180b4895efc74321e3aee56cbcb47

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2019-03-29 17:06:08 +01:00

100 lines
3.0 KiB
Makefile

################################################################################
#
# gst1-libav
#
################################################################################
GST1_LIBAV_VERSION = 1.14.4
GST1_LIBAV_SOURCE = gst-libav-$(GST1_LIBAV_VERSION).tar.xz
GST1_LIBAV_SITE = https://gstreamer.freedesktop.org/src/gst-libav
GST1_LIBAV_DEPENDENCIES = \
host-pkgconf gstreamer1 gst1-plugins-base \
$(if $(BR2_PACKAGE_BZIP2),bzip2) \
$(if $(BR2_PACKAGE_XZ),xz)
GST1_LIBAV_LICENSE = GPL-2.0+
GST1_LIBAV_LICENSE_FILES = COPYING
GST1_LIBAV_CONF_EXTRA_OPTS = --cross-prefix=$(TARGET_CROSS) --target-os=linux
# fixes arm/powerpc build: https://bugzilla.gnome.org/show_bug.cgi?id=694416
ifeq ($(BR2_arm)$(BR2_armeb)$(BR2_aarch64)$(BR2_aarch64_be)$(BR2_powerpc)$(BR2_powerpc64)$(BR2_powerpc64le),y)
GST1_LIBAV_CONF_ENV = AS="$(TARGET_CROSS)gcc"
endif
ifeq ($(BR2_PACKAGE_ZLIB),y)
GST1_LIBAV_CONF_EXTRA_OPTS += --enable-zlib
GST1_LIBAV_DEPENDENCIES += zlib
else
GST1_LIBAV_CONF_EXTRA_OPTS += --disable-zlib
endif
ifeq ($(BR2_PACKAGE_BZIP2),y)
GST1_LIBAV_CONF_EXTRA_OPTS += --enable-bzlib
GST1_LIBAV_DEPENDENCIES += bzip2
else
GST1_LIBAV_CONF_EXTRA_OPTS += --disable-bzlib
endif
# Generic CPU setup for bundled ffmpeg
# Default to --cpu=generic for MIPS architecture, in order to avoid a
# build failure on mips64r6.
ifeq ($(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el),y)
GST1_LIBAV_CONF_EXTRA_OPTS += --cpu=generic
else ifneq ($(GCC_TARGET_CPU),)
GST1_LIBAV_CONF_EXTRA_OPTS += --cpu=$(GCC_TARGET_CPU)
else ifneq ($(GCC_TARGET_ARCH),)
GST1_LIBAV_CONF_EXTRA_OPTS += --cpu=$(GCC_TARGET_ARCH)
endif
ifeq ($(BR2_X86_CPU_HAS_MMX),y)
GST1_LIBAV_CONF_EXTRA_OPTS += --enable-yasm
GST1_LIBAV_DEPENDENCIES += host-yasm
else
GST1_LIBAV_CONF_EXTRA_OPTS += --disable-yasm
GST1_LIBAV_CONF_EXTRA_OPTS += --disable-mmx
endif
ifeq ($(BR2_X86_CPU_HAS_SSE),y)
GST1_LIBAV_CONF_EXTRA_OPTS += --enable-sse
else
GST1_LIBAV_CONF_EXTRA_OPTS += --disable-sse
endif
ifeq ($(BR2_X86_CPU_HAS_SSSE3),y)
GST1_LIBAV_CONF_EXTRA_OPTS += --enable-ssse3
else
GST1_LIBAV_CONF_EXTRA_OPTS += --disable-ssse3
endif
# Explicitly disable everything that doesn't match for ARM
# FFMPEG "autodetects" by compiling an extended instruction via AS
# This works on compilers that aren't built for generic by default
ifeq ($(BR2_ARM_CPU_ARMV4),y)
GST1_LIBAV_CONF_EXTRA_OPTS += --disable-armv5te
endif
ifeq ($(BR2_ARM_CPU_ARMV6)$(BR2_ARM_CPU_ARMV7A),y)
GST1_LIBAV_CONF_EXTRA_OPTS += --enable-armv6
else
GST1_LIBAV_CONF_EXTRA_OPTS += --disable-armv6 --disable-armv6t2
endif
ifeq ($(BR2_ARM_CPU_HAS_NEON),y)
GST1_LIBAV_CONF_EXTRA_OPTS += --enable-neon
else
GST1_LIBAV_CONF_EXTRA_OPTS += --disable-neon
endif
ifeq ($(BR2_ARM_CPU_HAS_VFPV2),y)
GST1_LIBAV_CONF_EXTRA_OPTS += --enable-vfp
else
GST1_LIBAV_CONF_EXTRA_OPTS += --disable-vfp
endif
ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC),y)
GST1_LIBAV_CONF_EXTRA_OPTS += --enable-altivec
else
GST1_LIBAV_CONF_EXTRA_OPTS += --disable-altivec
endif
GST1_LIBAV_CONF_OPTS = \
--with-libav-extra-configure="$(GST1_LIBAV_CONF_EXTRA_OPTS)"
$(eval $(autotools-package))