X-Git-Url: https://git.ceph.com/?p=xfstests-dev.git;a=blobdiff_plain;f=m4%2Fpackage_gdbmdev.m4;h=723900fc5337b9bc755896be5699cdaf236c7ee8;hp=6580fbae5befbcb5ec204696931f60847a083d4b;hb=ea15099b714c7c10eb3c60aefecd9bf3e841da46;hpb=3f99d8741831b78cfbf35cd1a305e54445997431 diff --git a/m4/package_gdbmdev.m4 b/m4/package_gdbmdev.m4 index 6580fbae..723900fc 100644 --- a/m4/package_gdbmdev.m4 +++ b/m4/package_gdbmdev.m4 @@ -1,19 +1,57 @@ -AC_DEFUN([AC_PACKAGE_WANT_NDBM], - [ AC_CHECK_HEADERS(ndbm.h, [ have_db=true ], [ have_db=false ]) - libgdbm="" - AC_SUBST(libgdbm) - AC_SUBST(have_db) - ]) - AC_DEFUN([AC_PACKAGE_WANT_GDBM], - [ AC_CHECK_HEADERS([gdbm/ndbm.h, gdbm-ndbm.h], [ have_db=true ], [ have_db=false ]) - libgdbm="" - if test $have_db = true -a -f ${libexecdir}${libdirsuffix}/libgdbm_compat.a; then - libgdbm="${libexecdir}${libdirsuffix}/libgdbm_compat.a" + [ + have_db= + AC_CHECK_HEADER(gdbm-ndbm.h, + [ + have_db=true + AC_DEFINE(HAVE_GDBM_NDBM_H, [1], + [Define to 1 if you have the header file.]) + ]) + + if test -z "$have_db"; then + dnl gdbm-ndbm.h and gdbm/ndbm.h map to the same autoconf internal + dnl variable. We need to clear it or this test will be skipped + dnl and the cached result from first test will be used. + AS_UNSET([ac_cv_header_gdbm_ndbm_h]) + AC_CHECK_HEADER(gdbm/ndbm.h, + [ + have_db=true + AC_DEFINE(HAVE_GDBM_NDBM_H_, [1], + [Define to 1 if you have the header file.]) + ]) + fi + + if test -z "$have_db"; then + AC_CHECK_HEADER(ndbm.h, + [ + have_db=true + AC_DEFINE(HAVE_NDBM_H, [1], + [Define to 1 if you have the header file.]) + ]) fi - if test $have_db = true -a -f ${libexecdir}${libdirsuffix}/libgdbm.a; then - libgdbm="${libgdbm} ${libexecdir}${libdirsuffix}/libgdbm.a" + + if test "$have_db" = true; then + found=false + AC_CHECK_LIB(gdbm, dbm_open, found=true, found=false) + AC_CHECK_LIB(gdbm, dbm_fetch,, found=false) + AC_CHECK_LIB(gdbm, dbm_store,, found=false) + AC_CHECK_LIB(gdbm, dbm_close,, found=false) + + if test "$found" = true; then + libgdbm="-lgdbm" + else + AC_CHECK_LIB(gdbm_compat, dbm_open, found=true, found=false, -lgdbm) + AC_CHECK_LIB(gdbm_compat, dbm_fetch,, found=false, -lgdbm) + AC_CHECK_LIB(gdbm_compat, dbm_store,, found=false, -lgdbm) + AC_CHECK_LIB(gdbm_compat, dbm_close,, found="no", -lgdbm) + + if test "$found" = "true"; then + libgdbm="-lgdbm_compat -lgdbm" + fi + fi fi + AC_SUBST(libgdbm) AC_SUBST(have_db) ]) +