]> git.sur5r.net Git - openldap/blobdiff - configure.in
Use getopt()
[openldap] / configure.in
index 7677e9feaa4530b970d69043631e1c209d678e46..c76cdb8c7a14ebadcef3250f73f1e1bc503af284 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-2005 The OpenLDAP Foundation.
+dnl Copyright 1998-2009 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,10 +23,11 @@ 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-2005 The OpenLDAP Foundation. All rights reserved.
+AC_COPYRIGHT([[Copyright 1998-2009 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/])
+m4_define([AC_PACKAGE_BUGREPORT],[<http://www.openldap.org/its/>])
 AC_CONFIG_SRCDIR(build/version.sh)dnl
 dnl ----------------------------------------------------------------
 dnl OpenLDAP Autoconf Macros
 AC_CONFIG_SRCDIR(build/version.sh)dnl
 dnl ----------------------------------------------------------------
 dnl OpenLDAP Autoconf Macros
@@ -49,8 +50,11 @@ fi
 SHTOOL="$ac_cv_shtool"
 dnl AC_SUBST(SHTOOL)dnl
 
 SHTOOL="$ac_cv_shtool"
 dnl AC_SUBST(SHTOOL)dnl
 
-TB="`$SHTOOL echo -e '%B' 2>/dev/null`"
-TN="`$SHTOOL echo -e '%b' 2>/dev/null`"
+TB="" TN=""
+if test -t 1; then
+       TB="`$SHTOOL echo -e '%B' 2>/dev/null`"
+       TN="`$SHTOOL echo -e '%b' 2>/dev/null`"
+fi
 
 OPENLDAP_CVS=""
 if test -d $ac_aux_dir/CVS; then
 
 OPENLDAP_CVS=""
 if test -d $ac_aux_dir/CVS; then
@@ -92,7 +96,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-2005 The OpenLDAP Foundation
+ * Copyright 1998-2009 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
@@ -222,14 +226,13 @@ AC_SUBST(ldap_subdir)dnl
 
 dnl ----------------------------------------------------------------
 dnl General "enable" options
 
 dnl ----------------------------------------------------------------
 dnl General "enable" options
-OL_ARG_ENABLE(debug,[  --enable-debug    enable debugging], yes)dnl
+dnl set default to traditional to enable the original debug style
+OL_ARG_ENABLE(debug,[  --enable-debug    enable debugging], yes, [no yes traditional])dnl
 OL_ARG_ENABLE(dynamic,[  --enable-dynamic        enable linking built binaries with dynamic libs], no)dnl
 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(dynamic,[  --enable-dynamic        enable linking built binaries with dynamic libs], no)dnl
 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}
-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
 
@@ -239,19 +242,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(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(tls,[  --with-tls            with TLS/SSL support auto|openssl|gnutls|moznss],
+       auto, [auto openssl gnutls moznss yes no] )
+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|odbc32|auto],
+       auto, [auto iodbc unixodbc odbc32] )
 
 dnl ----------------------------------------------------------------
 dnl Server options
 
 dnl ----------------------------------------------------------------
 dnl Server options
@@ -262,14 +265,13 @@ dnl SLAPD OPTIONS
 AC_ARG_ENABLE(xxslapdoptions,[
 SLAPD (Standalone LDAP Daemon) Options:])
 OL_ARG_ENABLE(slapd,[  --enable-slapd    enable building slapd], yes)dnl
 AC_ARG_ENABLE(xxslapdoptions,[
 SLAPD (Standalone LDAP Daemon) Options:])
 OL_ARG_ENABLE(slapd,[  --enable-slapd    enable building slapd], yes)dnl
-OL_ARG_ENABLE(aci,[    --enable-aci      enable per-object ACIs (experimental)], no)dnl
+OL_ARG_ENABLE(dynacl,[    --enable-dynacl        enable run-time loadable ACL support (experimental)], no)dnl
+OL_ARG_ENABLE(aci,[    --enable-aci      enable per-object ACIs (experimental)], no, [no yes mod])dnl
 OL_ARG_ENABLE(cleartext,[    --enable-cleartext          enable cleartext passwords], yes)dnl
 OL_ARG_ENABLE(crypt,[    --enable-crypt          enable crypt(3) passwords], no)dnl
 OL_ARG_ENABLE(lmpasswd,[    --enable-lmpasswd    enable LAN Manager passwords], no)dnl
 OL_ARG_ENABLE(spasswd,[    --enable-spasswd      enable (Cyrus) SASL password verification], no)dnl
 OL_ARG_ENABLE(modules,[    --enable-modules      enable dynamic module support], no)dnl
 OL_ARG_ENABLE(cleartext,[    --enable-cleartext          enable cleartext passwords], yes)dnl
 OL_ARG_ENABLE(crypt,[    --enable-crypt          enable crypt(3) passwords], no)dnl
 OL_ARG_ENABLE(lmpasswd,[    --enable-lmpasswd    enable LAN Manager passwords], no)dnl
 OL_ARG_ENABLE(spasswd,[    --enable-spasswd      enable (Cyrus) SASL password verification], no)dnl
 OL_ARG_ENABLE(modules,[    --enable-modules      enable dynamic module support], no)dnl
-dnl OL_ARG_ENABLE(multimaster,[    --enable-multimaster  enable multimaster replication], no)dnl
-ol_enable_multimaster=${ol_enable_multimaster-no}
 OL_ARG_ENABLE(rewrite,[    --enable-rewrite      enable DN rewriting in back-ldap and rwm overlay], auto)dnl
 OL_ARG_ENABLE(rlookups,[    --enable-rlookups    enable reverse lookups of client hostnames], no)dnl
 OL_ARG_ENABLE(slapi,[    --enable-slapi        enable SLAPI support (experimental)], no)dnl
 OL_ARG_ENABLE(rewrite,[    --enable-rewrite      enable DN rewriting in back-ldap and rwm overlay], auto)dnl
 OL_ARG_ENABLE(rlookups,[    --enable-rlookups    enable reverse lookups of client hostnames], no)dnl
 OL_ARG_ENABLE(slapi,[    --enable-slapi        enable SLAPI support (experimental)], no)dnl
@@ -282,14 +284,15 @@ Backends="bdb \
        dnssrv \
        hdb \
        ldap \
        dnssrv \
        hdb \
        ldap \
-       ldbm \
        meta \
        monitor \
        meta \
        monitor \
+       ndb \
        null \
        passwd \
        perl \
        relay \
        shell \
        null \
        passwd \
        perl \
        relay \
        shell \
+       sock \
        sql"
 
 AC_ARG_ENABLE(xxslapbackends,[
        sql"
 
 AC_ARG_ENABLE(xxslapbackends,[
@@ -298,29 +301,19 @@ SLAPD Backend Options:])
 OL_ARG_ENABLE(backends,[    --enable-backends    enable all available backends],
        --, [no yes mod])dnl
 OL_ARG_ENABLE(bdb,[    --enable-bdb      enable Berkeley DB backend],
 OL_ARG_ENABLE(backends,[    --enable-backends    enable all available backends],
        --, [no yes mod])dnl
 OL_ARG_ENABLE(bdb,[    --enable-bdb      enable Berkeley DB backend],
-       yes, [no yes mod], ol_enable_backends)dnl
+       no, [no yes mod], ol_enable_backends)dnl
 OL_ARG_ENABLE(dnssrv,[    --enable-dnssrv        enable dnssrv backend],
        no, [no yes mod], ol_enable_backends)dnl
 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
 OL_ARG_ENABLE(dnssrv,[    --enable-dnssrv        enable dnssrv backend],
        no, [no yes mod], ol_enable_backends)dnl
 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
-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],
        yes, [no yes mod], ol_enable_backends)dnl
 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],
        yes, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(ndb,[    --enable-ndb      enable MySQL NDB Cluster backend],
+       no, [no yes mod], ol_enable_backends)dnl
 OL_ARG_ENABLE(null,[    --enable-null    enable null backend],
        no, [no yes mod], ol_enable_backends)dnl
 OL_ARG_ENABLE(passwd,[    --enable-passwd        enable passwd backend],
 OL_ARG_ENABLE(null,[    --enable-null    enable null backend],
        no, [no yes mod], ol_enable_backends)dnl
 OL_ARG_ENABLE(passwd,[    --enable-passwd        enable passwd backend],
@@ -331,21 +324,29 @@ OL_ARG_ENABLE(relay,[    --enable-relay     enable relay backend],
        yes, [no yes mod], ol_enable_backends)dnl
 OL_ARG_ENABLE(shell,[    --enable-shell          enable shell backend],
        no, [no yes mod], ol_enable_backends)dnl
        yes, [no yes mod], ol_enable_backends)dnl
 OL_ARG_ENABLE(shell,[    --enable-shell          enable shell backend],
        no, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(sock,[    --enable-sock    enable sock backend],
+       no, [no yes mod], ol_enable_backends)dnl
 OL_ARG_ENABLE(sql,[    --enable-sql      enable sql backend],
        no, [no yes mod], ol_enable_backends)dnl
 
 dnl ----------------------------------------------------------------
 dnl SLAPD Overlay Options
 Overlays="accesslog \
 OL_ARG_ENABLE(sql,[    --enable-sql      enable sql backend],
        no, [no yes mod], ol_enable_backends)dnl
 
 dnl ----------------------------------------------------------------
 dnl SLAPD Overlay Options
 Overlays="accesslog \
-       denyop \
+       auditlog \
+       collect \
+       constraint \
+       dds \
+       deref \
        dyngroup \
        dynlist \
        dyngroup \
        dynlist \
-       lastmod \
+       memberof \
        ppolicy \
        proxycache \
        refint \
        retcode \
        rwm \
        ppolicy \
        proxycache \
        refint \
        retcode \
        rwm \
+       seqmod \
+       sssvlv \
        syncprov \
        translucent \
        unique \
        syncprov \
        translucent \
        unique \
@@ -358,13 +359,21 @@ 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(denyop,[    --enable-denyop        Deny Operation overlay],
+OL_ARG_ENABLE(auditlog,[    --enable-auditlog    Audit Logging overlay],
+       no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(collect,[    --enable-collect      Collect overlay],
+       no, [no yes mod], ol_enable_overlays)
+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(deref,[    --enable-deref          Dereference 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],
+OL_ARG_ENABLE(memberof,[    --enable-memberof    Reverse Group Membership overlay],
        no, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(ppolicy,[    --enable-ppolicy      Password Policy overlay],
        no, [no yes mod], ol_enable_overlays)
        no, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(ppolicy,[    --enable-ppolicy      Password Policy overlay],
        no, [no yes mod], ol_enable_overlays)
@@ -376,6 +385,10 @@ 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],
+       no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(sssvlv,[    --enable-sssvlv        ServerSideSort/VLV overlay],
+       no, [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],
@@ -385,12 +398,6 @@ OL_ARG_ENABLE(unique,[    --enable-unique       Attribute Uniqueness overlay],
 OL_ARG_ENABLE(valsort,[    --enable-valsort      Value Sorting overlay],
        no, [no yes mod], ol_enable_overlays)
 
 OL_ARG_ENABLE(valsort,[    --enable-valsort      Value Sorting overlay],
        no, [no yes mod], ol_enable_overlays)
 
-dnl ----------------------------------------------------------------
-dnl SLURPD OPTIONS
-AC_ARG_ENABLE(xxslurpdoptions,[
-SLURPD (Replication Daemon) Options:])
-OL_ARG_ENABLE(slurpd,[  --enable-slurpd          enable building slurpd], auto)dnl
-
 dnl ----------------------------------------------------------------
 AC_ARG_ENABLE(xxliboptions,[
 Library Generation & Linking Options])
 dnl ----------------------------------------------------------------
 AC_ARG_ENABLE(xxliboptions,[
 Library Generation & Linking Options])
@@ -418,26 +425,17 @@ if test $ol_enable_slapd = no ; then
        if test $ol_enable_modules = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
        fi
        if test $ol_enable_modules = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
        fi
-       if test $ol_enable_multimaster = yes ; then
-               AC_MSG_WARN([slapd disabled, ignoring --enable-multimaster argument])
-       fi
        if test $ol_enable_wrappers = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
        fi
        if test $ol_enable_rlookups = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
        fi
        if test $ol_enable_wrappers = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
        fi
        if test $ol_enable_rlookups = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
        fi
-       if test $ol_enable_aci = yes ; 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])
+       if test $ol_enable_dynacl = yes ; then
+               AC_MSG_WARN([slapd disabled, ignoring --enable-dynacl argument])
        fi
        fi
-       if test $ol_enable_slurpd = yes ; then
-               AC_MSG_ERROR([slurpd requires slapd])
+       if test $ol_enable_aci != no ; then
+               AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
        fi
        if test $ol_enable_rewrite = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
        fi
        if test $ol_enable_rewrite = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
@@ -460,79 +458,35 @@ if test $ol_enable_slapd = no ; then
        ol_enable_backends=
        ol_enable_overlays=
        ol_enable_modules=no
        ol_enable_backends=
        ol_enable_overlays=
        ol_enable_modules=no
-       ol_enable_multimaster=no
        ol_enable_rlookups=no
        ol_enable_rlookups=no
+       ol_enable_dynacl=no
        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_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_ndb = 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_sock = 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
 
@@ -540,35 +494,12 @@ if test $ol_enable_meta/$ol_enable_ldap = yes/no ; then
        AC_MSG_ERROR([--enable-meta requires --enable-ldap])
 fi
 
        AC_MSG_ERROR([--enable-meta requires --enable-ldap])
 fi
 
-if test $ol_enable_slurpd = yes ; then
-       dnl SLURPD was specifically enabled
-       if test $ol_with_threads = no ; then
-               AC_MSG_ERROR([slurpd requires threads])
-       fi
-fi
-
 if test $ol_enable_lmpasswd = yes ; then
        if test $ol_with_tls = no ; then
                AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
        fi
 fi
 
 if test $ol_enable_lmpasswd = yes ; then
        if test $ol_with_tls = no ; then
                AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
        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])
@@ -581,15 +512,15 @@ AC_MSG_RESULT(done)
 dnl ----------------------------------------------------------------
 dnl Initialize vars
 LDAP_LIBS=
 dnl ----------------------------------------------------------------
 dnl Initialize vars
 LDAP_LIBS=
-LDBM_LIBS=
+BDB_LIBS=
+SLAPD_NDB_LIBS=
+SLAPD_NDB_INCS=
 LTHREAD_LIBS=
 LUTIL_LIBS=
 
 SLAPD_LIBS=
 LTHREAD_LIBS=
 LUTIL_LIBS=
 
 SLAPD_LIBS=
-SLURPD_LIBS=
 
 BUILD_SLAPD=no
 
 BUILD_SLAPD=no
-BUILD_SLURPD=no
 
 BUILD_THREAD=no
 
 
 BUILD_THREAD=no
 
@@ -600,26 +531,34 @@ 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_META=no
 BUILD_MONITOR=no
+BUILD_NDB=no
 BUILD_NULL=no
 BUILD_PASSWD=no
 BUILD_PERL=no
 BUILD_RELAY=no
 BUILD_SHELL=no
 BUILD_NULL=no
 BUILD_PASSWD=no
 BUILD_PERL=no
 BUILD_RELAY=no
 BUILD_SHELL=no
+BUILD_SOCK=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_DENYOP=no
+BUILD_DEREF=no
 BUILD_DYNGROUP=no
 BUILD_DYNLIST=no
 BUILD_LASTMOD=no
 BUILD_DYNGROUP=no
 BUILD_DYNLIST=no
 BUILD_LASTMOD=no
+BUILD_MEMBEROF=no
 BUILD_PPOLICY=no
 BUILD_PROXYCACHE=no
 BUILD_REFINT=no
 BUILD_RETCODE=no
 BUILD_RWM=no
 BUILD_PPOLICY=no
 BUILD_PROXYCACHE=no
 BUILD_REFINT=no
 BUILD_RETCODE=no
 BUILD_RWM=no
+BUILD_SEQMOD=no
+BUILD_SSSVLV=no
 BUILD_SYNCPROV=no
 BUILD_TRANSLUCENT=no
 BUILD_UNIQUE=no
 BUILD_SYNCPROV=no
 BUILD_TRANSLUCENT=no
 BUILD_UNIQUE=no
@@ -651,6 +590,7 @@ SLAPI_LIBS=
 LIBSLAPI=
 LIBSLAPITOOLS=
 AUTH_LIBS=
 LIBSLAPI=
 LIBSLAPITOOLS=
 AUTH_LIBS=
+ICU_LIBS=
 
 SLAPD_SLP_LIBS=
 SLAPD_GMP_LIBS=
 
 SLAPD_SLP_LIBS=
 SLAPD_GMP_LIBS=
@@ -753,12 +693,14 @@ if test $ol_enable_perl != no ; then
 fi
 
 AC_PROG_CPP
 fi
 
 AC_PROG_CPP
+OL_MSVC
 
 dnl ----------------------------------------------------------------
 dnl Checks for Windows NT
 case $host_os in
   *mingw32* ) ac_cv_mingw32=yes ;;
   *cygwin* ) ac_cv_cygwin=yes ;;
 
 dnl ----------------------------------------------------------------
 dnl Checks for Windows NT
 case $host_os in
   *mingw32* ) ac_cv_mingw32=yes ;;
   *cygwin* ) ac_cv_cygwin=yes ;;
+  *interix* ) ac_cv_interix=yes ;;
 esac
 
 dnl ----------------------------------------------------------------
 esac
 
 dnl ----------------------------------------------------------------
@@ -853,11 +795,11 @@ AC_HEADER_DIRENT
 AC_HEADER_SYS_WAIT
 AC_HEADER_TIOCGWINSZ
 
 AC_HEADER_SYS_WAIT
 AC_HEADER_TIOCGWINSZ
 
-AC_CHECK_HEADERS(              \
+AC_CHECK_HEADERS(      \
        arpa/inet.h             \
        arpa/inet.h             \
-       arpa/nameser.h          \
+       arpa/nameser.h  \
        assert.h                \
        assert.h                \
-       bits/types.h            \
+       bits/types.h    \
        conio.h                 \
        crypt.h                 \
        direct.h                \
        conio.h                 \
        crypt.h                 \
        direct.h                \
@@ -870,7 +812,6 @@ AC_CHECK_HEADERS(           \
        libutil.h               \
        limits.h                \
        locale.h                \
        libutil.h               \
        limits.h                \
        locale.h                \
-       netinet/tcp.h           \
        malloc.h                \
        memory.h                \
        psap.h                  \
        malloc.h                \
        memory.h                \
        psap.h                  \
@@ -884,31 +825,45 @@ AC_CHECK_HEADERS(         \
        sysexits.h              \
        sys/file.h              \
        sys/filio.h             \
        sysexits.h              \
        sys/file.h              \
        sys/filio.h             \
+       sys/fstyp.h             \
        sys/errno.h             \
        sys/ioctl.h             \
        sys/param.h             \
        sys/errno.h             \
        sys/ioctl.h             \
        sys/param.h             \
-       sys/resource.h          \
-       sys/select.h            \
-       sys/socket.h            \
+       sys/privgrp.h   \
+       sys/resource.h  \
+       sys/select.h    \
+       sys/socket.h    \
        sys/stat.h              \
        sys/stat.h              \
-       sys/syslog.h            \
+       sys/syslog.h    \
        sys/time.h              \
        sys/types.h             \
        sys/uio.h               \
        sys/time.h              \
        sys/types.h             \
        sys/uio.h               \
+       sys/vmount.h    \
        syslog.h                \
        termios.h               \
        unistd.h                \
        utime.h                 \
        syslog.h                \
        termios.h               \
        unistd.h                \
        utime.h                 \
-       winsock.h               \
-       winsock2.h              \
 )
 
 )
 
+dnl Only check Winsock on MinGW
+if test "$ac_cv_mingw32" = yes \
+       -o "$ac_cv_interix" = yes \
+       -o "$ol_cv_msvc" = yes
+then
+       AC_CHECK_HEADERS( winsock.h winsock2.h )
+fi
+
 AC_CHECK_HEADERS( resolv.h, [], [],
 AC_CHECK_HEADERS( resolv.h, [], [],
-[$ac_includes_default]
+[$ac_includes_default
 #include <netinet/in.h>
 #include <netinet/in.h>
-)
+])
 
 
-AC_CHECK_HEADERS(sys/ucred.h, [], [],
+AC_CHECK_HEADERS( netinet/tcp.h, [], [],
+[$ac_includes_default
+#include <netinet/in.h>
+])
+
+AC_CHECK_HEADERS( sys/ucred.h, [], [],
 [$ac_includes_default
 #ifdef HAVE_SYS_PARAM_H
 #include <sys/param.h>
 [$ac_includes_default
 #ifdef HAVE_SYS_PARAM_H
 #include <sys/param.h>
@@ -926,39 +881,48 @@ if test $ac_cv_func_sigaction = no && test $ac_cv_func_sigaction = no ; then
        AC_CHECK_LIB(V3, sigset)
 fi
 
        AC_CHECK_LIB(V3, sigset)
 fi
 
+if test $ol_cv_msvc = yes ; then
+   ol_cv_winsock=yes
+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
-AC_CACHE_CHECK([for winsock], [ol_cv_winsock],
-save_LIBS="$LIBS"
-for curlib in ws2_32 wsock32; do
-       LIBS="$LIBS -l$curlib"
-       AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <winsock.h>
+if test "$ac_cv_header_winsock_h" = yes; then
+       AC_CACHE_CHECK([for winsock], [ol_cv_winsock],[
+       save_LIBS="$LIBS"
+       for curlib in none ws2_32 wsock32; do
+               if test $curlib != none ; then
+               LIBS="$save_LIBS -l$curlib"
+               fi
+               AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <winsock.h>
                        ]], [[
                        socket(0,0,0);
                        select(0,NULL,NULL,NULL,NULL);
                        closesocket(0);
                        gethostname(NULL,0);
                        ]], [[
                        socket(0,0,0);
                        select(0,NULL,NULL,NULL,NULL);
                        closesocket(0);
                        gethostname(NULL,0);
-                       ]])],[ol_cv_winsock=yes],[ol_cv_winsock=no])
-
-       if test $ol_cv_winsock = yes; then
-               AC_DEFINE(HAVE_WINSOCK, 1, [define if you have winsock])
-               ac_cv_func_socket=yes
-               ac_cv_func_select=yes
-               ac_cv_func_closesocket=yes
-               ac_cv_func_gethostname=yes
-               if test $curlib = ws2_32; then
-                       ol_cv_winsock=winsock2
-                       AC_DEFINE(HAVE_WINSOCK2, 1,
-                                 [define if you have winsock2])
+                       ]])],[ol_cv_winsock=$curlib],[ol_cv_winsock=no])
+
+               test "$ol_cv_winsock" != no && break
+       done
+       LIBS="$save_LIBS"
+       ])
+
+       if test $ol_cv_winsock != no ; then
+       AC_DEFINE(HAVE_WINSOCK, 1, [define if you have winsock])
+       ac_cv_func_socket=yes
+       ac_cv_func_select=yes
+       ac_cv_func_closesocket=yes
+       ac_cv_func_gethostname=yes
+
+               if test $ol_cv_winsock != none -a $ol_cv_winsock != yes ; then
+               LIBS="$LIBS -l$ol_cv_winsock"
                fi
                fi
-               break
+
+       if test $ol_cv_winsock = ws2_32 -o $ol_cv_winsock = yes ; then
+                       AC_DEFINE(HAVE_WINSOCK2, 1, [define if you have winsock2])
+       fi
        fi
        fi
-       LIBS="$save_LIBS"
-done)
 fi
 
 dnl Find socket()
 fi
 
 dnl Find socket()
@@ -991,36 +955,49 @@ 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 ----------------------------------------------------------------
 fi
 
 dnl ----------------------------------------------------------------
-# strerror checks
-OL_STRERROR
+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 ----------------------------------------------------------------
 
 dnl ----------------------------------------------------------------
-dnl International Components for Unicode
-dnl            don't use yet
-dnl OL_ICU
-dnl if test "$ol_icu" = no ; then
-dnl    AC_MSG_ERROR([ICU not available])
-dnl else
-dnl    LIBS="$LIBS $ol_icu"
-dnl fi
+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
@@ -1037,12 +1014,14 @@ dnl UUID Support
 
 have_uuid=no
 AC_CHECK_HEADERS(sys/uuid.h)
 
 have_uuid=no
 AC_CHECK_HEADERS(sys/uuid.h)
+dnl The HAVE_UUID_TO_STR code path also needs uuid_create
 if test $ac_cv_header_sys_uuid_h = yes ; then
        save_LIBS="$LIBS"
 if test $ac_cv_header_sys_uuid_h = yes ; then
        save_LIBS="$LIBS"
-       AC_SEARCH_LIBS(uuid_to_str, uuid, [have_uuid=yes], :)
+       AC_SEARCH_LIBS([uuid_to_str], [uuid], [have_uuid=yes], :)
+       AC_SEARCH_LIBS([uuid_create], [uuid], :, [have_uuid=no])
        LIBS="$save_LIBS"
 
        LIBS="$save_LIBS"
 
-       if test have_uuid = yes ; then
+       if test $have_uuid = yes ; then
                AC_DEFINE(HAVE_UUID_TO_STR,1,
                        [define if you have uuid_to_str()])
 
                AC_DEFINE(HAVE_UUID_TO_STR,1,
                        [define if you have uuid_to_str()])
 
@@ -1051,6 +1030,26 @@ if test $ac_cv_header_sys_uuid_h = yes ; then
        fi
 fi
 
        fi
 fi
 
+dnl Look for uuid_generate
+dnl The HAVE_UUID_GENERATE code path also needs uuid_unparse_lower
+if test $have_uuid = no ; then
+       AC_CHECK_HEADERS(uuid/uuid.h)
+       if test $ac_cv_header_uuid_uuid_h = yes ; then
+               save_LIBS="$LIBS"
+               AC_SEARCH_LIBS([uuid_generate], [uuid], [have_uuid=yes], :)
+               AC_SEARCH_LIBS([uuid_unparse_lower], [uuid], :, [have_uuid=no])
+               LIBS="$save_LIBS"
+
+               if test $have_uuid = yes ; then
+                       AC_DEFINE(HAVE_UUID_GENERATE,1,
+                               [define if you have uuid_generate()])
+
+                       test "$ac_cv_search_uuid_generate" = "none required" || \
+                               SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_generate"
+               fi
+       fi
+fi
+
 dnl For windows, check for the need of RPCRT for UUID function support
 if test $have_uuid = no ; then
        AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
 dnl For windows, check for the need of RPCRT for UUID function support
 if test $have_uuid = no ; then
        AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
@@ -1148,179 +1147,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
@@ -1337,7 +1172,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, 
@@ -1351,31 +1186,72 @@ if test $ol_with_tls != no ; then
                        else
                                TLS_LIBS="-lssl -lcrypto"
                        fi
                        else
                                TLS_LIBS="-lssl -lcrypto"
                        fi
+
+                       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
-               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])
+       fi
+fi
+
+if test $ol_link_tls = no ; then
+       if test $ol_with_tls = gnutls || test $ol_with_tls = auto ; then
+               AC_CHECK_HEADERS(gnutls/gnutls.h)
+
+               if test $ac_cv_header_gnutls_gnutls_h = yes ; then
+                       AC_CHECK_LIB(gnutls, gnutls_init,
+                               [have_gnutls=yes], [have_gnutls=no])
+
+                       if test $have_gnutls = yes ; then
+                               ol_with_tls=gnutls
+                               ol_link_tls=yes
+
+                               TLS_LIBS="-lgnutls"
+
+                               AC_DEFINE(HAVE_GNUTLS, 1, 
+                                       [define if you have GNUtls])
+                       fi
                fi
        fi
                fi
        fi
+fi
 
 
-else
-       AC_MSG_WARN([TLS data protection not supported!])
+dnl NOTE: caller must specify -I/path/to/nspr4 and -I/path/to/nss3
+dnl and -L/path/to/nspr4 libs and -L/path/to/nss3 libs if those libs
+dnl are not in the default system location
+if test $ol_link_tls = no ; then
+       if test $ol_with_tls = moznss || test $ol_with_tls = auto ; then
+               have_moznss=no
+               AC_CHECK_HEADERS([nssutil.h])
+               if test "$ac_cv_header_nssutil_h" = yes ; then
+                       AC_CHECK_LIB([nss3], [NSS_Initialize],
+                                                [ have_moznss=yes ], [ have_moznss=no ])
+               fi
+
+               if test "$have_moznss" = yes ; then
+                       ol_with_tls=moznss
+                       ol_link_tls=yes
+                       AC_DEFINE(HAVE_MOZNSS, 1, 
+                                         [define if you have MozNSS])
+                       TLS_LIBS="-lssl3 -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4"
+               else
+                       AC_MSG_ERROR([MozNSS not found - please specify the location to the NSPR and NSS header files in CPPFLAGS and the location to the NSPR and NSS libraries in LDFLAGS (if not in the system location)])
+               fi
+       fi
 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 ----------------------------------------------------------------
@@ -1545,7 +1421,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.
@@ -1594,6 +1485,19 @@ dnl                      [ol_cv_pthread_lpthread_lexc])
                                AC_MSG_ERROR([pthread_create is not usable, check environment settings])
                        fi
 
                                AC_MSG_ERROR([pthread_create is not usable, check environment settings])
                        fi
 
+                       ol_replace_broken_yield=no
+dnl                    case "$target" in
+dnl                    *-*-linux*) 
+dnl                            AC_CHECK_FUNCS(nanosleep)
+dnl                            ol_replace_broken_yield=yes
+dnl                    ;;
+dnl                    esac
+
+                       if test $ol_replace_broken_yield = yes ; then
+                               AC_DEFINE([REPLACE_BROKEN_YIELD],1,
+                                       [define if sched_yield yields the entire process])
+                       fi
+
                        dnl Check if select causes an yield
                        if test $ol_with_yielding_select = auto ; then
                                AC_CACHE_CHECK([if select yields when using pthreads],
                        dnl Check if select causes an yield
                        if test $ol_with_yielding_select = auto ; then
                                AC_CACHE_CHECK([if select yields when using pthreads],
@@ -1662,7 +1566,7 @@ int main(argc, argv)
 #endif
 
        /* make sure task runs first */
 #endif
 
        /* make sure task runs first */
-#if HAVE_THR_YIELD
+#ifdef HAVE_THR_YIELD
        thr_yield();
 #elif defined( HAVE_SCHED_YIELD )
        sched_yield();
        thr_yield();
 #elif defined( HAVE_SCHED_YIELD )
        sched_yield();
@@ -1942,6 +1846,9 @@ if test $ol_link_threads = no ; then
        AC_DEFINE(NO_THREADS,1,
                [define if you have (or want) no threads])
        LTHREAD_LIBS=""
        AC_DEFINE(NO_THREADS,1,
                [define if you have (or want) no threads])
        LTHREAD_LIBS=""
+       BUILD_THREAD=no
+else
+       BUILD_THREAD=yes
 fi
 
 if test $ol_link_threads != no ; then
 fi
 
 if test $ol_link_threads != no ; then
@@ -1953,6 +1860,7 @@ dnl ----------------------------------------------------------------
 dnl Tests for reentrant functions necessary to build -lldap_r
 AC_CHECK_FUNCS(                \
        ctime_r                 \
 dnl Tests for reentrant functions necessary to build -lldap_r
 AC_CHECK_FUNCS(                \
        ctime_r                 \
+       gmtime_r localtime_r \
        gethostbyname_r gethostbyaddr_r \
 )
 
        gethostbyname_r gethostbyaddr_r \
 )
 
@@ -1976,103 +1884,27 @@ 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
-
-               if test $ol_cv_bdb_compat != yes ; then
-                       AC_MSG_ERROR([BDB/HDB: BerkeleyDB version incompatible])
-               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
+       OL_BERKELEY_DB
 
 
-if test $ol_enable_ldbm_api = auto || test $ol_enable_ldbm_api = mdbm ; then
-       OL_MDBM
-
-       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
-       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
-
-               if test $ol_cv_lib_gdbm != yes ; then
-                       LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
-               fi
+       if test $ol_cv_berkeley_db = no ; then
+               AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
        fi
        fi
-fi
-
-if test $ol_enable_ldbm_api = ndbm ; then
-       OL_NDBM
 
 
-       if test $ol_cv_ndbm = yes ; then
-               ol_link_ldbm=ndbm
-               ol_enable_ldbm_api=ndbm
+       AC_DEFINE(HAVE_BERKELEY_DB,1,
+               [define this if Berkeley DB is available])
 
 
-               if test $ol_cv_lib_ndbm != yes ; then
-                       LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
-               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_link_ldbm = no && test $ol_enable_ldbm != no ; then
-       AC_MSG_ERROR([could not find suitable LDBM backend])
-fi
+       SLAPD_LIBS="$SLAPD_LIBS \$(BDB_LIBS)"
 
 
-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 ----------------------------------------------------------------
@@ -2152,16 +1984,41 @@ 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 odbc32"
        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
+                               ;;
+
+                       odbc32)
+                               AC_CHECK_LIB(odbc32, SQLDriverConnect, [have_odbc32=yes], [have_odbc32=no])
+                               if test $have_odbc32 = yes ; then
+                                       ol_link_sql="-lodbc32"
+                               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
@@ -2172,6 +2029,55 @@ if test $ol_enable_sql != no ; then
        fi
 fi
 
        fi
 fi
 
+dnl ----------------------------------------------------------------
+dnl MySQL NDBapi
+dnl Note: uses C++, but we don't want to add C++ test overhead to
+dnl the rest of the libtool machinery.
+ol_link_ndb=no
+if test $ol_enable_ndb != no ; then
+       AC_CHECK_PROG(MYSQL,mysql_config,yes)
+       if test "$MYSQL" != yes ; then
+               AC_MSG_ERROR([could not locate mysql_config])
+       fi
+
+       SQL_INC=`mysql_config --include`
+       SLAPD_NDB_INCS="$SQL_INC $SQL_INC/storage/ndb $SQL_INC/storage/ndb/ndbapi"
+
+       save_CPPFLAGS="$CPPFLAGS"
+       CPPFLAGS="$SLAPD_NDB_INCS"
+       AC_MSG_CHECKING(for NdbApi.hpp)
+       AC_PREPROC_IFELSE(
+               [AC_LANG_SOURCE([[#include <NdbApi.hpp>]])],
+                       AC_MSG_RESULT(yes),
+                       AC_MSG_ERROR([could not locate NdbApi headers])
+       )
+       CPPFLAGS="$save_CPPFLAGS"
+
+       SQL_LIB=`mysql_config --libs_r`
+       SLAPD_NDB_LIBS="$SQL_LIB -lndbclient -lstdc++"
+
+       save_LDFLAGS="$LDFLAGS"
+       save_LIBS="$LIBS"
+       LDFLAGS="$SQL_LIB"
+       AC_CHECK_LIB(ndbclient,ndb_init,[: ok],[
+               AC_MSG_ERROR([could not locate ndbclient library])
+       ],[-lstdc++])
+       LIBS="$save_LIBS"
+       LDFLAGS="$save_LDFLAGS"
+
+       if test "$ol_enable_ndb" = yes ; then
+               SLAPD_LIBS="$SLAPD_LIBS \$(SLAPD_NDB_LIBS)"
+       fi
+fi
+
+dnl ----------------------------------------------------------------
+dnl International Components for Unicode
+OL_ICU
+if test "$ol_icu" = no ; then
+       AC_MSG_WARN([ICU not available])
+else
+       ICU_LIBS="$ol_icu"
+fi
 dnl ----------------------------------------------------------------
 dnl
 dnl Check for Cyrus SASL
 dnl ----------------------------------------------------------------
 dnl
 dnl Check for Cyrus SASL
@@ -2312,7 +2218,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 )
 
@@ -2328,99 +2233,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.
 
@@ -2434,14 +2246,43 @@ AC_CHECK_TYPE(size_t, unsigned)
 AC_CHECK_TYPES([long long])
 AC_CHECK_TYPES([ptrdiff_t])
 
 AC_CHECK_TYPES([long long])
 AC_CHECK_TYPES([ptrdiff_t])
 
-AC_CHECK_TYPE([socklen_t],,
-       [AC_DEFINE_UNQUOTED([socklen_t], [int],
-               [Define to `int' if <sys/socket.h> does not define.])],
-       [$ac_includes_default
+
+AC_CHECK_TYPE([socklen_t],,, [$ac_includes_default
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif])
+
+dnl socklen_t-like type in accept(), default socklen_t or int:
+dnl - The OS might define socklen_t without using it.  POSIX moved from
+dnl   int to size_t to socklen_t, hoping to stay at a 32-bit type, and
+dnl   HP-UX now has selectors for what to use.
+dnl - On Solaris 2.8 the prototype has void *len, but the default is OK.
+AC_MSG_CHECKING([the type of arg 3 to accept()])
+AC_CACHE_VAL(ol_cv_type_ber_socklen_t, [
+       set socklen_t int unsigned "unsigned long" long size_t
+       test "$ac_cv_type_socklen_t" = yes || shift
+       ol_cv_type_ber_socklen_t=$1 guessing="guessing "
+       for lentype in "$@" ; do for addrtype in "struct sockaddr" void ; do
+               AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$ac_includes_default
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
-       ])
+extern int accept(int s, $addrtype *ap, $lentype *lp);
+], [
+accept(0, (struct sockaddr *) 0, ($lentype *) 0);
+])], [ol_cv_type_ber_socklen_t=$lentype guessing= ; break 2])
+       done ; done])
+AC_MSG_RESULT([$guessing$ol_cv_type_ber_socklen_t *])
+AC_DEFINE_UNQUOTED(ber_socklen_t, $ol_cv_type_ber_socklen_t,
+       [Define to the type of arg 3 for `accept'.])
+
+dnl Modules should use ber_socklen_t, not socklen_t.  Define socklen_t
+dnl for the time being anyway, for backwards compatibility.
+if test "$ac_cv_type_socklen_t" != yes; then
+       AC_DEFINE_UNQUOTED([socklen_t], [$ol_cv_type_ber_socklen_t],
+               [Define like ber_socklen_t if <sys/socket.h> does not define.])
+fi
+
 
 AC_TYPE_SIGNAL
 
 
 AC_TYPE_SIGNAL
 
@@ -2476,6 +2317,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
@@ -2490,6 +2332,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
@@ -2510,9 +2396,12 @@ AC_CHECK_FUNC(_snprintf, [ac_cv_func_snprintf=yes
        AC_DEFINE(snprintf, _snprintf, [define to snprintf routine])
 ])
 
        AC_DEFINE(snprintf, _snprintf, [define to snprintf routine])
 ])
 
-AC_CHECK_FUNC(_vsnprintf, [ac_cv_func_vsnprintf=yes
+AC_CHECK_FUNCS(vsnprintf _vsnprintf)
+
+if test $ac_cv_func_vsnprintf = no -a $ac_cv_func__vsnprintf = yes ; then
+       ac_cv_func_vsnprintf=yes
        AC_DEFINE(vsnprintf, _vsnprintf, [define to vsnprintf routine])
        AC_DEFINE(vsnprintf, _vsnprintf, [define to vsnprintf routine])
-])
+fi
 
 AC_FUNC_VPRINTF
 
 
 AC_FUNC_VPRINTF
 
@@ -2521,7 +2410,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                  \
@@ -2530,17 +2419,18 @@ AC_CHECK_FUNCS(         \
        fcntl                   \
        flock                   \
        fstat                   \
        fcntl                   \
        flock                   \
        fstat                   \
-       getdtablesize   \
+       getdtablesize           \
+       geteuid                 \
        getgrgid                \
        gethostname             \
        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                 \
@@ -2570,7 +2460,6 @@ AC_CHECK_FUNCS(           \
        strtoll                 \
        strspn                  \
        sysconf                 \
        strtoll                 \
        strspn                  \
        sysconf                 \
-       usleep                  \
        waitpid                 \
        wait4                   \
        write                   \
        waitpid                 \
        wait4                   \
        write                   \
@@ -2585,21 +2474,32 @@ AC_REPLACE_FUNCS(getopt getpeereid)
 if test "$ac_cv_func_getopt" != yes; then
        LIBSRCS="$LIBSRCS getopt.c"
 fi
 if test "$ac_cv_func_getopt" != yes; then
        LIBSRCS="$LIBSRCS getopt.c"
 fi
+
 if test "$ac_cv_func_getpeereid" != yes; then
 if test "$ac_cv_func_getpeereid" != yes; then
-       AC_CHECK_MEMBERS([struct msghdr.msg_accrightslen],,,
-               [$ac_includes_default
+       AC_CHECK_FUNCS( getpeerucred )
+       if test "$ac_cv_func_getpeerucred" != yes ; then
+               AC_CHECK_MEMBERS([struct msghdr.msg_accrightslen],,,
+                       [$ac_includes_default
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif])
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif])
-       if test "$ac_cv_member_struct_msghdr_msg_accrightslen" != yes; then
-               AC_CHECK_MEMBERS([struct msghdr.msg_control],,,
-                       [$ac_includes_default
+               if test "$ac_cv_member_struct_msghdr_msg_accrightslen" != yes; then
+                       AC_CHECK_MEMBERS([struct msghdr.msg_control],,,
+                               [$ac_includes_default
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif])
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif])
+               fi
+               AC_CHECK_MEMBERS([struct stat.st_fstype, struct stat.st_vfstype])
+               if test "$ac_cv_member_struct_stat_st_fstype" = yes; then
+                       AC_COMPILE_IFELSE([struct stat st; char *ptr=st.st_fstype;],
+                               AC_DEFINE([HAVE_STRUCT_STAT_ST_FSTYPE_CHAR],1,[define to 1 if st_fstype is char *]),
+                               AC_DEFINE([HAVE_STRUCT_STAT_ST_FSTYPE_INT],1,[define to 1 if st_fstype is int]))
+               fi
        fi
        LIBSRCS="$LIBSRCS getpeereid.c"
 fi
        fi
        LIBSRCS="$LIBSRCS getpeereid.c"
 fi
+
 if test "$ac_cv_func_snprintf" != yes ||
    test "$ac_cv_func_vsnprintf" != yes; then
        if test "$ac_cv_func_snprintf" != yes; then
 if test "$ac_cv_func_snprintf" != yes ||
    test "$ac_cv_func_vsnprintf" != yes; then
        if test "$ac_cv_func_snprintf" != yes; then
@@ -2632,6 +2532,10 @@ if test "$ol_enable_slapi" != no ; then
 fi
 
 if test "$ol_enable_debug" != no ; then
 fi
 
 if test "$ol_enable_debug" != no ; then
+       if test "$ol_enable_debug" = traditional; then
+               AC_DEFINE(OLD_DEBUG,1,
+                       [define to use the original debug style])
+       fi
        AC_DEFINE(LDAP_DEBUG,1,
                [define this to add debugging code])
 fi
        AC_DEFINE(LDAP_DEBUG,1,
                [define this to add debugging code])
 fi
@@ -2639,10 +2543,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])
@@ -2666,18 +2566,29 @@ fi
 if test "$ol_link_spasswd" != no ; then
        AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
 fi
 if test "$ol_link_spasswd" != no ; then
        AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
 fi
-if test "$ol_enable_multimaster" != no ; then
-       AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
-fi
 if test "$ol_enable_rlookups" != no ; then
        AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
 fi
 if test "$ol_enable_aci" != no ; then
 if test "$ol_enable_rlookups" != no ; then
        AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
 fi
 if test "$ol_enable_aci" != no ; then
-       AC_DEFINE(SLAPD_ACI_ENABLED,1,[define to support per-object ACIs])
-       WITH_ACI_ENABLED=yes
+       if test $ol_enable_dynacl = no ; then
+               ol_enable_dynacl=yes
+               AC_MSG_WARN([ACIs need dynacl])
+       fi
+       if test "$ol_enable_aci" = mod ; then
+               MFLAG=SLAPD_MOD_DYNAMIC
+               dnl remove this after moving servers/slapd/aci.c in contrib/slapd-modules/acl
+               AC_MSG_ERROR([ACI build as dynamic module not supported (yet)])
+       else 
+               MFLAG=SLAPD_MOD_STATIC
+       fi
+       WITH_ACI_ENABLED=$ol_enable_aci
+       AC_DEFINE_UNQUOTED(SLAPD_ACI_ENABLED,$MFLAG,[define to support per-object ACIs])
 else
        WITH_ACI_ENABLED=no
 fi
 else
        WITH_ACI_ENABLED=no
 fi
+if test "$ol_enable_dynacl" != no ; then
+       AC_DEFINE(SLAP_DYNACL,1,[define to support run-time loadable ACL])
+fi
 
 if test "$ol_link_modules" != no ; then
        AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
 
 if test "$ol_link_modules" != no ; then
        AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
@@ -2688,6 +2599,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
@@ -2740,19 +2665,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
@@ -2767,17 +2679,17 @@ 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
+if test "$ol_enable_ndb" != no ; then
        BUILD_SLAPD=yes
        BUILD_SLAPD=yes
-       BUILD_MONITOR=$ol_enable_monitor
-       if test "$ol_enable_monitor" = mod ; then
-               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
+       BUILD_NDB=$ol_enable_ndb
+       if test "$ol_enable_ndb" = mod ; then
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ndb"
                MFLAG=SLAPD_MOD_DYNAMIC
        else
                MFLAG=SLAPD_MOD_DYNAMIC
        else
-               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ndb"
                MFLAG=SLAPD_MOD_STATIC
        fi
                MFLAG=SLAPD_MOD_STATIC
        fi
-       AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
+       AC_DEFINE_UNQUOTED(SLAPD_NDB,$MFLAG,[define to support NDB backend])
 fi
 
 if test "$ol_enable_null" != no ; then
 fi
 
 if test "$ol_enable_null" != no ; then
@@ -2848,6 +2760,19 @@ if test "$ol_enable_shell" != no ; then
        AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend])
 fi
 
        AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend])
 fi
 
+if test "$ol_enable_sock" != no ; then
+       BUILD_SLAPD=yes
+       BUILD_SOCK=$ol_enable_sock
+       if test "$ol_enable_sock" = mod ; then
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sock"
+               MFLAG=SLAPD_MOD_DYNAMIC
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sock"
+               MFLAG=SLAPD_MOD_STATIC
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_SOCK,$MFLAG,[define to support SOCK backend])
+fi
+
 if test "$ol_link_sql" != no ; then
        BUILD_SLAPD=yes
        BUILD_SQL=$ol_enable_sql
 if test "$ol_link_sql" != no ; then
        BUILD_SLAPD=yes
        BUILD_SQL=$ol_enable_sql
@@ -2873,16 +2798,64 @@ 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_denyop" != no ; then
-       BUILD_DENYOP=$ol_enable_denyop
-       if test "$ol_enable_denyop" = 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
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS auditlog.la"
+       else
+               MFLAG=SLAPD_MOD_STATIC
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS auditlog.o"
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_AUDITLOG,$MFLAG,[define for Audit Logging overlay])
+fi
+
+if test "$ol_enable_collect" != no ; then
+        BUILD_COLLECT=$ol_enable_collect
+        if test "$ol_enable_collect" = mod ; then
+                MFLAG=SLAPD_MOD_DYNAMIC
+                SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS collect.la"
+        else
+                MFLAG=SLAPD_MOD_STATIC
+                SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS collect.o"
+        fi
+        AC_DEFINE_UNQUOTED(SLAPD_OVER_COLLECT,$MFLAG,[define for Collect 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
+
+if test "$ol_enable_dds" != no ; then
+       BUILD_DDS=$ol_enable_dds
+       if test "$ol_enable_dds" = mod ; then
+               MFLAG=SLAPD_MOD_DYNAMIC
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dds.la"
+       else
+               MFLAG=SLAPD_MOD_STATIC
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dds.o"
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_DDS,$MFLAG,[define for Dynamic Directory Services overlay])
+fi
+
+if test "$ol_enable_deref" != no ; then
+       BUILD_DEREF=$ol_enable_deref
+       if test "$ol_enable_deref" = mod ; then
                MFLAG=SLAPD_MOD_DYNAMIC
                MFLAG=SLAPD_MOD_DYNAMIC
-               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS denyop.la"
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS deref.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 deref.o"
        fi
        fi
-       AC_DEFINE_UNQUOTED(SLAPD_OVER_DENYOP,$MFLAG,[define for Dynamic Group overlay])
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_DEREF,$MFLAG,[define for Dynamic Directory Services overlay])
 fi
 
 if test "$ol_enable_dyngroup" != no ; then
 fi
 
 if test "$ol_enable_dyngroup" != no ; then
@@ -2909,16 +2882,16 @@ 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
+if test "$ol_enable_memberof" != no ; then
+       BUILD_MEMBEROF=$ol_enable_memberof
+       if test "$ol_enable_memberof" = mod ; then
                MFLAG=SLAPD_MOD_DYNAMIC
                MFLAG=SLAPD_MOD_DYNAMIC
-               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS lastmod.la"
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS memberof.la"
        else
                MFLAG=SLAPD_MOD_STATIC
        else
                MFLAG=SLAPD_MOD_STATIC
-               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS lastmod.o"
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS memberof.o"
        fi
        fi
-       AC_DEFINE_UNQUOTED(SLAPD_OVER_LASTMOD,$MFLAG,[define for Last Modification overlay])
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_MEMBEROF,$MFLAG,[define for Reverse Group Membership overlay])
 fi
 
 if test "$ol_enable_ppolicy" != no ; then
 fi
 
 if test "$ol_enable_ppolicy" != no ; then
@@ -2982,6 +2955,30 @@ 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_sssvlv" != no ; then
+       BUILD_SSSVLV=$ol_enable_sssvlv
+       if test "$ol_enable_sssvlv" = mod ; then
+               MFLAG=SLAPD_MOD_DYNAMIC
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS sssvlv.la"
+       else
+               MFLAG=SLAPD_MOD_STATIC
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS sssvlv.o"
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_SSSVLV,$MFLAG,[define for ServerSideSort/VLV 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
@@ -3030,12 +3027,6 @@ if test "$ol_enable_valsort" != no ; then
        AC_DEFINE_UNQUOTED(SLAPD_OVER_VALSORT,$MFLAG,[define for Value Sorting overlay])
 fi
 
        AC_DEFINE_UNQUOTED(SLAPD_OVER_VALSORT,$MFLAG,[define for Value Sorting overlay])
 fi
 
-if test "$ol_enable_slurpd" != no &&
-   test "$ol_link_threads" != no &&
-   test $BUILD_SLAPD = yes ; then
-       BUILD_SLURPD=yes
-fi
-
 if test "$ol_enable_rewrite" != no ; then
        AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta])
        BUILD_REWRITE=yes
 if test "$ol_enable_rewrite" != no ; then
        AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta])
        BUILD_REWRITE=yes
@@ -3054,7 +3045,7 @@ dnl For Windows build, we don't want to include -dlopen flags.
 dnl They hurt more than they help.
 dnl
 
 dnl They hurt more than they help.
 dnl
 
-if test "$ac_cv_mingw32" = yes ; then
+if test "$ac_cv_mingw32" = yes -o $ol_cv_msvc = yes ; then
        PLAT=NT
        SLAPD_MODULES_LDFLAGS=
 else
        PLAT=NT
        SLAPD_MODULES_LDFLAGS=
 else
@@ -3067,6 +3058,7 @@ AC_SUBST(WITH_SASL)
 AC_SUBST(WITH_TLS)
 AC_SUBST(WITH_MODULES_ENABLED)
 AC_SUBST(WITH_ACI_ENABLED)
 AC_SUBST(WITH_TLS)
 AC_SUBST(WITH_MODULES_ENABLED)
 AC_SUBST(WITH_ACI_ENABLED)
+AC_SUBST(BUILD_THREAD)
 AC_SUBST(BUILD_LIBS_DYNAMIC)
 
 AC_SUBST(BUILD_SLAPD)
 AC_SUBST(BUILD_LIBS_DYNAMIC)
 
 AC_SUBST(BUILD_SLAPD)
@@ -3078,36 +3070,45 @@ 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_META)
   AC_SUBST(BUILD_MONITOR)
+  AC_SUBST(BUILD_NDB)
   AC_SUBST(BUILD_NULL)
   AC_SUBST(BUILD_PASSWD)
   AC_SUBST(BUILD_RELAY)
   AC_SUBST(BUILD_PERL)
   AC_SUBST(BUILD_SHELL)
   AC_SUBST(BUILD_NULL)
   AC_SUBST(BUILD_PASSWD)
   AC_SUBST(BUILD_RELAY)
   AC_SUBST(BUILD_PERL)
   AC_SUBST(BUILD_SHELL)
+  AC_SUBST(BUILD_SOCK)
   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_COLLECT)
+  AC_SUBST(BUILD_CONSTRAINT)
+  AC_SUBST(BUILD_DDS)
   AC_SUBST(BUILD_DENYOP)
   AC_SUBST(BUILD_DENYOP)
+  AC_SUBST(BUILD_DEREF)
   AC_SUBST(BUILD_DYNGROUP)
   AC_SUBST(BUILD_DYNLIST)
   AC_SUBST(BUILD_LASTMOD)
   AC_SUBST(BUILD_DYNGROUP)
   AC_SUBST(BUILD_DYNLIST)
   AC_SUBST(BUILD_LASTMOD)
+  AC_SUBST(BUILD_MEMBEROF)
   AC_SUBST(BUILD_PPOLICY)
   AC_SUBST(BUILD_PROXYCACHE)
   AC_SUBST(BUILD_REFINT)
   AC_SUBST(BUILD_RETCODE)
   AC_SUBST(BUILD_RWM)
   AC_SUBST(BUILD_PPOLICY)
   AC_SUBST(BUILD_PROXYCACHE)
   AC_SUBST(BUILD_REFINT)
   AC_SUBST(BUILD_RETCODE)
   AC_SUBST(BUILD_RWM)
+  AC_SUBST(BUILD_SEQMOD)
+  AC_SUBST(BUILD_SSSVLV)
   AC_SUBST(BUILD_SYNCPROV)
   AC_SUBST(BUILD_TRANSLUCENT)
   AC_SUBST(BUILD_UNIQUE)
   AC_SUBST(BUILD_VALSORT)
   AC_SUBST(BUILD_SYNCPROV)
   AC_SUBST(BUILD_TRANSLUCENT)
   AC_SUBST(BUILD_UNIQUE)
   AC_SUBST(BUILD_VALSORT)
-AC_SUBST(BUILD_SLURPD)
 
 AC_SUBST(LDAP_LIBS)
 AC_SUBST(SLAPD_LIBS)
 
 AC_SUBST(LDAP_LIBS)
 AC_SUBST(SLAPD_LIBS)
-AC_SUBST(SLURPD_LIBS)
-AC_SUBST(LDBM_LIBS)
+AC_SUBST(BDB_LIBS)
+AC_SUBST(SLAPD_NDB_LIBS)
+AC_SUBST(SLAPD_NDB_INCS)
 AC_SUBST(LTHREAD_LIBS)
 AC_SUBST(LUTIL_LIBS)
 AC_SUBST(WRAP_LIBS)
 AC_SUBST(LTHREAD_LIBS)
 AC_SUBST(LUTIL_LIBS)
 AC_SUBST(WRAP_LIBS)
@@ -3134,6 +3135,7 @@ AC_SUBST(SLAPI_LIBS)
 AC_SUBST(LIBSLAPI)
 AC_SUBST(LIBSLAPITOOLS)
 AC_SUBST(AUTH_LIBS)
 AC_SUBST(LIBSLAPI)
 AC_SUBST(LIBSLAPITOOLS)
 AC_SUBST(AUTH_LIBS)
+AC_SUBST(ICU_LIBS)
 
 AC_SUBST(SLAPD_SLP_LIBS)
 AC_SUBST(SLAPD_GMP_LIBS)
 
 AC_SUBST(SLAPD_SLP_LIBS)
 AC_SUBST(SLAPD_GMP_LIBS)
@@ -3174,20 +3176,20 @@ 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]
+[servers/slapd/back-ndb/Makefile:build/top.mk:servers/slapd/back-ndb/Makefile.in:build/mod.mk]
 [servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk]
 [servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk]
 [servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk]
 [servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk]
 [servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk]
 [servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk]
 [servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk]
 [servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk]
 [servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk]
 [servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk]
+[servers/slapd/back-sock/Makefile:build/top.mk:servers/slapd/back-sock/Makefile.in:build/mod.mk]
 [servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk]
 [servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk]
 [servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk]
 [servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk]
 [servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk]
 [servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk]
 [servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk]
 [servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk]
-[servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk]
 [tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk]
 [tests/run]
 [tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk])
 [tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk]
 [tests/run]
 [tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk])
@@ -3201,7 +3203,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-2005 The OpenLDAP Foundation.
+ * Copyright 1998-2009 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
@@ -3246,7 +3248,67 @@ ENDX
 /* end of generated file */
 ENDX
 fi
 /* end of generated file */
 ENDX
 fi
+OVERLAYSC="servers/slapd/overlays/statover.c"
+echo "Making $OVERLAYSC"
+rm -f $OVERLAYSC
+cat > $OVERLAYSC << ENDX
+/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+ *
+ * Copyright 1998-2009 The OpenLDAP Foundation.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.
+ *
+ * A copy of this license is available in the file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * <http://www.OpenLDAP.org/license.html>.
+ */
+/* This file is automatically generated by configure; please do not edit. */
+
+#include "portable.h"
+#include "slap.h"
+
+ENDX
+if test "${STATIC_OVERLAYS}"; then
+       for o in ${STATIC_OVERLAYS}; do
+               oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
+               cat >> $OVERLAYSC << ENDX
+extern OV_init ${oo}_initialize;
+ENDX
+       done
+fi
+
+cat >> $OVERLAYSC << ENDX
 
 
-echo Please run \"make depend\" to build dependencies
-]],[[STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"]])
+OverlayInit slap_oinfo[] = {
+ENDX
+
+if test "${STATIC_OVERLAYS}"; then
+       for o in ${STATIC_OVERLAYS}; do
+               oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
+               echo "    Add ${oo} ..."
+               cat >> $OVERLAYSC << ENDX
+       { "${oo}", ${oo}_initialize },
+ENDX
+       done
+fi
+
+       cat >> $OVERLAYSC << ENDX
+       { NULL, NULL },
+};
+
+/* end of generated file */
+ENDX
+
+if test "${ol_cv_mkdep}" = no; then
+       echo '(Do not "make depend"; we do not know how to build dependencies)'
+else
+       echo 'Please run "make depend" to build dependencies'
+fi
+]],[[
+STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"
+STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS"
+]])
 AC_OUTPUT
 AC_OUTPUT