diff --git a/Modules/Setup.config.in b/Modules/Setup.config.in index 8558fb4448c..1f208bdfa87 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 e79852ad191..ae9352b9421 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 a956ada61a9..48c221e7eb3 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 #include #include -/* If using Berkeley DB 2.0 or newer, change this include to : */ +#ifdef HAVE_DB_185_H +#include +#else #include +#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 d8b0fc3c177..6eb9feb47da 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 3af6c3f4b1c..69ddf547d08 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,