diff options
author | Michael Stapelberg <michael@stapelberg.de> | 2019-07-29 20:57:48 +0200 |
---|---|---|
committer | Michael Stapelberg <michael@stapelberg.de> | 2019-07-29 21:07:40 +0200 |
commit | 23da59920c4c911ee08498eb283b69bdef80fd65 (patch) | |
tree | 59a9a8bac909e243eabdb2c58e48ec8e5c79f566 /configure.ac | |
parent | 40aeb7bc44aa0fc8373acb8b57debb1c285e7009 (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.ac | 25 |
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: |