--- configure.in.orig	Sat May 17 20:15:26 2003
+++ configure.in	Mon Sep  8 00:44:07 2003
@@ -1,6 +1,5 @@
 AC_INIT
 AM_INIT_AUTOMAKE([fastresolve], [2.10])
-AC_ARG_PROGRAM
 AC_PATH_PROGS(PERL, [perl5 perl], [/usr/bin/perl])
 AC_PROG_CC
 AC_PROG_CXX
@@ -26,6 +25,41 @@
 AC_DEFUN(DJM_LIB_DB_CXX,
 [dnl Check for a C++ interface, either version.
 
+AC_ARG_WITH(bdb-lib,
+    [  --with-bdb-lib=PATH	Path to Berkeley DB C++ library],
+    with_bdb_lib=$withval,
+    [ test "${with_bdb_lib+set}" = set || with_bdb_lib=none])
+AC_ARG_WITH(bdb-incdir,
+    [  --with-bdb-incdir=DIR	Berkeley DB C++ includes are in DIR],
+    with_bdb_incdir=$withval,
+    [ test "${with_bdb_incdir+set}" = set || with_bdb_incdir=none])
+
+if test $with_bdb_incdir != none; then
+CXXFLAGS="$CXXFLAGS -I$with_bdb_incdir"
+fi
+
+if test $with_bdb_lib != none; then
+
+dnl Berkeley DB from supplied path
+AC_MSG_CHECKING([for Db::open in ${with_bdb_lib}])
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+djm_save_LIBS="$LIBS"
+LIBS="$LIBS $with_bdb_lib"
+AC_TRY_LINK([#include <db_cxx.h>], [Db *d = new Db(NULL, 0);],
+	djm_cv_lib_bdb_cxx_Db=yes, djm_cv_lib_bdb_cxx_Db=no)
+LIBS="$djm_save_LIBS"
+AC_LANG_RESTORE
+AC_MSG_RESULT($djm_cv_lib_bdb_cxx_Db)
+
+if test $djm_cv_lib_bdb_cxx_Db = yes; then
+	LIBS="$LIBS $with_bdb_lib"
+else
+	AC_MSG_ERROR([Berkeley DB library 2.x-4.x configured with --enable-cxx is required])
+fi
+
+else
+
 dnl Berkeley DB 2.x.
 AC_CACHE_CHECK([for Db::open in -ldb], djm_cv_lib_db_Dbopen,
 [AC_LANG_SAVE
@@ -41,54 +75,69 @@
 	LIBS="$LIBS -ldb"
 else
 
-dnl Berkeley DB 3.x installed as libdb.
-AC_CACHE_CHECK([for Db::open in -ldb_cxx], djm_cv_lib_db_cxx_Dbopen,
+
+dnl Berkeley DB 3.x or 4.x installed as libdb.
+AC_CACHE_CHECK([for Db in -ldb_cxx], djm_cv_lib_db_cxx_Db,
 [AC_LANG_SAVE
 AC_LANG_CPLUSPLUS
 djm_save_LIBS="$LIBS"
 LIBS="$LIBS -ldb -ldb_cxx"
-AC_TRY_LINK([#include <db_cxx.h>], [Db *d = new Db(NULL, 0);
-d->open(NULL, NULL, DB_BTREE, DB_CREATE, 0);],
-	djm_cv_lib_db_cxx_Dbopen=yes, djm_cv_lib_db_cxx_Dbopen=no)
+AC_TRY_LINK([#include <db_cxx.h>], [Db *d = new Db(NULL, 0);],
+	djm_cv_lib_db_cxx_Db=yes, djm_cv_lib_db_cxx_Db=no)
 LIBS="$djm_save_LIBS"
 AC_LANG_RESTORE])
 
-if test $djm_cv_lib_db_cxx_Dbopen = yes; then
+if test $djm_cv_lib_db_cxx_Db = yes; then
 	LIBS="$LIBS -ldb -ldb_cxx"
 else
 
 dnl Berkeley DB 3.x installed as libdb3 (as on FreeBSD).
-AC_CACHE_CHECK([for Db::open in -ldb3_cxx], djm_cv_lib_db3_cxx_Dbopen,
+AC_CACHE_CHECK([for Db in -ldb3_cxx], djm_cv_lib_db3_cxx_Db,
 [AC_LANG_SAVE
 AC_LANG_CPLUSPLUS
 djm_save_LIBS="$LIBS"
 LIBS="$LIBS -ldb3 -ldb3_cxx"
-AC_TRY_LINK([#include <db_cxx.h>], [Db *d = new Db(NULL, 0);
-d->open(NULL, NULL, DB_BTREE, DB_CREATE, 0);],
-	djm_cv_lib_db3_cxx_Dbopen=yes, djm_cv_lib_db3_cxx_Dbopen=no)
+AC_TRY_LINK([#include <db_cxx.h>], [Db *d = new Db(NULL, 0);],
+	djm_cv_lib_db3_cxx_Db=yes, djm_cv_lib_db3_cxx_Db=no)
 LIBS="$djm_save_LIBS"
 AC_LANG_RESTORE])
 
-if test $djm_cv_lib_db3_cxx_Dbopen = yes; then
+if test $djm_cv_lib_db3_cxx_Db = yes; then
 	LIBS="$LIBS -ldb3 -ldb3_cxx"
 else
 
-dnl Berkeley DB 4.x installed as libdb4 (as on FreeBSD).
-AC_CACHE_CHECK([for Db::open in -ldb4_cxx], djm_cv_lib_db4_cxx_Dbopen,
+dnl Berkeley DB 4.0.x installed as libdb4 (as on FreeBSD).
+AC_CACHE_CHECK([for Db in -ldb4_cxx], djm_cv_lib_db4_cxx_Db,
 [AC_LANG_SAVE
 AC_LANG_CPLUSPLUS
 djm_save_LIBS="$LIBS"
 LIBS="$LIBS -ldb4 -ldb4_cxx"
-AC_TRY_LINK([#include <db_cxx.h>], [Db *d = new Db(NULL, 0);
-d->open(NULL, NULL, DB_BTREE, DB_CREATE, 0);],
-	djm_cv_lib_db4_cxx_Dbopen=yes, djm_cv_lib_db4_cxx_Dbopen=no)
+AC_TRY_LINK([#include <db_cxx.h>], [Db *d = new Db(NULL, 0);],
+	djm_cv_lib_db4_cxx_Db=yes, djm_cv_lib_db4_cxx_Db=no)
 LIBS="$djm_save_LIBS"
 AC_LANG_RESTORE])
 
-if test $djm_cv_lib_db4_cxx_Dbopen = yes; then
+if test $djm_cv_lib_db4_cxx_Db = yes; then
 	LIBS="$LIBS -ldb4 -ldb4_cxx"
 else
+
+dnl Berkeley DB 4.1.x installed as libdb41 (as on FreeBSD).
+AC_CACHE_CHECK([for Db in -ldb41_cxx], djm_cv_lib_db41_cxx_Db,
+[AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+djm_save_LIBS="$LIBS"
+LIBS="$LIBS -ldb41 -ldb41_cxx"
+AC_TRY_LINK([#include <db_cxx.h>], [Db *d = new Db(NULL, 0);],
+	djm_cv_lib_db41_cxx_Db=yes, djm_cv_lib_db41_cxx_Db=no)
+LIBS="$djm_save_LIBS"
+AC_LANG_RESTORE])
+
+if test $djm_cv_lib_db41_cxx_Db = yes; then
+	LIBS="$LIBS -ldb41 -ldb41_cxx"
+else
 	AC_MSG_ERROR([Berkeley DB library 2.x-4.x configured with --enable-cxx is required])
+fi
+fi
 fi
 fi
 fi