]> git.sur5r.net Git - openldap/blobdiff - configure.in
use dn2id index for extended filters using entryDN
[openldap] / configure.in
index 4bec4d742b37c7a3fcb523ac65871aed9122c937..b013b04f732973e7b045dfdee79b3e1e7159f2a2 100644 (file)
@@ -1,7 +1,7 @@
 dnl $OpenLDAP$
 dnl This work is part of OpenLDAP Software <http://www.openldap.org/>.
 dnl
 dnl $OpenLDAP$
 dnl This work is part of OpenLDAP Software <http://www.openldap.org/>.
 dnl
-dnl Copyright 1998-2006 The OpenLDAP Foundation.
+dnl Copyright 1998-2007 The OpenLDAP Foundation.
 dnl All rights reserved.
 dnl
 dnl Redistribution and use in source and binary forms, with or without
 dnl All rights reserved.
 dnl
 dnl Redistribution and use in source and binary forms, with or without
@@ -23,7 +23,7 @@ define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
 define([AC_LIBTOOL_LANG_GCJ_CONFIG], [:])dnl
 dnl ================================================================
 dnl Configure.in for OpenLDAP
 define([AC_LIBTOOL_LANG_GCJ_CONFIG], [:])dnl
 dnl ================================================================
 dnl Configure.in for OpenLDAP
-AC_COPYRIGHT([[Copyright 1998-2006 The OpenLDAP Foundation. All rights reserved.
+AC_COPYRIGHT([[Copyright 1998-2007 The OpenLDAP Foundation. All rights reserved.
 Restrictions apply, see COPYRIGHT and LICENSE files.]])
 AC_REVISION([$OpenLDAP$])
 AC_INIT([OpenLDAP],,[http://www.openldap.org/its/])
 Restrictions apply, see COPYRIGHT and LICENSE files.]])
 AC_REVISION([$OpenLDAP$])
 AC_INIT([OpenLDAP],,[http://www.openldap.org/its/])
@@ -93,7 +93,7 @@ AH_TOP([
 /* begin of portable.h.pre */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
 /* begin of portable.h.pre */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2006 The OpenLDAP Foundation
+ * Copyright 1998-2007 The OpenLDAP Foundation
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -230,8 +230,6 @@ OL_ARG_ENABLE(syslog,[  --enable-syslog       enable syslog support], auto)dnl
 OL_ARG_ENABLE(proctitle,[  --enable-proctitle    enable proctitle support], yes)dnl
 dnl OL_ARG_ENABLE(referrals,[  --enable-referrals        enable LDAPv2+ Referrals (experimental)], no)dnl
 ol_enable_referrals=${ol_enable_referrals-no}
 OL_ARG_ENABLE(proctitle,[  --enable-proctitle    enable proctitle support], yes)dnl
 dnl OL_ARG_ENABLE(referrals,[  --enable-referrals        enable LDAPv2+ Referrals (experimental)], no)dnl
 ol_enable_referrals=${ol_enable_referrals-no}
-dnl OL_ARG_ENABLE(kbind,[  --enable-kbind        enable LDAPv2+ Kerberos IV bind (deprecated)], no)dnl
-ol_enable_kbind=${ol_enable_kbind-no}
 OL_ARG_ENABLE(ipv6,[  --enable-ipv6      enable IPv6 support], auto)dnl
 OL_ARG_ENABLE(local,[  --enable-local    enable AF_LOCAL (AF_UNIX) socket support], auto)dnl
 
 OL_ARG_ENABLE(ipv6,[  --enable-ipv6      enable IPv6 support], auto)dnl
 OL_ARG_ENABLE(local,[  --enable-local    enable AF_LOCAL (AF_UNIX) socket support], auto)dnl
 
@@ -241,19 +239,19 @@ OL_ARG_WITH(cyrus_sasl,[  --with-cyrus-sasl         with Cyrus SASL support],
        auto, [auto yes no] )
 OL_ARG_WITH(fetch,[  --with-fetch                with fetch(3) URL support],
        auto, [auto yes no] )
        auto, [auto yes no] )
 OL_ARG_WITH(fetch,[  --with-fetch                with fetch(3) URL support],
        auto, [auto yes no] )
-dnl    OL_ARG_WITH(kerberos,[  --with-kerberos   with Kerberos support],
-dnl            auto, [auto k5 k5only k425 kth k4 afs yes no])
-ol_with_kerberos=${ol_with_kerberos-auto}
 OL_ARG_WITH(threads,[  --with-threads    with threads],
        auto, [auto nt posix mach pth lwp yes no manual] )
 OL_ARG_WITH(tls,[  --with-tls            with TLS/SSL support],
        auto, [auto openssl yes no] )
 OL_ARG_WITH(threads,[  --with-threads    with threads],
        auto, [auto nt posix mach pth lwp yes no manual] )
 OL_ARG_WITH(tls,[  --with-tls            with TLS/SSL support],
        auto, [auto openssl yes no] )
-OL_ARG_WITH(yielding_select,[  --with-yielding-select  with implicitly yielding select],
+OL_ARG_WITH(yielding_select,
+       [  --with-yielding-select  with implicitly yielding select],
        auto, [auto yes no manual] )
        auto, [auto yes no manual] )
-OL_ARG_WITH(multiple_precision,[  --with-multiple-precision
-                          multiple precision support for statistics
-                         auto|bignum|gmp],
-       auto, [auto bignum gmp yes no] )
+OL_ARG_WITH(mp,
+       [  --with-mp               with multiple precision statistics auto|longlong|long|bignum|gmp],
+       auto, [auto longlong long bignum gmp yes no])
+OL_ARG_WITH(odbc,
+       [  --with-odbc             with specific ODBC support iodbc|unixodbc|auto],
+       auto, [auto iodbc unixodbc] )
 
 dnl ----------------------------------------------------------------
 dnl Server options
 
 dnl ----------------------------------------------------------------
 dnl Server options
@@ -283,7 +281,6 @@ Backends="bdb \
        dnssrv \
        hdb \
        ldap \
        dnssrv \
        hdb \
        ldap \
-       ldbm \
        meta \
        monitor \
        null \
        meta \
        monitor \
        null \
@@ -306,18 +303,6 @@ OL_ARG_ENABLE(hdb,[    --enable-hdb          enable Hierarchical DB backend],
        yes, [no yes mod], ol_enable_backends)dnl
 OL_ARG_ENABLE(ldap,[    --enable-ldap    enable ldap backend],
        no, [no yes mod], ol_enable_backends)dnl
        yes, [no yes mod], ol_enable_backends)dnl
 OL_ARG_ENABLE(ldap,[    --enable-ldap    enable ldap backend],
        no, [no yes mod], ol_enable_backends)dnl
-OL_ARG_ENABLE(ldbm,[    --enable-ldbm    enable ldbm backend],
-       no, [no yes mod], ol_enable_backends)dnl
-AC_ARG_WITH(ldbm_api,,[
-       AC_MSG_WARN([Please use --enable-ldbm-api instead of --with-ldbm-api])
-       enable_ldbm_api="$with_ldbm_api"])
-OL_ARG_ENABLE(ldbm_api,[      --enable-ldbm-api   use LDBM API],
-       auto, [auto berkeley bcompat mdbm gdbm])
-AC_ARG_WITH(ldbm_type,,[
-       AC_MSG_WARN([Please use --enable-ldbm-type instead of --with-ldbm-type])
-       enable_ldbm_type="$with_ldbm_type"])
-OL_ARG_ENABLE(ldbm_type,[      --enable-ldbm-type  use LDBM type],
-       auto, [auto btree hash])
 OL_ARG_ENABLE(meta,[    --enable-meta    enable metadirectory backend],
        no, [no yes mod], ol_enable_backends)dnl
 OL_ARG_ENABLE(monitor,[    --enable-monitor      enable monitor backend],
 OL_ARG_ENABLE(meta,[    --enable-meta    enable metadirectory backend],
        no, [no yes mod], ol_enable_backends)dnl
 OL_ARG_ENABLE(monitor,[    --enable-monitor      enable monitor backend],
@@ -338,16 +323,17 @@ OL_ARG_ENABLE(sql,[    --enable-sql         enable sql backend],
 dnl ----------------------------------------------------------------
 dnl SLAPD Overlay Options
 Overlays="accesslog \
 dnl ----------------------------------------------------------------
 dnl SLAPD Overlay Options
 Overlays="accesslog \
+       auditlog \
+       constraint \
        dds \
        dds \
-       denyop \
        dyngroup \
        dynlist \
        dyngroup \
        dynlist \
-       lastmod \
        ppolicy \
        proxycache \
        refint \
        retcode \
        rwm \
        ppolicy \
        proxycache \
        refint \
        retcode \
        rwm \
+       seqmod \
        syncprov \
        translucent \
        unique \
        syncprov \
        translucent \
        unique \
@@ -360,16 +346,16 @@ OL_ARG_ENABLE(overlays,[    --enable-overlays       enable all available overlays],
        --, [no yes mod])dnl
 OL_ARG_ENABLE(accesslog,[    --enable-accesslog          In-Directory Access Logging overlay],
        no, [no yes mod], ol_enable_overlays)
        --, [no yes mod])dnl
 OL_ARG_ENABLE(accesslog,[    --enable-accesslog          In-Directory Access Logging overlay],
        no, [no yes mod], ol_enable_overlays)
-OL_ARG_ENABLE(dds,[    --enable-dds      Dynamic Directory Services overlay],
+OL_ARG_ENABLE(auditlog,[    --enable-auditlog    Audit Logging overlay],
        no, [no yes mod], ol_enable_overlays)
        no, [no yes mod], ol_enable_overlays)
-OL_ARG_ENABLE(denyop,[    --enable-denyop        Deny Operation overlay],
+OL_ARG_ENABLE(constraint,[    --enable-constraint        Attribute Constraint overlay],
+       no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(dds,[    --enable-dds      Dynamic Directory Services overlay],
        no, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(dyngroup,[    --enable-dyngroup    Dynamic Group overlay],
        no, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(dynlist,[    --enable-dynlist      Dynamic List overlay],
        no, [no yes mod], ol_enable_overlays)
        no, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(dyngroup,[    --enable-dyngroup    Dynamic Group overlay],
        no, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(dynlist,[    --enable-dynlist      Dynamic List overlay],
        no, [no yes mod], ol_enable_overlays)
-OL_ARG_ENABLE(lastmod,[    --enable-lastmod      Last Modification overlay],
-       no, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(ppolicy,[    --enable-ppolicy      Password Policy overlay],
        no, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(proxycache,[    --enable-proxycache        Proxy Cache overlay],
 OL_ARG_ENABLE(ppolicy,[    --enable-ppolicy      Password Policy overlay],
        no, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(proxycache,[    --enable-proxycache        Proxy Cache overlay],
@@ -380,6 +366,8 @@ OL_ARG_ENABLE(retcode,[    --enable-retcode   Return Code testing overlay],
        no, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(rwm,[    --enable-rwm              Rewrite/Remap overlay],
        no, [no yes mod], ol_enable_overlays)
        no, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(rwm,[    --enable-rwm              Rewrite/Remap overlay],
        no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(seqmod,[    --enable-seqmod        Sequential Modify overlay],
+       yes, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(syncprov,[    --enable-syncprov    Syncrepl Provider overlay],
        yes, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(translucent,[    --enable-translucent  Translucent Proxy overlay],
 OL_ARG_ENABLE(syncprov,[    --enable-syncprov    Syncrepl Provider overlay],
        yes, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(translucent,[    --enable-translucent  Translucent Proxy overlay],
@@ -434,12 +422,6 @@ if test $ol_enable_slapd = no ; then
        if test $ol_enable_aci != no ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
        fi
        if test $ol_enable_aci != no ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
        fi
-       if test $ol_enable_ldbm_api != auto ; then
-               AC_MSG_WARN([slapd disabled, ignoring --enable-ldbm-api argument])
-       fi
-       if test $ol_enable_ldbm_type != auto ; then
-               AC_MSG_WARN([slapd disabled, ignoring --enable-ldbm-type argument])
-       fi
        if test $ol_enable_slurpd = yes ; then
                AC_MSG_ERROR([slurpd requires slapd])
        fi
        if test $ol_enable_slurpd = yes ; then
                AC_MSG_ERROR([slurpd requires slapd])
        fi
@@ -469,74 +451,30 @@ if test $ol_enable_slapd = no ; then
        ol_enable_aci=no
        ol_enable_wrappers=no
 
        ol_enable_aci=no
        ol_enable_wrappers=no
 
-       ol_enable_ldbm_api=no
-       ol_enable_ldbm_type=no
-
        ol_enable_slurpd=no
 
        ol_enable_rewrite=no
 
        ol_enable_slurpd=no
 
        ol_enable_rewrite=no
 
-elif test $ol_enable_ldbm = no ; then
-       dnl SLAPD without LDBM
-
-       if test $ol_enable_ldbm_api != auto ; then
-               AC_MSG_WARN([LDBM disabled, ignoring --enable-ldbm-api argument])
-       fi
-
-       if test $ol_enable_ldbm_type != auto ; then
-               AC_MSG_WARN([LDBM disabled, ignoring --enable-ldbm-type argument])
-       fi
-
-       if test $ol_enable_modules != yes &&
-          test $ol_enable_bdb = no &&
-          test $ol_enable_dnssrv = no &&
-          test $ol_enable_hdb = no &&
-          test $ol_enable_ldap = no &&
-          test $ol_enable_meta = no &&
-          test $ol_enable_monitor = no &&
-          test $ol_enable_null = no &&
-          test $ol_enable_passwd = no &&
-          test $ol_enable_perl = no &&
-          test $ol_enable_relay = no &&
-          test $ol_enable_shell = no &&
-          test $ol_enable_sql = no ; then
-
-               if test $ol_enable_slapd = yes ; then
-                       AC_MSG_ERROR([slapd requires a backend])
-               else
-                       AC_MSG_WARN([skipping slapd, no backend specified])
-                       ol_enable_slapd=no
-               fi
-       fi
-
-       ol_enable_ldbm_api=no
-       ol_enable_ldbm_type=no
-
-       if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
-               ol_enable_ldbm_api=berkeley
-       fi
-
-else
-       dnl SLAPD with LDBM
-       if test $ol_enable_ldbm_api = gdbm &&
-          test $ol_enable_ldbm_type = btree ; then
-               AC_MSG_ERROR([GDBM only supports LDBM type hash])
-       fi
-       if test $ol_enable_ldbm_api = mdbm &&
-          test $ol_enable_ldbm_type = btree ; then
-               AC_MSG_ERROR([MDBM only supports LDBM type hash])
-       fi
-       if test $ol_enable_ldbm_api = ndbm &&
-          test $ol_enable_ldbm_type = btree ; then
-               AC_MSG_ERROR([NDBM only supports LDBM type hash])
-       fi
-
-       if test $ol_enable_bdb/$ol_enable_hdb != no/no ; then
-               if test $ol_enable_ldbm_api = auto ; then
-                       ol_enable_ldbm_api=berkeley
-               elif test $ol_enable_ldbm_api != berkeley ; then
-                       AC_MSG_ERROR([LDBM API not compatible with BDB/HDB])
-               fi
+elif test $ol_enable_modules != yes &&
+       test $ol_enable_bdb = no &&
+       test $ol_enable_dnssrv = no &&
+       test $ol_enable_hdb = no &&
+       test $ol_enable_ldap = no &&
+       test $ol_enable_meta = no &&
+       test $ol_enable_monitor = no &&
+       test $ol_enable_null = no &&
+       test $ol_enable_passwd = no &&
+       test $ol_enable_perl = no &&
+       test $ol_enable_relay = no &&
+       test $ol_enable_shell = no &&
+       test $ol_enable_sql = no ; then
+       dnl no slapd backend
+
+       if test $ol_enable_slapd = yes ; then
+               AC_MSG_ERROR([slapd requires a backend])
+       else
+               AC_MSG_WARN([skipping slapd, no backend specified])
+               ol_enable_slapd=no
        fi
 fi
 
        fi
 fi
 
@@ -557,22 +495,6 @@ if test $ol_enable_lmpasswd = yes ; then
        fi
 fi
 
        fi
 fi
 
-if test $ol_enable_kbind = yes ; then
-       if test $ol_with_kerberos = no ; then
-               AC_MSG_ERROR([options require --with-kerberos])
-       elif test $ol_with_kerberos = auto ; then
-               ol_with_kerberos=yes
-       fi
-
-elif test $ol_enable_kbind = no ; then
-       if test $ol_with_kerberos = auto ; then
-               ol_with_kerberos=no
-       elif test $ol_with_kerberos != no ; then
-               AC_MSG_WARN([Kerberos detection enabled unnecessarily]);
-               ol_with_kerberos=no
-       fi
-fi
-
 if test $ol_enable_spasswd = yes ; then
        if test $ol_with_cyrus_sasl = no ; then
                AC_MSG_ERROR([options require --with-cyrus-sasl])
 if test $ol_enable_spasswd = yes ; then
        if test $ol_with_cyrus_sasl = no ; then
                AC_MSG_ERROR([options require --with-cyrus-sasl])
@@ -585,7 +507,7 @@ AC_MSG_RESULT(done)
 dnl ----------------------------------------------------------------
 dnl Initialize vars
 LDAP_LIBS=
 dnl ----------------------------------------------------------------
 dnl Initialize vars
 LDAP_LIBS=
-LDBM_LIBS=
+BDB_LIBS=
 LTHREAD_LIBS=
 LUTIL_LIBS=
 
 LTHREAD_LIBS=
 LUTIL_LIBS=
 
@@ -604,7 +526,6 @@ BUILD_BDB=no
 BUILD_DNSSRV=no
 BUILD_HDB=no
 BUILD_LDAP=no
 BUILD_DNSSRV=no
 BUILD_HDB=no
 BUILD_LDAP=no
-BUILD_LDBM=no
 BUILD_META=no
 BUILD_MONITOR=no
 BUILD_NULL=no
 BUILD_META=no
 BUILD_MONITOR=no
 BUILD_NULL=no
@@ -615,6 +536,8 @@ BUILD_SHELL=no
 BUILD_SQL=no
 
 BUILD_ACCESSLOG=no
 BUILD_SQL=no
 
 BUILD_ACCESSLOG=no
+BUILD_AUDITLOG=no
+BUILD_CONSTRAINT=no
 BUILD_DDS=no
 BUILD_DENYOP=no
 BUILD_DYNGROUP=no
 BUILD_DDS=no
 BUILD_DENYOP=no
 BUILD_DYNGROUP=no
@@ -625,6 +548,7 @@ BUILD_PROXYCACHE=no
 BUILD_REFINT=no
 BUILD_RETCODE=no
 BUILD_RWM=no
 BUILD_REFINT=no
 BUILD_RETCODE=no
 BUILD_RWM=no
+BUILD_SEQMOD=no
 BUILD_SYNCPROV=no
 BUILD_TRANSLUCENT=no
 BUILD_UNIQUE=no
 BUILD_SYNCPROV=no
 BUILD_TRANSLUCENT=no
 BUILD_UNIQUE=no
@@ -904,10 +828,13 @@ AC_CHECK_HEADERS( \
        termios.h               \
        unistd.h                \
        utime.h                 \
        termios.h               \
        unistd.h                \
        utime.h                 \
-       winsock.h               \
-       winsock2.h              \
 )
 
 )
 
+dnl Only check Winsock on MinGW
+if test "$ac_cv_mingw32" = yes ; then
+       AC_CHECK_HEADERS( winsock.h winsock2.h )
+fi
+
 AC_CHECK_HEADERS( resolv.h, [], [],
 [$ac_includes_default
 #include <netinet/in.h>
 AC_CHECK_HEADERS( resolv.h, [], [],
 [$ac_includes_default
 #include <netinet/in.h>
@@ -939,9 +866,7 @@ fi
 dnl The following is INTENTIONALLY scripted out because shell does not
 dnl support variable names with the '@' character, which is what
 dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
 dnl The following is INTENTIONALLY scripted out because shell does not
 dnl support variable names with the '@' character, which is what
 dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
-dnl
-dnl Skip Winsock tests on Cygwin
-if test "$ac_cv_cygwin" != yes && test "$ac_cv_header_winsock_h" = yes; then
+if test "$ac_cv_header_winsock_h" = yes; then
 AC_CACHE_CHECK([for winsock], [ol_cv_winsock],
 save_LIBS="$LIBS"
 for curlib in ws2_32 wsock32; do
 AC_CACHE_CHECK([for winsock], [ol_cv_winsock],
 save_LIBS="$LIBS"
 for curlib in ws2_32 wsock32; do
@@ -1001,18 +926,35 @@ dnl AC_SYS_RESTARTABLE_SYSCALLS
 
 dnl ----------------------------------------------------------------
 AC_CHECK_FUNCS( poll )
 
 dnl ----------------------------------------------------------------
 AC_CHECK_FUNCS( poll )
-AC_CHECK_HEADERS( poll.h )
+if test $ac_cv_func_poll = yes; then
+AC_CHECK_HEADERS( poll.h sys/poll.h )
+fi
 
 dnl ----------------------------------------------------------------
 AC_CHECK_HEADERS( sys/epoll.h )
 if test "${ac_cv_header_sys_epoll_h}" = yes; then
 
 dnl ----------------------------------------------------------------
 AC_CHECK_HEADERS( sys/epoll.h )
 if test "${ac_cv_header_sys_epoll_h}" = yes; then
-AC_MSG_CHECKING(for epoll system call)
-AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char *argv)
+       AC_MSG_CHECKING(for epoll system call)
+       AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv)
 {
        int epfd = epoll_create(256);
        exit (epfd == -1 ? 1 : 0);
 }]])],[AC_MSG_RESULT(yes)
 {
        int epfd = epoll_create(256);
        exit (epfd == -1 ? 1 : 0);
 }]])],[AC_MSG_RESULT(yes)
-AC_DEFINE(HAVE_EPOLL,1, [define if your system supports epoll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
+       AC_DEFINE(HAVE_EPOLL,1, [define if your system supports epoll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
+fi
+
+dnl ----------------------------------------------------------------
+AC_CHECK_HEADERS( sys/devpoll.h )
+dnl "/dev/poll" needs <sys/poll.h> as well...
+if test "${ac_cv_header_sys_devpoll_h}" = yes \
+               -a "${ac_cv_header_poll_h}" = yes ; \
+then
+       AC_MSG_CHECKING(for /dev/poll)
+       AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv)
+{
+       int devpollfd = open("/dev/poll", /* O_RDWR */ 2);
+       exit (devpollfd == -1 ? 1 : 0);
+}]])],[AC_MSG_RESULT(yes)
+       AC_DEFINE(HAVE_DEVPOLL,1, [define if your system supports /dev/poll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
 fi
 
 dnl ----------------------------------------------------------------
 fi
 
 dnl ----------------------------------------------------------------
@@ -1021,7 +963,13 @@ OL_STRERROR
 
 dnl ----------------------------------------------------------------
 dnl require POSIX regex
 
 dnl ----------------------------------------------------------------
 dnl require POSIX regex
-AC_CHECK_HEADERS( regex.h )
+AC_CHECK_HEADERS( regex.h, [], [],
+[$ac_includes_default
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+])
+
 if test "$ac_cv_header_regex_h" != yes ; then
        AC_MSG_ERROR([POSIX regex.h required.])
 fi
 if test "$ac_cv_header_regex_h" != yes ; then
        AC_MSG_ERROR([POSIX regex.h required.])
 fi
@@ -1149,179 +1097,15 @@ if test $ol_enable_local != no ; then
        fi
 fi
 
        fi
 fi
 
-dnl ----------------------------------------------------------------
-dnl Kerberos
-ol_link_kbind=no
-ol_link_krb5=no
-ol_link_krb4=no
-
-case $ol_with_kerberos in yes | auto | k5 | k5only | k425)
-
-       AC_CHECK_HEADERS(krb5.h)
-
-       if test $ac_cv_header_krb5_h = yes ; then
-               dnl lazy check for Heimdal Kerberos
-               AC_CHECK_HEADERS(heim_err.h)
-               if test $ac_cv_header_heim_err_h = yes ; then
-                       krb5_impl=heimdal
-               else
-                       krb5_impl=mit
-               fi
-
-               if test $krb5_impl = mit; then
-                       AC_CHECK_LIB(k5crypto, main,
-                               [krb5crypto=k5crypto],
-                               [krb5crypto=crypto])
-
-                       AC_CHECK_LIB(krb5, main,
-                               [have_krb5=yes
-                               KRB5_LIBS="-lkrb5 -l$krb5crypto -lcom_err"],
-                               [have_krb5=no],
-                               [-l$krb5crypto -lcom_err])
-
-               elif test $krb5_impl = heimdal; then
-                       AC_CHECK_LIB(des, main,
-                               [krb5crypto=des],
-                               [krb5crypto=crypto])
-
-                       AC_CHECK_LIB(krb5, main,
-                               [have_krb5=yes
-                               KRB5_LIBS="-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err"],
-                               [have_krb5=no],
-                               [-l$krb5crypto -lasn1 -lroken -lcom_err])
-
-                       AC_DEFINE(HAVE_HEIMDAL_KERBEROS, 1,
-                               [define if you have HEIMDAL Kerberos])
-
-               else
-                       have_krb5=no
-                       AC_MSG_WARN([Unrecognized Kerberos5 Implementation])
-               fi
-
-               if test $have_krb5 = yes ; then
-                       ol_link_krb5=yes
-
-                       AC_DEFINE(HAVE_KRB5, 1,
-                               [define if you have Kerberos V])
-
-                       if test $ol_with_kerberos = k5only ; then
-                               ol_with_kerberos=found
-                       fi
-
-               elif test $ol_with_kerberos != auto ; then
-                       AC_MSG_ERROR([Required Kerberos 5 support not available])
-               fi
-
-       fi
-       ;;
-esac
-
-if test $ol_link_krb5 = yes &&
-   { test $ol_with_kerberos = yes ||
-     test $ol_with_kerberos = auto ||
-     test $ol_with_kerberos = k425; }; then
-
-       AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
-
-       if test $ac_cv_header_kerberosIV_krb_h = yes ; then
-               if test $krb5_impl = mit; then
-                       AC_CHECK_LIB(krb4, main, [have_k425=yes
-                               KRB4_LIBS="-lkrb4 -ldes425"], [have_k425=no],
-                               [-ldes425 -lkrb5 -l$krb5crypto -lcom_err])
-
-               elif test $krb5_impl = heimdal; then
-                       AC_CHECK_LIB(krb4, main, [have_k425=yes
-                               KRB4_LIBS="-lkrb4"], [have_k425=no],
-                               [-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err])
-
-               else
-                       have_425=no
-                       AC_MSG_WARN([Unrecongized Kerberos V Implementation])
-               fi
-
-               if test $have_k425 = yes ; then
-                       ol_with_kerberos=found
-                       ol_link_krb4=yes
-
-                       AC_DEFINE(HAVE_KRB425, 1,
-                               [define if you have Kerberos V with IV support])
-                       AC_DEFINE(HAVE_KRB4, 1,
-                               [define if you have Kerberos IV])
-
-                       AC_CACHE_CHECK([for des_debug in Kerberos libraries],
-                               [ol_cv_var_des_debug], [
-                               dnl save the flags
-                               save_LIBS="$LIBS"
-                               LIBS="$KRB4_LIBS $KRB5_LIBS $LIBS"
-                               AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#include <kerberosIV/krb.h>
-#include <kerberosIV/des.h>
-extern int des_debug;
-]], [[
-des_debug = 1;
-]])],[ol_cv_var_des_debug=yes],[ol_cv_var_des_debug=no])
-                               dnl restore the LIBS
-                               LIBS="$save_LIBS"
-                       ])
-
-                       if test $ol_cv_var_des_debug = yes ; then
-                               AC_DEFINE(HAVE_DES_DEBUG,1,
-                                       [define if you have Kerberos des_debug])
-                       fi
-
-                       LIBS="$save_LIBS"
-               fi
-       fi
-fi
-
-if test $ol_link_krb5 = yes ; then
-       ol_with_kerberos=found
-fi
-
-case $ol_with_kerberos in yes | auto | k4 | kth)
-
-       AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
-
-       if test $ac_cv_header_krb_h = yes ; then
-               AC_CHECK_LIB(krb, main, [have_k4=yes], [have_k4=no], [-ldes])
-
-               if test $have_k4 = yes ; then
-                       ol_with_kerberos=found
-                       ol_link_krb4=yes
-
-                       AC_DEFINE(HAVE_KRB4, 1,
-                               [define if you have Kerberos IV])
-
-                       KRB4_LIBS="-lkrb -ldes"
-
-                       if test $ac_cv_header_krb_archaeology_h = yes ; then
-                               AC_DEFINE(HAVE_KTH_KERBEROS, 1,
-                                       [define if you have Kth Kerberos])
-                       fi
-               fi
-       fi
-       ;;
-esac
-
-if test $ol_link_krb4 = yes && test $ol_enable_kbind != no ; then
-       ol_link_kbind=yes
-
-elif test $ol_enable_kbind = yes ; then
-       AC_MSG_ERROR([Kerberos IV detection failed])
-fi
-
-if test $ol_link_krb4 = yes || test $ol_link_krb5 = yes ; then
-       AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
-
-elif test $ol_with_kerberos != auto && test $ol_with_kerberos != no ; then
-       AC_MSG_ERROR([Kerberos detection failed])
-fi
-
 dnl ----------------------------------------------------------------
 dnl TLS/SSL
        
 dnl ----------------------------------------------------------------
 dnl TLS/SSL
        
+if test $ol_with_tls = yes ; then
+       ol_with_tls=auto
+fi
+
 ol_link_tls=no
 ol_link_tls=no
-if test $ol_with_tls != no ; then
+if test $ol_with_tls = openssl || test $ol_with_tls = auto ; then
        AC_CHECK_HEADERS(openssl/ssl.h)
 
        if test $ac_cv_header_openssl_ssl_h = yes ; then
        AC_CHECK_HEADERS(openssl/ssl.h)
 
        if test $ac_cv_header_openssl_ssl_h = yes ; then
@@ -1338,7 +1122,7 @@ if test $ol_with_tls != no ; then
                fi
 
                if test $have_openssl = yes ; then
                fi
 
                if test $have_openssl = yes ; then
-                       ol_with_tls=found
+                       ol_with_tls=openssl
                        ol_link_tls=yes
 
                        AC_DEFINE(HAVE_OPENSSL, 1, 
                        ol_link_tls=yes
 
                        AC_DEFINE(HAVE_OPENSSL, 1, 
@@ -1352,31 +1136,27 @@ if test $ol_with_tls != no ; then
                        else
                                TLS_LIBS="-lssl -lcrypto"
                        fi
                        else
                                TLS_LIBS="-lssl -lcrypto"
                        fi
-               fi
-               OL_SSL_COMPAT
-               if test $ol_cv_ssl_crl_compat = no ; then
-                       ol_link_ssl=no
-                else 
-                       AC_DEFINE(HAVE_OPENSSL_CRL, 1, 
-                               [define if you have OpenSSL with CRL checking capability])
+
+                       OL_SSL_COMPAT
+                       if test $ol_cv_ssl_crl_compat = yes ; then
+                               AC_DEFINE(HAVE_OPENSSL_CRL, 1, 
+                                       [define if you have OpenSSL with CRL checking capability])
+                       fi
                fi
        fi
                fi
        fi
-
-else
-       AC_MSG_WARN([TLS data protection not supported!])
 fi
 
 WITH_TLS=no
 if test $ol_link_tls = yes ; then
        AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
        WITH_TLS=yes
 fi
 
 WITH_TLS=no
 if test $ol_link_tls = yes ; then
        AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
        WITH_TLS=yes
-
 elif test $ol_with_tls = auto ; then
        AC_MSG_WARN([Could not locate TLS/SSL package])
        AC_MSG_WARN([TLS data protection not supported!])
 elif test $ol_with_tls = auto ; then
        AC_MSG_WARN([Could not locate TLS/SSL package])
        AC_MSG_WARN([TLS data protection not supported!])
-
 elif test $ol_with_tls != no ; then
        AC_MSG_ERROR([Could not locate TLS/SSL package])
 elif test $ol_with_tls != no ; then
        AC_MSG_ERROR([Could not locate TLS/SSL package])
+else
+       AC_MSG_WARN([TLS data protection not supported!])
 fi
 
 dnl ----------------------------------------------------------------
 fi
 
 dnl ----------------------------------------------------------------
@@ -1546,7 +1326,22 @@ dnl                      [ol_cv_pthread_lpthread_lexc])
                        fi
 
                        dnl Check functions for compatibility
                        fi
 
                        dnl Check functions for compatibility
-                       AC_CHECK_FUNCS(pthread_kill pthread_rwlock_destroy)
+                       AC_CHECK_FUNCS(pthread_kill)
+
+                       dnl Check for pthread_rwlock_destroy with <pthread.h>
+                       dnl as pthread_rwlock_t may not be defined.
+                       AC_CACHE_CHECK([for pthread_rwlock_destroy with <pthread.h>],
+                               [ol_cv_func_pthread_rwlock_destroy], [
+                               dnl save the flags
+                               AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+#include <pthread.h>
+pthread_rwlock_t rwlock;
+]], [[pthread_rwlock_destroy(&rwlock);]])],[ol_cv_func_pthread_rwlock_destroy=yes],[ol_cv_func_pthread_rwlock_destroy=no])
+                       ])
+                       if test $ol_cv_func_pthread_rwlock_destroy = yes ; then
+                               AC_DEFINE(HAVE_PTHREAD_RWLOCK_DESTROY,1,
+                                       [define if you have pthread_rwlock_destroy function])
+                       fi
 
                        dnl Check for pthread_detach with <pthread.h> inclusion
                        dnl as it's symbol may have been mangled.
 
                        dnl Check for pthread_detach with <pthread.h> inclusion
                        dnl as it's symbol may have been mangled.
@@ -1993,103 +1788,33 @@ else
 fi
 
 dnl ----------------------------------------------------------------
 fi
 
 dnl ----------------------------------------------------------------
-ol_link_ldbm=no 
-
-case $ol_enable_ldbm_api in auto | berkeley | bcompat)
-
-       if test $ol_enable_ldbm_api = bcompat; then \
-               OL_BERKELEY_COMPAT_DB
-       else
-               OL_BERKELEY_DB
-       fi
-
-       if test $ol_cv_berkeley_db != no ; then
-               AC_DEFINE(HAVE_BERKELEY_DB,1,
-                       [define this if Berkeley DB is available])
-
-               ol_link_ldbm=berkeley
-               ol_enable_ldbm_api=berkeley
-
-               if test $ol_enable_ldbm_type = hash ; then
-                       AC_DEFINE(LDBM_USE_DBHASH,1,
-                               [define this to use DBHASH w/ LDBM backend])
-               else
-                       AC_DEFINE(LDBM_USE_DBBTREE,1,
-                               [define this to use DBBTREE w/ LDBM backend])
-               fi
-
-               dnl $ol_cv_lib_db should be yes or -ldb
-               dnl (it could be no, but that would be an error
-               if test $ol_cv_lib_db != yes ; then
-                       LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
-               fi
-       fi
-       ;;
-esac
+ol_link_bdb=no 
 
 if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
 
 if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
-       if test $ol_link_ldbm != berkeley ; then
-               AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
-       else
-               OL_BDB_COMPAT
+       OL_BERKELEY_DB
 
 
-               if test $ol_cv_bdb_compat != yes ; then
-                       AC_MSG_ERROR([BDB/HDB: BerkeleyDB version incompatible])
-               fi
+       if test $ol_cv_berkeley_db = no ; then
+               AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
        fi
        fi
-fi
-
-if test $ol_link_ldbm = no && test $ol_enable_ldbm_type = btree ; then
-       AC_MSG_WARN([Could not find LDBM with BTREE support])
-       ol_enable_ldbm_api=none
-fi
 
 
-if test $ol_enable_ldbm_api = auto || test $ol_enable_ldbm_api = mdbm ; then
-       OL_MDBM
+       AC_DEFINE(HAVE_BERKELEY_DB,1,
+               [define this if Berkeley DB is available])
 
 
-       if test $ol_cv_mdbm = yes ; then
-               ol_link_ldbm=mdbm
-               ol_enable_ldbm_api=mdbm
-               if test $ol_cv_lib_mdbm != yes ; then
-                       LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_mdbm"
-               fi
+       dnl $ol_cv_lib_db should be yes or -ldb
+       dnl (it could be no, but that would be an error
+       if test $ol_cv_lib_db != yes ; then
+               BDB_LIBS="$BDB_LIBS $ol_cv_lib_db"
        fi
        fi
-fi
-
-if test $ol_enable_ldbm_api = auto || test $ol_enable_ldbm_api = gdbm ; then
-       OL_GDBM
 
 
-       if test $ol_cv_gdbm = yes ; then
-               ol_link_ldbm=gdbm
-               ol_enable_ldbm_api=gdbm
+       OL_BDB_COMPAT
 
 
-               if test $ol_cv_lib_gdbm != yes ; then
-                       LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
-               fi
+       if test $ol_cv_bdb_compat != yes ; then
+               AC_MSG_ERROR([BDB/HDB: BerkeleyDB version incompatible])
        fi
        fi
-fi
 
 
-if test $ol_enable_ldbm_api = ndbm ; then
-       OL_NDBM
+       SLAPD_LIBS="$SLAPD_LIBS \$(BDB_LIBS)"
 
 
-       if test $ol_cv_ndbm = yes ; then
-               ol_link_ldbm=ndbm
-               ol_enable_ldbm_api=ndbm
-
-               if test $ol_cv_lib_ndbm != yes ; then
-                       LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
-               fi
-       fi
-fi
-
-if test $ol_link_ldbm = no && test $ol_enable_ldbm != no ; then
-       AC_MSG_ERROR([could not find suitable LDBM backend])
-fi
-
-if test $ol_enable_bdb = yes ||
-   test $ol_enable_hdb = yes ||
-   test $ol_enable_ldbm = yes ; then
-       SLAPD_LIBS="$SLAPD_LIBS \$(LDBM_LIBS)"
+       ol_link_bdb=yes 
 fi
 
 dnl ----------------------------------------------------------------
 fi
 
 dnl ----------------------------------------------------------------
@@ -2169,16 +1894,34 @@ if test $ol_enable_sql != no ; then
        sql_LIBS="$LIBS"
        LIBS="$LTHREAD_LIBS"
 
        sql_LIBS="$LIBS"
        LIBS="$LTHREAD_LIBS"
 
-       AC_CHECK_LIB(iodbc,SQLDriverConnect,[have_iodbc=yes],[have_iodbc=no])
-       if test $have_iodbc = yes ; then
-               ol_link_sql="-liodbc"
-       else
-               AC_CHECK_LIB(odbc,SQLDriverConnect,[have_odbc=yes],[have_odbc=no])
-               if test $have_odbc = yes ; then
-                       ol_link_sql="-lodbc"
-               fi
+       if test $ol_with_odbc = auto ; then
+               ol_with_odbc="iodbc unixodbc"
        fi
 
        fi
 
+       for odbc in $ol_with_odbc ; do
+               if test $ol_link_sql = no ; then
+                       case $odbc in
+                       iodbc)
+                               AC_CHECK_LIB(iodbc, SQLDriverConnect, [have_iodbc=yes], [have_iodbc=no])
+                               if test $have_iodbc = yes ; then
+                                       ol_link_sql="-liodbc"
+                               fi
+                               ;;
+
+                       unixodbc)
+                               AC_CHECK_LIB(odbc, SQLDriverConnect, [have_odbc=yes], [have_odbc=no])
+                               if test $have_odbc = yes ; then
+                                       ol_link_sql="-lodbc"
+                               fi
+                               ;;
+
+                       *)
+                               AC_MSG_ERROR([unknown ODBC library])
+                               ;;
+                       esac
+               fi
+       done
+
        LIBS="$sql_LIBS"
 
        if test $ol_link_sql != no ; then
        LIBS="$sql_LIBS"
 
        if test $ol_link_sql != no ; then
@@ -2337,7 +2080,6 @@ if test $ol_enable_proctitle != no ; then
 fi
 
 dnl ----------------------------------------------------------------
 fi
 
 dnl ----------------------------------------------------------------
-dnl Check for SLPv2 Compliant API Library
 if test $ol_enable_slp != no ; then
        AC_CHECK_HEADERS( slp.h )
 
 if test $ol_enable_slp != no ; then
        AC_CHECK_HEADERS( slp.h )
 
@@ -2353,99 +2095,6 @@ if test $ol_enable_slp != no ; then
        fi
 fi
 
        fi
 fi
 
-dnl ----------------------------------------------------------------
-dnl Check for multiple precision support
-if test "$ol_with_multiple_precision" != "no" ; then
-       ol_have_bignum=no
-       ol_have_gmp=no
-
-       AC_CHECK_HEADERS(openssl/bn.h bn.h)
-       AC_CHECK_HEADERS(openssl/crypto.h crypto.h)
-       AC_CHECK_HEADERS( gmp.h )
-
-       if test "$ol_with_tls" = "found" ; then
-               ol_have_bn_h=no
-               ol_have_crypto_h=no
-
-               if test "$ac_cv_header_openssl_bn_h" = "yes" ||
-                  test "$ac_cv_header_bn_h" = "yes" ; then
-                       ol_have_bn_h=yes
-               fi
-
-               if test "$ac_cv_header_openssl_crypto_h" = "yes" ||
-                  test "$ac_cv_header_crypto_h" = "yes" ; then
-                       ol_have_crypto_h=yes
-               fi
-
-               if test "$ol_have_bn_h" = "yes" &&
-                  test "$ol_have_crypto_h" = "yes" ; then
-                       ol_have_bignum=yes
-               fi
-       fi
-
-       if test $ac_cv_header_gmp_h = yes ; then
-               AC_CHECK_LIB(gmp, __gmpz_add_ui, [have_gmp=yes], [have_gmp=no])
-               if test $have_gmp = yes ; then
-                       ol_have_gmp=yes
-               fi
-       fi
-
-       AC_MSG_CHECKING([for multiple precision support])
-
-       ol_mp_support="none"
-       case "$ol_with_multiple_precision" in
-       auto)
-               dnl preferred sequence:
-               dnl - OpenSSL's BIGNUM (if libssl is already linked)
-               dnl - GNU's MP
-               dnl - unsigned long
-               if test "$ol_have_bignum" = "yes" ; then
-                       ol_mp_support="bignum"
-               else
-                       if test "$ol_have_gmp" = "yes" ; then
-                               ol_mp_support="gmp"
-                       fi
-               fi
-               ;;
-       bignum)
-               if test "$ol_have_bignum" != "yes" ; then
-                       AC_MSG_ERROR([OpenSSL's BIGNUM not available])
-               fi
-               ol_mp_support="bignum"
-               ;;
-       gmp)
-               if test "$ol_have_gmp" != "yes" ; then
-                       AC_MSG_ERROR([GMP not available])
-               fi
-               ol_mp_support="gmp"
-               ;;
-       yes)
-               if test "$ol_have_bignum" = "yes" ; then
-                       ol_mp_support="bignum"
-               elif test "$ol_have_gmp" = "yes" ; then
-                       ol_mp_support="gmp"
-               else
-                       AC_MSG_ERROR([not available])
-               fi
-               ;;
-       esac
-
-       case "$ol_mp_support" in
-       bignum)
-               AC_DEFINE(HAVE_BIGNUM, 1,
-                       [define if you have OpenSSL's BIGNUM])
-               ;;
-       gmp)
-               AC_DEFINE(HAVE_GMP, 1, [define if you have -lgmp])
-               SLAPD_GMP_LIBS=-lgmp
-               ;;
-       none)
-               ;;
-       esac
-
-       AC_MSG_RESULT($ol_mp_support)
-fi
-
 dnl ----------------------------------------------------------------
 dnl Checks for typedefs, structures, and compiler characteristics.
 
 dnl ----------------------------------------------------------------
 dnl Checks for typedefs, structures, and compiler characteristics.
 
@@ -2501,6 +2150,7 @@ fi
 AC_CHECK_SIZEOF(short) 
 AC_CHECK_SIZEOF(int) 
 AC_CHECK_SIZEOF(long)
 AC_CHECK_SIZEOF(short) 
 AC_CHECK_SIZEOF(int) 
 AC_CHECK_SIZEOF(long)
+AC_CHECK_SIZEOF(long long)
 AC_CHECK_SIZEOF(wchar_t)
 
 if test "$ac_cv_sizeof_int" -lt 4 ; then
 AC_CHECK_SIZEOF(wchar_t)
 
 if test "$ac_cv_sizeof_int" -lt 4 ; then
@@ -2515,6 +2165,50 @@ AC_DEFINE(LBER_LEN_T,long,[define to large integer type])
 AC_DEFINE(LBER_SOCKET_T,int,[define to socket descriptor type])
 AC_DEFINE(LBER_TAG_T,long,[define to large integer type])
 
 AC_DEFINE(LBER_SOCKET_T,int,[define to socket descriptor type])
 AC_DEFINE(LBER_TAG_T,long,[define to large integer type])
 
+dnl ----------------------------------------------------------------
+dnl Check for multiple precision support
+if test $ol_with_mp = longlong || test $ol_with_mp = auto ; then
+       if test $ac_cv_sizeof_long_long -gt 4 ; then
+               ol_with_mp=longlong
+               AC_DEFINE(USE_MP_LONG_LONG,1,[define to use 'long long' for MP])
+       elif test $ol_with_mp = longlong ; then
+               AC_MSG_ERROR([long long unusable for multiple precision])
+       fi
+fi
+if test $ol_with_mp = long || test $ol_with_mp = auto ; then
+       if test $ac_cv_sizeof_long -gt 4 ; then
+               ol_with_mp=long
+               AC_DEFINE(USE_MP_LONG,1,[define to use 'long' for MP])
+       elif test $ol_with_mp = long ; then
+               AC_MSG_ERROR([long unusable for multiple precision])
+       fi
+fi
+if test $ol_with_mp = bignum || test $ol_with_mp = auto ; then
+       AC_CHECK_HEADERS(openssl/bn.h)
+       AC_CHECK_HEADERS(openssl/crypto.h)
+       if test "$ac_cv_header_openssl_bn_h" = "yes" &&
+               test "$ac_cv_header_openssl_crypto_h" = "yes" &&
+               test "$ol_with_tls" = "found" ; then
+               ol_with_mp=bignum
+               AC_DEFINE(USE_MP_BIGNUM,1,[define to use OpenSSL BIGNUM for MP])
+       elif test $ol_with_mp = bignum ; then
+               AC_MSG_ERROR([bignum not available])
+       fi
+fi
+if test $ol_with_mp = gmp || test $ol_with_mp = auto ; then
+       AC_CHECK_HEADERS(gmp.h)
+       AC_CHECK_LIB(gmp, __gmpz_add_ui)
+       if test $ac_cv_header_gmp_h = yes && test $ac_cv_lib_gmp___gmpz_add_ui = yes ; then
+               AC_DEFINE(USE_MP_GMP,1,[define to use GMP for MP])
+               ol_with_mp=gmp
+       elif test $ol_with_mp = gmp ; then
+               AC_MSG_ERROR([gmp not available])
+       fi
+fi
+if test $ol_with_mp = auto ; then
+       ol_with_mp=no
+fi
+
 dnl ----------------------------------------------------------------
 dnl Checks for library functions.
 AC_FUNC_MEMCMP
 dnl ----------------------------------------------------------------
 dnl Checks for library functions.
 AC_FUNC_MEMCMP
@@ -2546,7 +2240,7 @@ if test $ac_cv_func_vprintf = yes ; then
        AC_CHECK_FUNCS(snprintf vsnprintf)
 fi
 
        AC_CHECK_FUNCS(snprintf vsnprintf)
 fi
 
-AC_CHECK_FUNCS(                \
+AC_CHECK_FUNCS(                        \
        bcopy                   \
        closesocket             \
        chroot                  \
        bcopy                   \
        closesocket             \
        chroot                  \
@@ -2555,17 +2249,18 @@ AC_CHECK_FUNCS(         \
        fcntl                   \
        flock                   \
        fstat                   \
        fcntl                   \
        flock                   \
        fstat                   \
-       getdtablesize   \
+       getdtablesize           \
        getgrgid                \
        gethostname             \
        getpass                 \
        getgrgid                \
        gethostname             \
        getpass                 \
-       getpassphrase   \
+       getpassphrase           \
        getpwuid                \
        getpwnam                \
        getspnam                \
        getpwuid                \
        getpwnam                \
        getspnam                \
-       gettimeofday    \
+       gettimeofday            \
        initgroups              \
        inet_ntoa_b             \
        initgroups              \
        inet_ntoa_b             \
+       ioctl                   \
        lockf                   \
        memcpy                  \
        memmove                 \
        lockf                   \
        memcpy                  \
        memmove                 \
@@ -2672,10 +2367,6 @@ if test "$ol_enable_syslog" = yes ; then
        AC_DEFINE(LDAP_SYSLOG,1,
                [define this to add syslog code])
 fi
        AC_DEFINE(LDAP_SYSLOG,1,
                [define this to add syslog code])
 fi
-if test "$ol_link_kbind" != no ; then
-       AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND,LDAP_VENDOR_VERSION,
-               [define to LDAP VENDOR VERSION])
-fi
 if test "$ol_enable_proctitle" != no ; then
        AC_DEFINE(LDAP_PROCTITLE,1,
                [define this for LDAP process title support])
 if test "$ol_enable_proctitle" != no ; then
        AC_DEFINE(LDAP_PROCTITLE,1,
                [define this for LDAP process title support])
@@ -2732,6 +2423,20 @@ fi
 AC_DEFINE(SLAPD_MOD_STATIC,1,[statically linked module])
 AC_DEFINE(SLAPD_MOD_DYNAMIC,2,[dynamically linked module])
 
 AC_DEFINE(SLAPD_MOD_STATIC,1,[statically linked module])
 AC_DEFINE(SLAPD_MOD_DYNAMIC,2,[dynamically linked module])
 
+dnl back-monitor goes first (well, after back-config)
+if test "$ol_enable_monitor" != no ; then
+       BUILD_SLAPD=yes
+       BUILD_MONITOR=$ol_enable_monitor
+       if test "$ol_enable_monitor" = mod ; then
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
+               MFLAG=SLAPD_MOD_DYNAMIC
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
+               MFLAG=SLAPD_MOD_STATIC
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
+fi
+
 if test "$ol_enable_bdb" != no ; then
        BUILD_SLAPD=yes
        BUILD_BDB=$ol_enable_bdb
 if test "$ol_enable_bdb" != no ; then
        BUILD_SLAPD=yes
        BUILD_BDB=$ol_enable_bdb
@@ -2784,19 +2489,6 @@ if test "$ol_enable_ldap" != no ; then
        AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
 fi
 
        AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
 fi
 
-if test "$ol_link_ldbm" != no && test $ol_enable_ldbm != no; then
-       BUILD_SLAPD=yes
-       BUILD_LDBM=$ol_enable_ldbm
-       if test "$ol_enable_ldbm" = mod ; then
-               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldbm"
-               MFLAG=SLAPD_MOD_DYNAMIC
-       else
-               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldbm"
-               MFLAG=SLAPD_MOD_STATIC
-       fi
-       AC_DEFINE_UNQUOTED(SLAPD_LDBM,$MFLAG,[define to support LDBM backend])
-fi
-
 if test "$ol_enable_meta" != no ; then
        BUILD_SLAPD=yes
        BUILD_META=$ol_enable_meta
 if test "$ol_enable_meta" != no ; then
        BUILD_SLAPD=yes
        BUILD_META=$ol_enable_meta
@@ -2811,19 +2503,6 @@ if test "$ol_enable_meta" != no ; then
        AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
 fi
 
        AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
 fi
 
-if test "$ol_enable_monitor" != no ; then
-       BUILD_SLAPD=yes
-       BUILD_MONITOR=$ol_enable_monitor
-       if test "$ol_enable_monitor" = mod ; then
-               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
-               MFLAG=SLAPD_MOD_DYNAMIC
-       else
-               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
-               MFLAG=SLAPD_MOD_STATIC
-       fi
-       AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
-fi
-
 if test "$ol_enable_null" != no ; then
        BUILD_SLAPD=yes
        BUILD_NULL=$ol_enable_null
 if test "$ol_enable_null" != no ; then
        BUILD_SLAPD=yes
        BUILD_NULL=$ol_enable_null
@@ -2917,28 +2596,40 @@ if test "$ol_enable_accesslog" != no ; then
        AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay])
 fi
 
        AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay])
 fi
 
-if test "$ol_enable_dds" != no ; then
-       BUILD_DDS=$ol_enable_dds
-       if test "$ol_enable_dds" = mod ; then
+if test "$ol_enable_auditlog" != no ; then
+       BUILD_AUDITLOG=$ol_enable_auditlog
+       if test "$ol_enable_auditlog" = mod ; then
                MFLAG=SLAPD_MOD_DYNAMIC
                MFLAG=SLAPD_MOD_DYNAMIC
-               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dds.la"
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS auditlog.la"
        else
                MFLAG=SLAPD_MOD_STATIC
        else
                MFLAG=SLAPD_MOD_STATIC
-               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dds.o"
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS auditlog.o"
        fi
        fi
-       AC_DEFINE_UNQUOTED(SLAPD_OVER_DDS,$MFLAG,[define for Dynamic Directory Services overlay])
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_AUDITLOG,$MFLAG,[define for Audit Logging overlay])
+fi
+
+if test "$ol_enable_constraint" != no ; then
+       BUILD_CONSTRAINT=$ol_enable_constraint
+       if test "$ol_enable_constraint" = mod ; then
+               MFLAG=SLAPD_MOD_DYNAMIC
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS constraint.la"
+       else
+               MFLAG=SLAPD_MOD_STATIC
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS constraint.o"
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_CONSTRAINT,$MFLAG,[define for Attribute Constraint overlay])
 fi
 
 fi
 
-if test "$ol_enable_denyop" != no ; then
-       BUILD_DENYOP=$ol_enable_denyop
-       if test "$ol_enable_denyop" = mod ; then
+if test "$ol_enable_dds" != no ; then
+       BUILD_DDS=$ol_enable_dds
+       if test "$ol_enable_dds" = mod ; then
                MFLAG=SLAPD_MOD_DYNAMIC
                MFLAG=SLAPD_MOD_DYNAMIC
-               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS denyop.la"
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dds.la"
        else
                MFLAG=SLAPD_MOD_STATIC
        else
                MFLAG=SLAPD_MOD_STATIC
-               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS denyop.o"
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dds.o"
        fi
        fi
-       AC_DEFINE_UNQUOTED(SLAPD_OVER_DENYOP,$MFLAG,[define for Deny Operation overlay])
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_DDS,$MFLAG,[define for Dynamic Directory Services overlay])
 fi
 
 if test "$ol_enable_dyngroup" != no ; then
 fi
 
 if test "$ol_enable_dyngroup" != no ; then
@@ -2965,18 +2656,6 @@ if test "$ol_enable_dynlist" != no ; then
        AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNLIST,$MFLAG,[define for Dynamic List overlay])
 fi
 
        AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNLIST,$MFLAG,[define for Dynamic List overlay])
 fi
 
-if test "$ol_enable_lastmod" != no ; then
-       BUILD_LASTMOD=$ol_enable_lastmod
-       if test "$ol_enable_lastmod" = mod ; then
-               MFLAG=SLAPD_MOD_DYNAMIC
-               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS lastmod.la"
-       else
-               MFLAG=SLAPD_MOD_STATIC
-               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS lastmod.o"
-       fi
-       AC_DEFINE_UNQUOTED(SLAPD_OVER_LASTMOD,$MFLAG,[define for Last Modification overlay])
-fi
-
 if test "$ol_enable_ppolicy" != no ; then
        BUILD_PPOLICY=$ol_enable_ppolicy
        if test "$ol_enable_ppolicy" = mod ; then
 if test "$ol_enable_ppolicy" != no ; then
        BUILD_PPOLICY=$ol_enable_ppolicy
        if test "$ol_enable_ppolicy" = mod ; then
@@ -3038,6 +2717,18 @@ if test "$ol_enable_rwm" != no ; then
        AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
 fi
 
        AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
 fi
 
+if test "$ol_enable_seqmod" != no ; then
+       BUILD_SEQMOD=$ol_enable_seqmod
+       if test "$ol_enable_seqmod" = mod ; then
+               MFLAG=SLAPD_MOD_DYNAMIC
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS seqmod.la"
+       else
+               MFLAG=SLAPD_MOD_STATIC
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS seqmod.o"
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_SEQMOD,$MFLAG,[define for Sequential Modify overlay])
+fi
+
 if test "$ol_enable_syncprov" != no ; then
        BUILD_SYNCPROV=$ol_enable_syncprov
        if test "$ol_enable_syncprov" = mod ; then
 if test "$ol_enable_syncprov" != no ; then
        BUILD_SYNCPROV=$ol_enable_syncprov
        if test "$ol_enable_syncprov" = mod ; then
@@ -3135,7 +2826,6 @@ dnl backends
   AC_SUBST(BUILD_DNSSRV)
   AC_SUBST(BUILD_HDB)
   AC_SUBST(BUILD_LDAP)
   AC_SUBST(BUILD_DNSSRV)
   AC_SUBST(BUILD_HDB)
   AC_SUBST(BUILD_LDAP)
-  AC_SUBST(BUILD_LDBM)
   AC_SUBST(BUILD_META)
   AC_SUBST(BUILD_MONITOR)
   AC_SUBST(BUILD_NULL)
   AC_SUBST(BUILD_META)
   AC_SUBST(BUILD_MONITOR)
   AC_SUBST(BUILD_NULL)
@@ -3146,6 +2836,8 @@ dnl backends
   AC_SUBST(BUILD_SQL)
 dnl overlays
   AC_SUBST(BUILD_ACCESSLOG)
   AC_SUBST(BUILD_SQL)
 dnl overlays
   AC_SUBST(BUILD_ACCESSLOG)
+  AC_SUBST(BUILD_AUDITLOG)
+  AC_SUBST(BUILD_CONSTRAINT)
   AC_SUBST(BUILD_DDS)
   AC_SUBST(BUILD_DENYOP)
   AC_SUBST(BUILD_DYNGROUP)
   AC_SUBST(BUILD_DDS)
   AC_SUBST(BUILD_DENYOP)
   AC_SUBST(BUILD_DYNGROUP)
@@ -3156,6 +2848,7 @@ dnl overlays
   AC_SUBST(BUILD_REFINT)
   AC_SUBST(BUILD_RETCODE)
   AC_SUBST(BUILD_RWM)
   AC_SUBST(BUILD_REFINT)
   AC_SUBST(BUILD_RETCODE)
   AC_SUBST(BUILD_RWM)
+  AC_SUBST(BUILD_SEQMOD)
   AC_SUBST(BUILD_SYNCPROV)
   AC_SUBST(BUILD_TRANSLUCENT)
   AC_SUBST(BUILD_UNIQUE)
   AC_SUBST(BUILD_SYNCPROV)
   AC_SUBST(BUILD_TRANSLUCENT)
   AC_SUBST(BUILD_UNIQUE)
@@ -3165,7 +2858,7 @@ AC_SUBST(BUILD_SLURPD)
 AC_SUBST(LDAP_LIBS)
 AC_SUBST(SLAPD_LIBS)
 AC_SUBST(SLURPD_LIBS)
 AC_SUBST(LDAP_LIBS)
 AC_SUBST(SLAPD_LIBS)
 AC_SUBST(SLURPD_LIBS)
-AC_SUBST(LDBM_LIBS)
+AC_SUBST(BDB_LIBS)
 AC_SUBST(LTHREAD_LIBS)
 AC_SUBST(LUTIL_LIBS)
 AC_SUBST(WRAP_LIBS)
 AC_SUBST(LTHREAD_LIBS)
 AC_SUBST(LUTIL_LIBS)
 AC_SUBST(WRAP_LIBS)
@@ -3233,7 +2926,6 @@ AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.mk]
 [servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk]
 [servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk]
 [servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk]
 [servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk]
 [servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk]
 [servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk]
-[servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/mod.mk]
 [servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk]
 [servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk]
 [servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk]
 [servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk]
 [servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk]
 [servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk]
@@ -3260,7 +2952,7 @@ rm -f $BACKENDSC
 cat > $BACKENDSC << ENDX
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
 cat > $BACKENDSC << ENDX
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2006 The OpenLDAP Foundation.
+ * Copyright 1998-2007 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -3311,7 +3003,7 @@ rm -f $OVERLAYSC
 cat > $OVERLAYSC << ENDX
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
 cat > $OVERLAYSC << ENDX
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2006 The OpenLDAP Foundation.
+ * Copyright 1998-2007 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without