From 53ed647b224c98f74a3198215f9fa2fd1a359eb9 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sat, 28 Mar 2009 11:10:40 +0100 Subject: configure.ac: fail when ALSA is enabled but not found This patch adds a small autoconf M4 library which deals with auto-detected features. The default for those features is "auto", which is like the old default: if the library is present on the system, enable the feature, disable otherwise. If the user explicitly enables that feature (--enable-alsa), and the library is not present, configure must fail, because it cannot fulfill the request. --- configure.ac | 13 +++++++++---- m4/mpd_auto.m4 | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 m4/mpd_auto.m4 diff --git a/configure.ac b/configure.ac index 886ee943..509ec81e 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 00000000..635f4156 --- /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 +]) -- cgit v1.2.3