a2e55071b4
With Microblaze Gcc version < 8.x the build hangs to gcc bug 85180: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85180. This package has been excluded from building if the toolchain is affected by gcc bug 85180. To be consistent with how we deal with this issue in other packages, we re-enable the package and instead work around the issue by building with -O0, since gcc bug 85180 manifests itself only when optimization is enabled. To achieve this: - add --disable-optimizations to EXTRA_OPTS, which gets passed down to the built-in libav library - pass -O0 to CFLAGS in CONF_ENV Then we remove 'depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_85180' and its comment if not available from Config.in Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com> [Thomas: tweak CFLAGS logic, improve commit log] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
104 lines
3.1 KiB
Makefile
104 lines
3.1 KiB
Makefile
################################################################################
|
|
#
|
|
# gst-ffmpeg
|
|
#
|
|
################################################################################
|
|
|
|
GST_FFMPEG_VERSION = 0.10.13
|
|
GST_FFMPEG_SOURCE = gst-ffmpeg-$(GST_FFMPEG_VERSION).tar.bz2
|
|
GST_FFMPEG_SITE = http://gstreamer.freedesktop.org/src/gst-ffmpeg
|
|
GST_FFMPEG_INSTALL_STAGING = YES
|
|
GST_FFMPEG_DEPENDENCIES = host-pkgconf gstreamer gst-plugins-base
|
|
|
|
ifeq ($(BR2_PACKAGE_GST_FFMPEG_GPL),y)
|
|
GST_FFMPEG_CONF_OPTS += --disable-lgpl
|
|
GST_FFMPEG_LICENSE = GPL-2.0+ (gst-ffmpeg), GPL-2.0+/GPL-3.0+ (libav)
|
|
GST_FFMPEG_LICENSE_FILES = COPYING gst-libs/ext/libav/COPYING.GPLv2 gst-libs/ext/libav/COPYING.GPLv3
|
|
else
|
|
GST_FFMPEG_CONF_OPTS += --enable-lgpl
|
|
GST_FFMPEG_LICENSE = LGPL-2.0+ (gst-ffmpeg), LGPL-2.1+/LGPL-3.0+ (libav)
|
|
GST_FFMPEG_LICENSE_FILES = COPYING.LIB gst-libs/ext/libav/COPYING.LGPLv2.1 gst-libs/ext/libav/COPYING.LGPLv3
|
|
endif
|
|
|
|
GST_FFMPEG_CONF_EXTRA_OPTS = \
|
|
--cross-prefix=$(TARGET_CROSS) \
|
|
--target-os=linux \
|
|
--pkg-config='$(PKG_CONFIG_HOST_BINARY)'
|
|
|
|
ifeq ($(BR2_PACKAGE_ZLIB),y)
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --enable-zlib
|
|
GST_FFMPEG_DEPENDENCIES += zlib
|
|
else
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --disable-zlib
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_BZIP2),y)
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --enable-bzlib
|
|
GST_FFMPEG_DEPENDENCIES += bzip2
|
|
else
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --disable-bzlib
|
|
endif
|
|
|
|
ifeq ($(BR2_X86_CPU_HAS_MMX),y)
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --enable-yasm
|
|
GST_FFMPEG_DEPENDENCIES += host-yasm
|
|
else
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --disable-yasm
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --disable-mmx
|
|
endif
|
|
|
|
ifeq ($(BR2_X86_CPU_HAS_SSE),y)
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --enable-sse
|
|
else
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --disable-sse
|
|
endif
|
|
|
|
ifeq ($(BR2_X86_CPU_HAS_SSSE3),y)
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --enable-ssse3
|
|
else
|
|
GST_FFMPEG_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)
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --disable-armv5te
|
|
endif
|
|
ifeq ($(BR2_ARM_CPU_ARMV6)$(BR2_ARM_CPU_ARMV7A),y)
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --enable-armv6
|
|
else
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --disable-armv6 --disable-armv6t2
|
|
endif
|
|
ifeq ($(BR2_ARM_CPU_HAS_NEON),y)
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --enable-neon
|
|
endif
|
|
|
|
ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC),y)
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --enable-altivec
|
|
else
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --disable-altivec
|
|
endif
|
|
|
|
# libav configure script misdetects the VIS optimizations as being
|
|
# available, so forcefully disable them.
|
|
ifeq ($(BR2_sparc_v8)$(BR2_sparc_leon3),y)
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --disable-vis
|
|
endif
|
|
|
|
ifeq ($(BR2_STATIC_LIBS),)
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --enable-pic
|
|
endif
|
|
|
|
GST_FFMPEG_CFLAGS = $(TARGET_CFLAGS)
|
|
|
|
ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y)
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --disable-optimizations
|
|
GST_FFMPEG_CFLAGS += -O0
|
|
endif
|
|
|
|
GST_FFMPEG_CONF_ENV += CFLAGS="$(GST_FFMPEG_CFLAGS)"
|
|
GST_FFMPEG_CONF_OPTS += --with-ffmpeg-extra-configure="$(GST_FFMPEG_CONF_EXTRA_OPTS)"
|
|
|
|
$(eval $(autotools-package))
|