summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Modules/Setup.config.in9
-rw-r--r--Modules/Setup.in3
-rw-r--r--Modules/bsddbmodule.c5
-rw-r--r--acconfig.h3
-rw-r--r--configure.in26
5 files changed, 44 insertions, 2 deletions
diff --git a/Modules/Setup.config.in b/Modules/Setup.config.in
index 8558fb4448..1f208bdfa8 100644
--- a/Modules/Setup.config.in
+++ b/Modules/Setup.config.in
@@ -8,3 +8,12 @@
# Garbage collection enabled with --with-cycle-gc
@USE_GC_MODULE@gc gcmodule.c
+
+# You may want this to be built as a dynamically loaded module; uncomment
+# the following line in that case:
+
+#*shared*
+
+# bsddb module enabled by --with-libdb or presence of db.h
+@USE_BSDDB_MODULE@bsddb bsddbmodule.c -ldb
+
diff --git a/Modules/Setup.in b/Modules/Setup.in
index e79852ad19..ae9352b942 100644
--- a/Modules/Setup.in
+++ b/Modules/Setup.in
@@ -361,6 +361,9 @@ new newmodule.c
# (See http://www.jenkon-dev.com/~rd/python/ for an interface to
# BSD DB 2.1.0.)
+# Note: If a db.h file is found by configure, bsddb will be enabled
+# automatically via Setup.config.in
+
#DB=/depot/sundry/src/berkeley-db/db.1.85
#DBPORT=$(DB)/PORT/irix.5.3
#bsddb bsddbmodule.c -I$(DBPORT)/include -I$(DBPORT) $(DBPORT)/libdb.a
diff --git a/Modules/bsddbmodule.c b/Modules/bsddbmodule.c
index a956ada61a..48c221e7eb 100644
--- a/Modules/bsddbmodule.c
+++ b/Modules/bsddbmodule.c
@@ -30,8 +30,11 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
-/* If using Berkeley DB 2.0 or newer, change this include to <db_185.h>: */
+#ifdef HAVE_DB_185_H
+#include <db_185.h>
+#else
#include <db.h>
+#endif
/* Please don't include internal header files of the Berkeley db package
(it messes up the info required in the Setup file) */
diff --git a/acconfig.h b/acconfig.h
index d8b0fc3c17..6eb9feb47d 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -151,6 +151,9 @@
(shared library plus accessory files). */
#undef WITH_NEXT_FRAMEWORK
+/* Define if you want to use BSD db. */
+#undef WITH_LIBDB
+
/* Define if you want to build an interpreter with many run-time checks */
#undef Py_DEBUG
diff --git a/configure.in b/configure.in
index 3af6c3f4b1..69ddf547d0 100644
--- a/configure.in
+++ b/configure.in
@@ -369,7 +369,7 @@ dnl AC_MSG_RESULT($cpp_type)
AC_HEADER_STDC
AC_CHECK_HEADERS(dlfcn.h fcntl.h limits.h locale.h ncurses.h poll.h pthread.h \
signal.h stdarg.h stddef.h stdlib.h thread.h unistd.h utime.h \
-sys/audioio.h sys/file.h sys/lock.h \
+sys/audioio.h sys/file.h sys/lock.h db_185.h db.h \
sys/param.h sys/select.h sys/socket.h sys/time.h sys/times.h \
sys/un.h sys/utsname.h sys/wait.h pty.h libutil.h)
AC_HEADER_DIRENT
@@ -812,6 +812,30 @@ else
fi
AC_MSG_RESULT($with_cycle_gc)
+# Check for LIBDB support
+# either --with-libdb or, in its absence, the presence of db.h
+AC_SUBST(USE_BSDDB_MODULE)
+USE_BSDDB_MODULE=""
+AC_MSG_CHECKING(for --with-libdb)
+AC_ARG_WITH(libdb,
+[ --with(out)-libdb disable/enable bsddb module])
+
+# default is enabled
+if test -z "$with_libdb"
+then with_libdb="yes"
+fi
+# if we found db.h, enable, unless with_libdb is expressly set to "no"
+if test "$ac_cv_header_db_h" = "yes" -a "$with_libdb" != "no"
+then with_libdb="yes"
+fi
+if test "$with_libdb" = "no"
+then
+ USE_BSDDB_MODULE="#"
+else
+ AC_DEFINE(WITH_LIBDB)
+fi
+AC_MSG_RESULT($with_libdb)
+
# Check for --with-wctype-functions
AC_MSG_CHECKING(for --with-wctype-functions)
AC_ARG_WITH(wctype-functions,