+dnl We should always have these backends available.
+backends="file fs keyd"
+
+AC_CHECK_LIB(pq, PQsetdbLogin,[have_libpq="yes" backends="$backends pg"],have_libpq="no")
+
+AC_CHECK_HEADER(db.h, have_db_h="yes", have_db_h="no")
+AC_MSG_CHECKING(for libdb version in db.h)
+printf "#include <db.h>\nDB_VERSION_MAJOR DB_VERSION_MINOR\n" >conftest.c
+set `eval $ac_cpp conftest.c | egrep '^ *[[0-9]] *'`; v="$1"; vv="$2"
+AC_MSG_RESULT($v.$vv)
+if test "$v" -eq 4; then
+ for db in "db-$v.$vv" "db$v.$vv" "db-$v" "db$v" "db"; do
+ AC_MSG_CHECKING(for db_create in lib$db)
+ oldLIBS="$LIBS"
+ LIBS="$LIBS -l$db"
+ db4libs="-l$db"
+ AC_TRY_LINK([#include <db.h>], db_create(0, 0, 0),
+ have_libdb="yes", have_libdb="no")
+ AC_MSG_RESULT($have_libdb)
+ LIBS="$oldLIBS"
+ if test "$have_libdb" != "no"; then break; fi
+ done
+fi
+if test "$have_libdb" = "yes" -a "$have_db_h" = "yes"; then
+ AC_DEFINE(HAVE_LIBDB4, 1, [libdb found])
+ backends="$backends db4"
+fi
+
+AC_MSG_CHECKING(available backends)
+AC_MSG_RESULT($backends)
+
+AC_ARG_ENABLE(backend,AC_HELP_STRING([--enable-backend=<backend>],[Choose the backend database to use. Defaults to dynamic.]), [], [enable_backend="dynamic"])
+
+AC_ARG_ENABLE(keyd,AC_HELP_STRING([--enable-keyd],[Use keyd as the DB backend.]), [], [])