X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=configure.in;h=1ff16b27b1affde49259d5b8e2cb910b38c58611;hp=c60e80f1c799728933a899dd2011590bb85d5998;hb=4fbbf33311630a467654077776f088d7810c2202;hpb=9bfe3115764af0a6e0dbbf8564ff0edd5ac28543 diff --git a/configure.in b/configure.in index c60e80f..1ff16b2 100644 --- a/configure.in +++ b/configure.in @@ -599,23 +599,37 @@ if test "x$ac_found_iconv" = "xyes"; then [Define as const if the declaration of iconv() needs const.]) fi -dnl -------------- -dnl CHECK FOR NDBM -dnl -------------- -dnl Checks for ndbm -AC_CHECK_FUNC(dbm_open, , - AC_CHECK_LIB(ndbm, dbm_open, , - AC_CHECK_LIB(dbm, dbm_open, , - AC_CHECK_LIB(db1, dbm_open, , - AC_CHECK_LIB(gdbm, dbm_open, , - AC_CHECK_LIB(db, __db_ndbm_open)))))) - dnl ---------------- dnl CHECK FOR NDBM.H dnl ---------------- AC_CHECK_HEADERS(db1/ndbm.h gdbm/ndbm.h db.h, break, ) +dnl -------------- +dnl CHECK FOR NDBM +dnl -------------- +dnl Checks for ndbm; we use our own autoconf macro 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. +dnl This *must* come after the ndbm headers check! + +dnl Note the special-casing of the gdbm_compat case: +dnl if we find gdbm_open in -lgdbm and dbm_open in +dnl -lgdbm_compat -lgdbm then we want to have both libraries +dnl in LIBS in that order. +NMH_CHECK_DBM(,, + NMH_CHECK_DBM(ndbm,, + NMH_CHECK_DBM(dbm,, + NMH_CHECK_DBM(db1,, + NMH_CHECK_DBM(db,, + NMH_CHECK_DBM(gdbm,, + AC_CHECK_LIB(gdbm,gdbm_open, + NMH_CHECK_DBM(gdbm_compat,LIBS="-lgdbm_compat -lgdbm $LIBS", + AC_MSG_ERROR([cannot find a library providing dbm_open()]),-lgdbm), + AC_MSG_ERROR([cannot find a library providing dbm_open()])))))))) + dnl ---------------- dnl CHECK FOR HESIOD dnl ----------------