$(PTHREAD_CFLAGS) \
-DPA_ALSA_PATHS_DIR=\"$(alsapathsdir)\" \
-DPA_ALSA_PROFILE_SETS_DIR=\"$(alsaprofilesetsdir)\"
+AM_CXXFLAGS = $(AM_CFLAGS)
SERVER_CFLAGS = -D__INCLUDED_FROM_PULSE_AUDIO
AM_LIBADD = $(PTHREAD_LIBS) $(INTLLIBS)
# Test programs #
###################################
-TESTS = \
+TESTS_default = \
mainloop-test \
strlist-test \
close-test \
- voltest \
- vector-test \
memblockq-test \
channelmap-test \
thread-mainloop-test \
asyncmsgq-test \
queue-test \
rtpoll-test \
- sig2str-test \
resampler-test \
smoother-test \
+ thread-test \
+ volume-test \
mix-test \
- remix-test \
proplist-test \
lock-autospawn-test \
prioq-test
TESTS_norun = \
mcalign-test \
- once-test \
pacat-simple \
parec-simple \
- extended-test \
- sync-playback \
- interpol-test \
- thread-test \
flist-test \
+ remix-test \
rtstutter \
+ sig2str-test \
stripnul \
- connect-stress
+ echo-cancel-test
+
+# These tests need a running pulseaudio daemon
+TESTS_daemon = \
+ connect-stress \
+ extended-test \
+ interpol-test \
+ sync-playback
if !OS_IS_WIN32
-TESTS += \
+TESTS_default += \
sigbus-test \
usergroup-test
endif
+if !OS_IS_DARWIN
+TESTS_default += \
+ once-test
+endif
+
if HAVE_SIGXCPU
TESTS_norun += \
cpulimit-test \
endif
if HAVE_GLIB20
-TESTS += \
+TESTS_default += \
mainloop-test-glib
endif
alsa-time-test
endif
+TESTS_ENVIRONMENT=MAKE_CHECK=1
+TESTS = $(TESTS_default)
+
if BUILD_TESTS_DEFAULT
-noinst_PROGRAMS = $(TESTS) $(TESTS_norun)
+noinst_PROGRAMS = $(TESTS_default) $(TESTS_norun) $(TESTS_daemon)
else
-check_PROGRAMS = $(TESTS) $(TESTS_norun)
+check_PROGRAMS = $(TESTS_default) $(TESTS_norun) $(TESTS_daemon)
endif
+check-daemon:
+ $(MAKE) check TESTS="$(TESTS_daemon)"
+
mainloop_test_SOURCES = tests/mainloop-test.c
mainloop_test_CFLAGS = $(AM_CFLAGS)
mainloop_test_LDADD = $(AM_LDADD) libpulse.la libpulsecommon-@PA_MAJORMINOR@.la
utf8_test_SOURCES = tests/utf8-test.c
utf8_test_CFLAGS = $(AM_CFLAGS)
-utf8_test_LDADD = $(AM_LDADD) libpulsecore-@PA_MAJORMINOR@.la libpulse.la libpulsecommon-@PA_MAJORMINOR@.la
+utf8_test_LDADD = $(AM_LDADD) libpulse.la
utf8_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
format_test_SOURCES = tests/format-test.c
mcalign_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
pacat_simple_SOURCES = tests/pacat-simple.c
-pacat_simple_LDADD = $(AM_LDADD) libpulse.la libpulse-simple.la libpulsecommon-@PA_MAJORMINOR@.la
+pacat_simple_LDADD = $(AM_LDADD) libpulse.la libpulse-simple.la
pacat_simple_CFLAGS = $(AM_CFLAGS)
pacat_simple_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
parec_simple_SOURCES = tests/parec-simple.c
-parec_simple_LDADD = $(AM_LDADD) libpulse.la libpulse-simple.la libpulsecommon-@PA_MAJORMINOR@.la
+parec_simple_LDADD = $(AM_LDADD) libpulse.la libpulse-simple.la
parec_simple_CFLAGS = $(AM_CFLAGS)
parec_simple_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
extended_test_SOURCES = tests/extended-test.c
-extended_test_LDADD = $(AM_LDADD) libpulse.la libpulsecommon-@PA_MAJORMINOR@.la
+extended_test_LDADD = $(AM_LDADD) libpulse.la
extended_test_CFLAGS = $(AM_CFLAGS)
extended_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
close_test_LDADD = $(AM_LDADD) $(WINSOCK_LIBS) libpulsecore-@PA_MAJORMINOR@.la libpulse.la libpulsecommon-@PA_MAJORMINOR@.la
close_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
-voltest_SOURCES = tests/voltest.c
-voltest_CFLAGS = $(AM_CFLAGS)
-voltest_LDADD = $(AM_LDADD) libpulse.la libpulsecommon-@PA_MAJORMINOR@.la
-voltest_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
-
-vector_test_SOURCES = tests/vector-test.c
-vector_test_CFLAGS = $(AM_CFLAGS)
-vector_test_LDADD = $(AM_LDADD) libpulsecore-@PA_MAJORMINOR@.la libpulse.la libpulsecommon-@PA_MAJORMINOR@.la
-vector_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
+volume_test_SOURCES = tests/volume-test.c
+volume_test_CFLAGS = $(AM_CFLAGS)
+volume_test_LDADD = $(AM_LDADD) libpulse.la libpulsecommon-@PA_MAJORMINOR@.la
+volume_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
channelmap_test_SOURCES = tests/channelmap-test.c
channelmap_test_CFLAGS = $(AM_CFLAGS)
-channelmap_test_LDADD = $(AM_LDADD) libpulse.la libpulsecommon-@PA_MAJORMINOR@.la
+channelmap_test_LDADD = $(AM_LDADD) libpulse.la
channelmap_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
cpulimit_test_SOURCES = tests/cpulimit-test.c daemon/cpulimit.c daemon/cpulimit.h
memblockq_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
sync_playback_SOURCES = tests/sync-playback.c
-sync_playback_LDADD = $(AM_LDADD) libpulse.la libpulsecommon-@PA_MAJORMINOR@.la
+sync_playback_LDADD = $(AM_LDADD) libpulse.la
sync_playback_CFLAGS = $(AM_CFLAGS)
sync_playback_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
interpol_test_SOURCES = tests/interpol-test.c
-interpol_test_LDADD = $(AM_LDADD) libpulse.la libpulsecore-@PA_MAJORMINOR@.la libpulse.la libpulsecommon-@PA_MAJORMINOR@.la
+interpol_test_LDADD = $(AM_LDADD) libpulsecore-@PA_MAJORMINOR@.la libpulse.la libpulsecommon-@PA_MAJORMINOR@.la
interpol_test_CFLAGS = $(AM_CFLAGS)
interpol_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
sigbus_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
gtk_test_SOURCES = tests/gtk-test.c
-gtk_test_LDADD = $(AM_LDADD) $(GTK20_LIBS) libpulse.la libpulse-mainloop-glib.la libpulse.la libpulsecommon-@PA_MAJORMINOR@.la
+gtk_test_LDADD = $(AM_LDADD) $(GTK20_LIBS) libpulse-mainloop-glib.la libpulse.la
gtk_test_CFLAGS = $(AM_CFLAGS) $(GTK20_CFLAGS)
gtk_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
usergroup_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
connect_stress_SOURCES = tests/connect-stress.c
-connect_stress_LDADD = $(AM_LDADD) libpulse.la libpulsecommon-@PA_MAJORMINOR@.la
+connect_stress_LDADD = $(AM_LDADD) libpulse.la
connect_stress_CFLAGS = $(AM_CFLAGS)
connect_stress_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
+echo_cancel_test_SOURCES = $(module_echo_cancel_la_SOURCES)
+nodist_echo_cancel_test_SOURCES = $(nodist_module_echo_cancel_la_SOURCES)
+echo_cancel_test_LDADD = $(module_echo_cancel_la_LIBADD)
+echo_cancel_test_CFLAGS = $(module_echo_cancel_la_CFLAGS) -DECHO_CANCEL_TEST=1
+if HAVE_WEBRTC
+echo_cancel_test_CXXFLAGS = $(module_echo_cancel_la_CXXFLAGS) -DECHO_CANCEL_TEST=1
+endif
+echo_cancel_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
###################################
# Common library #
pulsecore/lock-autospawn.c pulsecore/lock-autospawn.h \
pulsecore/log.c pulsecore/log.h \
pulsecore/ratelimit.c pulsecore/ratelimit.h \
- pulsecore/macro.h pulsecore/vector.h \
+ pulsecore/macro.h \
pulsecore/mcalign.c pulsecore/mcalign.h \
pulsecore/memblock.c pulsecore/memblock.h \
pulsecore/memblockq.c pulsecore/memblockq.h \
pulsecore/sndfile-util.c pulsecore/sndfile-util.h \
pulsecore/socket.h
-libpulsecommon_@PA_MAJORMINOR@_la_CFLAGS = $(AM_CFLAGS) $(LIBSAMPLERATE_CFLAGS) $(LIBSNDFILE_CFLAGS)
+libpulsecommon_@PA_MAJORMINOR@_la_CFLAGS = $(AM_CFLAGS) $(LIBSNDFILE_CFLAGS)
libpulsecommon_@PA_MAJORMINOR@_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
-libpulsecommon_@PA_MAJORMINOR@_la_LIBADD = $(AM_LIBADD) $(LIBWRAP_LIBS) $(WINSOCK_LIBS) $(LTLIBICONV) $(LIBSAMPLERATE_LIBS) $(LIBSNDFILE_LIBS)
+libpulsecommon_@PA_MAJORMINOR@_la_LIBADD = $(AM_LIBADD) $(LIBWRAP_LIBS) $(WINSOCK_LIBS) $(LTLIBICONV) $(LIBSNDFILE_LIBS)
if HAVE_X11
libpulsecommon_@PA_MAJORMINOR@_la_SOURCES += \
pulsecore/sconv_sse.c \
pulsecore/sconv.c pulsecore/sconv.h \
pulsecore/shared.c pulsecore/shared.h \
- pulsecore/shm.c pulsecore/shm.h \
pulsecore/sink-input.c pulsecore/sink-input.h \
pulsecore/sink.c pulsecore/sink.h \
+ pulsecore/device-port.c pulsecore/device-port.h \
pulsecore/sioman.c pulsecore/sioman.h \
pulsecore/sound-file-stream.c pulsecore/sound-file-stream.h \
pulsecore/sound-file.c pulsecore/sound-file.h \
pulsecore/source.c pulsecore/source.h \
pulsecore/start-child.c pulsecore/start-child.h \
pulsecore/thread-mq.c pulsecore/thread-mq.h \
- pulsecore/time-smoother.c pulsecore/time-smoother.h \
pulsecore/database.h
libpulsecore_@PA_MAJORMINOR@_la_CFLAGS = $(AM_CFLAGS) $(SERVER_CFLAGS) $(LIBSAMPLERATE_CFLAGS) $(LIBSPEEX_CFLAGS) $(LIBSNDFILE_CFLAGS) $(WINSOCK_CFLAGS)
libprotocol-cli.la \
libprotocol-simple.la \
libprotocol-http.la \
- libprotocol-native.la \
+ libprotocol-native.la
+
+if HAVE_ESOUND
+modlibexec_LTLIBRARIES += \
libprotocol-esound.la
+endif
# We need to emulate sendmsg/recvmsg to support this on Win32
if !OS_IS_WIN32
libprotocol_native_la_LIBADD += $(DBUS_LIBS)
endif
+if HAVE_ESOUND
libprotocol_esound_la_SOURCES = pulsecore/protocol-esound.c pulsecore/protocol-esound.h pulsecore/esound.h
libprotocol_esound_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
libprotocol_esound_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINOR@.la libpulsecommon-@PA_MAJORMINOR@.la libpulse.la
+endif
librtp_la_SOURCES = \
modules/rtp/rtp.c modules/rtp/rtp.h \
module-sine.la \
module-native-protocol-tcp.la \
module-native-protocol-fd.la \
- module-esound-protocol-tcp.la \
module-combine.la \
module-combine-sink.la \
module-remap-sink.la \
module-ladspa-sink.la \
- module-esound-sink.la \
module-tunnel-sink.la \
module-tunnel-source.la \
module-position-event-sounds.la \
module-augment-properties.la \
- module-cork-music-on-phone.la \
+ module-role-cork.la \
module-loopback.la \
module-virtual-sink.la \
module-virtual-source.la \
module-filter-apply.la \
module-filter-heuristics.la
+if HAVE_ESOUND
+modlibexec_LTLIBRARIES += \
+ module-esound-protocol-tcp.la \
+ module-esound-sink.la
+endif
+
# See comment at librtp.la above
if !OS_IS_WIN32
modlibexec_LTLIBRARIES += \
module-cli-protocol-unix.la \
module-simple-protocol-unix.la \
module-http-protocol-unix.la \
- module-native-protocol-unix.la \
+ module-native-protocol-unix.la
+if HAVE_ESOUND
+modlibexec_LTLIBRARIES += \
module-esound-protocol-unix.la
endif
+endif
if HAVE_MKFIFO
modlibexec_LTLIBRARIES += \
endif
if !OS_IS_WIN32
+if HAVE_ESOUND
modlibexec_LTLIBRARIES += \
module-esound-compat-spawnfd.la \
module-esound-compat-spawnpid.la
endif
+endif
if HAVE_REGEX
modlibexec_LTLIBRARIES += \
module-pipe-source-symdef.h \
module-simple-protocol-tcp-symdef.h \
module-simple-protocol-unix-symdef.h \
- module-esound-protocol-tcp-symdef.h \
- module-esound-protocol-unix-symdef.h \
module-native-protocol-tcp-symdef.h \
module-native-protocol-unix-symdef.h \
module-native-protocol-fd-symdef.h \
module-remap-sink-symdef.h \
module-ladspa-sink-symdef.h \
module-equalizer-sink-symdef.h \
- module-esound-compat-spawnfd-symdef.h \
- module-esound-compat-spawnpid-symdef.h \
module-match-symdef.h \
module-tunnel-sink-symdef.h \
module-tunnel-source-symdef.h \
module-null-sink-symdef.h \
module-null-source-symdef.h \
module-sine-source-symdef.h \
- module-esound-sink-symdef.h \
module-zeroconf-publish-symdef.h \
module-zeroconf-discover-symdef.h \
module-bonjour-publish-symdef.h \
module-gconf-symdef.h \
module-position-event-sounds-symdef.h \
module-augment-properties-symdef.h \
- module-cork-music-on-phone-symdef.h \
+ module-role-cork-symdef.h \
module-console-kit-symdef.h \
module-dbus-protocol-symdef.h \
module-loopback-symdef.h \
module-filter-apply-symdef.h \
module-filter-heuristics-symdef.h
+if HAVE_ESOUND
+SYMDEF_FILES += \
+ module-esound-protocol-tcp-symdef.h \
+ module-esound-protocol-unix-symdef.h \
+ module-esound-compat-spawnfd-symdef.h \
+ module-esound-compat-spawnpid-symdef.h \
+ module-esound-sink-symdef.h
+endif
+
EXTRA_DIST += $(SYMDEF_FILES)
BUILT_SOURCES += $(SYMDEF_FILES) builddirs
# EsounD protocol
+if HAVE_ESOUND
module_esound_protocol_tcp_la_SOURCES = modules/module-protocol-stub.c
module_esound_protocol_tcp_la_CFLAGS = -DUSE_TCP_SOCKETS -DUSE_PROTOCOL_ESOUND $(AM_CFLAGS)
module_esound_protocol_tcp_la_LDFLAGS = $(MODULE_LDFLAGS)
module_esound_sink_la_SOURCES = modules/module-esound-sink.c
module_esound_sink_la_LDFLAGS = $(MODULE_LDFLAGS) $(WINSOCK_LIBS)
module_esound_sink_la_LIBADD = $(MODULE_LIBADD)
+endif
# Pipes
module_bonjour_publish_la_SOURCES = modules/macosx/module-bonjour-publish.c
module_bonjour_publish_la_LDFLAGS = $(MODULE_LDFLAGS) \
-Wl,-framework -Wl,CoreFoundation -framework CoreFoundation
-module_bonjour_publish_la_LIBADD = $(MODULE_LIBADD)
+module_bonjour_publish_la_LIBADD = $(MODULE_LIBADD) libprotocol-native.la
# LIRC
#module_augment_properties_la_CFLAGS = $(AM_CFLAGS) -DDESKTOPFILEDIR=\"$(datadir)/applications\"
module_augment_properties_la_CFLAGS = $(AM_CFLAGS) -DDESKTOPFILEDIR=\"/usr/share/applications\"
-# Cork music streams while a phone stream is active
-module_cork_music_on_phone_la_SOURCES = modules/module-cork-music-on-phone.c
-module_cork_music_on_phone_la_LDFLAGS = $(MODULE_LDFLAGS)
-module_cork_music_on_phone_la_LIBADD = $(MODULE_LIBADD)
-module_cork_music_on_phone_la_CFLAGS = $(AM_CFLAGS)
+# Cork certain streams while others are active (e.g. cork music when phone streams appear)
+module_role_cork_la_SOURCES = modules/module-role-cork.c
+module_role_cork_la_LDFLAGS = $(MODULE_LDFLAGS)
+module_role_cork_la_LIBADD = $(MODULE_LIBADD)
+module_role_cork_la_CFLAGS = $(AM_CFLAGS)
# Device description restore module
module_device_manager_la_SOURCES = modules/module-device-manager.c
# echo-cancel module
module_echo_cancel_la_SOURCES = \
- modules/echo-cancel/module-echo-cancel.c modules/echo-cancel/echo-cancel.h \
- modules/echo-cancel/speex.c \
- modules/echo-cancel/adrian-aec.c modules/echo-cancel/adrian-aec.h \
- modules/echo-cancel/adrian.c modules/echo-cancel/adrian.h
+ modules/echo-cancel/module-echo-cancel.c modules/echo-cancel/echo-cancel.h
module_echo_cancel_la_LDFLAGS = $(MODULE_LDFLAGS)
module_echo_cancel_la_LIBADD = $(MODULE_LIBADD) $(LIBSPEEX_LIBS)
-module_echo_cancel_la_CFLAGS = $(AM_CFLAGS) $(LIBSPEEX_CFLAGS)
+module_echo_cancel_la_CFLAGS = $(AM_CFLAGS) $(SERVER_CFLAGS) $(LIBSPEEX_CFLAGS)
+if HAVE_ADRIAN_EC
+module_echo_cancel_la_SOURCES += \
+ modules/echo-cancel/adrian-aec.c modules/echo-cancel/adrian-aec.h \
+ modules/echo-cancel/adrian.c modules/echo-cancel/adrian.h
+module_echo_cancel_la_CFLAGS += -DHAVE_ADRIAN_EC=1
if HAVE_ORC
ORC_SOURCE += modules/echo-cancel/adrian-aec
nodist_module_echo_cancel_la_SOURCES = \
module_echo_cancel_la_LIBADD += $(ORC_LIBS)
module_echo_cancel_la_CFLAGS += $(ORC_CFLAGS) -I$(top_builddir)/src/modules/echo-cancel
endif
+endif
+if HAVE_SPEEX
+module_echo_cancel_la_SOURCES += modules/echo-cancel/speex.c
+endif
+if HAVE_WEBRTC
+module_echo_cancel_la_SOURCES += modules/echo-cancel/webrtc.cc
+module_echo_cancel_la_CFLAGS += -DHAVE_WEBRTC=1
+module_echo_cancel_la_CXXFLAGS = $(AM_CXXFLAGS) $(SERVER_CFLAGS) $(WEBRTC_CFLAGS) -DHAVE_WEBRTC=1
+module_echo_cancel_la_LIBADD += $(WEBRTC_LIBS)
+endif
# RTP modules
module_rtp_send_la_SOURCES = modules/rtp/module-rtp-send.c