X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;ds=sidebyside;f=aclocal.m4;h=c9362ecf799a574dede7a5c1809f545ab688542d;hb=refs%2Ftags%2FRELEASE_1_2;hp=cbfb4982f2f5299d2c4809312c8d21845500bf70;hpb=1691e80890e5d8ba258c51c214a3e91880e1db2b;p=mmh diff --git a/aclocal.m4 b/aclocal.m4 index cbfb498..c9362ec 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -20,22 +20,67 @@ AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket)) ]) - -# This checks for the function ruserpass. -# -# 1) first, check for ruserpass -# 2) else, check for _ruserpass -# 3) else, check for _ruserpass in libsocket -# 4) else, build version of ruserpass in nmh/sbr -AC_DEFUN(AC_CHECK_RUSERPASS, -[AC_CHECK_FUNC(ruserpass, , - AC_CHECK_FUNC(_ruserpass, , - AC_CHECK_LIB(socket, _ruserpass))) -if test x$ac_cv_func_ruserpass = xno; then - if test x$ac_cv_func__ruserpass = xyes -o x$ac_cv_lib_socket__ruserpass = xyes; then - AC_DEFINE(ruserpass, _ruserpass) - else - LIBOBJS="$LIBOBJS ruserpass.o" - fi +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