glib-networking: bump to version 2.48.1
[buildroot-gz.git] / package / pulseaudio / pulseaudio.mk
blob06b0b843c5dbdb58d3e0b2935ccdd14746f2f886
1 ################################################################################
3 # pulseaudio
5 ################################################################################
7 PULSEAUDIO_VERSION = 8.0
8 PULSEAUDIO_SOURCE = pulseaudio-$(PULSEAUDIO_VERSION).tar.xz
9 PULSEAUDIO_SITE = http://freedesktop.org/software/pulseaudio/releases
10 PULSEAUDIO_INSTALL_STAGING = YES
11 PULSEAUDIO_LICENSE = LGPLv2.1+ (specific license for modules, see LICENSE file)
12 PULSEAUDIO_LICENSE_FILES = LICENSE GPL LGPL
13 PULSEAUDIO_CONF_OPTS = \
14 --disable-default-build-tests \
15 --disable-legacy-database-entry-format \
16 --disable-manpages
18 # Make sure we don't detect libatomic_ops. Indeed, since pulseaudio
19 # requires json-c, which needs 4 bytes __sync builtins, there should
20 # be no need for pulseaudio to rely on libatomic_ops.
21 PULSE_AUDIO_CONF_ENV += \
22 ac_cv_header_atomic_ops_h=no
24 PULSEAUDIO_DEPENDENCIES = \
25 host-pkgconf libtool json-c libsndfile speex host-intltool \
26 $(if $(BR2_PACKAGE_LIBSAMPLERATE),libsamplerate) \
27 $(if $(BR2_PACKAGE_ALSA_LIB),alsa-lib) \
28 $(if $(BR2_PACKAGE_LIBGLIB2),libglib2) \
29 $(if $(BR2_PACKAGE_AVAHI_DAEMON),avahi) \
30 $(if $(BR2_PACKAGE_DBUS),dbus) \
31 $(if $(BR2_PACKAGE_BLUEZ_UTILS),bluez_utils) \
32 $(if $(BR2_PACKAGE_OPENSSL),openssl) \
33 $(if $(BR2_PACKAGE_FFTW),fftw) \
34 $(if $(BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING),webrtc-audio-processing) \
35 $(if $(BR2_PACKAGE_SYSTEMD),systemd)
37 ifeq ($(BR2_PACKAGE_GDBM),y)
38 PULSEAUDIO_CONF_OPTS += --with-database=gdbm
39 PULSEAUDIO_DEPENDENCIES += gdbm
40 else
41 PULSEAUDIO_CONF_OPTS += --with-database=simple
42 endif
44 ifeq ($(BR2_PACKAGE_JACK2),y)
45 PULSEAUDIO_CONF_OPTS += --enable-jack
46 PULSEAUDIO_DEPENDENCIES += jack2
47 else
48 PULSEAUDIO_CONF_OPTS += --disable-jack
49 endif
51 ifeq ($(BR2_PACKAGE_ORC),y)
52 PULSEAUDIO_DEPENDENCIES += orc
53 PULSEAUDIO_CONF_ENV += ORCC=$(HOST_DIR)/usr/bin/orcc
54 PULSEAUDIO_CONF_OPTS += --enable-orc
55 else
56 PULSEAUDIO_CONF_OPTS += --disable-orc
57 endif
59 ifeq ($(BR2_PACKAGE_LIBCAP),y)
60 PULSEAUDIO_DEPENDENCIES += libcap
61 PULSEAUDIO_CONF_OPTS += --with-caps
62 else
63 PULSEAUDIO_CONF_OPTS += --without-caps
64 endif
66 # gtk3 support needs X11 backend
67 ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y)
68 PULSEAUDIO_DEPENDENCIES += libgtk3
69 PULSEAUDIO_CONF_OPTS += --enable-gtk3
70 else
71 PULSEAUDIO_CONF_OPTS += --disable-gtk3
72 endif
74 ifeq ($(BR2_PACKAGE_LIBSOXR),y)
75 PULSEAUDIO_CONF_OPTS += --with-soxr
76 PULSEAUDIO_DEPENDENCIES += libsoxr
77 else
78 PULSEAUDIO_CONF_OPTS += --without-soxr
79 endif
81 ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
82 PULSEAUDIO_CONF_OPTS += --enable-libudev
83 PULSEAUDIO_DEPENDENCIES += udev
84 else
85 PULSEAUDIO_CONF_OPTS += --disable-libudev
86 endif
88 ifneq ($(BR2_INSTALL_LIBSTDCPP),y)
89 # The optional webrtc echo canceller is written in C++, causing auto* to want
90 # to link module-echo-cancel.so with CXX even if webrtc ISN'T used.
91 # If we don't have C++ support enabled in BR, CXX will point to /bin/false,
92 # which makes configure think we aren't able to create C++ .so files
93 # (arguable true), breaking the build when it tries to install the .so
94 # workaround it by patching up the libtool invocations to use C mode instead
95 define PULSEAUDIO_FORCE_CC
96 $(SED) 's/--tag=CXX/--tag=CC/g' -e 's/(CXXLD)/(CCLD)/g' \
97 $(@D)/src/Makefile.in
98 endef
100 PULSEAUDIO_POST_PATCH_HOOKS += PULSEAUDIO_FORCE_CC
101 endif
103 # neon intrinsics not available with float-abi=soft
104 ifeq ($(BR2_ARM_SOFT_FLOAT),)
105 ifeq ($(BR2_ARM_CPU_HAS_NEON),y)
106 PULSEAUDIO_USE_NEON = y
107 endif
108 endif
110 ifeq ($(PULSEAUDIO_USE_NEON),y)
111 PULSEAUDIO_CONF_OPTS += --enable-neon-opt=yes
112 else
113 PULSEAUDIO_CONF_OPTS += --enable-neon-opt=no
114 endif
116 # pulseaudio alsa backend needs pcm/mixer apis
117 ifneq ($(BR2_PACKAGE_ALSA_LIB_PCM)$(BR2_PACKAGE_ALSA_LIB_MIXER),yy)
118 PULSEAUDIO_CONF_OPTS += --disable-alsa
119 endif
121 ifeq ($(BR2_PACKAGE_LIBXCB)$(BR2_PACKAGE_XLIB_LIBSM)$(BR2_PACKAGE_XLIB_LIBXTST),yyy)
122 PULSEAUDIO_DEPENDENCIES += libxcb xlib_libSM xlib_libXtst
124 # .desktop file generation needs nls support, so fake it for !locale builds
125 # https://bugs.freedesktop.org/show_bug.cgi?id=54658
126 ifneq ($(BR2_ENABLE_LOCALE),y)
127 define PULSEAUDIO_FIXUP_DESKTOP_FILES
128 cp $(@D)/src/daemon/pulseaudio.desktop.in \
129 $(@D)/src/daemon/pulseaudio.desktop
130 cp $(@D)/src/daemon/pulseaudio-kde.desktop.in \
131 $(@D)/src/daemon/pulseaudio-kde.desktop
132 endef
133 PULSEAUDIO_POST_PATCH_HOOKS += PULSEAUDIO_FIXUP_DESKTOP_FILES
134 endif
136 else
137 PULSEAUDIO_CONF_OPTS += --disable-x11
138 endif
140 define PULSEAUDIO_REMOVE_VALA
141 rm -rf $(TARGET_DIR)/usr/share/vala
142 endef
144 PULSEAUDIO_POST_INSTALL_TARGET_HOOKS += PULSEAUDIO_REMOVE_VALA
146 ifeq ($(BR2_PACKAGE_PULSEAUDIO_DAEMON),y)
147 define PULSEAUDIO_USERS
148 pulse -1 pulse -1 * /var/run/pulse - audio,pulse-access
149 endef
151 define PULSEAUDIO_INSTALL_INIT_SYSV
152 $(INSTALL) -D -m 755 package/pulseaudio/S50pulseaudio \
153 $(TARGET_DIR)/etc/init.d/S50pulseaudio
154 endef
156 define PULSEAUDIO_INSTALL_INIT_SYSTEMD
157 $(INSTALL) -D -m 644 package/pulseaudio/pulseaudio.service \
158 $(TARGET_DIR)/usr/lib/systemd/system/pulseaudio.service
159 mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
160 ln -sf ../../../../usr/lib/systemd/system/pulseaudio.service \
161 $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/pulseaudio.service
162 endef
164 endif
166 $(eval $(autotools-package))