Current version of AC_PACKAGE_WANT_NDBM has following bugs:
* a typo (',') next to 'gdbm/ndbm.h', so C compiler fails
with a syntax error when trying to compile
"#include <gdbm/ndbm.h,>"
* autoconf never defines HAVE_GDBM_NDBM_H_ because it
converts both header names (gdbm/ndbm.h, gdbm-ndbm.h)
to GDBM_NDBM_H
Because of these bugs 'dbtest' can't be compiled on systems where
'gdbm-ndbm.h' header is absent but 'gdbm/ndbm.h' is present.
Fixed this.
Signed-off-by: Stanislav Kholmanskikh <stanislav.kholmanskikh@xxxxxxxxxx>
---
m4/package_gdbmdev.m4 | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/m4/package_gdbmdev.m4 b/m4/package_gdbmdev.m4
index c07f75d..ae76e34 100644
--- a/m4/package_gdbmdev.m4
+++ b/m4/package_gdbmdev.m4
@@ -19,7 +19,18 @@ AC_DEFUN([AC_PACKAGE_WANT_NDBM],
])
AC_DEFUN([AC_PACKAGE_WANT_GDBM],
- [ AC_CHECK_HEADERS([gdbm/ndbm.h, gdbm-ndbm.h], [ have_db=true ], [
have_db=false ])
+ [ 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.])
+ fi
+ fi
+
found=false
libgdbm=""
--
1.7.1
|