]> git.sur5r.net Git - openldap/blobdiff - configure.in
ITS#4541 refine commit for #4524
[openldap] / configure.in
index bf859e6c0b22aa591cbfe2086aa59cf64377a1d0..425c8e52b6e931b5e601f1868821b7b0af62d4ad 100644 (file)
@@ -1,7 +1,7 @@
 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-2006 The OpenLDAP Foundation.
 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
-AC_COPYRIGHT([[Copyright 1998-2005 The OpenLDAP Foundation. All rights reserved.
+AC_COPYRIGHT([[Copyright 1998-2006 The OpenLDAP Foundation. All rights reserved.
 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
@@ -40,7 +41,7 @@ if test -z "$OL_STRING"; then
        AC_MSG_ERROR([could not determine version])
 fi
 
-if test -f "$ac_aux_dir/shtool" -a ! -d $ac_aux_dir/shtool; then
+if test -f "$ac_aux_dir/shtool" && test ! -d $ac_aux_dir/shtool; then
        ac_cv_shtool="$ac_aux_dir/shtool"
 else
        AC_MSG_ERROR([no shtool found in $ac_aux_dir])
@@ -92,7 +93,7 @@ AH_TOP([
 /* begin of portable.h.pre */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2005 The OpenLDAP Foundation
+ * Copyright 1998-2006 The OpenLDAP Foundation
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -222,7 +223,8 @@ AC_SUBST(ldap_subdir)dnl
 
 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
@@ -245,13 +247,13 @@ ol_with_kerberos=${ol_with_kerberos-auto}
 OL_ARG_WITH(threads,[  --with-threads    with threads],
        auto, [auto nt posix mach pth lwp yes no manual] )
 OL_ARG_WITH(tls,[  --with-tls            with TLS/SSL support],
-       auto, [auto ssleay openssl yes no] )
-OL_ARG_WITH(yielding_select,[  --with-yielding-select  with implicitly yielding select],
+       auto, [auto openssl yes no] )
+OL_ARG_WITH(yielding_select,
+       [  --with-yielding-select  with implicitly yielding select],
        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])
 
 dnl ----------------------------------------------------------------
 dnl Server options
@@ -262,14 +264,13 @@ dnl SLAPD OPTIONS
 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
-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
@@ -282,7 +283,6 @@ Backends="bdb \
        dnssrv \
        hdb \
        ldap \
-       ldbm \
        meta \
        monitor \
        null \
@@ -305,18 +305,6 @@ OL_ARG_ENABLE(hdb,[    --enable-hdb          enable Hierarchical DB backend],
        yes, [no yes mod], ol_enable_backends)dnl
 OL_ARG_ENABLE(ldap,[    --enable-ldap    enable ldap backend],
        no, [no yes mod], ol_enable_backends)dnl
-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],
@@ -337,16 +325,19 @@ OL_ARG_ENABLE(sql,[    --enable-sql         enable sql backend],
 dnl ----------------------------------------------------------------
 dnl SLAPD Overlay Options
 Overlays="accesslog \
+       auditlog \
+       constraint \
+       dds \
        denyop \
        dyngroup \
        dynlist \
-       glue \
        lastmod \
        ppolicy \
        proxycache \
        refint \
        retcode \
        rwm \
+       seqmod \
        syncprov \
        translucent \
        unique \
@@ -359,14 +350,18 @@ 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)
+OL_ARG_ENABLE(auditlog,[    --enable-auditlog    Audit Logging 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(denyop,[    --enable-denyop        Deny Operation 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)
-OL_ARG_ENABLE(glue,[    --enable-glue    Backend Glue overlay],
-       yes, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(lastmod,[    --enable-lastmod      Last Modification overlay],
        no, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(ppolicy,[    --enable-ppolicy      Password Policy overlay],
@@ -379,6 +374,8 @@ OL_ARG_ENABLE(retcode,[    --enable-retcode   Return Code testing overlay],
        no, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(rwm,[    --enable-rwm              Rewrite/Remap overlay],
        no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(seqmod,[    --enable-seqmod        Sequential Modify overlay],
+       yes, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(syncprov,[    --enable-syncprov    Syncrepl Provider overlay],
        yes, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(translucent,[    --enable-translucent  Translucent Proxy overlay],
@@ -421,23 +418,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_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_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])
+       if test $ol_enable_dynacl = yes ; then
+               AC_MSG_WARN([slapd disabled, ignoring --enable-dynacl argument])
        fi
-       if test $ol_enable_ldbm_type != auto ; then
-               AC_MSG_WARN([slapd disabled, ignoring --enable-ldbm-type argument])
+       if test $ol_enable_aci != no ; then
+               AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
        fi
        if test $ol_enable_slurpd = yes ; then
                AC_MSG_ERROR([slurpd requires slapd])
@@ -463,83 +454,39 @@ if test $ol_enable_slapd = no ; then
        ol_enable_backends=
        ol_enable_overlays=
        ol_enable_modules=no
-       ol_enable_multimaster=no
        ol_enable_rlookups=no
+       ol_enable_dynacl=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
 
-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 -a \
-               $ol_enable_bdb = no -a \
-               $ol_enable_dnssrv = no -a \
-               $ol_enable_hdb = no -a \
-               $ol_enable_ldap = no -a \
-               $ol_enable_meta = no -a \
-               $ol_enable_monitor = no -a \
-               $ol_enable_null = no -a \
-               $ol_enable_passwd = no -a \
-               $ol_enable_perl = no -a \
-               $ol_enable_relay = no -a \
-               $ol_enable_shell = no -a \
-               $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 != no -o $ol_enable_hdb != no; then
-               ol_enable_ldbm_api=berkeley
-       fi
-
-else
-       dnl SLAPD with LDBM
-       if test $ol_enable_ldbm_api = gdbm -a \
-               $ol_enable_ldbm_type = btree ; then
-               AC_MSG_ERROR([GDBM only supports LDBM type hash])
-       fi
-       if test $ol_enable_ldbm_api = mdbm -a \
-               $ol_enable_ldbm_type = btree ; then
-               AC_MSG_ERROR([MDBM only supports LDBM type hash])
-       fi
-       if test $ol_enable_ldbm_api = ndbm -a \
-               $ol_enable_ldbm_type = btree ; then
-               AC_MSG_ERROR([NDBM only supports LDBM type hash])
-       fi
-
-       if test $ol_enable_bdb != no -o $ol_enable_hdb != no ; then
-               if test $ol_enable_ldbm_api = auto ; then
-                       ol_enable_ldbm_api=berkeley
-               elif test $ol_enable_ldbm_api != berkeley ; then
-                       AC_MSG_ERROR([LDBM API not compatible with BDB/HDB])
-               fi
+elif test $ol_enable_modules != yes &&
+       test $ol_enable_bdb = no &&
+       test $ol_enable_dnssrv = no &&
+       test $ol_enable_hdb = no &&
+       test $ol_enable_ldap = no &&
+       test $ol_enable_meta = no &&
+       test $ol_enable_monitor = no &&
+       test $ol_enable_null = no &&
+       test $ol_enable_passwd = no &&
+       test $ol_enable_perl = no &&
+       test $ol_enable_relay = no &&
+       test $ol_enable_shell = no &&
+       test $ol_enable_sql = no ; then
+       dnl no slapd backend
+
+       if test $ol_enable_slapd = yes ; then
+               AC_MSG_ERROR([slapd requires a backend])
+       else
+               AC_MSG_WARN([skipping slapd, no backend specified])
+               ol_enable_slapd=no
        fi
 fi
 
-if test $ol_enable_meta = yes -a $ol_enable_ldap = no ; then
+if test $ol_enable_meta/$ol_enable_ldap = yes/no ; then
        AC_MSG_ERROR([--enable-meta requires --enable-ldap])
 fi
 
@@ -584,7 +531,7 @@ AC_MSG_RESULT(done)
 dnl ----------------------------------------------------------------
 dnl Initialize vars
 LDAP_LIBS=
-LDBM_LIBS=
+BDB_LIBS=
 LTHREAD_LIBS=
 LUTIL_LIBS=
 
@@ -603,7 +550,6 @@ BUILD_BDB=no
 BUILD_DNSSRV=no
 BUILD_HDB=no
 BUILD_LDAP=no
-BUILD_LDBM=no
 BUILD_META=no
 BUILD_MONITOR=no
 BUILD_NULL=no
@@ -614,16 +560,19 @@ BUILD_SHELL=no
 BUILD_SQL=no
 
 BUILD_ACCESSLOG=no
+BUILD_AUDITLOG=no
+BUILD_CONSTRAINT=no
+BUILD_DDS=no
 BUILD_DENYOP=no
 BUILD_DYNGROUP=no
 BUILD_DYNLIST=no
-BUILD_GLUE=no
 BUILD_LASTMOD=no
 BUILD_PPOLICY=no
 BUILD_PROXYCACHE=no
 BUILD_REFINT=no
 BUILD_RETCODE=no
 BUILD_RWM=no
+BUILD_SEQMOD=no
 BUILD_SYNCPROV=no
 BUILD_TRANSLUCENT=no
 BUILD_UNIQUE=no
@@ -655,6 +604,7 @@ SLAPI_LIBS=
 LIBSLAPI=
 LIBSLAPITOOLS=
 AUTH_LIBS=
+ICU_LIBS=
 
 SLAPD_SLP_LIBS=
 SLAPD_GMP_LIBS=
@@ -704,10 +654,11 @@ if test $ol_aix_threads = yes ; then
                fi
        fi
 
-       if test "${CC}" = "cc_r" -o "${CC}" = "xlc_r" ; then
+       case ${CC} in cc_r | xlc_r)
                ol_with_threads=posix
                ol_cv_pthread_create=yes
-       fi
+               ;;
+       esac
 fi
 
 if test -z "${CC}"; then
@@ -856,11 +807,11 @@ AC_HEADER_DIRENT
 AC_HEADER_SYS_WAIT
 AC_HEADER_TIOCGWINSZ
 
-AC_CHECK_HEADERS(              \
+AC_CHECK_HEADERS(      \
        arpa/inet.h             \
-       arpa/nameser.h          \
+       arpa/nameser.h  \
        assert.h                \
-       bits/types.h            \
+       bits/types.h    \
        conio.h                 \
        crypt.h                 \
        direct.h                \
@@ -873,7 +824,6 @@ AC_CHECK_HEADERS(           \
        libutil.h               \
        limits.h                \
        locale.h                \
-       netinet/tcp.h           \
        malloc.h                \
        memory.h                \
        psap.h                  \
@@ -890,11 +840,11 @@ AC_CHECK_HEADERS(         \
        sys/errno.h             \
        sys/ioctl.h             \
        sys/param.h             \
-       sys/resource.h          \
-       sys/select.h            \
-       sys/socket.h            \
+       sys/resource.h  \
+       sys/select.h    \
+       sys/socket.h    \
        sys/stat.h              \
-       sys/syslog.h            \
+       sys/syslog.h    \
        sys/time.h              \
        sys/types.h             \
        sys/uio.h               \
@@ -907,11 +857,16 @@ AC_CHECK_HEADERS(         \
 )
 
 AC_CHECK_HEADERS( resolv.h, [], [],
-[$ac_includes_default]
+[$ac_includes_default
 #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>
@@ -1082,7 +1037,7 @@ if test "$ol_cv_lib_resolver" != no ; then
        fi
 fi
 
-if test "$ol_enable_dnssrv" = yes -o "$ol_enable_dnssrv" = mod ; then
+if test "$ol_enable_dnssrv" = yes || test "$ol_enable_dnssrv" = mod ; then
        if test "$ol_link_dnssrv" = no ; then
                AC_MSG_ERROR([DNSSRV requires res_query()])
        fi
@@ -1098,7 +1053,7 @@ dnl PF_LOCAL may use getaddrinfo in available
 AC_CHECK_FUNCS( getaddrinfo getnameinfo gai_strerror inet_ntop )
 
 ol_link_ipv6=no
-if test $ac_cv_func_getaddrinfo = no -o $ac_cv_func_inet_ntop = no ; then
+if test $ac_cv_func_getaddrinfo = no || test $ac_cv_func_inet_ntop = no ; then
        if test $ol_enable_ipv6 = yes ; then
                AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
        fi
@@ -1120,14 +1075,14 @@ elif test $ol_enable_ipv6 != no ; then
                        struct sockaddr_storage ss;
 ]])],[ol_cv_struct_sockaddr_storage=yes],[ol_cv_struct_sockaddr_storage=no])])
 
-       if test $ol_cv_inet6_addrstrlen = yes \
-               -a $ol_cv_struct_sockaddr_storage = yes ; then
+       if test $ol_cv_inet6_addrstrlen = yes &&
+          test $ol_cv_struct_sockaddr_storage = yes ; then
                ol_link_ipv6=yes
-       elif test $ol_enable_ipv6 = yes \
-                       -a $ol_cv_inet6_addrstrlen = no ; then
+       elif test $ol_enable_ipv6 = yes &&
+            test $ol_cv_inet6_addrstrlen = no ; then
                AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
-       elif test $ol_enable_ipv6 = yes \
-                       -a $ol_cv_struct_sockaddr_storage = no ; then
+       elif test $ol_enable_ipv6 = yes &&
+            test $ol_cv_struct_sockaddr_storage = no ; then
                AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage])
        fi
 fi
@@ -1148,9 +1103,7 @@ ol_link_kbind=no
 ol_link_krb5=no
 ol_link_krb4=no
 
-if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
-       -o $ol_with_kerberos = k5 -o $ol_with_kerberos = k5only \
-       -o $ol_with_kerberos = k425 ; then
+case $ol_with_kerberos in yes | auto | k5 | k5only | k425)
 
        AC_CHECK_HEADERS(krb5.h)
 
@@ -1208,10 +1161,13 @@ if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
                fi
 
        fi
-fi
+       ;;
+esac
 
-if test $ol_link_krb5 = yes -a \( $ol_with_kerberos = yes -o \
-       $ol_with_kerberos = auto -o $ol_with_kerberos = k425 \) ; then
+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)
 
@@ -1270,8 +1226,7 @@ if test $ol_link_krb5 = yes ; then
        ol_with_kerberos=found
 fi
 
-if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
-       -o $ol_with_kerberos = k4 -o $ol_with_kerberos = kth ; then
+case $ol_with_kerberos in yes | auto | k4 | kth)
 
        AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
 
@@ -1293,91 +1248,83 @@ if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
                        fi
                fi
        fi
-fi
+       ;;
+esac
 
-if test $ol_link_krb4 = yes -a $ol_enable_kbind != no ; then
+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 -o $ol_link_krb5 = yes ; then
+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 -a $ol_with_kerberos != no ; then
+elif test $ol_with_kerberos != auto && test $ol_with_kerberos != no ; then
        AC_MSG_ERROR([Kerberos detection failed])
 fi
 
 dnl ----------------------------------------------------------------
 dnl TLS/SSL
        
+if test $ol_with_tls = yes ; then
+       ol_with_tls=auto
+fi
+
 ol_link_tls=no
-if test $ol_with_tls != no ; then
-       AC_CHECK_HEADERS(openssl/ssl.h ssl.h)
-
-       if test $ac_cv_header_openssl_ssl_h = yes \
-               -o $ac_cv_header_ssl_h = yes ; then
-               AC_CHECK_LIB(ssl, SSLeay_add_ssl_algorithms, 
-                       [have_ssleay=yes
-                       need_rsaref=no],
-                       [have_ssleay=no],
+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_LIB(ssl, SSL_library_init,
+                       [have_openssl=yes
+                       need_rsaref=no], [have_openssl=no],
                        [-lcrypto])
-                       
-               if test $have_ssleay = no ; then
-                       AC_CHECK_LIB(ssl, SSL_library_init,
-                               [have_ssleay=yes
-                               need_rsaref=no], [have_ssleay=no],
-                               [-lcrypto])
-               fi
 
-               if test $have_ssleay = no ; then
+               if test $have_openssl = no ; then
                        AC_CHECK_LIB(ssl, ssl3_accept, 
-                               [have_ssleay=yes
-                               need_rsaref=yes], [have_ssleay=no],
+                               [have_openssl=yes
+                               need_rsaref=yes], [have_openssl=no],
                                [-lcrypto -lRSAglue -lrsaref])
                fi
 
-               if test $have_ssleay = yes ; then
-                       ol_with_tls=found
+               if test $have_openssl = yes ; then
+                       ol_with_tls=openssl
                        ol_link_tls=yes
 
-                       AC_DEFINE(HAVE_SSLEAY, 1, 
-                               [define if you have SSLeay or OpenSSL])
+                       AC_DEFINE(HAVE_OPENSSL, 1, 
+                               [define if you have OpenSSL])
 
                        if test $need_rsaref = yes; then
                                AC_DEFINE(HAVE_RSAREF, 1, 
-                                       [define if you have RSAref])
+                                       [define if OpenSSL needs RSAref])
 
                                TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
                        else
                                TLS_LIBS="-lssl -lcrypto"
                        fi
-               fi
-               OL_SSL_COMPAT
-               if test $ol_cv_ssl_crl_compat = no ; then
-                       ol_link_ssl=no
-                else 
-                       AC_DEFINE(HAVE_OPENSSL_CRL, 1, 
-                               [define if you have OpenSSL with CRL checking capability])
+
+                       OL_SSL_COMPAT
+                       if test $ol_cv_ssl_crl_compat = yes ; then
+                               AC_DEFINE(HAVE_OPENSSL_CRL, 1, 
+                                       [define if you have OpenSSL with CRL checking capability])
+                       fi
                fi
        fi
-
-else
-       AC_MSG_WARN([TLS data protection not supported!])
 fi
 
 WITH_TLS=no
 if test $ol_link_tls = yes ; then
        AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
        WITH_TLS=yes
-
 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])
+else
+       AC_MSG_WARN([TLS data protection not supported!])
 fi
 
 dnl ----------------------------------------------------------------
@@ -1394,8 +1341,7 @@ dnl ----------------------------------------------------------------
 dnl Threads?
 ol_link_threads=no
 
-if test $ol_with_threads = auto -o $ol_with_threads = yes \
-       -o $ol_with_threads = nt ; then
+case $ol_with_threads in auto | yes | nt)
 
        OL_NT_THREADS
 
@@ -1411,10 +1357,10 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
        if test $ol_with_threads = nt ; then
                AC_MSG_ERROR([could not locate NT Threads])
        fi
-fi
+       ;;
+esac
 
-if test $ol_with_threads = auto -o $ol_with_threads = yes \
-       -o $ol_with_threads = posix ; then
+case $ol_with_threads in auto | yes | posix)
 
        AC_CHECK_HEADERS(pthread.h)
 
@@ -1530,9 +1476,9 @@ dnl                       [ol_cv_pthread_lpthread_lexc])
                        dnl check for both, and thr_yield for Solaris
                        AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
 
-                       if test $ac_cv_func_sched_yield = no -a \
-                               $ac_cv_func_pthread_yield = no -a \
-                               $ac_cv_func_thr_yield = no ; then
+                       if test $ac_cv_func_sched_yield = no &&
+                          test $ac_cv_func_pthread_yield = no &&
+                          test $ac_cv_func_thr_yield = no ; then
                                dnl Digital UNIX has sched_yield() in -lrt
                                AC_CHECK_LIB(rt, sched_yield,
                                        [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
@@ -1541,9 +1487,9 @@ dnl                       [ol_cv_pthread_lpthread_lexc])
                                        ac_cv_func_sched_yield=yes],
                                        [ac_cv_func_sched_yield=no])
                        fi
-                       if test $ac_cv_func_sched_yield = no -a \
-                               $ac_cv_func_pthread_yield = no -a \
-                               "$ac_cv_func_thr_yield" = no ; then
+                       if test $ac_cv_func_sched_yield = no &&
+                          test $ac_cv_func_pthread_yield = no &&
+                          test "$ac_cv_func_thr_yield" = no ; then
                                AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
                        fi
 
@@ -1597,6 +1543,19 @@ dnl                      [ol_cv_pthread_lpthread_lexc])
                                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],
@@ -1696,10 +1655,10 @@ int main(argc, argv)
        if test $ol_with_threads = posix ; then
                AC_MSG_ERROR([could not locate POSIX Threads])
        fi
-fi
+       ;;
+esac
 
-if test $ol_with_threads = auto -o $ol_with_threads = yes \
-       -o $ol_with_threads = mach ; then
+case $ol_with_threads in auto | yes | mach)
 
        dnl check for Mach CThreads
        AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
@@ -1761,10 +1720,10 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
        elif test $ol_with_threads = found ; then
                AC_MSG_ERROR([could not link with Mach CThreads])
        fi
-fi
+       ;;
+esac
 
-if test $ol_with_threads = auto -o $ol_with_threads = yes \
-       -o $ol_with_threads = pth ; then
+case $ol_with_threads in auto | yes | pth)
 
        AC_CHECK_HEADERS(pth.h)
 
@@ -1782,14 +1741,15 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
                        fi
                fi
        fi
-fi
+       ;;
+esac
 
-if test $ol_with_threads = auto -o $ol_with_threads = yes \
-       -o $ol_with_threads = lwp ; then
+case $ol_with_threads in auto | yes | lwp)
 
        dnl check for SunOS5 LWP
        AC_CHECK_HEADERS(thread.h synch.h)
-       if test $ac_cv_header_thread_h = yes -a $ac_cv_header_synch_h = yes ; then
+       if test $ac_cv_header_thread_h = yes &&
+          test $ac_cv_header_synch_h = yes ; then
                AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
 
                if test $have_thr = yes ; then
@@ -1826,7 +1786,8 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
                        fi
                fi
        fi
-fi
+       ;;
+esac
 
 if test $ol_with_yielding_select = yes ; then
        AC_DEFINE(HAVE_YIELDING_SELECT,1,
@@ -1848,7 +1809,7 @@ if test $ol_with_threads = manual ; then
        AC_CHECK_HEADERS(thread.h synch.h)
 fi
 
-if test $ol_link_threads != no -a $ol_link_threads != nt ; then  
+if test $ol_link_threads != no && test $ol_link_threads != nt ; then
        dnl needed to get reentrant/threadsafe versions
        dnl
        AC_DEFINE(REENTRANT,1)
@@ -1873,8 +1834,8 @@ if test $ol_link_threads != no -a $ol_link_threads != nt ; then
                AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netdb.h>]], [[h_errno = 0;]])],[ol_cv_h_errno_thread_specific=yes],[ol_cv_h_errno_thread_specific=no])
        ])
 
-       if test $ol_cv_errno_thread_specific != yes \
-               -o $ol_cv_h_errno_thread_specific != yes ; then
+       if test $ol_cv_errno_thread_specific != yes ||
+          test $ol_cv_h_errno_thread_specific != yes ; then
                LIBS="$LTHREAD_LIBS $LIBS"
                LTHREAD_LIBS=""
        fi
@@ -1943,6 +1904,9 @@ if test $ol_link_threads = no ; then
        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
@@ -1977,109 +1941,38 @@ else
 fi
 
 dnl ----------------------------------------------------------------
-ol_link_ldbm=no 
-
-if test $ol_enable_ldbm_api = auto \
-       -o $ol_enable_ldbm_api = berkeley \
-       -o $ol_enable_ldbm_api = bcompat ; then
-
-       if test $ol_enable_ldbm_api = bcompat; then \
-               OL_BERKELEY_COMPAT_DB
-       else
-               OL_BERKELEY_DB
-       fi
+ol_link_bdb=no 
 
-       if test $ol_cv_berkeley_db != no ; then
-               AC_DEFINE(HAVE_BERKELEY_DB,1,
-                       [define this if Berkeley DB is available])
+if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
+       OL_BERKELEY_DB
 
-               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
-fi
-
-if test $ol_enable_bdb != no -o $ol_enable_hdb != no; then
-       if test $ol_link_ldbm != berkeley ; then
+       if test $ol_cv_berkeley_db = no ; 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 -a $ol_enable_ldbm_type = btree ; then
-       AC_MSG_WARN([Could not find LDBM with BTREE support])
-       ol_enable_ldbm_api=none
-fi
 
-if test $ol_enable_ldbm_api = auto -o $ol_enable_ldbm_api = mdbm ; then
-       OL_MDBM
+       AC_DEFINE(HAVE_BERKELEY_DB,1,
+               [define this if Berkeley DB is available])
 
-       if test $ol_cv_mdbm = yes ; then
-               ol_link_ldbm=mdbm
-               ol_enable_ldbm_api=mdbm
-               if test $ol_cv_lib_mdbm != yes ; then
-                       LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_mdbm"
-               fi
+       dnl $ol_cv_lib_db should be yes or -ldb
+       dnl (it could be no, but that would be an error
+       if test $ol_cv_lib_db != yes ; then
+               BDB_LIBS="$BDB_LIBS $ol_cv_lib_db"
        fi
-fi
-
-if test $ol_enable_ldbm_api = auto -o $ol_enable_ldbm_api = gdbm ; then
-       OL_GDBM
 
-       if test $ol_cv_gdbm = yes ; then
-               ol_link_ldbm=gdbm
-               ol_enable_ldbm_api=gdbm
+       OL_BDB_COMPAT
 
-               if test $ol_cv_lib_gdbm != yes ; then
-                       LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
-               fi
-       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
-
-               if test $ol_cv_lib_ndbm != yes ; then
-                       LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
-               fi
+       if test $ol_cv_bdb_compat != yes ; then
+               AC_MSG_ERROR([BDB/HDB: BerkeleyDB version incompatible])
        fi
-fi
 
-if test $ol_link_ldbm = no -a $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 -o \
-       $ol_enable_hdb = yes -o \
-       $ol_enable_ldbm = yes ; then
-       SLAPD_LIBS="$SLAPD_LIBS \$(LDBM_LIBS)"
+       ol_link_bdb=yes 
 fi
 
 dnl ----------------------------------------------------------------
 
-if test $ol_enable_dynamic = yes -a $enable_shared = yes ; then
+if test $ol_enable_dynamic = yes && test $enable_shared = yes ; then
        BUILD_LIBS_DYNAMIC=shared
        AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
        LTSTATIC=""
@@ -2137,7 +2030,7 @@ fi
 dnl ----------------------------------------------------------------
 if test $ol_enable_syslog != no ; then
        AC_CHECK_FUNC(openlog)
-       if test $ac_cv_func_openlog = no -a $ol_enable_syslog = yes; then
+       if test $ac_cv_func_openlog = no && test $ol_enable_syslog = yes; then
                AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
        fi
        ol_enable_syslog=$ac_cv_func_openlog
@@ -2174,6 +2067,14 @@ if test $ol_enable_sql != no ; then
        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
@@ -2184,7 +2085,8 @@ ol_link_spasswd=no
 if test $ol_with_cyrus_sasl != no ; then
        AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
 
-       if test $ac_cv_header_sasl_sasl_h = yes -o $ac_cv_header_sasl_h = yes; then
+       if test $ac_cv_header_sasl_sasl_h = yes ||
+          test $ac_cv_header_sasl_h = yes; then
                AC_CHECK_LIB(sasl2, sasl_client_init,
                        [ol_link_sasl="-lsasl2"],
                        [AC_CHECK_LIB(sasl, sasl_client_init,
@@ -2232,7 +2134,7 @@ fi
 
 dnl ----------------------------------------------------------------
 dnl Check for entropy sources
-if test $cross_compiling != yes -a "$ac_cv_mingw32" != yes ; then
+if test $cross_compiling != yes && test "$ac_cv_mingw32" != yes ; then
        dev=no
        if test -r /dev/urandom ; then
                dev="/dev/urandom";
@@ -2313,7 +2215,6 @@ if test $ol_enable_proctitle != no ; then
 fi
 
 dnl ----------------------------------------------------------------
-dnl Check for SLPv2 Compliant API Library
 if test $ol_enable_slp != no ; then
        AC_CHECK_HEADERS( slp.h )
 
@@ -2329,99 +2230,6 @@ if test $ol_enable_slp != no ; then
        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" \
-                               -o "$ac_cv_header_bn_h" = "yes" ; then
-                       ol_have_bn_h=yes
-               fi
-
-               if test "$ac_cv_header_openssl_crypto_h" = "yes" \
-                               -o "$ac_cv_header_crypto_h" = "yes" ; then
-                       ol_have_crypto_h=yes
-               fi
-
-               if test "$ol_have_bn_h" = "yes" \
-                               -a "$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 SSLeay or 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.
 
@@ -2477,6 +2285,7 @@ fi
 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
@@ -2491,6 +2300,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])
 
+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 = 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
@@ -2541,9 +2394,11 @@ AC_CHECK_FUNCS(          \
        getspnam                \
        gettimeofday    \
        initgroups              \
+       inet_ntoa_b             \
        lockf                   \
        memcpy                  \
        memmove                 \
+       memrchr                 \
        mkstemp                 \
        mktemp                  \
        pipe                    \
@@ -2569,7 +2424,6 @@ AC_CHECK_FUNCS(           \
        strtoll                 \
        strspn                  \
        sysconf                 \
-       usleep                  \
        waitpid                 \
        wait4                   \
        write                   \
@@ -2584,22 +2438,28 @@ AC_REPLACE_FUNCS(getopt getpeereid)
 if test "$ac_cv_func_getopt" != yes; then
        LIBSRCS="$LIBSRCS getopt.c"
 fi
+
 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])
-       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])
+               fi
        fi
        LIBSRCS="$LIBSRCS getpeereid.c"
 fi
-if test "$ac_cv_func_snprintf" != yes -o "$ac_cv_func_vsnprintf" != yes; then
+
+if test "$ac_cv_func_snprintf" != yes ||
+   test "$ac_cv_func_vsnprintf" != yes; then
        if test "$ac_cv_func_snprintf" != yes; then
                AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
        fi
@@ -2630,6 +2490,10 @@ if test "$ol_enable_slapi" != 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
@@ -2664,18 +2528,29 @@ 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
-       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
+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])
@@ -2738,19 +2613,6 @@ if test "$ol_enable_ldap" != no ; then
        AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
 fi
 
-if test "$ol_link_ldbm" != no -a $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
@@ -2871,6 +2733,42 @@ if test "$ol_enable_accesslog" != no ; then
        AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay])
 fi
 
+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_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_denyop" != no ; then
        BUILD_DENYOP=$ol_enable_denyop
        if test "$ol_enable_denyop" = mod ; then
@@ -2880,7 +2778,7 @@ if test "$ol_enable_denyop" != no ; then
                MFLAG=SLAPD_MOD_STATIC
                SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS denyop.o"
        fi
-       AC_DEFINE_UNQUOTED(SLAPD_OVER_DENYOP,$MFLAG,[define for Dynamic Group overlay])
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_DENYOP,$MFLAG,[define for Deny Operation overlay])
 fi
 
 if test "$ol_enable_dyngroup" != no ; then
@@ -2907,18 +2805,6 @@ if test "$ol_enable_dynlist" != no ; then
        AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNLIST,$MFLAG,[define for Dynamic List overlay])
 fi
 
-if test "$ol_enable_glue" != no ; then
-       BUILD_GLUE=$ol_enable_glue
-       if test "$ol_enable_glue" = mod ; then
-               MFLAG=SLAPD_MOD_DYNAMIC
-               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS glue.la"
-       else
-               MFLAG=SLAPD_MOD_STATIC
-               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS glue.o"
-       fi
-       AC_DEFINE_UNQUOTED(SLAPD_OVER_GLUE,$MFLAG,[define for Backend Glue overlay])
-fi
-
 if test "$ol_enable_lastmod" != no ; then
        BUILD_LASTMOD=$ol_enable_lastmod
        if test "$ol_enable_lastmod" = mod ; then
@@ -2992,6 +2878,18 @@ if test "$ol_enable_rwm" != no ; then
        AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
 fi
 
+if test "$ol_enable_seqmod" != no ; then
+       BUILD_SEQMOD=$ol_enable_seqmod
+       if test "$ol_enable_seqmod" = mod ; then
+               MFLAG=SLAPD_MOD_DYNAMIC
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS seqmod.la"
+       else
+               MFLAG=SLAPD_MOD_STATIC
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS seqmod.o"
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_SEQMOD,$MFLAG,[define for Sequential Modify overlay])
+fi
+
 if test "$ol_enable_syncprov" != no ; then
        BUILD_SYNCPROV=$ol_enable_syncprov
        if test "$ol_enable_syncprov" = mod ; then
@@ -3040,8 +2938,9 @@ if test "$ol_enable_valsort" != no ; then
        AC_DEFINE_UNQUOTED(SLAPD_OVER_VALSORT,$MFLAG,[define for Value Sorting overlay])
 fi
 
-if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \
-       $BUILD_SLAPD = yes ; then
+if test "$ol_enable_slurpd" != no &&
+   test "$ol_link_threads" != no &&
+   test $BUILD_SLAPD = yes ; then
        BUILD_SLURPD=yes
 fi
 
@@ -3076,6 +2975,7 @@ AC_SUBST(WITH_SASL)
 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)
@@ -3087,7 +2987,6 @@ dnl backends
   AC_SUBST(BUILD_DNSSRV)
   AC_SUBST(BUILD_HDB)
   AC_SUBST(BUILD_LDAP)
-  AC_SUBST(BUILD_LDBM)
   AC_SUBST(BUILD_META)
   AC_SUBST(BUILD_MONITOR)
   AC_SUBST(BUILD_NULL)
@@ -3098,16 +2997,19 @@ dnl backends
   AC_SUBST(BUILD_SQL)
 dnl overlays
   AC_SUBST(BUILD_ACCESSLOG)
+  AC_SUBST(BUILD_AUDITLOG)
+  AC_SUBST(BUILD_CONSTRAINT)
+  AC_SUBST(BUILD_DDS)
   AC_SUBST(BUILD_DENYOP)
   AC_SUBST(BUILD_DYNGROUP)
   AC_SUBST(BUILD_DYNLIST)
-  AC_SUBST(BUILD_GLUE)
   AC_SUBST(BUILD_LASTMOD)
   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_SYNCPROV)
   AC_SUBST(BUILD_TRANSLUCENT)
   AC_SUBST(BUILD_UNIQUE)
@@ -3117,7 +3019,7 @@ AC_SUBST(BUILD_SLURPD)
 AC_SUBST(LDAP_LIBS)
 AC_SUBST(SLAPD_LIBS)
 AC_SUBST(SLURPD_LIBS)
-AC_SUBST(LDBM_LIBS)
+AC_SUBST(BDB_LIBS)
 AC_SUBST(LTHREAD_LIBS)
 AC_SUBST(LUTIL_LIBS)
 AC_SUBST(WRAP_LIBS)
@@ -3144,6 +3046,7 @@ AC_SUBST(SLAPI_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)
@@ -3184,7 +3087,6 @@ AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.mk]
 [servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk]
 [servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk]
 [servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk]
-[servers/slapd/back-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]
@@ -3211,7 +3113,7 @@ rm -f $BACKENDSC
 cat > $BACKENDSC << ENDX
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2005 The OpenLDAP Foundation.
+ * Copyright 1998-2006 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -3256,7 +3158,63 @@ ENDX
 /* 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-2006 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
+
+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
 
 echo Please run \"make depend\" to build dependencies
-]],[[STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"]])
+]],[[
+STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"
+STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS"
+]])
 AC_OUTPUT