Blame m4/gst-alsa.m4

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