diff options
-rw-r--r-- | configure.ac | 13 | ||||
-rw-r--r-- | m4/mpd_auto.m4 | 40 |
2 files changed, 49 insertions, 4 deletions
diff --git a/configure.ac b/configure.ac index 886ee9431..509ec81eb 100644 --- a/configure.ac +++ b/configure.ac @@ -515,7 +515,7 @@ dnl AC_ARG_ENABLE(alsa, AS_HELP_STRING([--disable-alsa], [disable ALSA support (default: enable)]),, - enable_alsa=yes) + enable_alsa=auto) AC_ARG_ENABLE(ao, AS_HELP_STRING([--enable-ao], @@ -687,10 +687,15 @@ fi AM_CONDITIONAL(HAVE_MVP, test x$enable_mvp = xyes) -if test x$enable_alsa = xyes; then +if test x$enable_alsa != xno; then PKG_CHECK_MODULES(ALSA, [alsa >= 0.9.0], - AC_DEFINE(HAVE_ALSA, 1, [Define to enable ALSA support]), - enable_alsa=no) + found_alsa=yes, found_alsa=no) +fi + +MPD_AUTO_RESULT([alsa], [ALSA output plugin], [libasound not found]) + +if test x$enable_alsa = xyes; then + AC_DEFINE(HAVE_ALSA, 1, [Define to enable ALSA support]) fi AM_CONDITIONAL(HAVE_ALSA, test x$enable_alsa = xyes) diff --git a/m4/mpd_auto.m4 b/m4/mpd_auto.m4 new file mode 100644 index 000000000..635f41560 --- /dev/null +++ b/m4/mpd_auto.m4 @@ -0,0 +1,40 @@ +AC_DEFUN([MPD_AUTO_ENABLED], [ + var="enable_$1" + feature="$2" + + if eval "test x`echo '$'$var` = xauto"; then + AC_MSG_NOTICE([auto-detected $feature]) + eval "$var=yes" + fi +]) + +AC_DEFUN([MPD_AUTO_DISABLED], [ + var="enable_$1" + feature="$2" + msg="$3" + + if eval "test x`echo '$'$var` = xauto"; then + AC_MSG_WARN([$msg -- disabling $feature]) + eval "$var=no" + else + AC_MSG_ERROR([$msg]) + fi +]) + +AC_DEFUN([MPD_AUTO_RESULT], [ + name="$1" + var="enable_$1" + found="found_$name" + feature="$2" + msg="$3" + + if eval "test x`echo '$'$var` = xno"; then + eval "$found=no" + fi + + if eval "test x`echo '$'$found` = xyes"; then + MPD_AUTO_ENABLED([$name], [$feature]) + else + MPD_AUTO_DISABLED([$name], [$feature], [$msg]) + fi +]) |