kumquat-buildroot/package/multimedia/pulseaudio/pulseaudio.mk
Thomas Petazzoni f09636710b pulseaudio: fix NEON usage
The NEON intrinsics used by Pulseaudio are only available in either
-mfloat-abi=softfp or -mfloat-abi=hard, not in
-mfloat-abi=soft. Therefore having NEON support in the processor is
not sufficient, we also should *not* be using soft-float.

Moreover, looking at BR2_ARM_ENABLE_NEON to know if the processor has
NEON support is incorrect. This option is only here to allow the user
to tell whether the processor has NEON support or not, for the ARM
cores that only have optional NEON support. Instead, the
BR2_ARM_CPU_HAS_NEON option really indicates whether NEON is available
or not (it is either set automatically by the ARM cores that always
have NEON support, or when BR2_ARM_ENABLE_NEON is enabled by the user
to confirm that his ARM processor has NEON support).

This fixes build failures such as
http://autobuild.buildroot.org/results/675/675c96059be348b594cc92980bef391126931c83/build-end.log

[Peter: add comment about reason for soft abi check]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-08-27 23:02:23 +02:00

116 lines
3.6 KiB
Makefile

################################################################################
#
# pulseaudio
#
################################################################################
PULSEAUDIO_VERSION = 4.0
PULSEAUDIO_SITE = http://freedesktop.org/software/pulseaudio/releases/
PULSEAUDIO_INSTALL_STAGING = YES
PULSEAUDIO_LICENSE = LGPLv2.1+ (specific license for modules, see LICENSE file)
PULSEAUDIO_LICENSE_FILES = LICENSE GPL LGPL
PULSEAUDIO_CONF_OPT = \
--localstatedir=/var \
--disable-default-build-tests \
--disable-legacy-runtime-dir \
--disable-legacy-database-entry-format \
$(if $(BR2_HAVE_DOCUMENTATION),,--disable-manpages)
PULSEAUDIO_DEPENDENCIES = \
host-pkgconf libtool json-c libsndfile speex host-intltool \
$(if $(BR2_PACKAGE_LIBATOMIC_OPS),libatomic_ops) \
$(if $(BR2_PACKAGE_LIBSAMPLERATE),libsamplerate) \
$(if $(BR2_PACKAGE_ALSA_LIB),alsa-lib) \
$(if $(BR2_PACKAGE_LIBGLIB2),libglib2) \
$(if $(BR2_PACKAGE_AVAHI_DAEMON),avahi) \
$(if $(BR2_PACKAGE_DBUS),dbus) \
$(if $(BR2_PACKAGE_BLUEZ_UTILS),bluez_utils) \
$(if $(BR2_PACKAGE_UDEV),udev) \
$(if $(BR2_PACKAGE_OPENSSL),openssl) \
$(if $(BR2_PACKAGE_FFTW),fftw) \
$(if $(BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING),webrtc-audio-processing) \
$(if $(BR2_PACKAGE_SYSTEMD),systemd)
ifeq ($(BR2_PACKAGE_ORC),y)
PULSEAUDIO_DEPENDENCIES += orc
PULSEAUDIO_CONF_ENV += ORCC=$(HOST_DIR)/usr/bin/orcc
PULSEAUDIO_CONF_OPT += --enable-orc
else
PULSEAUDIO_CONF_OPT += --disable-orc
endif
ifneq ($(BR2_INSTALL_LIBSTDCPP),y)
# The optional webrtc echo canceller is written in C++, causing auto* to want
# to link module-echo-cancel.so with CXX even if webrtc ISN'T used.
# If we don't have C++ support enabled in BR, CXX will point to /bin/false,
# which makes configure think we aren't able to create C++ .so files
# (arguable true), breaking the build when it tries to install the .so
# workaround it by patching up the libtool invocations to use C mode instead
define PULSEAUDIO_FORCE_CC
$(SED) 's/--tag=CXX/--tag=CC/g' -e 's/(CXXLD)/(CCLD)/g' \
$(@D)/src/Makefile.in
endef
PULSEAUDIO_POST_PATCH_HOOKS += PULSEAUDIO_FORCE_CC
endif
# neon intrinsics not available with float-abi=soft
ifeq ($(BR2_ARM_SOFT_FLOAT),)
ifeq ($(BR2_ARM_CPU_HAS_NEON),y)
PULSEAUDIO_USE_NEON = y
endif
endif
ifeq ($(PULSEAUDIO_USE_NEON),y)
PULSEAUDIO_CONF_OPT += --enable-neon-opt=yes
else
PULSEAUDIO_CONF_OPT += --enable-neon-opt=no
endif
# pulseaudio alsa backend needs pcm/mixer apis
ifneq ($(BR2_PACKAGE_ALSA_LIB_PCM)$(BR2_PACKAGE_ALSA_LIB_MIXER),yy)
PULSEAUDIO_CONF_OPT += --disable-alsa
endif
ifeq ($(BR2_PACKAGE_LIBXCB)$(BR2_PACKAGE_XLIB_LIBSM)$(BR2_PACKAGE_XLIB_LIBXTST),yyy)
PULSEAUDIO_DEPENDENCIES += libxcb xlib_libSM xlib_libXtst
# .desktop file generation needs nls support, so fake it for !locale builds
# https://bugs.freedesktop.org/show_bug.cgi?id=54658
ifneq ($(BR2_ENABLE_LOCALE),y)
define PULSEAUDIO_FIXUP_DESKTOP_FILES
cp $(@D)/src/daemon/pulseaudio.desktop.in \
$(@D)/src/daemon/pulseaudio.desktop
cp $(@D)/src/daemon/pulseaudio-kde.desktop.in \
$(@D)/src/daemon/pulseaudio-kde.desktop
endef
PULSEAUDIO_POST_PATCH_HOOKS += PULSEAUDIO_FIXUP_DESKTOP_FILES
endif
else
PULSEAUDIO_CONF_OPT += --disable-x11
endif
ifneq ($(BR2_PACKAGE_VALA),y)
define PULSEAUDIO_REMOVE_VALA
rm -rf $(TARGET_DIR)/usr/share/vala
endef
PULSEAUDIO_POST_INSTALL_TARGET_HOOKS += PULSEAUDIO_REMOVE_VALA
endif
ifeq ($(BR2_PACKAGE_PULSEAUDIO_DAEMON),y)
define PULSEAUDIO_USERS
pulse -1 pulse -1 * /var/run/pulse - audio,pulse-access
endef
define PULSEAUDIO_INSTALL_INIT_SYSV
$(INSTALL) -D -m 755 package/multimedia/pulseaudio/S50pulseaudio \
$(TARGET_DIR)/etc/init.d/S50pulseaudio
endef
endif
$(eval $(autotools-package))