X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=aclocal.m4;h=c0d4fb8af6389082f99e55043ff3f1fd85c89027;hp=c9362ecf799a574dede7a5c1809f545ab688542d;hb=1bb1f6c3f38b05060bf699ea2743f7386889bf63;hpb=4fbbf33311630a467654077776f088d7810c2202 diff --git a/aclocal.m4 b/aclocal.m4 index c9362ec..c0d4fb8 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -24,16 +24,19 @@ dnl -------------- dnl CHECK FOR NDBM dnl -------------- dnl -dnl NMH_CHECK_DBM(libname,action-if-true,action-if-false,other-libraries) +dnl NMH_CHECK_DBM(include,library,action-if-found,action-if-not) + dnl Check for presence of dbm_open() in the specified library -dnl (if libname is the empty string then don't try to link against -dnl any particular library). If action-if-true is unspecified it -dnl defaults to adding "-llibname" to the beginning of LIBS. -dnl If other-libraries is specified then these are prepended to -dnl LIBS for the duration of the check. -dnl NB that the checks for the right dbm header files must -dnl be done before using this macro! -dnl +dnl and with the specified include file (if libname is the empty +dnl string then don't try to link against any particular library). + +dnl We set nmh_ndbm_found to 'yes' or 'no'; if found we set +dnl nmh_ndbmheader to the first arg and nmh_ndbm to the second. + +dnl If this macro accepted a list of include,library tuples +dnl to test in order that would be cleaner than the current +dnl nest of calls in configure.in. + dnl We try to link our own code fragment (which includes the dnl headers in the same way slocal.c does) rather than dnl using AC_CHECK_LIB because on later versions of libdb @@ -42,45 +45,42 @@ dnl we don't want to hardcode searching for the internal dnl function that lies behind it. (AC_CHECK_LIB works by dnl defining its own bogus prototype rather than pulling in dnl the right header files.) -AC_DEFUN(NMH_CHECK_DBM, + +dnl An oddity (bug) of this macro is that if you haven't +dnl done AC_PROG_CC or something that implies it before +dnl using this macro autoconf complains about a recursive +dnl expansion. + +AC_DEFUN(NMH_CHECK_NDBM, [ -if test "x$1" == "x"; then - nmh_libs= - dnl this is just for the benefit of AC_CACHE_CHECK's message - nmh_testname=libc +if test "x$2" = "x"; then + nmh_libs= + AC_MSG_CHECKING([for dbm in $1]) else - nmh_libs="-l$1 " - nmh_testname="$1" + nmh_libs="-l$2 " + AC_MSG_CHECKING([for dbm in $1 and $2]) fi -AC_CACHE_CHECK([for dbm in $nmh_testname], [nmh_cv_check_dbm_$1],[ + +dnl We don't try to cache the result, because that exceeds +dnl my autoconf skills -- feel free to put it in :-> -- PMM + nmh_saved_libs="$LIBS" -LIBS="$nmh_libs $4 $LIBS" +LIBS="$nmh_libs $5 $LIBS" AC_LINK_IFELSE(AC_LANG_PROGRAM([[ -#ifdef HAVE_DB1_NDBM_H -#include -#else -#ifdef HAVE_GDBM_NDBM_H -#include -#else -#if defined(HAVE_DB_H) #define DB_DBM_HSEARCH 1 -#include -#else -#include -#endif -#endif -#endif +#include <$1> ]], -[[dbm_open("",0,0);]]),[nmh_cv_check_dbm_$1=yes],[ -nmh_cv_check_dbm_$1=no]) +[[dbm_open("",0,0);]]),[nmh_ndbm_found=yes],[nmh_ndbm_found=no]) LIBS="$nmh_saved_libs" -]) -if eval "test \"`echo '$nmh_cv_check_dbm_'$1`\" = yes"; then - nmh_tr_macro=HAVE_LIB`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` - AC_DEFINE_UNQUOTED($nmh_tr_macro) - m4_if([$2],,[LIBS="$nmh_libs$LIBS"],[$2]) -else + +if test "$nmh_ndbm_found" = "yes"; then + AC_MSG_RESULT(yes) + nmh_ndbmheader="$1" + nmh_ndbm="$2" $3 +else + AC_MSG_RESULT(no) + $4 : fi ])dnl