Files
apfstests/m4/package_gdbmdev.m4
T
Luis R. Rodriguez 2353022e57 build: update AC_PACKAGE_WANT_GDBM() and src/dbtest.c to build
Modern gdbm-devel packages bundle together gdbm.h and ndbm.h.  The
old m4 macro had detection support for some old gdbm libraries but
not for new ones.

We fix compilation of src/dbtest.c by making the autoconf helper
check for this new arrangement:

If both gdbm.h and ndbm.h are found define set both gdbm_ndbm_=true,
and have_db=true, and define HAVE_GDBM_H. The src/dbtest.c already
had a HAVE_GDBM_H but there was never a respective autoconf settter
for it. We can just re-use this and fix it for new arrangement.

Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
2017-12-15 15:16:28 +08:00

70 lines
2.3 KiB
Plaintext

AC_DEFUN([AC_PACKAGE_WANT_NDBM],
[ AC_CHECK_HEADERS(ndbm.h, [ have_db=true ], [ have_db=false ])
found=false
libgdbm=""
if test $have_db = true; then
AC_CHECK_LIB(ndbm,dbm_open,found=true,found=false)
AC_CHECK_LIB(ndbm,dbm_fetch,,found=false)
AC_CHECK_LIB(ndbm,dbm_store,,found=false)
AC_CHECK_LIB(ndbm,dbm_close,,found=false)
if test $found = true; then
libgdbm="$ndbm"
fi
fi
AC_SUBST(libgdbm)
AC_SUBST(have_db)
])
AC_DEFUN([AC_PACKAGE_WANT_GDBM],
[ AC_CHECK_HEADER(gdbm-ndbm.h, [ gdbm_ndbm=true; have_db=true ], [ gdbm_ndbm=false; have_db=false ])
if test $gdbm_ndbm = true; then
AC_DEFINE(HAVE_GDBM_NDBM_H, [1], [Define to 1 if you have the <gdbm-ndbm.h> header file.])
else
AS_UNSET([ac_cv_header_gdbm_ndbm_h])
AC_CHECK_HEADER(gdbm/ndbm.h, [ gdbm_ndbm_=true; have_db=true ], [ gdbm_ndbm_=false; have_db=false ])
if test $gdbm_ndbm_ = true; then
AC_DEFINE(HAVE_GDBM_NDBM_H_, [1], [Define to 1 if you have the <gdbm/ndbm.h> header file.])
else
AC_CHECK_HEADER(gdbm.h, [ gdbm_ndbm_=true; have_db=true ], [ gdbm_ndbm_=false; have_db=false ])
AC_CHECK_HEADER(ndbm.h, [ ndbm_=true ], [ ndbm_=false ])
if test $gdbm_ndbm_ = true; then
if test $ndbm_ = true; then
AC_DEFINE(HAVE_GDBM_H, [1], [Define to 1 if you have both <gdbm.h> and <ndbm.h> header files.])
fi
fi
fi
fi
found=false
libgdbm=""
if test $have_db = true; then
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="${libgdbm} -lgdbm"
fi
found="no"
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="${libgdbm} -lgdbm_compat -lgdbm"
fi
fi
AC_SUBST(libgdbm)
AC_SUBST(have_db)
])