compile and link, rather than looking for files; also export more

information, so it's possible to add rpath information


git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@5851 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Johan Danielsson
1999-04-05 14:13:06 +00:00
parent b0f63a7f70
commit da93df22f5

View File

@@ -1,118 +1,88 @@
dnl $Id$ dnl $Id$
dnl dnl
dnl AC_TEST_PACKAGE(package,header,lib,linkline,default location) dnl AC_TEST_PACKAGE_NEW(package,headers,libraries,extra libs,default locations)
AC_DEFUN(AC_TEST_PACKAGE,
[ AC_DEFUN(AC_TEST_PACKAGE,[AC_TEST_PACKAGE_NEW($1,[#include <$2>],$4,,$5)])
AC_MSG_CHECKING(for $1)
AC_DEFUN(AC_TEST_PACKAGE_NEW,[
AC_ARG_WITH($1, AC_ARG_WITH($1,
[ --with-$1=dir use $1 in dir], [ --with-$1=dir use $1 in dir])
[if test "$with_$1" = "no"; then
with_$1=
fi]
)
AC_ARG_WITH($1-lib, AC_ARG_WITH($1-lib,
[ --with-$1-lib=dir use $1-lib in dir], [ --with-$1-lib=dir use $1 libraries in dir],
[if test "$withval" = "yes" -o "$withval" = "no"; then [if test "$withval" = "yes" -o "$withval" = "no"; then
AC_MSG_ERROR([No argument for --with-$1-lib]) AC_MSG_ERROR([No argument for --with-$1-lib])
elif test "X$with_$1" = "X"; then elif test "X$with_$1" = "X"; then
with_$1=yes with_$1=yes
fi] fi])
)
AC_ARG_WITH($1-include, AC_ARG_WITH($1-include,
[ --with-$1-include=dir use $1-include in dir], [ --with-$1-include=dir use $1 headers in dir],
[if test "$withval" = "yes" -o "$withval" = "no"; then [if test "$withval" = "yes" -o "$withval" = "no"; then
AC_MSG_ERROR([No argument for --with-$1-include]) AC_MSG_ERROR([No argument for --with-$1-include])
elif test "X$with_$1" = "X"; then elif test "X$with_$1" = "X"; then
with_$1=yes with_$1=yes
fi] fi])
)
define([foo], translit($1, [a-z], [A-Z])) AC_MSG_CHECKING(for $1)
if test -n "$with_$1" -o -n "$5"; then
dnl AC_DEFINE([foo]) case "$with_$1" in
if test -n "$with_$1" -a "$with_$1" != "yes"; then yes) ;;
$1_dir="$with_$1" no) ;;
elif test -n "$5"; then "") ;;
$1_dir="$5" *) if test "$with_$1_include" = ""; then
with_$1_include="$with_$1/include"
fi fi
dnl Try to find include if test "$with_$1_lib" = ""; then
if test -n "$with_$1_include"; then with_$1_lib="$with_$1/lib$abilibdirext"
trydir=$with_$1_include
elif test -n "$with_$1" -a "$with_$1" != "yes"; then
trydir="$with_$1 $with_$1/include"
elif test -n "$5"; then
trydir="$5/include"
else
trydir=
fi
found=
for i in $trydir ""; do
if test -n "$i"; then
if test -f $i/$2; then
found=yes; res=$i; break
fi
else
AC_TRY_CPP([#include <$2>], [found=yes; res=$i; break])
fi fi
;;
esac
header_dirs=
lib_dirs=
d='$5'
for i in $d; do
header_dirs="$header_dirs $i/include"
lib_dirs="$lib_dirs $i/lib$abilibdirext"
done done
if test -n "$found"; then
$1_include=$res case "$with_$1_include" in
elif test -n "$with_$1"; then yes) ;;
AC_MSG_ERROR(Cannot find $2) no) ;;
fi *) header_dirs="$with_$1_include $header_dirs";;
dnl Try to find lib esac
if test -n "$with_$1_lib"; then case "$with_$1_lib" in
trydir=$with_$1_lib yes) ;;
elif test -n "$with_$1" -a "$with_$1" != "yes"; then no) ;;
trydir="$with_$1 $with_$1/lib" *) lib_dirs="$with_$1_lib $lib_dirs";;
elif test -n "$5"; then esac
trydir="$5/lib"
else save_CFLAGS="$CFLAGS"
trydir= save_LIBS="$LIBS"
fi ires= lres=
found= for i in $header_dirs; do
for i in $trydir ""; do CFLAGS="-I$i $save_CFLAGS"
if test -n "$i"; then AC_TRY_COMPILE([$2],,ires=$i;break)
if test -f $i/$3; then
found=yes; res=$i; break
fi
else
old_LIBS=$LIBS
LIBS="$4 $LIBS"
AC_TRY_LINK([], [], [found=yes; res=$i; LIBS=$old_LIBS; break])
LIBS=$old_LIBS
fi
done done
if test -n "$found"; then for i in $lib_dirs; do
$1_lib=$res LIBS="-L$i $3 $4 $save_LIBS"
elif test -n "$with_$1"; then AC_TRY_LINK([$2],,lres=$i;break)
AC_MSG_ERROR(Cannot find $3) done
fi CFLAGS="$save_CFLAGS"
if test -n "$$1_include" -o -n "$$1_lib"; then LIBS="$save_LIBS"
AC_MSG_RESULT([headers $$1_include, libraries $$1_lib])
AC_DEFINE_UNQUOTED(foo, 1, [Define if you have the $1 package]) if test "$ires" -a "$lres"; then
if test "$with_$1" = "" -a "$5"; then $1_includedir="$ires"
with_$1="$5" $1_libdir="$lres"
fi INCLUDE_$1="-I$$1_includedir"
LIB_$1="-L$$1_libdir $3"
AC_DEFINE_UNQUOTED(upcase($1),1,[Define if you have the $1 package.])
with_$1=yes
AC_MSG_RESULT([headers $ires, libraries $lres])
else else
AC_MSG_RESULT(no) INCLUDE_$1=
fi LIB_$1=
if test -n "$$1_include"; then with_$1=no
INCLUDE_$1="-I$$1_include" AC_MSG_RESULT($with_$1)
fi fi
AC_SUBST(INCLUDE_$1) AC_SUBST(INCLUDE_$1)
foo[INCLUDE]="$INCLUDE_$1"
AC_SUBST(foo[INCLUDE])
if test -n "$$1_lib"; then
LIB_$1="-L$$1_lib"
fi
LIB_$1="$LIB_$1 $4"
AC_SUBST(LIB_$1) AC_SUBST(LIB_$1)
foo[LIB]="$LIB_$1"
AC_SUBST(foo[LIB])
else
AC_MSG_RESULT(no)
fi
undefine([foo])
]) ])