blob: 0065deeb15fcdb8977a25e65057697bad3988b75 [file] [log] [blame] [edit]
dnl
dnl A52_CHECK-LIBHEADER(FEATURE-NAME, LIB-NAME, LIB-FUNCTION, HEADER-NAME,
dnl ACTION-IF-FOUND, ACTION-IF-NOT-FOUND,
dnl EXTRA-LDFLAGS, EXTRA-CPPFLAGS)
dnl
dnl FEATURE-NAME - feature name; library and header files are treated
dnl as feature, which we look for
dnl LIB-NAME - library name as in AC_CHECK_LIB macro
dnl LIB-FUNCTION - library symbol as in AC_CHECK_LIB macro
dnl HEADER-NAME - header file name as in AC_CHECK_HEADER
dnl ACTION-IF-FOUND - when feature is found then execute given action
dnl ACTION-IF-NOT-FOUND - when feature is not found then execute given action
dnl EXTRA-LDFLAGS - extra linker flags (-L or -l)
dnl EXTRA-CPPFLAGS - extra C preprocessor flags, i.e. -I/usr/X11R6/include
dnl
dnl Based on GST_CHECK_LIBHEADER from gstreamer plugins 0.3.1.
dnl
AC_DEFUN([A52_CHECK_LIBHEADER],
[
AC_CHECK_LIB([$2], [$3], HAVE_[$1]=yes, HAVE_[$1]=no, [$7])
check_libheader_feature_name=translit([$1], A-Z, a-z)
if test "x$HAVE_[$1]" = "xyes"; then
check_libheader_save_CPPFLAGS=$CPPFLAGS
CPPFLAGS="[$8] $CPPFLAGS"
AC_CHECK_HEADER([$4], :, HAVE_[$1]=no)
CPPFLAGS=$check_libheader_save_CPPFLAGS
fi
if test "x$HAVE_[$1]" = "xyes"; then
ifelse([$5], , :, [$5])
else
ifelse([$6], , :, [$6])
fi
]
)
dnl
dnl AC_CHECK_A52DEC(ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
dnl
dnl ACTION-IF-FOUND - when feature is found then execute given action
dnl ACTION-IF-NOT-FOUND - when feature is not found then execute given action
dnl
dnl Defines HAVE_A52DEC to yes if liba52 is found
dnl
dnl CFLAGS and LDFLAGS for the library are stored in A52DEC_CFLAGS and
dnl A52DEC_LIBS, respectively
dnl
dnl Based on GST_CHECK_A52DEC from gstreamer plugins 0.3.3.1
dnl Thomas Vander Stichele <thomas@apestaart.org>, Andy Wingo <wingo@pobox.com>
dnl
AC_DEFUN([AC_CHECK_A52DEC],
[dnl
AC_ARG_WITH(a52dec-prefix,
AC_HELP_STRING([--with-a52dec-prefix=PFX],
[prefix where a52dec is installed (optional)]),
a52dec_config_prefix="$withval", a52dec_config_prefix="")
if test x$a52dec_config_prefix = x ; then
A52_CHECK_LIBHEADER(A52DEC, a52, a52_init, a52dec/a52.h,
A52DEC_LIBS="-la52 -lm", , -lm)
else
A52_CHECK_LIBHEADER(A52DEC, a52, a52_init, a52dec/a52.h, [
A52DEC_LIBS="-la52 -L$a52dec_config_prefix/lib -lm"
A52DEC_CFLAGS="-I$a52dec_config_prefix/include"
], , -L$a52dec_config_prefix/lib, -I$a52dec_config_prefix/include)
fi
if test $HAVE_A52DEC = "yes"; then
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $A52DEC_CFLAGS"
LIBS="$A52DEC_LIBS $LIBS"
AC_TRY_RUN([
#include <inttypes.h>
#include <a52dec/a52.h>
int
main ()
{
a52_state_t *state;
state = a52_init (0);
a52_free (state);
return 0;
}
],, HAVE_A52DEC=no, [echo $ac_n "cross compiling; assumed OK... $ac_c"])
if test HAVE_A52DEC = "no"; then
echo "*** Your a52dec is borked somehow. Please update to 0.7.4."
else
AC_TRY_RUN([
#include <inttypes.h>
#include <a52dec/a52.h>
int
main ()
{
int i = sizeof (a52_state_t);
if ( i )
return 0;
}
], HAVE_A52DEC=no,, [echo $ac_n "cross compiling; assumed OK... $ac_c"])
if test HAVE_A52DEC = "no"; then
echo "*** Your a52dec is too old. Please update to 0.7.4."
fi
fi
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
if test HAVE_A52DEC = "no"; then
A52DEC_CFLAGS=""
A52DEC_LIBS=""
fi
if test "x$HAVE_A52DEC" = "xyes"; then
ifelse([$1], , :, [$1])
else
ifelse([$2], , :, [$2])
fi
AC_SUBST(A52DEC_CFLAGS)
AC_SUBST(A52DEC_LIBS)
])