X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=aclocal.m4;fp=aclocal.m4;h=c9362ecf799a574dede7a5c1809f545ab688542d;hp=7dd6110e7fbfa6efea25d841bfe75217a32e90f0;hb=4fbbf33311630a467654077776f088d7810c2202;hpb=9bfe3115764af0a6e0dbbf8564ff0edd5ac28543 diff --git a/aclocal.m4 b/aclocal.m4 index 7dd6110..c9362ec 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -19,3 +19,68 @@ AC_DEFUN(AC_CHECK_NETLIBS, AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket)) ]) + +dnl -------------- +dnl CHECK FOR NDBM +dnl -------------- +dnl +dnl NMH_CHECK_DBM(libname,action-if-true,action-if-false,other-libraries) +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 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 +dnl the dbm_open() function is provided via a #define and +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, +[ +if test "x$1" == "x"; then + nmh_libs= + dnl this is just for the benefit of AC_CACHE_CHECK's message + nmh_testname=libc +else + nmh_libs="-l$1 " + nmh_testname="$1" +fi +AC_CACHE_CHECK([for dbm in $nmh_testname], [nmh_cv_check_dbm_$1],[ +nmh_saved_libs="$LIBS" +LIBS="$nmh_libs $4 $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 +]], +[[dbm_open("",0,0);]]),[nmh_cv_check_dbm_$1=yes],[ +nmh_cv_check_dbm_$1=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 + $3 + : +fi +])dnl