1 dnl Functions to check what database to use for libsasldb
3 dnl Berkeley DB specific checks first..
5 dnl Figure out what database type we're using
6 AC_DEFUN([SASL_DB_CHECK], [
8 AC_ARG_WITH(dblib, [ --with-dblib=DBLIB set the DB library to use [berkeley] ],
12 CYRUS_BERKELEY_DB_OPTS()
17 dnl this is unbelievably painful due to confusion over what db-3 should be
20 CYRUS_BERKELEY_DB_CHK()
21 CPPFLAGS="${CPPFLAGS} ${BDB_INCADD}"
22 SASL_DB_INC=$BDB_INCADD
23 SASL_DB_LIB="${BDB_LIBADD}"
26 AC_ARG_WITH(gdbm,[ --with-gdbm=PATH use gdbm from PATH],
27 with_gdbm="${withval}")
31 AC_CHECK_HEADER(gdbm.h, [
32 AC_CHECK_LIB(gdbm, gdbm_open, SASL_DB_LIB="-lgdbm",
37 if test -d $with_gdbm; then
38 CPPFLAGS="${CPPFLAGS} -I${with_gdbm}/include"
39 LDFLAGS="${LDFLAGS} -L${with_gdbm}/lib"
47 dnl We want to attempt to use -lndbm if we can, just in case
48 dnl there's some version of it installed and overriding libc
49 AC_CHECK_HEADER(ndbm.h, [
50 AC_CHECK_LIB(ndbm, dbm_open, SASL_DB_LIB="-lndbm", [
51 AC_CHECK_FUNC(dbm_open,,dblib="no")])],
55 dnl How about berkeley db?
56 CYRUS_BERKELEY_DB_CHK()
57 if test "$dblib" = no; then
59 AC_CHECK_HEADER(ndbm.h, [
60 AC_CHECK_LIB(ndbm, dbm_open,
61 dblib="ndbm"; SASL_DB_LIB="-lndbm",
64 if test "$dblib" = "weird"; then
65 dnl Is ndbm in the standard library?
66 AC_CHECK_FUNC(dbm_open, dblib="ndbm", dblib="no")
69 if test "$dblib" = no; then
71 AC_CHECK_HEADER(gdbm.h, [
72 AC_CHECK_LIB(gdbm, gdbm_open, dblib="gdbm";
73 SASL_DB_LIB="-lgdbm", dblib="no")],
78 CPPFLAGS="${CPPFLAGS} ${BDB_INCADD}"
79 SASL_DB_INC=$BDB_INCADD
80 SASL_DB_LIB="${BDB_LIBADD}"
88 AC_MSG_WARN([Bad DB library implementation specified;])
89 AC_ERROR([Use either \"berkeley\", \"gdbm\", \"ndbm\" or \"none\"])
95 AC_MSG_CHECKING(DB library to use)
98 SASL_DB_BACKEND="db_${dblib}.lo"
99 SASL_DB_BACKEND_STATIC="db_${dblib}.o allockey.o"
100 SASL_DB_BACKEND_STATIC_SRCS="../sasldb/db_${dblib}.c ../sasldb/allockey.c"
101 SASL_DB_UTILS="saslpasswd2 sasldblistusers2"
102 SASL_DB_MANS="saslpasswd2.8 sasldblistusers2.8"
106 SASL_MECHS="$SASL_MECHS libsasldb.la"
107 AC_DEFINE(SASL_GDBM,[],[Use GDBM for SASLdb])
110 SASL_MECHS="$SASL_MECHS libsasldb.la"
111 AC_DEFINE(SASL_NDBM,[],[Use NDBM for SASLdb])
114 SASL_MECHS="$SASL_MECHS libsasldb.la"
115 AC_DEFINE(SASL_BERKELEYDB,[],[Use BerkeleyDB for SASLdb])
118 AC_MSG_WARN([Disabling SASL authentication database support])
119 dnl note that we do not add libsasldb.la to SASL_MECHS, since it
120 dnl will just fail to load anyway.
121 SASL_DB_BACKEND="db_none.lo"
122 SASL_DB_BACKEND_STATIC="db_none.o"
123 SASL_DB_BACKEND_STATIC_SRCS="../sasldb/db_none.c"
130 if test "$enable_static" = yes; then
131 if test "$dblib" != "none"; then
132 SASL_STATIC_SRCS="$SASL_STATIC_SRCS ../plugins/sasldb.c $SASL_DB_BACKEND_STATIC_SRCS"
133 SASL_STATIC_OBJS="$SASL_STATIC_OBJS sasldb.o $SASL_DB_BACKEND_STATIC"
134 AC_DEFINE(STATIC_SASLDB,[],[Link SASLdb Staticly])
136 SASL_STATIC_OBJS="$SASL_STATIC_OBJS $SASL_DB_BACKEND_STATIC"
137 SASL_STATIC_SRCS="$SASL_STATIC_SRCS $SASL_DB_BACKEND_STATIC_SRCS"
141 AC_SUBST(SASL_DB_UTILS)
142 AC_SUBST(SASL_DB_MANS)
143 AC_SUBST(SASL_DB_BACKEND)
144 AC_SUBST(SASL_DB_BACKEND_STATIC)
145 AC_SUBST(SASL_DB_INC)
146 AC_SUBST(SASL_DB_LIB)
149 dnl Figure out what database path we're using
150 AC_DEFUN([SASL_DB_PATH_CHECK], [
151 AC_ARG_WITH(dbpath, [ --with-dbpath=PATH set the DB path to use [/etc/sasldb2] ],
154 AC_MSG_CHECKING(DB path to use)
155 AC_MSG_RESULT($dbpath)
156 AC_DEFINE_UNQUOTED(SASL_DB_PATH, "$dbpath", [Path to default SASLdb database])])