1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
dnl $Id$
dnl
dnl rk_TEST_PACKAGE(package,program,libraries,extra libs,
dnl default locations, conditional, config-program, headers)
AC_DEFUN([rk_TEST_PACKAGE],[
AC_ARG_WITH($1,
AS_HELP_STRING([--with-$1=dir],[use $1 in dir]))
AC_ARG_WITH($1-lib,
AS_HELP_STRING([--with-$1-lib=dir],[use $1 libraries in dir]),
[if test "$withval" = "yes" -o "$withval" = "no"; then
AC_MSG_ERROR([No argument for --with-$1-lib])
elif test "X$with_$1" = "X"; then
with_$1=yes
fi])
AC_ARG_WITH($1-include,
AS_HELP_STRING([--with-$1-include=dir],[use $1 headers in dir]),
[if test "$withval" = "yes" -o "$withval" = "no"; then
AC_MSG_ERROR([No argument for --with-$1-include])
elif test "X$with_$1" = "X"; then
with_$1=yes
fi])
AC_ARG_WITH($1-config,
AS_HELP_STRING([--with-$1-config=path],[config program for $1]))
m4_ifval([$6],
m4_define([rk_pkgname], $6),
m4_define([rk_pkgname], AS_TR_CPP($1)))
AC_MSG_CHECKING(for $1)
case "$with_$1" in
yes|"") d='$5' ;;
no) d= ;;
*) d="$with_$1" ;;
esac
header_dirs=
lib_dirs=
for i in $d; do
if test "$with_$1_include" = ""; then
if test -d "$i/include/$1"; then
header_dirs="$header_dirs $i/include/$1"
fi
if test -d "$i/include"; then
header_dirs="$header_dirs $i/include"
fi
fi
if test "$with_$1_lib" = ""; then
if test -d "$i/lib$abilibdirext"; then
lib_dirs="$lib_dirs $i/lib$abilibdirext"
fi
fi
done
if test "$with_$1_include"; then
header_dirs="$with_$1_include $header_dirs"
fi
if test "$with_$1_lib"; then
lib_dirs="$with_$1_lib $lib_dirs"
fi
if test "$with_$1_config" = ""; then
with_$1_config='$7'
fi
$1_cflags=
$1_libs=
case "$with_$1_config" in
yes|no|""|"$7")
if test -f $with_$1/bin/$7 ; then
with_$1_config=$with_$1/bin/$7
fi
;;
esac
case "$with_$1_config" in
yes|no|"")
;;
*)
$1_cflags="`$with_$1_config --cflags 2>&1`"
$1_libs="`$with_$1_config --libs 2>&1`"
;;
esac
found=no
if test "$with_$1" != no; then
save_CFLAGS="$CFLAGS"
save_LIBS="$LIBS"
if test "$[]$1_cflags" -a "$[]$1_libs"; then
CFLAGS="$[]$1_cflags $save_CFLAGS"
LIBS="$[]$1_libs $save_LIBS"
m4_ifval([$8],[AC_CHECK_HEADERS([[$8]])])
AC_LINK_IFELSE([AC_LANG_PROGRAM([[$2]],[[]])],[
INCLUDE_$1="$[]$1_cflags"
LIB_$1="$[]$1_libs"
AC_MSG_RESULT([from $with_$1_config])
found=yes])
fi
if test "$found" = no; then
ires= lres=
for i in $header_dirs; do
CFLAGS="-I$i $save_CFLAGS"
m4_ifval([$8],[AC_CHECK_HEADERS([[$8]])])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[$2]],[[]])],[ires=$i;break])
done
for i in $lib_dirs; do
LIBS="-L$i $3 $4 $save_LIBS"
AC_LINK_IFELSE([AC_LANG_PROGRAM([[$2]],[[]])],[lres=$i;break])
done
if test "$ires" -a "$lres" -a "$with_$1" != "no"; then
INCLUDE_$1="-I$ires"
LIB_$1="-L$lres $3 $4"
found=yes
AC_MSG_RESULT([headers $ires, libraries $lres])
fi
fi
CFLAGS="$save_CFLAGS"
LIBS="$save_LIBS"
fi
if test "$found" = yes; then
AC_DEFINE_UNQUOTED(rk_pkgname, 1, [Define if you have the $1 package.])
with_$1=yes
else
with_$1=no
INCLUDE_$1=
LIB_$1=
AC_MSG_RESULT(no)
fi
AC_SUBST(INCLUDE_$1)
AC_SUBST(LIB_$1)
])
|