3 dnl tests for various db libraries
7 AC_ARG_WITH(berkeley-db,
8 AS_HELP_STRING([--with-berkeley-db],
9 [enable support for berkeley db @<:@default=check@:>@]),
11 [with_berkeley_db=check])
14 AC_ARG_WITH(berkeley-db-include,
15 AS_HELP_STRING([--with-berkeley-db-include=dir],
16 [use berkeley-db headers in dir]),
18 [with_berkeley_db_include=check])
20 AC_ARG_ENABLE(ndbm-db,
21 AS_HELP_STRING([--disable-ndbm-db],
22 [if you don't want ndbm db]),[
26 AS_HELP_STRING([--disable-mdb-db],
27 [if you don't want OpenLDAP libmdb db]),[
33 AS_IF([test "x$with_berkeley_db" != xno],
34 [AS_IF([test "x$with_berkeley_db_include" != xcheck],
35 [AC_CHECK_HEADERS(["$dbheader/db.h"],
36 [AC_SUBST([DBHEADER], [$dbheader])
37 AC_DEFINE([HAVE_DBHEADER], [1],
38 [Define if you have user supplied header location])
40 [if test "x$with_berkeley_db_include" != xcheck; then
42 [--with-berkeley-db-include was given but include test failed])
52 dnl db_create is used by db3 and db4 and db5
54 AC_FIND_FUNC_NO_LIBS(db_create, [$dbheader] db5 db4 db3 db, [
57 #include <$dbheader/db.h>
62 #elif defined(HAVE_DB3_DB_H)
69 if test "$ac_cv_func_db_create" = "yes"; then
71 if test "$ac_cv_funclib_db_create" != "yes"; then
72 DBLIB="$ac_cv_funclib_db_create"
76 AC_DEFINE(HAVE_DB3, 1, [define if you have a berkeley db3/4/5 library])
79 dnl dbopen is used by db1/db2
81 AC_FIND_FUNC_NO_LIBS(dbopen, db2 db, [
83 #if defined(HAVE_DB2_DB_H)
85 #elif defined(HAVE_DB_H)
90 ],[NULL, 0, 0, 0, NULL])
92 if test "$ac_cv_func_dbopen" = "yes"; then
94 if test "$ac_cv_funclib_dbopen" != "yes"; then
95 DBLIB="$ac_cv_funclib_dbopen"
99 AC_DEFINE(HAVE_DB1, 1, [define if you have a berkeley db1/2 library])
102 dnl test for ndbm compatability
104 if test "$ac_cv_func_dbm_firstkey" != yes; then
105 AC_FIND_FUNC_NO_LIBS2(dbm_firstkey, $ac_cv_funclib_dbopen $ac_cv_funclib_db_create, [
107 #define DB_DBM_HSEARCH 1
112 if test "$ac_cv_func_dbm_firstkey" = "yes"; then
113 if test "$ac_cv_funclib_dbm_firstkey" != "yes"; then
114 LIB_NDBM="$ac_cv_funclib_dbm_firstkey"
118 AC_DEFINE(HAVE_DB_NDBM, 1, [define if you have ndbm compat in db])
119 AC_DEFINE(HAVE_NEW_DB, 1, [Define if NDBM really is DB (creates files *.db)])
121 $as_unset ac_cv_func_dbm_firstkey
122 $as_unset ac_cv_funclib_dbm_firstkey
128 if test "$enable_mdb_db" != "no"; then
129 if test "$db_type" = "unknown"; then
130 AC_CHECK_HEADER(mdb.h, [
131 AC_CHECK_LIB(mdb, mdb_env_create, db_type=mdb; DBLIB="-lmdb"
132 AC_DEFINE(HAVE_MDB, 1, [define if you have the OpenLDAP mdb library]))])
136 if test "$enable_ndbm_db" != "no"; then
138 if test "$db_type" = "unknown" -o "$ac_cv_func_dbm_firstkey" = ""; then
145 AC_FIND_FUNC_NO_LIBS(dbm_firstkey, ndbm, [
147 #if defined(HAVE_NDBM_H)
149 #elif defined(HAVE_DBM_H)
155 if test "$ac_cv_func_dbm_firstkey" = "yes"; then
156 if test "$ac_cv_funclib_dbm_firstkey" != "yes"; then
157 LIB_NDBM="$ac_cv_funclib_dbm_firstkey"
161 AC_DEFINE(HAVE_NDBM, 1, [define if you have a ndbm library])dnl
163 if test "$db_type" = "unknown"; then
169 $as_unset ac_cv_func_dbm_firstkey
170 $as_unset ac_cv_funclib_dbm_firstkey
176 AC_FIND_FUNC_NO_LIBS(dbm_firstkey, gdbm, [
178 #include <gdbm/ndbm.h>
182 if test "$ac_cv_func_dbm_firstkey" = "yes"; then
183 if test "$ac_cv_funclib_dbm_firstkey" != "yes"; then
184 LIB_NDBM="$ac_cv_funclib_dbm_firstkey"
188 AC_DEFINE(HAVE_NDBM, 1, [define if you have a ndbm library])dnl
190 if test "$db_type" = "unknown"; then
199 if test "$have_ndbm" = "yes"; then
200 AC_MSG_CHECKING([if ndbm is implemented with db])
201 AC_RUN_IFELSE([AC_LANG_SOURCE([[
204 #if defined(HAVE_GDBM_NDBM_H)
205 #include <gdbm/ndbm.h>
206 #elif defined(HAVE_NDBM_H)
208 #elif defined(HAVE_DBM_H)
211 int main(int argc, char **argv)
215 d = dbm_open("conftest", O_RDWR | O_CREAT, 0666);
221 if test -f conftest.db; then
223 AC_DEFINE(HAVE_NEW_DB, 1, [Define if NDBM really is DB (creates files *.db)])
226 fi],[AC_MSG_RESULT([no])],[AC_MSG_RESULT([no-cross])])
229 AM_CONDITIONAL(HAVE_DB1, test "$db_type" = db1)dnl
230 AM_CONDITIONAL(HAVE_DB3, test "$db_type" = db3)dnl
231 AM_CONDITIONAL(HAVE_MDB, test "$db_type" = mdb)dnl
232 AM_CONDITIONAL(HAVE_NDBM, test "$db_type" = ndbm)dnl
233 AM_CONDITIONAL(HAVE_DBHEADER, test "$dbheader" != "")dnl
235 ## it's probably not correct to include LDFLAGS here, but we might
236 ## need it, for now just add any possible -L
238 for i in $LDFLAGS; do
245 AC_SUBST(LIB_NDBM)dnl