Blame m4/gst-alsa.m4

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