summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorMichael Stapelberg <michael@stapelberg.de>2019-07-29 20:57:48 +0200
committerMichael Stapelberg <michael@stapelberg.de>2019-07-29 21:07:40 +0200
commit23da59920c4c911ee08498eb283b69bdef80fd65 (patch)
tree59a9a8bac909e243eabdb2c58e48ec8e5c79f566 /configure.ac
parent40aeb7bc44aa0fc8373acb8b57debb1c285e7009 (diff)
make pulseaudio an optional dependency, follow best practices
For my thoughts about optional dependencies, see https://michael.stapelberg.ch/posts/2019-05-23-optional-dependencies/ This commit follows the best practices outlined in that article: 1. The travis config was modified to verify both code paths build and link/don’t link against pulseaudio. 2. If pulseaudio is missing, the build fails until packagers explicitly pass a --disable flag. In practice, I think the only situation when this flag should be set is in source-based linux distributions where users can express package-level compilation preferences (e.g. Gentoo USE flags). 3. The --version output now reflects the status of the optional dependency. fixes #359
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac25
1 files changed, 15 insertions, 10 deletions
diff --git a/configure.ac b/configure.ac
index a6c31d7..11caa33 100644
--- a/configure.ac
+++ b/configure.ac
@@ -80,25 +80,29 @@ AC_CANONICAL_HOST
PKG_CHECK_MODULES([CONFUSE], [libconfuse])
PKG_CHECK_MODULES([YAJL], [yajl])
-pulse=true
+AC_ARG_ENABLE(pulseaudio,
+ AS_HELP_STRING(
+ [--disable-pulseaudio],
+ [build without pulseaudio support]),
+ [ax_pulse=$enableval],
+ [ax_pulse=yes])
+AM_CONDITIONAL([PULSE], [test x$ax_pulse = xyes])
+AS_IF([test x"$ax_pulse" = x"yes"],
+ [PKG_CHECK_MODULES([PULSE], [libpulse])])
+pulse_def=0
+AS_IF([test x"$ax_pulse" = x"yes"],
+ [pulse_def=1])
+AC_DEFINE_UNQUOTED([HAS_PULSEAUDIO], [$pulse_def], [Build with pulseaudio])
+
case $host_os in
linux*)
PKG_CHECK_MODULES([NLGENL], [libnl-genl-3.0])
PKG_CHECK_MODULES([ALSA], [alsa])
;;
- openbsd*)
- pulse=false
- ;;
- dragonfly*)
- pulse=false
- ;;
netbsd*)
AC_SEARCH_LIBS([prop_string_create], [prop])
;;
esac
-AM_CONDITIONAL([PULSE], [test x$pulse = xtrue])
-AS_IF([test x"$pulse" = x"true"],
- [PKG_CHECK_MODULES([PULSE], [libpulse])])
dnl TODO: check for libbsd for GNU/kFreeBSD
@@ -160,6 +164,7 @@ AS_HELP_STRING([is release version:], [${is_release}])
AS_HELP_STRING([enable debug flags:], [${ax_enable_debug}])
AS_HELP_STRING([code coverage:], [${CODE_COVERAGE_ENABLED}])
AS_HELP_STRING([enabled sanitizers:], [${ax_enabled_sanitizers}])
+AS_HELP_STRING([pulseaudio support:], [${ax_pulse}])
To compile, run: