xref: /OK3568_Linux_fs/buildroot/package/pulseaudio/pulseaudio.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1################################################################################
2#
3# pulseaudio
4#
5################################################################################
6
7PULSEAUDIO_VERSION = 14.2
8PULSEAUDIO_SOURCE = pulseaudio-$(PULSEAUDIO_VERSION).tar.xz
9PULSEAUDIO_SITE = https://freedesktop.org/software/pulseaudio/releases
10PULSEAUDIO_INSTALL_STAGING = YES
11PULSEAUDIO_LICENSE = LGPL-2.1+ (specific license for modules, see LICENSE file)
12PULSEAUDIO_LICENSE_FILES = LICENSE GPL LGPL
13PULSEAUDIO_CPE_ID_VENDOR = pulseaudio
14PULSEAUDIO_SELINUX_MODULES = pulseaudio xdg
15PULSEAUDIO_CONF_OPTS = \
16	--disable-default-build-tests \
17	--disable-legacy-database-entry-format \
18	--disable-manpages \
19	--disable-running-from-build-tree
20
21PULSEAUDIO_DEPENDENCIES = \
22	host-pkgconf libtool libsndfile speex \
23	$(TARGET_NLS_DEPENDENCIES) \
24	$(if $(BR2_PACKAGE_LIBGLIB2),libglib2) \
25	$(if $(BR2_PACKAGE_AVAHI_DAEMON),avahi) \
26	$(if $(BR2_PACKAGE_DBUS),dbus) \
27	$(if $(BR2_PACKAGE_NCURSES),ncurses) \
28	$(if $(BR2_PACKAGE_OPENSSL),openssl) \
29	$(if $(BR2_PACKAGE_FFTW_SINGLE),fftw-single) \
30	$(if $(BR2_PACKAGE_SYSTEMD),systemd)
31
32ifeq ($(BR2_PACKAGE_LIBSAMPLERATE),y)
33PULSEAUDIO_CONF_OPTS += --enable-samplerate
34PULSEAUDIO_DEPENDENCIES += libsamplerate
35else
36PULSEAUDIO_CONF_OPTS += --disable-samplerate
37endif
38
39ifeq ($(BR2_PACKAGE_GDBM),y)
40PULSEAUDIO_CONF_OPTS += --with-database=gdbm
41PULSEAUDIO_DEPENDENCIES += gdbm
42else
43PULSEAUDIO_CONF_OPTS += --with-database=simple
44endif
45
46ifeq ($(BR2_PACKAGE_JACK2),y)
47PULSEAUDIO_CONF_OPTS += --enable-jack
48PULSEAUDIO_DEPENDENCIES += jack2
49else
50PULSEAUDIO_CONF_OPTS += --disable-jack
51endif
52
53ifeq ($(BR2_PACKAGE_LIBATOMIC_OPS),y)
54PULSEAUDIO_DEPENDENCIES += libatomic_ops
55ifeq ($(BR2_sparc_v8)$(BR2_sparc_leon3),y)
56PULSEAUDIO_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -DAO_NO_SPARC_V9"
57endif
58endif
59
60ifeq ($(BR2_PACKAGE_ORC),y)
61PULSEAUDIO_DEPENDENCIES += orc
62PULSEAUDIO_CONF_ENV += ORCC=$(HOST_DIR)/bin/orcc
63PULSEAUDIO_CONF_OPTS += --enable-orc
64else
65PULSEAUDIO_CONF_OPTS += --disable-orc
66endif
67
68ifeq ($(BR2_PACKAGE_LIBCAP),y)
69PULSEAUDIO_DEPENDENCIES += libcap
70PULSEAUDIO_CONF_OPTS += --with-caps
71else
72PULSEAUDIO_CONF_OPTS += --without-caps
73endif
74
75# gtk3 support needs X11 backend
76ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y)
77PULSEAUDIO_DEPENDENCIES += libgtk3
78PULSEAUDIO_CONF_OPTS += --enable-gtk3
79else
80PULSEAUDIO_CONF_OPTS += --disable-gtk3
81endif
82
83ifeq ($(BR2_PACKAGE_LIBSOXR),y)
84PULSEAUDIO_CONF_OPTS += --with-soxr
85PULSEAUDIO_DEPENDENCIES += libsoxr
86else
87PULSEAUDIO_CONF_OPTS += --without-soxr
88endif
89
90ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS)$(BR2_PACKAGE_SBC),yy)
91PULSEAUDIO_CONF_OPTS += --enable-bluez5
92PULSEAUDIO_DEPENDENCIES += bluez5_utils sbc
93else
94PULSEAUDIO_CONF_OPTS += --disable-bluez5
95endif
96
97ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
98PULSEAUDIO_CONF_OPTS += --enable-udev
99PULSEAUDIO_DEPENDENCIES += udev
100else
101PULSEAUDIO_CONF_OPTS += --disable-udev
102endif
103
104ifeq ($(BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING),y)
105PULSEAUDIO_CONF_OPTS += --enable-webrtc-aec
106PULSEAUDIO_DEPENDENCIES += webrtc-audio-processing
107else
108PULSEAUDIO_CONF_OPTS += --disable-webrtc-aec
109endif
110
111# neon intrinsics not available with float-abi=soft
112ifeq ($(BR2_ARM_SOFT_FLOAT),)
113ifeq ($(BR2_ARM_CPU_HAS_NEON),y)
114PULSEAUDIO_USE_NEON = y
115endif
116endif
117
118ifeq ($(PULSEAUDIO_USE_NEON),y)
119PULSEAUDIO_CONF_OPTS += --enable-neon-opt=yes
120else
121PULSEAUDIO_CONF_OPTS += --enable-neon-opt=no
122endif
123
124# pulseaudio alsa backend needs pcm/mixer apis
125ifeq ($(BR2_PACKAGE_ALSA_LIB_PCM)$(BR2_PACKAGE_ALSA_LIB_MIXER),yy)
126PULSEAUDIO_DEPENDENCIES += alsa-lib
127PULSEAUDIO_CONF_OPTS += --enable-alsa
128else
129PULSEAUDIO_CONF_OPTS += --disable-alsa
130endif
131
132ifeq ($(BR2_PACKAGE_LIBXCB)$(BR2_PACKAGE_XLIB_LIBSM)$(BR2_PACKAGE_XLIB_LIBXTST),yyy)
133PULSEAUDIO_DEPENDENCIES += libxcb xlib_libSM xlib_libXtst
134
135# .desktop file generation needs nls support, so fake it for !locale builds
136# https://bugs.freedesktop.org/show_bug.cgi?id=54658
137ifeq ($(BR2_SYSTEM_ENABLE_NLS),)
138define PULSEAUDIO_FIXUP_DESKTOP_FILES
139	cp $(@D)/src/daemon/pulseaudio.desktop.in \
140		$(@D)/src/daemon/pulseaudio.desktop
141endef
142PULSEAUDIO_POST_PATCH_HOOKS += PULSEAUDIO_FIXUP_DESKTOP_FILES
143endif
144
145else
146PULSEAUDIO_CONF_OPTS += --disable-x11
147endif
148
149# ConsoleKit module init failure breaks user daemon startup
150define PULSEAUDIO_REMOVE_CONSOLE_KIT
151	rm -f $(TARGET_DIR)/usr/lib/pulseaudio/modules/module-console-kit.so
152endef
153
154define PULSEAUDIO_REMOVE_VALA
155	rm -rf $(TARGET_DIR)/usr/share/vala
156endef
157
158PULSEAUDIO_POST_INSTALL_TARGET_HOOKS += PULSEAUDIO_REMOVE_VALA \
159	PULSEAUDIO_REMOVE_CONSOLE_KIT
160
161ifeq ($(BR2_PACKAGE_PULSEAUDIO_DAEMON),y)
162define PULSEAUDIO_USERS
163	pulse -1 pulse -1 * /var/run/pulse - audio,pulse-access
164endef
165
166define PULSEAUDIO_INSTALL_INIT_SYSV
167	$(INSTALL) -D -m 755 package/pulseaudio/S50pulseaudio \
168		$(TARGET_DIR)/etc/init.d/S50pulseaudio
169	$(INSTALL) -D -m 755 package/pulseaudio/pulse.sh \
170		$(TARGET_DIR)/etc/profile.d/pulse.sh
171	$(INSTALL) -D -m 755 package/pulseaudio/default.pa \
172		$(TARGET_DIR)/etc/pulse/default.pa
173	$(INSTALL) -D -m 755 package/pulseaudio/daemon.conf \
174		$(TARGET_DIR)/etc/pulse/daemon.conf
175	$(INSTALL) -D -m 755 package/pulseaudio/client.conf \
176		$(TARGET_DIR)/etc/pulse/client.conf
177endef
178
179define PULSEAUDIO_INSTALL_INIT_SYSTEMD
180	$(INSTALL) -D -m 644 package/pulseaudio/pulseaudio.service \
181		$(TARGET_DIR)/usr/lib/systemd/system/pulseaudio.service
182endef
183
184endif
185
186$(eval $(autotools-package))
187