|  | ############################################################################## | 
|  | dnl Configure Paths for Alsa | 
|  | dnl Some modifications by Richard Boulton <richard-alsa@tartarus.org> | 
|  | dnl Christopher Lansdown <lansdoct@cs.alfred.edu> | 
|  | dnl Jaroslav Kysela <perex@suse.cz> | 
|  | dnl Last modification: alsa.m4,v 1.23 2004/01/16 18:14:22 tiwai Exp | 
|  | dnl AM_PATH_ALSA([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) | 
|  | dnl Test for libasound, and define ALSA_CFLAGS and ALSA_LIBS as appropriate. | 
|  | dnl enables arguments --with-alsa-prefix= | 
|  | dnl                   --with-alsa-enc-prefix= | 
|  | dnl                   --disable-alsatest | 
|  | dnl | 
|  | dnl For backwards compatibility, if ACTION_IF_NOT_FOUND is not specified, | 
|  | dnl and the alsa libraries are not found, a fatal AC_MSG_ERROR() will result. | 
|  | dnl | 
|  | AC_DEFUN([AM_PATH_ALSA], | 
|  | [dnl Save the original CFLAGS, LDFLAGS, and LIBS | 
|  | alsa_save_CFLAGS="$CFLAGS" | 
|  | alsa_save_LDFLAGS="$LDFLAGS" | 
|  | alsa_save_LIBS="$LIBS" | 
|  | alsa_found=yes | 
|  |  | 
|  | dnl | 
|  | dnl Get the cflags and libraries for alsa | 
|  | dnl | 
|  | AC_ARG_WITH(alsa-prefix, | 
|  | [  --with-alsa-prefix=PFX  Prefix where Alsa library is installed(optional)], | 
|  | [alsa_prefix="$withval"], [alsa_prefix=""]) | 
|  |  | 
|  | AC_ARG_WITH(alsa-inc-prefix, | 
|  | [  --with-alsa-inc-prefix=PFX  Prefix where include libraries are (optional)], | 
|  | [alsa_inc_prefix="$withval"], [alsa_inc_prefix=""]) | 
|  |  | 
|  | dnl FIXME: this is not yet implemented | 
|  | AC_ARG_ENABLE(alsatest, | 
|  | [  --disable-alsatest      Do not try to compile and run a test Alsa program], | 
|  | [enable_alsatest="$enableval"], | 
|  | [enable_alsatest=yes]) | 
|  |  | 
|  | dnl Add any special include directories | 
|  | AC_MSG_CHECKING(for ALSA CFLAGS) | 
|  | if test "$alsa_inc_prefix" != "" ; then | 
|  | ALSA_CFLAGS="$ALSA_CFLAGS -I$alsa_inc_prefix" | 
|  | CFLAGS="$CFLAGS -I$alsa_inc_prefix" | 
|  | fi | 
|  | AC_MSG_RESULT($ALSA_CFLAGS) | 
|  |  | 
|  | dnl add any special lib dirs | 
|  | AC_MSG_CHECKING(for ALSA LDFLAGS) | 
|  | if test "$alsa_prefix" != "" ; then | 
|  | ALSA_LIBS="$ALSA_LIBS -L$alsa_prefix" | 
|  | LDFLAGS="$LDFLAGS $ALSA_LIBS" | 
|  | fi | 
|  |  | 
|  | dnl add the alsa library | 
|  | ALSA_LIBS="$ALSA_LIBS -lasound -lm -ldl -lpthread" | 
|  | LIBS=`echo $LIBS | sed 's/-lm//'` | 
|  | LIBS=`echo $LIBS | sed 's/-ldl//'` | 
|  | LIBS=`echo $LIBS | sed 's/-lpthread//'` | 
|  | LIBS=`echo $LIBS | sed 's/  //'` | 
|  | LIBS="$ALSA_LIBS $LIBS" | 
|  | AC_MSG_RESULT($ALSA_LIBS) | 
|  |  | 
|  | dnl Check for a working version of libasound that is of the right version. | 
|  | min_alsa_version=ifelse([$1], ,0.1.1,$1) | 
|  | AC_MSG_CHECKING(for libasound headers version >= $min_alsa_version) | 
|  | no_alsa="" | 
|  | alsa_min_major_version=`echo $min_alsa_version | \ | 
|  | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` | 
|  | alsa_min_minor_version=`echo $min_alsa_version | \ | 
|  | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` | 
|  | alsa_min_micro_version=`echo $min_alsa_version | \ | 
|  | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` | 
|  |  | 
|  | AC_LANG_SAVE | 
|  | AC_LANG_C | 
|  | AC_TRY_COMPILE([ | 
|  | #include <alsa/asoundlib.h> | 
|  | ], [ | 
|  | /* ensure backward compatibility */ | 
|  | #if !defined(SND_LIB_MAJOR) && defined(SOUNDLIB_VERSION_MAJOR) | 
|  | #define SND_LIB_MAJOR SOUNDLIB_VERSION_MAJOR | 
|  | #endif | 
|  | #if !defined(SND_LIB_MINOR) && defined(SOUNDLIB_VERSION_MINOR) | 
|  | #define SND_LIB_MINOR SOUNDLIB_VERSION_MINOR | 
|  | #endif | 
|  | #if !defined(SND_LIB_SUBMINOR) && defined(SOUNDLIB_VERSION_SUBMINOR) | 
|  | #define SND_LIB_SUBMINOR SOUNDLIB_VERSION_SUBMINOR | 
|  | #endif | 
|  |  | 
|  | #  if(SND_LIB_MAJOR > $alsa_min_major_version) | 
|  | exit(0); | 
|  | #  else | 
|  | #    if(SND_LIB_MAJOR < $alsa_min_major_version) | 
|  | #       error not present | 
|  | #    endif | 
|  |  | 
|  | #   if(SND_LIB_MINOR > $alsa_min_minor_version) | 
|  | exit(0); | 
|  | #   else | 
|  | #     if(SND_LIB_MINOR < $alsa_min_minor_version) | 
|  | #          error not present | 
|  | #      endif | 
|  |  | 
|  | #      if(SND_LIB_SUBMINOR < $alsa_min_micro_version) | 
|  | #        error not present | 
|  | #      endif | 
|  | #    endif | 
|  | #  endif | 
|  | exit(0); | 
|  | ], | 
|  | [AC_MSG_RESULT(found.)], | 
|  | [AC_MSG_RESULT(not present.) | 
|  | ifelse([$3], , [AC_MSG_ERROR(Sufficiently new version of libasound not found.)]) | 
|  | alsa_found=no] | 
|  | ) | 
|  | AC_LANG_RESTORE | 
|  |  | 
|  | dnl Now that we know that we have the right version, let's see if we have the library and not just the headers. | 
|  | if test "x$enable_alsatest" = "xyes"; then | 
|  | AC_CHECK_LIB([asound], [snd_ctl_open],, | 
|  | [ifelse([$3], , [AC_MSG_ERROR(No linkable libasound was found.)]) | 
|  | alsa_found=no] | 
|  | ) | 
|  | fi | 
|  |  | 
|  | if test "x$alsa_found" = "xyes" ; then | 
|  | ifelse([$2], , :, [$2]) | 
|  | LIBS=`echo $LIBS | sed 's/-lasound//g'` | 
|  | LIBS=`echo $LIBS | sed 's/  //'` | 
|  | LIBS="-lasound $LIBS" | 
|  | fi | 
|  | if test "x$alsa_found" = "xno" ; then | 
|  | ifelse([$3], , :, [$3]) | 
|  | CFLAGS="$alsa_save_CFLAGS" | 
|  | LDFLAGS="$alsa_save_LDFLAGS" | 
|  | LIBS="$alsa_save_LIBS" | 
|  | ALSA_CFLAGS="" | 
|  | ALSA_LIBS="" | 
|  | fi | 
|  |  | 
|  | dnl That should be it.  Now just export out symbols: | 
|  | AC_SUBST(ALSA_CFLAGS) | 
|  | AC_SUBST(ALSA_LIBS) | 
|  | ]) |