nmh-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Nmh-commits] nmh ./ChangeLog ./aclocal.m4 ./configure.in uip...


From: Peter Maydell
Subject: [Nmh-commits] nmh ./ChangeLog ./aclocal.m4 ./configure.in uip...
Date: Thu, 15 Dec 2005 00:45:36 +0000

CVSROOT:        /cvsroot/nmh
Module name:    nmh
Branch:         
Changes by:     Peter Maydell <address@hidden>  05/12/15 00:45:36

Modified files:
        .              : ChangeLog aclocal.m4 configure.in 
        uip            : slocal.c 

Log message:
        Improve the checks for where to find ndbm (dbm_open etc); should now
        work on systems with new gdbm and libdb4.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/nmh/nmh/ChangeLog.diff?tr1=1.213&tr2=1.214&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/nmh/nmh/aclocal.m4.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/nmh/nmh/configure.in.diff?tr1=1.72&tr2=1.73&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/nmh/nmh/uip/slocal.c.diff?tr1=1.18&tr2=1.19&r1=text&r2=text

Patches:
Index: nmh/ChangeLog
diff -u nmh/ChangeLog:1.213 nmh/ChangeLog:1.214
--- nmh/ChangeLog:1.213 Thu Dec 15 00:12:52 2005
+++ nmh/ChangeLog       Thu Dec 15 00:45:36 2005
@@ -1,3 +1,10 @@
+2005-12-15  Peter Maydell  <address@hidden>
+
+       * Improve checking for Berkeley db libraries: configure should now
+       find a suitable library on systems with new gdbm where
+       compatibility functions are in the gdbm_compat library, and on
+       systems with libdb4.
+
 2005-12-13  Michael Forrest <address@hidden>
 
        * Fedora Bug #163760: sbr/context_read.c (context_read): Ensure that
Index: nmh/aclocal.m4
diff -u nmh/aclocal.m4:1.2 nmh/aclocal.m4:1.3
--- nmh/aclocal.m4:1.2  Mon Apr 17 05:12:14 2000
+++ nmh/aclocal.m4      Thu Dec 15 00:45:36 2005
@@ -19,3 +19,68 @@
 AC_CHECK_FUNC(socket, ,
   AC_CHECK_LIB(socket, socket))
 ])
+
+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 <db1/ndbm.h>
+#else
+#ifdef HAVE_GDBM_NDBM_H
+#include <gdbm/ndbm.h>
+#else
+#if defined(HAVE_DB_H)
+#define DB_DBM_HSEARCH 1
+#include <db.h>
+#else
+#include <ndbm.h>
+#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
Index: nmh/configure.in
diff -u nmh/configure.in:1.72 nmh/configure.in:1.73
--- nmh/configure.in:1.72       Mon Dec  5 13:38:41 2005
+++ nmh/configure.in    Thu Dec 15 00:45:36 2005
@@ -1,7 +1,7 @@
 dnl
 dnl configure.in -- autoconf template for nmh
 dnl
-dnl $Id: configure.in,v 1.72 2005/12/05 13:38:41 bress Exp $
+dnl $Id: configure.in,v 1.73 2005/12/15 00:45:36 pm215 Exp $
 dnl
 
 dnl 2.13 definitely chokes; 2.53 is the earliest version I've tested. 
@@ -599,23 +599,37 @@
     [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 ----------------
Index: nmh/uip/slocal.c
diff -u nmh/uip/slocal.c:1.18 nmh/uip/slocal.c:1.19
--- nmh/uip/slocal.c:1.18       Tue Nov  8 20:22:33 2005
+++ nmh/uip/slocal.c    Thu Dec 15 00:45:36 2005
@@ -2,7 +2,7 @@
 /*
  * slocal.c -- asynchronously filter and deliver new mail
  *
- * $Id: slocal.c,v 1.18 2005/11/08 20:22:33 opk Exp $
+ * $Id: slocal.c,v 1.19 2005/12/15 00:45:36 pm215 Exp $
  *
  * This code is Copyright (c) 2002, by the authors of nmh.  See the
  * COPYRIGHT file in the root directory of the nmh distribution for
@@ -55,7 +55,7 @@
 #ifdef HAVE_GDBM_NDBM_H
 #include <gdbm/ndbm.h>
 #else
-#if defined(HAVE_DB_H) && defined(HAVE_LIBDB)
+#if defined(HAVE_DB_H)
 #define DB_DBM_HSEARCH 1
 #include <db.h>
 #else




reply via email to

[Prev in Thread] Current Thread [Next in Thread]