1################################################################################
2#
3# pulseaudio
4#
5################################################################################
6
7PULSEAUDIO_VERSION = 17.0
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	-Ddoxygen=false \
17	-Dlegacy-database-entry-format=false \
18	-Dman=false \
19	-Drunning-from-build-tree=false \
20	-Dtests=false
21
22PULSEAUDIO_DEPENDENCIES = \
23	host-pkgconf libtool libsndfile libglib2 \
24	$(TARGET_NLS_DEPENDENCIES)
25
26PULSEAUDIO_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS)
27
28ifeq ($(BR2_PACKAGE_AVAHI_LIBAVAHI_CLIENT),y)
29PULSEAUDIO_CONF_OPTS += -Davahi=enabled
30PULSEAUDIO_DEPENDENCIES += avahi
31else
32PULSEAUDIO_CONF_OPTS += -Davahi=disabled
33endif
34
35ifeq ($(BR2_PACKAGE_DBUS),y)
36PULSEAUDIO_CONF_OPTS += -Ddbus=enabled
37PULSEAUDIO_DEPENDENCIES += dbus
38else
39PULSEAUDIO_CONF_OPTS += -Ddbus=disabled
40endif
41
42ifeq ($(BR2_PACKAGE_FFTW_SINGLE),y)
43PULSEAUDIO_CONF_OPTS += -Dfftw=enabled
44PULSEAUDIO_DEPENDENCIES += fftw-single
45else
46PULSEAUDIO_CONF_OPTS += -Dfftw=disabled
47endif
48
49ifeq ($(BR2_PACKAGE_LIBSAMPLERATE),y)
50PULSEAUDIO_CONF_OPTS += -Dsamplerate=enabled
51PULSEAUDIO_DEPENDENCIES += libsamplerate
52else
53PULSEAUDIO_CONF_OPTS += -Dsamplerate=disabled
54endif
55
56ifeq ($(BR2_PACKAGE_GDBM),y)
57PULSEAUDIO_CONF_OPTS += -Ddatabase=gdbm
58PULSEAUDIO_DEPENDENCIES += gdbm
59else
60PULSEAUDIO_CONF_OPTS += -Ddatabase=simple
61endif
62
63ifeq ($(BR2_PACKAGE_JACK2),y)
64PULSEAUDIO_CONF_OPTS += -Djack=enabled
65PULSEAUDIO_DEPENDENCIES += jack2
66else
67PULSEAUDIO_CONF_OPTS += -Djack=disabled
68endif
69
70ifeq ($(BR2_PACKAGE_LIBATOMIC_OPS),y)
71PULSEAUDIO_DEPENDENCIES += libatomic_ops
72ifeq ($(BR2_sparc_v8)$(BR2_sparc_leon3),y)
73PULSEAUDIO_CFLAGS = $(TARGET_CFLAGS) -DAO_NO_SPARC_V9
74endif
75endif
76
77ifeq ($(BR2_PACKAGE_LIRC_TOOLS),y)
78PULSEAUDIO_DEPENDENCIES += lirc-tools
79PULSEAUDIO_CONF_OPTS += -Dlirc=enabled
80else
81PULSEAUDIO_CONF_OPTS += -Dlirc=disabled
82endif
83
84ifeq ($(BR2_PACKAGE_OPENSSL),y)
85PULSEAUDIO_CONF_OPTS += -Dopenssl=enabled
86PULSEAUDIO_DEPENDENCIES += openssl
87else
88PULSEAUDIO_CONF_OPTS += -Dopenssl=disabled
89endif
90
91ifeq ($(BR2_PACKAGE_ORC),y)
92PULSEAUDIO_DEPENDENCIES += orc
93PULSEAUDIO_CONF_ENV += ORCC=$(HOST_DIR)/bin/orcc
94PULSEAUDIO_CONF_OPTS += -Dorc=enabled
95else
96PULSEAUDIO_CONF_OPTS += -Dorc=disabled
97endif
98
99ifeq ($(BR2_PACKAGE_LIBCAP),y)
100PULSEAUDIO_DEPENDENCIES += libcap
101endif
102
103# gtk3 support needs X11 backend
104ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y)
105PULSEAUDIO_DEPENDENCIES += libgtk3
106PULSEAUDIO_CONF_OPTS += -Dgtk=enabled
107else
108PULSEAUDIO_CONF_OPTS += -Dgtk=disabled
109endif
110
111ifeq ($(BR2_PACKAGE_LIBSOXR),y)
112PULSEAUDIO_CONF_OPTS += -Dsoxr=enabled
113PULSEAUDIO_DEPENDENCIES += libsoxr
114else
115PULSEAUDIO_CONF_OPTS += -Dsoxr=disabled
116endif
117
118ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS)$(BR2_PACKAGE_SBC),yy)
119PULSEAUDIO_CONF_OPTS += -Dbluez5=enabled
120PULSEAUDIO_DEPENDENCIES += bluez5_utils sbc
121else
122PULSEAUDIO_CONF_OPTS += -Dbluez5=disabled
123endif
124
125ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
126PULSEAUDIO_CONF_OPTS += -Dudev=enabled
127PULSEAUDIO_DEPENDENCIES += udev
128else
129PULSEAUDIO_CONF_OPTS += -Dudev=disabled
130endif
131
132ifeq ($(BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING),y)
133PULSEAUDIO_CONF_OPTS += -Dwebrtc-aec=enabled
134PULSEAUDIO_DEPENDENCIES += webrtc-audio-processing
135else
136PULSEAUDIO_CONF_OPTS += -Dwebrtc-aec=disabled
137endif
138
139# our Config.in makes sure that all needed alsa-lib features are
140# enabled
141ifeq ($(BR2_PACKAGE_ALSA_LIB),y)
142PULSEAUDIO_DEPENDENCIES += alsa-lib
143PULSEAUDIO_CONF_OPTS += -Dalsa=enabled
144else
145PULSEAUDIO_CONF_OPTS += -Dalsa=disabled
146endif
147
148ifeq ($(BR2_PACKAGE_LIBXCB)$(BR2_PACKAGE_XLIB_LIBSM)$(BR2_PACKAGE_XLIB_LIBXTST),yyy)
149PULSEAUDIO_DEPENDENCIES += libxcb xlib_libSM xlib_libXtst
150
151# .desktop file generation needs nls support, so fake it for !locale builds
152# https://bugs.freedesktop.org/show_bug.cgi?id=54658
153ifeq ($(BR2_SYSTEM_ENABLE_NLS),)
154define PULSEAUDIO_FIXUP_DESKTOP_FILES
155	cp $(@D)/src/daemon/pulseaudio.desktop.in \
156		$(@D)/src/daemon/pulseaudio.desktop
157endef
158PULSEAUDIO_POST_PATCH_HOOKS += PULSEAUDIO_FIXUP_DESKTOP_FILES
159endif
160
161else
162PULSEAUDIO_CONF_OPTS += -Dx11=disabled
163endif
164
165# This is not a mistake: the option is called speex, but what it
166# really needs is speexdsp
167ifeq ($(BR2_PACKAGE_SPEEXDSP),y)
168PULSEAUDIO_CONF_OPTS += -Dspeex=enabled
169PULSEAUDIO_DEPENDENCIES += speexdsp
170else
171PULSEAUDIO_CONF_OPTS += -Dspeex=disabled
172endif
173
174ifeq ($(BR2_PACKAGE_SYSTEMD),y)
175PULSEAUDIO_CONF_OPTS += -Dsystemd=enabled
176PULSEAUDIO_DEPENDENCIES += systemd
177else
178PULSEAUDIO_CONF_OPTS += -Dsystemd=disabled
179endif
180
181ifeq ($(BR2_PACKAGE_VALGRIND),y)
182PULSEAUDIO_CONF_OPTS += -Dvalgrind=enabled
183PULSEAUDIO_DEPENDENCIES += valgrind
184else
185PULSEAUDIO_CONF_OPTS += -Dvalgrind=disabled
186endif
187
188# ConsoleKit module init failure breaks user daemon startup
189define PULSEAUDIO_REMOVE_CONSOLE_KIT
190	rm -f $(TARGET_DIR)/usr/lib/pulse-$(PULSEAUDIO_VERSION)/modules/module-console-kit.so
191endef
192
193define PULSEAUDIO_REMOVE_VALA
194	rm -rf $(TARGET_DIR)/usr/share/vala
195endef
196
197PULSEAUDIO_POST_INSTALL_TARGET_HOOKS += PULSEAUDIO_REMOVE_VALA \
198	PULSEAUDIO_REMOVE_CONSOLE_KIT
199
200ifeq ($(BR2_PACKAGE_PULSEAUDIO_DAEMON),y)
201define PULSEAUDIO_USERS
202	pulse -1 pulse -1 * /var/run/pulse - audio,pulse-access
203endef
204
205define PULSEAUDIO_INSTALL_INIT_SYSV
206	$(INSTALL) -D -m 755 package/pulseaudio/S50pulseaudio \
207		$(TARGET_DIR)/etc/init.d/S50pulseaudio
208endef
209
210define PULSEAUDIO_INSTALL_INIT_SYSTEMD
211	$(INSTALL) -D -m 644 package/pulseaudio/pulseaudio.service \
212		$(TARGET_DIR)/usr/lib/systemd/system/pulseaudio.service
213endef
214
215endif
216
217$(eval $(meson-package))
218