]> git.sur5r.net Git - openldap/blobdiff - configure.in
fix acl_dn_pat bervalization
[openldap] / configure.in
index fed1111ce4900d318bc80e56360d092f28a27870..b6ec40284af1cef822873bc17c566715bfd2eb96 100644 (file)
@@ -1,11 +1,12 @@
 dnl $OpenLDAP$
 dnl
 dnl $OpenLDAP$
 dnl
-dnl Copyright 1998-2000 The OpenLDAP Foundation.  All Rights Reserved.
+dnl Copyright 1998-2001 The OpenLDAP Foundation.  All Rights Reserved.
 dnl 
 dnl 
-dnl Redistribution and use in source and binary forms are permitted only
-dnl as authorized by the OpenLDAP Public License.  A copy of this
-dnl license is available at http://www.OpenLDAP.org/license.html or
-dnl in file LICENSE in the top-level directory of the distribution.
+dnl Redistribution and use in source and binary forms, with or without
+dnl modification, are permitted only as authorized by the OpenLDAP
+dnl Public License.  A copy of this license is available at
+dnl http://www.OpenLDAP.org/license.html or in file LICENSE in the
+dnl top-level directory of the distribution.
 dnl
 dnl ----------------------------------------------------------------
 dnl Redefine AC_INIT_BINSH to provide RCS IDs and copyright notice
 dnl
 dnl ----------------------------------------------------------------
 dnl Redefine AC_INIT_BINSH to provide RCS IDs and copyright notice
@@ -15,14 +16,15 @@ define([AC_INIT_BINSH],
 # $]OpenLDAP[$
 # from] translit([$OpenLDAP$], $")] [
 
 # $]OpenLDAP[$
 # from] translit([$OpenLDAP$], $")] [
 
-# Copyright 1998-2000 The OpenLDAP Foundation.  All Rights Reserved.
+# Copyright 1998-2001 The OpenLDAP Foundation.  All Rights Reserved.
 # 
 # 
-# Redistribution and use in source and binary forms are permitted only
-# as authorized by the OpenLDAP Public License.  A copy of this
-# license is available at http://www.OpenLDAP.org/license.html or
-# in file LICENSE in the top-level directory of the distribution.
+# 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 at
+# http://www.OpenLDAP.org/license.html or in file LICENSE in the
+# top-level directory of the distribution.
 
 
-echo "Copyright 1998-2000 The OpenLDAP Foundation,  All Rights Reserved."
+echo "Copyright 1998-2001 The OpenLDAP Foundation,  All Rights Reserved."
 echo "Restrictions apply, see COPYRIGHT and LICENSE files."
 ])dnl
 dnl ----------------------------------------------------------------
 echo "Restrictions apply, see COPYRIGHT and LICENSE files."
 ])dnl
 dnl ----------------------------------------------------------------
@@ -31,36 +33,44 @@ define([AC_CACHE_LOAD], )dnl
 define([AC_CACHE_SAVE], )dnl
 dnl ================================================================
 dnl Configure.in for OpenLDAP
 define([AC_CACHE_SAVE], )dnl
 dnl ================================================================
 dnl Configure.in for OpenLDAP
-AC_INIT(build/version)dnl
+AC_INIT(build/version.sh)dnl
 
 
-# set unset (borrowed from autoconf 2.14a)
-if (unset FOO) >/dev/null 2>&1; then
+# set unset (borrowed from autoconf 2.49c)
+if (OL_FOO=OL_FOO; unset OL_FOO) >/dev/null 2>&1; then
   ol_unset=unset
 else
   ol_unset=false
 fi
 # unset CDPATH
   ol_unset=unset
 else
   ol_unset=false
 fi
 # unset CDPATH
-$ol_unset CDPATH || test "${CDPATH+set}" != set || CDPATH=: && export CDPATH
+$ol_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
 
 AC_CONFIG_AUX_DIR(build)dnl
 
 
 AC_CONFIG_AUX_DIR(build)dnl
 
-OL_VERSION=`cat $ac_aux_dir/version`
-if test -z "$OL_VERSION"; then
+eval `$ac_aux_dir/version.sh`
+if test -z "$OL_STRING"; then
        AC_MSG_ERROR([could not determine version])
 fi
 
        AC_MSG_ERROR([could not determine version])
 fi
 
-echo "Configuring OpenLDAP $OL_VERSION ..."
+echo "Configuring $OL_STRING ..."
 
 dnl Determine host platform
 dnl            we try not to use this for much
 AC_CANONICAL_SYSTEM
 
 
 dnl Determine host platform
 dnl            we try not to use this for much
 AC_CANONICAL_SYSTEM
 
-AM_INIT_AUTOMAKE(OpenLDAP,[$OL_VERSION], [no defines])dnl
-AC_SUBST(PACKAGE)
-AC_SUBST(VERSION)
+AM_INIT_AUTOMAKE([$OL_PACKAGE],[$OL_VERSION], [no defines])dnl
+AC_SUBST(PACKAGE)dnl
+AC_SUBST(VERSION)dnl
 AC_DEFINE_UNQUOTED(OPENLDAP_PACKAGE,"$PACKAGE",Package)
 AC_DEFINE_UNQUOTED(OPENLDAP_VERSION,"$VERSION",Version)
 
 AC_DEFINE_UNQUOTED(OPENLDAP_PACKAGE,"$PACKAGE",Package)
 AC_DEFINE_UNQUOTED(OPENLDAP_VERSION,"$VERSION",Version)
 
+AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION,$OL_API_INC,Version)
+AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MAJOR,$OL_MAJOR,Major)
+AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MINOR,$OL_MINOR,Minor)
+AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_PATCH,$OL_PATCH,Patch)
+
+OPENLDAP_LIBVERSION=$OL_API_LIB
+AC_SUBST(OPENLDAP_LIBVERSION)dnl
+
 dnl We use autoconf features new to 2.13.
 dnl aclocal.m4 should be built using aclocal from automake 1.4
 dnl libtool 1.3.3 should be installed.
 dnl We use autoconf features new to 2.13.
 dnl aclocal.m4 should be built using aclocal from automake 1.4
 dnl libtool 1.3.3 should be installed.
@@ -81,7 +91,7 @@ dnl --with-subdir
 ldap_subdir="/openldap"
 
 AC_ARG_WITH(subdir,
 ldap_subdir="/openldap"
 
 AC_ARG_WITH(subdir,
-[  --with-subdir=DIR change default subdirectory used for installs],
+[  --with-subdir=DIR       change default subdirectory used for installs],
 [case "$withval" in
        no) ldap_subdir=""
                ;;
 [case "$withval" in
        no) ldap_subdir=""
                ;;
@@ -103,12 +113,12 @@ dnl General "enable" options
 OL_ARG_ENABLE(debug,[  --enable-debug    enable debugging], yes)dnl
 OL_ARG_ENABLE(syslog,[  --enable-syslog          enable syslog support], auto)dnl
 OL_ARG_ENABLE(proctitle,[  --enable-proctitle    enable proctitle support], yes)dnl
 OL_ARG_ENABLE(debug,[  --enable-debug    enable debugging], yes)dnl
 OL_ARG_ENABLE(syslog,[  --enable-syslog          enable syslog support], auto)dnl
 OL_ARG_ENABLE(proctitle,[  --enable-proctitle    enable proctitle support], yes)dnl
-OL_ARG_ENABLE(cache,[  --enable-cache    enable caching], yes)dnl
-OL_ARG_ENABLE(referrals,[  --enable-referrals    enable V2 Referrals extension], yes)dnl
-OL_ARG_ENABLE(kbind,[  --enable-kbind    enable V2 Kerberos IV bind], auto)dnl
-OL_ARG_ENABLE(cldap,[  --enable-cldap    enable connectionless ldap], no)dnl
+OL_ARG_ENABLE(cache,[  --enable-cache    enable caching (experimental)], no)dnl
+OL_ARG_ENABLE(referrals,[  --enable-referrals    enable LDAPv2+ Referrals (experimental)], no)dnl
+OL_ARG_ENABLE(kbind,[  --enable-kbind    enable LDAPv2+ Kerberos IV bind (deprecated)], no)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
 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(rewrite,[  --enable-rewrite        enable rewrite], no)dnl
 OL_ARG_ENABLE(x_compile,[  --enable-x-compile    enable cross compiling],
        no, [yes no])dnl
 
 OL_ARG_ENABLE(x_compile,[  --enable-x-compile    enable cross compiling],
        no, [yes no])dnl
 
@@ -120,7 +130,7 @@ OL_ARG_WITH(cyrus_sasl,[  --with-cyrus-sasl   with Cyrus SASL support],
        auto, [auto yes no] )
 OL_ARG_WITH(fetch,[  --with-fetch                with fetch URL support],
        auto, [auto yes no] )
        auto, [auto yes no] )
 OL_ARG_WITH(fetch,[  --with-fetch                with fetch URL support],
        auto, [auto yes no] )
-OL_ARG_WITH(kerberos,[  --with-kerberos          with support],
+OL_ARG_WITH(kerberos,[  --with-kerberos          with Kerberos support],
        auto, [auto k5 k5only k425 kth k4 afs yes no])
 OL_ARG_WITH(readline,[  --with-readline          with readline support],
        auto, [auto yes no] )
        auto, [auto k5 k5only k425 kth k4 afs yes no])
 OL_ARG_WITH(readline,[  --with-readline          with readline support],
        auto, [auto yes no] )
@@ -139,19 +149,24 @@ dnl ----------------------------------------------------------------
 dnl SLAPD OPTIONS
 AC_ARG_WITH(xxslapdoptions,[SLAPD (Standalone LDAP Daemon) Options:])
 OL_ARG_ENABLE(slapd,[  --enable-slapd    enable building slapd], yes)dnl
 dnl SLAPD OPTIONS
 AC_ARG_WITH(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(cleartext,[    --enable-cleartext          enable cleartext passwords], yes)dnl
 OL_ARG_ENABLE(cleartext,[    --enable-cleartext          enable cleartext passwords], yes)dnl
-OL_ARG_ENABLE(crypt,[    --enable-crypt          enable crypt(3) passwords], auto)dnl
-OL_ARG_ENABLE(kpasswd,[    --enable-kpasswd      enable kerberos password verification], no)dnl
+OL_ARG_ENABLE(crypt,[    --enable-crypt          enable crypt(3) passwords], no)dnl
+OL_ARG_ENABLE(dynamic,[    --enable-dynamic      enable linking built binaries with dynamic libs], no)dnl
+OL_ARG_ENABLE(kpasswd,[    --enable-kpasswd      enable Kerberos password verification], 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(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(multimaster,[    --enable-multimaster  enable multimaster replication], no)dnl
+dnl OL_ARG_ENABLE(multimaster,[    --enable-multimaster  enable multimaster replication], no)dnl
 OL_ARG_ENABLE(phonetic,[    --enable-phonetic    enable phonetic/soundex], no)dnl
 OL_ARG_ENABLE(phonetic,[    --enable-phonetic    enable phonetic/soundex], no)dnl
-OL_ARG_ENABLE(rlookups,[    --enable-rlookups    enable reverse lookups], auto)dnl
-OL_ARG_ENABLE(aci,[    --enable-aci      enable per-object ACIs], no)dnl
+OL_ARG_ENABLE(rlookups,[    --enable-rlookups    enable reverse lookups], no)dnl
+OL_ARG_ENABLE(slp, [    --enable-slp          enable SLPv2 support], no)dnl     
 OL_ARG_ENABLE(wrappers,[    --enable-wrappers    enable tcp wrapper support], no)dnl
 OL_ARG_ENABLE(wrappers,[    --enable-wrappers    enable tcp wrapper support], no)dnl
-OL_ARG_ENABLE(dynamic,[    --enable-dynamic      enable linking built binaries with dynamic libs], no)dnl
 
 dnl SLAPD Backend options
 
 dnl SLAPD Backend options
+OL_ARG_ENABLE(bdb,[    --enable-bdb      enable Berkeley DB backend], no)dnl
+OL_ARG_WITH(bdb_module,[    --with-bdb-module     module type], static,
+       [static dynamic])
 OL_ARG_ENABLE(dnssrv,[    --enable-dnssrv        enable dnssrv backend], no)dnl
 OL_ARG_WITH(dnssrv_module,[    --with-dnssrv-module  module type], static,
        [static dynamic])
 OL_ARG_ENABLE(dnssrv,[    --enable-dnssrv        enable dnssrv backend], no)dnl
 OL_ARG_WITH(dnssrv_module,[    --with-dnssrv-module  module type], static,
        [static dynamic])
@@ -165,6 +180,12 @@ OL_ARG_WITH(ldbm_module,[    --with-ldbm-module      module type], static,
        [static dynamic])
 OL_ARG_WITH(ldbm_type,[    --with-ldbm-type      use LDBM type], auto,
        [auto btree hash])
        [static dynamic])
 OL_ARG_WITH(ldbm_type,[    --with-ldbm-type      use LDBM type], auto,
        [auto btree hash])
+OL_ARG_ENABLE(meta,[    --enable-meta    enable metadirectory backend], no)dnl
+OL_ARG_WITH(meta_module,[    --with-meta-module          module type], static,
+       [static dynamic])
+OL_ARG_ENABLE(monitor,[    --enable-monitor      enable monitor backend], no)dnl
+OL_ARG_WITH(monitor_module,[    --with-monitor-module module type], static,
+       [static dynamic])
 OL_ARG_ENABLE(passwd,[    --enable-passwd        enable passwd backend], no)dnl
 OL_ARG_WITH(passwd_module,[    --with-passwd-module  module type], static,
        [static dynamic])
 OL_ARG_ENABLE(passwd,[    --enable-passwd        enable passwd backend], no)dnl
 OL_ARG_WITH(passwd_module,[    --with-passwd-module  module type], static,
        [static dynamic])
@@ -198,6 +219,9 @@ dnl General "enable" options
 # validate options
 if test $ol_enable_slapd = no ; then
        dnl SLAPD was specificallly disabled
 # validate options
 if test $ol_enable_slapd = no ; then
        dnl SLAPD was specificallly disabled
+       if test $ol_enable_bdb = yes ; then
+               AC_MSG_WARN([slapd disabled, ignoring --enable-bdb argument])
+       fi
        if test $ol_enable_dnssrv = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-dnssrv argument])
        fi
        if test $ol_enable_dnssrv = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-dnssrv argument])
        fi
@@ -207,6 +231,12 @@ if test $ol_enable_slapd = no ; then
        if test $ol_enable_ldbm = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-ldbm argument])
        fi
        if test $ol_enable_ldbm = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-ldbm argument])
        fi
+       if test $ol_enable_meta = yes ; then
+               AC_MSG_WARN([slapd disabled, ignoring --enable-meta argument])
+       fi
+       if test $ol_enable_monitor = yes ; then
+               AC_MSG_WARN([slapd disabled, ignoring --enable-monitor argument])
+       fi
        if test $ol_enable_passwd = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-passwd argument])
        fi
        if test $ol_enable_passwd = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-passwd argument])
        fi
@@ -225,9 +255,9 @@ 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
+dnl    if test $ol_enable_multimaster = yes ; then
+dnl            AC_MSG_WARN([slapd disabled, ignoring --enable-multimaster argument])
+dnl    fi
        if test $ol_enable_wrappers = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
        fi
        if test $ol_enable_wrappers = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
        fi
@@ -246,6 +276,9 @@ if test $ol_enable_slapd = no ; then
        if test $ol_with_ldbm_type != auto ; then
                AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-type argument])
        fi
        if test $ol_with_ldbm_type != auto ; then
                AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-type argument])
        fi
+       if test $ol_with_bdb_module != static ; then
+               AC_MSG_WARN([slapd disabled, ignoring --with-bdb-module argument])
+       fi
        if test $ol_with_dnssrv_module != static ; then
                AC_MSG_WARN([slapd disabled, ignoring --with-dnssrv-module argument])
        fi
        if test $ol_with_dnssrv_module != static ; then
                AC_MSG_WARN([slapd disabled, ignoring --with-dnssrv-module argument])
        fi
@@ -255,6 +288,12 @@ if test $ol_enable_slapd = no ; then
        if test $ol_with_ldbm_module != static ; then
                AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-module argument])
        fi
        if test $ol_with_ldbm_module != static ; then
                AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-module argument])
        fi
+       if test $ol_with_meta_module != static ; then
+               AC_MSG_WARN([slapd disabled, ignoring --with-meta-module argument])
+       fi
+       if test $ol_with_monitor_module != static ; then
+               AC_MSG_WARN([slapd disabled, ignoring --with-monitor-module argument])
+       fi
        if test $ol_with_passwd_module != static ; then
                AC_MSG_WARN([slapd disabled, ignoring --with-passwd-module argument])
        fi
        if test $ol_with_passwd_module != static ; then
                AC_MSG_WARN([slapd disabled, ignoring --with-passwd-module argument])
        fi
@@ -273,11 +312,17 @@ if test $ol_enable_slapd = no ; then
        if test $ol_enable_slurpd = yes ; then
                AC_MSG_ERROR([slurpd requires slapd])
        fi
        if test $ol_enable_slurpd = yes ; then
                AC_MSG_ERROR([slurpd requires slapd])
        fi
+       if test $ol_enable_rewrite = yes ; then
+               AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
+       fi
 
        # force settings to no
 
        # force settings to no
+       ol_enable_bdb=no
        ol_enable_dnssrv=no
        ol_enable_ldap=no
        ol_enable_ldbm=no
        ol_enable_dnssrv=no
        ol_enable_ldap=no
        ol_enable_ldbm=no
+       ol_enable_meta=no
+       ol_enable_monitor=no
        ol_enable_passwd=no
        ol_enable_perl=no
        ol_enable_shell=no
        ol_enable_passwd=no
        ol_enable_perl=no
        ol_enable_shell=no
@@ -285,7 +330,7 @@ if test $ol_enable_slapd = no ; then
        ol_enable_sql=no
 
        ol_enable_modules=no
        ol_enable_sql=no
 
        ol_enable_modules=no
-       ol_enable_multimaster=no
+dnl    ol_enable_multimaster=no
        ol_enable_phonetic=no
        ol_enable_rlookups=no
        ol_enable_aci=no
        ol_enable_phonetic=no
        ol_enable_rlookups=no
        ol_enable_aci=no
@@ -295,9 +340,12 @@ if test $ol_enable_slapd = no ; then
        ol_with_ldbm_api=no
        ol_with_ldbm_type=no
 
        ol_with_ldbm_api=no
        ol_with_ldbm_type=no
 
+       ol_with_bdb_module=static
        ol_with_dnssrv_module=static
        ol_with_ldap_module=static
        ol_with_ldbm_module=static
        ol_with_dnssrv_module=static
        ol_with_ldap_module=static
        ol_with_ldbm_module=static
+       ol_with_meta_module=static
+       ol_with_monitor_module=static
        ol_with_passwd_module=static
        ol_with_perl_module=static
        ol_with_shell_module=static
        ol_with_passwd_module=static
        ol_with_perl_module=static
        ol_with_shell_module=static
@@ -306,6 +354,8 @@ if test $ol_enable_slapd = no ; then
 
        ol_enable_slurpd=no
 
 
        ol_enable_slurpd=no
 
+       ol_enable_rewrite=no
+
 elif test $ol_enable_ldbm = no ; then
        dnl SLAPD without LDBM
 
 elif test $ol_enable_ldbm = no ; then
        dnl SLAPD without LDBM
 
@@ -322,20 +372,33 @@ elif test $ol_enable_ldbm = no ; then
        fi
 
        if test $ol_enable_modules != yes -a \
        fi
 
        if test $ol_enable_modules != yes -a \
+               $ol_enable_bdb = no -a \
                $ol_enable_dnssrv = no -a \
                $ol_enable_ldap = no -a \
                $ol_enable_dnssrv = no -a \
                $ol_enable_ldap = no -a \
+               $ol_enable_meta = no -a \
+               $ol_enable_monitor = no -a \
                $ol_enable_passwd = no -a \
                $ol_enable_perl = no -a \
                $ol_enable_shell = no -a \
                $ol_enable_sql = no -a \
                $ol_enable_tcl = no ; then
                $ol_enable_passwd = no -a \
                $ol_enable_perl = no -a \
                $ol_enable_shell = no -a \
                $ol_enable_sql = no -a \
                $ol_enable_tcl = no ; then
-               AC_MSG_ERROR([slapd requires a 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
 
        ol_with_ldbm_api=no
        ol_with_ldbm_type=no
        ol_with_ldbm_module=static
 
        fi
 
        ol_with_ldbm_api=no
        ol_with_ldbm_type=no
        ol_with_ldbm_module=static
 
+       if test $ol_enable_bdb != no ; then
+               ol_with_ldbm_api=berkeley
+       fi
+
 else
        dnl SLAPD with LDBM
        if test $ol_with_ldbm_api = gdbm -a \
 else
        dnl SLAPD with LDBM
        if test $ol_with_ldbm_api = gdbm -a \
@@ -350,6 +413,21 @@ else
                $ol_with_ldbm_type = btree ; then
                AC_MSG_ERROR([NDBM only supports LDBM type hash])
        fi
                $ol_with_ldbm_type = btree ; then
                AC_MSG_ERROR([NDBM only supports LDBM type hash])
        fi
+
+       if test $ol_enable_bdb = yes ; then
+               if test $ol_with_ldbm_api = auto ; then
+                       ol_with_ldbm_api=berkeley
+               elif test $ol_with_ldbm_api != berkeley ; then
+                       AC_MSG_ERROR([LDBM API not compatible with BDB])
+               fi
+
+       elif test $ol_enable_bdb = auto ; then
+               if test $ol_with_ldbm_api != berkeley \
+                       -o $ol_with_ldbm_api != auto ; then
+                       AC_MSG_WARN([LDBM API not compatible with BDB, disabling BDB])
+                       ol_enable_bdb=no
+               fi
+       fi
 fi
 
 if test $ol_enable_slurpd = yes ; then
 fi
 
 if test $ol_enable_slurpd = yes ; then
@@ -359,14 +437,24 @@ if test $ol_enable_slurpd = yes ; then
        fi
 fi
 
        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 -o $ol_enable_kpasswd = yes ; then
        if test $ol_with_kerberos = no ; then
                AC_MSG_ERROR([options require --with-kerberos])
 if test $ol_enable_kbind = yes -o $ol_enable_kpasswd = 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
        fi
+
 elif test $ol_enable_kbind = no -o $ol_enable_kpasswd = no ; then
 elif test $ol_enable_kbind = no -o $ol_enable_kpasswd = no ; then
-       if test $ol_with_kerberos != auto ; 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]);
                AC_MSG_WARN([Kerberos detection enabled unnecessarily]);
-       else
                ol_with_kerberos=no
        fi
 fi
                ol_with_kerberos=no
        fi
 fi
@@ -375,7 +463,7 @@ if test $ol_enable_spasswd = yes ; then
        if test $ol_with_cyrus_sasl = no ; then
                AC_MSG_ERROR([options require --with-cyrus-sasl])
        fi
        if test $ol_with_cyrus_sasl = no ; then
                AC_MSG_ERROR([options require --with-cyrus-sasl])
        fi
-       ol_link_spasswd=yes
+       ol_with_cyrus_sasl=yes
 fi
 
 AC_MSG_RESULT(done)
 fi
 
 AC_MSG_RESULT(done)
@@ -384,6 +472,7 @@ dnl ----------------------------------------------------------------
 dnl Initialize vars
 LDAP_LIBS=
 LDIF_LIBS=
 dnl Initialize vars
 LDAP_LIBS=
 LDIF_LIBS=
+LDBM_LIB=
 LDBM_LIBS=
 LTHREAD_LIBS=
 LUTIL_LIBS=
 LDBM_LIBS=
 LTHREAD_LIBS=
 LUTIL_LIBS=
@@ -396,18 +485,24 @@ BUILD_SLURPD=no
 
 BUILD_THREAD=no
 
 
 BUILD_THREAD=no
 
+BUILD_BDB=no
 BUILD_DNSSRV=no
 BUILD_LDAP=no
 BUILD_LDBM=no
 BUILD_DNSSRV=no
 BUILD_LDAP=no
 BUILD_LDBM=no
+BUILD_META=no
+BUILD_MONITOR=no
 BUILD_PASSWD=no
 BUILD_PERL=no
 BUILD_SHELL=no
 BUILD_SQL=no
 BUILD_TCL=no
 
 BUILD_PASSWD=no
 BUILD_PERL=no
 BUILD_SHELL=no
 BUILD_SQL=no
 BUILD_TCL=no
 
+BUILD_BDB_DYNAMIC=static
 BUILD_DNSSRV_DYNAMIC=static
 BUILD_LDAP_DYNAMIC=static
 BUILD_LDBM_DYNAMIC=static
 BUILD_DNSSRV_DYNAMIC=static
 BUILD_LDAP_DYNAMIC=static
 BUILD_LDBM_DYNAMIC=static
+BUILD_META_DYNAMIC=static
+BUILD_MONITOR_DYNAMIC=static
 BUILD_PASSWD_DYNAMIC=static
 BUILD_PERL_DYNAMIC=static
 BUILD_SHELL_DYNAMIC=static
 BUILD_PASSWD_DYNAMIC=static
 BUILD_PERL_DYNAMIC=static
 BUILD_SHELL_DYNAMIC=static
@@ -418,6 +513,9 @@ SLAPD_MODULES_LDFLAGS=
 SLAPD_MODULES_CPPFLAGS=
 SLAPD_MODULES_LIST=
 
 SLAPD_MODULES_CPPFLAGS=
 SLAPD_MODULES_LIST=
 
+SLAPD_STATIC_BACKENDS=
+SLAPD_DYNAMIC_BACKENDS=
+
 SLAPD_PERL_LDFLAGS=
 MOD_PERL_LDFLAGS=
 PERL_CPPFLAGS=
 SLAPD_PERL_LDFLAGS=
 MOD_PERL_LDFLAGS=
 PERL_CPPFLAGS=
@@ -436,6 +534,8 @@ TLS_LIBS=
 MODULES_LIBS=
 AUTH_LIBS=
 
 MODULES_LIBS=
 AUTH_LIBS=
 
+SLAPD_SLP_LIBS=
+
 dnl ================================================================
 dnl Checks for programs
 
 dnl ================================================================
 dnl Checks for programs
 
@@ -497,6 +597,8 @@ dnl The default CFLAGS is empty NOT whatever AC_PROG_CC sets.
 dnl (for now, let autoconf sort this out)
 dnl CFLAGS=${CFLAGS-""}
 
 dnl (for now, let autoconf sort this out)
 dnl CFLAGS=${CFLAGS-""}
 
+AC_CHECK_PROGS(AR,ar gar,ar)
+
 AC_LIBTOOL_WIN32_DLL
 AC_LIBTOOL_DLOPEN
 AC_PROG_LIBTOOL
 AC_LIBTOOL_WIN32_DLL
 AC_LIBTOOL_DLOPEN
 AC_PROG_LIBTOOL
@@ -595,28 +697,6 @@ AC_CHECK_LIB(s, afopen, [
 ])
 
 
 ])
 
 
-dnl ----------------------------------------------------------------
-dnl PF_INET6 support requires getaddrinfo
-dnl PF_LOCAL may use getaddrinfo in available
-AC_CHECK_FUNCS( getaddrinfo )
-
-if test $ac_cv_func_getaddrinfo = no ; then
-       if test $ol_enable_ipv6 = yes ; then
-               AC_MSG_ERROR([IPv6 support requires getaddrinfo()])
-       fi
-       ol_enable_ipv6=no
-fi
-
-if test $ol_enable_local != no ; then
-       AC_CHECK_HEADERS( sys/un.h )
-
-       if test $ol_enable_local = auto ; then
-               ol_enable_local=$ac_cv_header_sys_un_h
-       elif test $ac_cv_header_sys_un_h = no ; then
-               AC_MSG_ERROR([AF_LOCAL domain support requires sys/un.h])
-       fi
-fi
-
 dnl ----------------------------------------------------------------
 dnl Check for module support
 ol_link_modules=no
 dnl ----------------------------------------------------------------
 dnl Check for module support
 ol_link_modules=no
@@ -628,8 +708,8 @@ if test $ol_enable_modules != no ; then
        fi
 
        AC_CHECK_LIB(ltdl, lt_dlinit, [
        fi
 
        AC_CHECK_LIB(ltdl, lt_dlinit, [
-           MODULES_LIBS=-lltdl
-           AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
+               MODULES_LIBS=-lltdl
+               AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
        ])
 
        if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then
        ])
 
        if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then
@@ -637,9 +717,12 @@ if test $ol_enable_modules != no ; then
        fi
        ol_link_modules=yes
 else
        fi
        ol_link_modules=yes
 else
+       ol_with_bdb_module=static
        ol_with_dnssrv_module=static
        ol_with_ldap_module=static
        ol_with_ldbm_module=static
        ol_with_dnssrv_module=static
        ol_with_ldap_module=static
        ol_with_ldbm_module=static
+       ol_with_meta_module=static
+       ol_with_monitor_module=static
        ol_with_passwd_module=static
        ol_with_perl_module=static
        ol_with_shell_module=static
        ol_with_passwd_module=static
        ol_with_perl_module=static
        ol_with_shell_module=static
@@ -697,6 +780,7 @@ AC_CHECK_HEADERS(   \
        sys/errno.h             \
        sys/ioctl.h             \
        sys/param.h             \
        sys/errno.h             \
        sys/ioctl.h             \
        sys/param.h             \
+       sys/queue.h             \
        sys/resource.h  \
        sys/select.h    \
        sys/socket.h    \
        sys/resource.h  \
        sys/select.h    \
        sys/socket.h    \
@@ -707,33 +791,55 @@ AC_CHECK_HEADERS( \
        termios.h               \
        unistd.h                \
        winsock.h               \
        termios.h               \
        unistd.h                \
        winsock.h               \
+       winsock2.h              \
 )
 
 
 dnl ----------------------------------------------------------------
 dnl Checks for libraries
 
 )
 
 
 dnl ----------------------------------------------------------------
 dnl Checks for libraries
 
+AC_CHECK_FUNC(dlopen, :, [AC_CHECK_LIB(dl, dlopen)])
+
 dnl HP-UX requires -lV3
 AC_CHECK_LIB(V3, sigset)
 
 dnl HP-UX requires -lV3
 AC_CHECK_LIB(V3, sigset)
 
-dnl Gotta check for winsock manually
-if test $ac_cv_header_winsock_h = yes; then
-       AC_CACHE_CHECK([for winsock], [ol_cv_winsock], 
-       AC_TRY_LINK([#include <winsock.h>],[
-                       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])
+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
+AC_MSG_CHECKING(for winsock)
+save_LIBS="$LIBS"
+for curlib in ws2_32 wsock32; do
+       LIBS="$LIBS -l$curlib"
+       AC_TRY_LINK([
+                       char socket@12();
+                       char select@20();
+                       char closesocket@4();
+                       char gethostname@8();
+                       ],
+                       [
+                       socket@12();
+                       select@20();
+                       closesocket@4();
+                       gethostname@8();
+                       ],
+                       have_winsock=yes, have_winsock=no)
+
+       if test $have_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
                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
+                       have_winsock=winsock2
+                       AC_DEFINE(HAVE_WINSOCK2, 1,
+                                 [define if you have winsock2])
+               fi
+               break
        fi
        fi
-fi
+       LIBS="$save_LIBS"
+done
+AC_MSG_RESULT($have_winsock)
 
 dnl Find socket()
 dnl Likely combinations:
 
 dnl Find socket()
 dnl Likely combinations:
@@ -754,10 +860,10 @@ dnl require select
 AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
 
 if test "${ac_cv_header_winsock_h}" != yes; then
 AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
 
 if test "${ac_cv_header_winsock_h}" != yes; then
-    dnl Select arg types
-    dnl (if this detection becomes permenent, it and the select() detection
-    dnl should be done before the yielding select test) 
-    AC_FUNC_SELECT_ARGTYPES
+       dnl Select arg types
+       dnl (if this detection becomes permenent, it and the select() detection
+       dnl should be done before the yielding select test) 
+       AC_FUNC_SELECT_ARGTYPES
 fi
 
 dnl check to see if system call automatically restart
 fi
 
 dnl check to see if system call automatically restart
@@ -769,17 +875,45 @@ AC_CHECK_HEADERS( regex.h )
 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
-AC_CHECK_FUNC(regfree, :, AC_MSG_ERROR([POSIX regex required.]))
+AC_SEARCH_LIBS(regfree, [regex gnuregex],
+       :, AC_MSG_ERROR([POSIX regex required.]))
 
 OL_POSIX_REGEX
 if test "$ol_cv_c_posix_regex" = no ; then
        AC_MSG_ERROR([broken POSIX regex!])
 fi
 
 
 OL_POSIX_REGEX
 if test "$ol_cv_c_posix_regex" = no ; then
        AC_MSG_ERROR([broken POSIX regex!])
 fi
 
+dnl ----------------------------------------------------------------
+dnl For windows, check for the need of RPCRT for UUID function support
+AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
+save_LIBS="$LIBS"
+LIBS="$LIBS -lrpcrt4"
+AC_TRY_LINK([
+               char UuidCreate@4();
+               char UuidToStringA@8();
+               ],
+               [
+               UuidCreate@4();
+               UuidToStringA@8();
+               ],
+               need_rpcrt=yes, need_rpcrt=no)
+if test $need_rpcrt = yes; then
+       SLAPD_LIBS="$SLAPD_LIBS -lrpcrt4"
+fi
+LIBS="$save_LIBS"
+AC_MSG_RESULT($need_rpcrt)
+
 dnl ----------------------------------------------------------------
 dnl Check for resolver routines
 dnl ----------------------------------------------------------------
 dnl Check for resolver routines
+dnl      need to check for both res_query and __res_query
+dnl   need to check -lc, -lbind, and -lresolv
 ol_link_dnssrv=no
 AC_CHECK_FUNC(res_query,:)
 ol_link_dnssrv=no
 AC_CHECK_FUNC(res_query,:)
+if test $ac_cv_func_res_query = no ; then 
+       AC_CHECK_FUNC(__res_query,:)
+       ac_cv_func_res_query=$ac_cv_func___res_query
+fi
+
 if test $ac_cv_func_res_query = no ; then 
        AC_CHECK_LIB(bind, res_query)
        ac_cv_func_res_query=$ac_cv_lib_bind_res_query
 if test $ac_cv_func_res_query = no ; then 
        AC_CHECK_LIB(bind, res_query)
        ac_cv_func_res_query=$ac_cv_lib_bind_res_query
@@ -795,6 +929,11 @@ if test $ac_cv_func_res_query = no ; then
        ac_cv_func_res_query=$ac_cv_lib_resolv_res_query
 fi
 
        ac_cv_func_res_query=$ac_cv_lib_resolv_res_query
 fi
 
+if test $ac_cv_func_res_query = no ; then 
+       AC_CHECK_LIB(resolv, __res_query)
+       ac_cv_func_res_query=$ac_cv_lib_resolv___res_query
+fi
+
 if test "$ac_cv_func_res_query" = yes ; then
        AC_DEFINE(HAVE_RES_QUERY,1,
                [define if you have res_query()])
 if test "$ac_cv_func_res_query" = yes ; then
        AC_DEFINE(HAVE_RES_QUERY,1,
                [define if you have res_query()])
@@ -808,6 +947,42 @@ if test "$ol_enable_dnssrv" = yes -a "$ol_link_dnssrv" = no ; then
        AC_MSG_ERROR([DNSSRV requires res_query()])
 fi
 
        AC_MSG_ERROR([DNSSRV requires res_query()])
 fi
 
+dnl ----------------------------------------------------------------
+dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
+dnl PF_LOCAL may use getaddrinfo in available
+AC_CHECK_FUNCS( getaddrinfo 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 $ol_enable_ipv6 = yes ; then
+               AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
+       fi
+elif test $ol_enable_ipv6 != no ; then
+       AC_CACHE_CHECK([INET6_ADDRSTRLEN],[ol_cv_inet6_addrstrlen],[
+               AC_EGREP_CPP(__has_inet6_addrstrlen__,[
+#                      include <netinet/in.h>
+#                      ifdef INET6_ADDRSTRLEN
+                               __has_inet6_addrstrlen__;
+#                      endif
+               ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])])
+
+       if test $ol_cv_inet6_addrstrlen = yes ; then
+               ol_link_ipv6=yes
+       elif test $ol_enable_ipv6 = yes ; then
+               AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
+       fi
+fi
+
+if test $ol_enable_local != no ; then
+       AC_CHECK_HEADERS( sys/un.h )
+
+       if test $ol_enable_local = auto ; then
+               ol_enable_local=$ac_cv_header_sys_un_h
+       elif test $ac_cv_header_sys_un_h = no ; then
+               AC_MSG_ERROR([AF_LOCAL domain support requires sys/un.h])
+       fi
+fi
+
 dnl ----------------------------------------------------------------
 dnl Kerberos
 ol_link_kbind=no
 dnl ----------------------------------------------------------------
 dnl Kerberos
 ol_link_kbind=no
@@ -815,8 +990,9 @@ ol_link_kpasswd=no
 ol_link_krb5=no
 ol_link_krb4=no
 
 ol_link_krb5=no
 ol_link_krb4=no
 
-if test $ol_with_kerberos = auto -o $ol_with_kerberos = k5 \
-       -o $ol_with_kerberos = k5only -o $ol_with_kerberos = k425 ; then
+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
 
        AC_CHECK_HEADERS(krb5.h)
 
 
        AC_CHECK_HEADERS(krb5.h)
 
@@ -830,11 +1006,15 @@ if test $ol_with_kerberos = auto -o $ol_with_kerberos = k5 \
                fi
 
                if test $krb5_impl = mit; then
                fi
 
                if test $krb5_impl = mit; then
+                       AC_CHECK_LIB(k5crypto, main,
+                               [krb5crypto=k5crypto],
+                               [krb5crypto=crypto])
+
                        AC_CHECK_LIB(krb5, main,
                                [have_krb5=yes
                        AC_CHECK_LIB(krb5, main,
                                [have_krb5=yes
-                               KRB5_LIBS="-lkrb5 -lcrypto -lcom_err"],
+                               KRB5_LIBS="-lkrb5 -l$krb5crypto -lcom_err"],
                                [have_krb5=no],
                                [have_krb5=no],
-                               [-lcrypto -lcom_err])
+                               [-l$krb5crypto -lcom_err])
 
                elif test $krb5_impl = heimdal; then
                        AC_CHECK_LIB(krb5, main,
 
                elif test $krb5_impl = heimdal; then
                        AC_CHECK_LIB(krb5, main,
@@ -845,6 +1025,7 @@ if test $ol_with_kerberos = auto -o $ol_with_kerberos = k5 \
 
                        AC_DEFINE(HAVE_HEIMDAL_KERBEROS, 1,
                                [define if you have HEIMDAL Kerberos])
 
                        AC_DEFINE(HAVE_HEIMDAL_KERBEROS, 1,
                                [define if you have HEIMDAL Kerberos])
+
                else
                        have_krb5=no
                        AC_MSG_WARN([Unrecongized Kerberos5 Implementation])
                else
                        have_krb5=no
                        AC_MSG_WARN([Unrecongized Kerberos5 Implementation])
@@ -871,8 +1052,8 @@ if test $ol_with_kerberos = auto -o $ol_with_kerberos = k5 \
        fi
 fi
 
        fi
 fi
 
-if test $ol_link_krb5 = yes -a \
-       \( $ol_with_kerberos = auto -o $ol_with_kerberos = k425 \) ; then
+if test $ol_link_krb5 = yes -a \( $ol_with_kerberos = yes -o \
+       $ol_with_kerberos = auto -o $ol_with_kerberos = k425 \) ; then
 
        AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
 
 
        AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
 
@@ -880,7 +1061,7 @@ if test $ol_link_krb5 = yes -a \
                if test $krb5_impl = mit; then
                        AC_CHECK_LIB(krb4, main, [have_k425=yes
                                KRB4_LIBS="-lkrb4 -ldes425"], [have_k425=no],
                if test $krb5_impl = mit; then
                        AC_CHECK_LIB(krb4, main, [have_k425=yes
                                KRB4_LIBS="-lkrb4 -ldes425"], [have_k425=no],
-                               [-ldes425 -lkrb5 -lcrypto -lcom_err])
+                               [-ldes425 -lkrb5 -l$krb5crypto -lcom_err])
 
                elif test $krb5_impl = heimdal; then
                        AC_CHECK_LIB(krb4, main, [have_k425=yes
 
                elif test $krb5_impl = heimdal; then
                        AC_CHECK_LIB(krb4, main, [have_k425=yes
@@ -889,7 +1070,7 @@ if test $ol_link_krb5 = yes -a \
 
                else
                        have_425=no
 
                else
                        have_425=no
-                       AC_MSG_WARN([Unrecongized Kerberos5 Implementation])
+                       AC_MSG_WARN([Unrecongized Kerberos V Implementation])
                fi
 
                if test $have_k425 = yes ; then
                fi
 
                if test $have_k425 = yes ; then
@@ -931,8 +1112,8 @@ if test $ol_link_krb5 = yes ; then
        ol_with_kerberos=found
 fi
 
        ol_with_kerberos=found
 fi
 
-if test $ol_with_kerberos = auto -o $ol_with_kerberos = k4 \
-       -o $ol_with_kerberos = kth ; then
+if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
+       -o $ol_with_kerberos = k4 -o $ol_with_kerberos = kth ; then
 
        AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
 
 
        AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
 
@@ -957,21 +1138,27 @@ if test $ol_with_kerberos = auto -o $ol_with_kerberos = k4 \
 fi
 
 if test $ol_link_krb4 = yes -a $ol_enable_kpasswd != no ; then
 fi
 
 if test $ol_link_krb4 = yes -a $ol_enable_kpasswd != no ; then
-       ol_link_kpasswd=yes;
+       ol_link_kpasswd=yes
+fi
+
+if test $ol_link_krb4 = yes -a $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
        AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
 
 elif test $ol_with_kerberos != auto -a $ol_with_kerberos != no ; then
 fi
 
 if test $ol_link_krb4 = yes -o $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
-       AC_MSG_ERROR([Kerberos detection failed.])
+       AC_MSG_ERROR([Kerberos detection failed])
 fi
 
 dnl ----------------------------------------------------------------
 dnl TLS/SSL
 ol_link_tls=no
 if test $ol_with_tls != no ; then
 fi
 
 dnl ----------------------------------------------------------------
 dnl TLS/SSL
 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_HEADERS(openssl/ssl.h ssl.h)
        
        if test $ac_cv_header_openssl_ssl_h = yes -o $ac_cv_header_ssl_h = yes ; then
@@ -1012,11 +1199,31 @@ if test $ol_with_tls != no ; then
                        fi
                fi
        fi
                        fi
                fi
        fi
+
+else
+       AC_WARN([TLS privacy protection not supported!])
 fi
 
 if test $ol_link_tls = yes ; then
        AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
 fi
 
 if test $ol_link_tls = yes ; then
        AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
-fi     
+
+elif test $ol_with_tls = auto ; then
+       AC_WARN([Could not locate TLS/SSL package])
+       AC_WARN([TLS privacy protection not supported!])
+
+elif test $ol_with_tls != no ; then
+       AC_ERROR([Could not locate TLS/SSL package])
+fi
+
+dnl ----------------------------------------------------------------
+dnl LAN Manger password checking requires DES from OpenSSL
+if test $ol_enable_lmpasswd != no; then
+       if test $ol_link_tls != yes ; then
+               AC_ERROR([LAN Manager passwords require OpenSSL])
+       fi
+
+       AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
+fi
 
 dnl ----------------------------------------------------------------
 dnl Tests for reentrant functions necessary to build a
 
 dnl ----------------------------------------------------------------
 dnl Tests for reentrant functions necessary to build a
@@ -1069,9 +1276,9 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
        OL_NT_THREADS
 
        if test "$ol_cv_nt_threads" = yes ; then
        OL_NT_THREADS
 
        if test "$ol_cv_nt_threads" = yes ; then
-       ol_link_threads=nt
-       ol_with_threads=found
-       ol_with_yielding_select=yes
+               ol_link_threads=nt
+               ol_with_threads=found
+               ol_with_yielding_select=yes
 
                AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager])
                AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log])
 
                AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager])
                AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log])
@@ -1374,7 +1581,7 @@ int main(argc, argv)
                        CPPFLAGS="$save_CPPFLAGS"
                        LIBS="$save_LIBS"
                else
                        CPPFLAGS="$save_CPPFLAGS"
                        LIBS="$save_LIBS"
                else
-                       AC_MSG_ERROR([could not link with POSIX Threads])
+                       AC_MSG_ERROR([could not locate usable POSIX Threads])
                fi
        fi
 
                fi
        fi
 
@@ -1387,7 +1594,7 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
        -o $ol_with_threads = mach ; then
 
        dnl check for Mach CThreads
        -o $ol_with_threads = mach ; then
 
        dnl check for Mach CThreads
-       AC_CHECK_HEADERS(mach/cthreads.h)
+       AC_CHECK_HEADERS(mach/cthreads.h cthread.h)
        if test $ac_cv_header_mach_cthreads_h = yes ; then
                ol_with_threads=found
 
        if test $ac_cv_header_mach_cthreads_h = yes ; then
                ol_with_threads=found
 
@@ -1415,18 +1622,35 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
                        fi
                fi
 
                        fi
                fi
 
-               if test $ol_link_threads != no ; then
-                       : check for cthread specific functionality here
-                       AC_DEFINE(HAVE_MACH_CTHREADS,1,
-                               [define if you have Mach Cthreads])
+       elif test $ac_cv_header_cthreads_h = yes ; then
+               dnl Hurd variant of Mach Cthreads
+               dnl uses <cthreads.h> and -lthreads
+
+               ol_with_threads=found
+               dnl save the flags
+               save_LIBS="$LIBS"
+               LIBS="$LIBS -lthreads"
+               AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
+               LIBS="$save_LIBS"
+
+               if test $ol_link_threads = yes ; then
+                       LTHREAD_LIBS="-lthreads"
+                       ol_link_threads=mach
                else
                        AC_MSG_ERROR([could not link with Mach CThreads])
                fi
                else
                        AC_MSG_ERROR([could not link with Mach CThreads])
                fi
-       fi
 
 
-       if test $ol_with_threads = mach ; then
+       elif test $ol_with_threads = mach ; then
                AC_MSG_ERROR([could not locate Mach CThreads])
        fi
                AC_MSG_ERROR([could not locate Mach CThreads])
        fi
+
+       if test $ol_link_threads = mach ; then
+               AC_DEFINE(HAVE_MACH_CTHREADS,1,
+                       [define if you have Mach Cthreads])
+       elif test $ol_with_threads = found ; then
+               AC_MSG_ERROR([could not link with Mach CThreads])
+       fi
 fi
 
 if test $ol_with_threads = auto -o $ol_with_threads = yes \
 fi
 
 if test $ol_with_threads = auto -o $ol_with_threads = yes \
@@ -1584,7 +1808,7 @@ dnl
 dnl    dnl check for reentrant/threadsafe functions
 dnl    dnl
 dnl    dnl note: these should only be used when linking
 dnl    dnl check for reentrant/threadsafe functions
 dnl    dnl
 dnl    dnl note: these should only be used when linking
-dnl    dnl       with $LTHREAD_LIBS
+dnl    dnl             with $LTHREAD_LIBS
 dnl    dnl
 dnl    save_CPPFLAGS="$CPPFLAGS"
 dnl    save_LIBS="$LIBS"
 dnl    dnl
 dnl    save_CPPFLAGS="$CPPFLAGS"
 dnl    save_LIBS="$LIBS"
@@ -1637,7 +1861,7 @@ if test $ol_with_ldbm_api = auto \
                        [define this if Berkeley DB is available])
 
                ol_link_ldbm=berkeley
                        [define this if Berkeley DB is available])
 
                ol_link_ldbm=berkeley
-               ol_with_ldbm_api=db
+               ol_with_ldbm_api=berkeley
 
                if test $ol_with_ldbm_type = hash ; then
                        AC_DEFINE(LDBM_USE_DBHASH,1,
 
                if test $ol_with_ldbm_type = hash ; then
                        AC_DEFINE(LDBM_USE_DBHASH,1,
@@ -1655,6 +1879,12 @@ if test $ol_with_ldbm_api = auto \
        fi
 fi
 
        fi
 fi
 
+if test $ol_enable_bdb = yes -a $ol_link_ldbm != berkeley ; then
+       AC_MSG_ERROR(BerkeleyDB not availabl)
+elif test $ol_enable_bdb != no -a $ol_link_ldbm != no ; then
+       ol_enable_bdb=yes
+fi
+
 if test $ol_link_ldbm = no -a $ol_with_ldbm_type = btree ; then
        AC_MSG_WARN(Could not find LDBM with BTREE support)
        ol_with_ldbm_api=none
 if test $ol_link_ldbm = no -a $ol_with_ldbm_type = btree ; then
        AC_MSG_WARN(Could not find LDBM with BTREE support)
        ol_with_ldbm_api=none
@@ -1710,9 +1940,10 @@ fi
 
 dnl ----------------------------------------------------------------
 if test $ol_enable_dynamic = yes -a $enable_shared = yes ; then
 
 dnl ----------------------------------------------------------------
 if test $ol_enable_dynamic = yes -a $enable_shared = yes ; then
-       LINK_BINS_DYNAMIC="yes"
+       BUILD_LIBS_DYNAMIC=shared
+       AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
 else
 else
-       LINK_BINS_DYNAMIC="no"
+       BUILD_LIBS_DYNAMIC=static
 fi
 
 dnl ----------------------------------------------------------------
 fi
 
 dnl ----------------------------------------------------------------
@@ -1762,6 +1993,29 @@ dnl if test $ol_enable_dmalloc != no ; then
 dnl    AC_CHECK_HEADERS(dmalloc.h)
 dnl    AC_CHECK_LIB(dmalloc, dmalloc_shutdown)
 dnl fi
 dnl    AC_CHECK_HEADERS(dmalloc.h)
 dnl    AC_CHECK_LIB(dmalloc, dmalloc_shutdown)
 dnl fi
+
+dnl ----------------------------------------------------------------
+dnl SQL
+ol_link_sql=no
+if test $ol_enable_sql != no ; then
+       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
+       fi
+
+       if test $ol_link_sql != no ; then
+               SLAPD_SQL_LIBS="$ol_link_sql"
+
+       elif test $ol_enable_sql != auto ; then
+               AC_MSG_ERROR([could not locate suitable ODBC library])
+       fi
+fi
+
 dnl ----------------------------------------------------------------
 dnl TCL
 if test $ol_enable_tcl != no ; then
 dnl ----------------------------------------------------------------
 dnl TCL
 if test $ol_enable_tcl != no ; then
@@ -1774,9 +2028,9 @@ if test $ol_enable_tcl != no ; then
                        AC_CHECK_LIB($lib,main,
                          [have_tcl=yes
                           if test x"$ol_with_tcl_module" = "xstatic" ; then
                        AC_CHECK_LIB($lib,main,
                          [have_tcl=yes
                           if test x"$ol_with_tcl_module" = "xstatic" ; then
-                              SLAPD_LIBS="$SLAPD_LIBS -l${lib}"
+                                       SLAPD_LIBS="$SLAPD_LIBS -l${lib}"
                           else
                           else
-                              MOD_TCL_LIB="-l${lib}"
+                                       MOD_TCL_LIB="-l${lib}"
                           fi;break],[have_tcl=no])
                done
        fi
                           fi;break],[have_tcl=no])
                done
        fi
@@ -1826,7 +2080,7 @@ dnl
 ol_link_sasl=no
 ol_link_spasswd=no
 if test $ol_with_cyrus_sasl != no ; then
 ol_link_sasl=no
 ol_link_spasswd=no
 if test $ol_with_cyrus_sasl != no ; then
-       AC_CHECK_HEADER(sasl.h)
+       AC_CHECK_HEADERS(sasl.h)
 
        if test $ac_cv_header_sasl_h = yes ; then
                AC_CHECK_LIB(sasl, sasl_client_init,
 
        if test $ac_cv_header_sasl_h = yes ; then
                AC_CHECK_LIB(sasl, sasl_client_init,
@@ -1839,14 +2093,31 @@ if test $ol_with_cyrus_sasl != no ; then
                fi
        fi
 
                fi
        fi
 
-       if test $ol_link_sasl = no -a $ol_with_cyrus_sasl = yes ; then
-               AC_MSG_ERROR(no suitable API for --with-cyrus-sasl=$ol_with_cyrus_sasl)
+       if test $ol_link_sasl = no ; then
+               if test $ol_with_cyrus_sasl != auto ; then
+                       AC_MSG_ERROR([Could not locate Cyrus SASL])
+               else
+                       AC_MSG_WARN([Could not locate Cyrus SASL])
+                       AC_MSG_WARN([SASL authentication not supported!])
+                       if test $ol_link_tls = no ; then
+                               AC_MSG_WARN([Strong authentication not supported!])
+                       fi
+               fi
+
+       elif test $ol_enable_spasswd != no ; then
+               ol_link_spasswd=yes
+       fi
+
+else
+       AC_MSG_WARN([SASL authentication not supported!])
+       if test $ol_link_tls = no ; then
+               AC_MSG_WARN([Strong authentication not supported!])
        fi
 fi
 
 dnl ----------------------------------------------------------------
 dnl Check for entropy sources
        fi
 fi
 
 dnl ----------------------------------------------------------------
 dnl Check for entropy sources
-if test $cross_compiling != yes ; then
+if test $cross_compiling != yes -a $ac_cv_mingw32 != yes ; then
        dev=no
        if test -r /dev/urandom ; then
                dev="/dev/urandom";
        dev=no
        if test -r /dev/urandom ; then
                dev="/dev/urandom";
@@ -1949,6 +2220,23 @@ if test $ol_enable_proctitle != no ; then
        fi
 fi
 
        fi
 fi
 
+dnl ----------------------------------------------------------------
+dnl Check for SLPv2 Compliant API Library
+if test $ol_enable_slp != no ; then
+       AC_CHECK_HEADERS( slp.h )
+
+       if test $ac_cv_header_slp_h = yes ; then
+               AC_CHECK_LIB(slp, SLPOpen, [have_slp=yes], [have_slp=no])
+               if test $have_slp = yes ; then
+                       AC_DEFINE(HAVE_SLP, 1, [define if you have -lslp])
+                       SLAPD_SLP_LIBS=-lslp
+               fi
+
+       elif test $ol_enable_slp = yes ; then
+               AC_MSG_ERROR([SLP not found])
+       fi
+fi
+
 dnl ----------------------------------------------------------------
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_TYPE_MODE_T
 dnl ----------------------------------------------------------------
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_TYPE_MODE_T
@@ -2032,6 +2320,7 @@ AC_CHECK_FUNCS(           \
        chroot                  \
        endgrent                \
        endpwent                \
        chroot                  \
        endgrent                \
        endpwent                \
+       fcntl                   \
        flock                   \
        getdtablesize   \
        getgrgid                \
        flock                   \
        getdtablesize   \
        getgrgid                \
@@ -2047,6 +2336,7 @@ AC_CHECK_FUNCS(           \
        memcpy                  \
        memmove                 \
        mkstemp                 \
        memcpy                  \
        memmove                 \
        mkstemp                 \
+       mktemp                  \
        pipe                    \
        read                    \
        recv                    \
        pipe                    \
        read                    \
        recv                    \
@@ -2060,7 +2350,6 @@ AC_CHECK_FUNCS(           \
        sigaction               \
        signal                  \
        sigset                  \
        sigaction               \
        signal                  \
        sigset                  \
-       snprintf                \
        strdup                  \
        strerror                \
        strpbrk                 \
        strdup                  \
        strerror                \
        strpbrk                 \
@@ -2071,6 +2360,7 @@ AC_CHECK_FUNCS(           \
        strtoul                 \
        strspn                  \
        sysconf                 \
        strtoul                 \
        strspn                  \
        sysconf                 \
+       usleep                  \
        waitpid                 \
        wait4                   \
        write                   \
        waitpid                 \
        wait4                   \
        write                   \
@@ -2079,14 +2369,10 @@ AC_CHECK_FUNCS(         \
 )
 
 dnl We actually may need to replace more than this.
 )
 
 dnl We actually may need to replace more than this.
-AC_REPLACE_FUNCS(getopt tempnam)
+AC_REPLACE_FUNCS(getopt)
 
 if test "$ac_cv_func_getopt" != yes; then
 
 if test "$ac_cv_func_getopt" != yes; then
-    LIBSRCS="$LIBSRCS getopt.c"
-fi
-
-if test "$ac_cv_func_tempnam" != yes; then
-    LIBSRCS="$LIBSRCS tempnam.c"
+       LIBSRCS="$LIBSRCS getopt.c"
 fi
 
 dnl ----------------------------------------------------------------
 fi
 
 dnl ----------------------------------------------------------------
@@ -2104,10 +2390,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_enable_libui" = yes ; then
-       AC_DEFINE(LDAP_LIBUI,1,
-               [define this for LDAP User Interface support])
-fi
 if test "$ol_enable_cache" = no ; then
        AC_DEFINE(LDAP_NOCACHE,1,
                [define this to remove -lldap cache support])
 if test "$ol_enable_cache" = no ; then
        AC_DEFINE(LDAP_NOCACHE,1,
                [define this to remove -lldap cache support])
@@ -2122,13 +2404,10 @@ fi
 if test "$ol_enable_referrals" != no ; then
        AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION)
 fi
 if test "$ol_enable_referrals" != no ; then
        AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION)
 fi
-if test "$ol_enable_cldap" != no ; then
-       AC_DEFINE(LDAP_CONNECTIONLESS,1,[define to support CLDAP])
-fi
 if test "$ol_enable_local" != no; then
        AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
 fi
 if test "$ol_enable_local" != no; then
        AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
 fi
-if test "$ol_enable_ipv6" != no; then
+if test "$ol_link_ipv6" != no; then
        AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
 fi
 if test "$ol_enable_cleartext" != no ; then
        AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
 fi
 if test "$ol_enable_cleartext" != no ; then
@@ -2143,9 +2422,9 @@ 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
+dnl if test "$ol_enable_multimaster" != no ; then
+dnl    AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
+dnl fi
 if test "$ol_enable_phonetic" != no ; then
        AC_DEFINE(SLAPD_PHONETIC,1,[define to support phonetic])
 fi
 if test "$ol_enable_phonetic" != no ; then
        AC_DEFINE(SLAPD_PHONETIC,1,[define to support phonetic])
 fi
@@ -2162,6 +2441,22 @@ if test "$ol_link_modules" != no ; then
        SLAPD_MODULES_LDFLAGS="-dlopen self"
 fi
 
        SLAPD_MODULES_LDFLAGS="-dlopen self"
 fi
 
+if test "$ol_enable_bdb" != no ; then
+       AC_DEFINE(SLAPD_BDB,1,[define to support BDB backend])
+       BUILD_SLAPD=yes
+       BUILD_BDB=yes
+       if test "$ol_with_bdb_module" != static ; then
+               AC_DEFINE(SLAPD_BDB_DYNAMIC,1,
+                       [define to support dynamic BDB backend])
+               BUILD_BDB=mod
+               BUILD_BDB_DYNAMIC=shared
+               SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-bdb/back_bdb.la"
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
+       fi
+fi
+
 if test "$ol_link_dnssrv" != no ; then
        AC_DEFINE(SLAPD_DNSSRV,1,[define to support DNS SRV backend])
        BUILD_SLAPD=yes
 if test "$ol_link_dnssrv" != no ; then
        AC_DEFINE(SLAPD_DNSSRV,1,[define to support DNS SRV backend])
        BUILD_SLAPD=yes
@@ -2172,6 +2467,9 @@ if test "$ol_link_dnssrv" != no ; then
                BUILD_DNSSRV=mod
                BUILD_DNSSRV_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-dnssrv/back_dnssrv.la"
                BUILD_DNSSRV=mod
                BUILD_DNSSRV_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-dnssrv/back_dnssrv.la"
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
        fi
 fi
 
        fi
 fi
 
@@ -2185,19 +2483,64 @@ if test "$ol_enable_ldap" != no ; then
                BUILD_LDAP=mod
                BUILD_LDAP_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-ldap/back_ldap.la"
                BUILD_LDAP=mod
                BUILD_LDAP_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-ldap/back_ldap.la"
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
        fi
 fi
 
        fi
 fi
 
-if test "$ol_link_ldbm" != no ; then
+if test "$ol_link_ldbm" != no -a $ol_enable_ldbm != no; then
        AC_DEFINE(SLAPD_LDBM,1,[define to support LDBM backend])
        BUILD_SLAPD=yes
        BUILD_LDBM=yes
        AC_DEFINE(SLAPD_LDBM,1,[define to support LDBM backend])
        BUILD_SLAPD=yes
        BUILD_LDBM=yes
+       LDBM_LIB="-lldbm"
        if test "$ol_with_ldbm_module" != static ; then
                AC_DEFINE(SLAPD_LDBM_DYNAMIC,1,
                        [define to support dynamic LDBM backend])
                BUILD_LDBM=mod
                BUILD_LDBM_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-ldbm/back_ldbm.la"
        if test "$ol_with_ldbm_module" != static ; then
                AC_DEFINE(SLAPD_LDBM_DYNAMIC,1,
                        [define to support dynamic LDBM backend])
                BUILD_LDBM=mod
                BUILD_LDBM_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-ldbm/back_ldbm.la"
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldbm"
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldbm"
+       fi
+fi
+
+if test "$ol_enable_meta" != no ; then
+       if test "$ol_enable_ldap" = no ; then
+               AC_MSG_ERROR([need --enable-ldap to use --enable-meta])
+       fi
+       if test "$ol_enable_rewrite" = no ; then
+               AC_MSG_ERROR([need --enable-rewrite to use --enable-meta])
+       fi
+       AC_DEFINE(SLAPD_META,1,[define to support LDAP Metadirectory backend])
+       BUILD_SLAPD=yes
+       BUILD_META=yes
+       if test "$ol_with_meta_module" != static ; then
+               AC_DEFINE(SLAPD_META_DYNAMIC,1,
+                       [define to support dynamic LDAP Metadirectory backend])
+               BUILD_META=mod
+               BUILD_META_DYNAMIC=shared
+               SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-meta/back_meta.la"
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
+       fi
+fi
+
+if test "$ol_enable_monitor" != no ; then
+       AC_DEFINE(SLAPD_MONITOR,1,[define to support cn=Monitor backend])
+       BUILD_SLAPD=yes
+       BUILD_MONITOR=yes
+       if test "$ol_with_monitor_module" != static ; then
+               AC_DEFINE(SLAPD_MONITOR_DYNAMIC,1,
+                       [define to support dynamic cn=Monitor backend])
+               BUILD_MONITOR=mod
+               BUILD_MONITOR_DYNAMIC=shared
+               SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-monitor/back_monitor.la"
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
        fi
 fi
 
        fi
 fi
 
@@ -2211,6 +2554,9 @@ if test "$ol_enable_passwd" != no ; then
                BUILD_PASSWD=mod
                BUILD_PASSWD_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-passwd/back_passwd.la"
                BUILD_PASSWD=mod
                BUILD_PASSWD_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-passwd/back_passwd.la"
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
        fi
 fi
 
        fi
 fi
 
@@ -2224,6 +2570,9 @@ if test "$ol_link_perl" != no ; then
                BUILD_PERL=mod
                BUILD_PERL_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-perl/back_perl.la"
                BUILD_PERL=mod
                BUILD_PERL_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-perl/back_perl.la"
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
        fi
 fi
 
        fi
 fi
 
@@ -2237,6 +2586,9 @@ if test "$ol_enable_shell" != no ; then
                BUILD_SHELL=mod
                BUILD_SHELL_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-shell/back_shell.la"
                BUILD_SHELL=mod
                BUILD_SHELL_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-shell/back_shell.la"
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
        fi
 fi
 
        fi
 fi
 
@@ -2250,20 +2602,25 @@ if test "$ol_enable_tcl" != no ; then
                BUILD_TCL=mod
                BUILD_TCL_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-tcl/back_tcl.la"
                BUILD_TCL=mod
                BUILD_TCL_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-tcl/back_tcl.la"
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-tcl"
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-tcl"
        fi
 fi
 
        fi
 fi
 
-if test "$ol_enable_sql" != no ; then
+if test "$ol_link_sql" != no ; then
        AC_DEFINE(SLAPD_SQL,1,[define to support SQL backend])
        BUILD_SLAPD=yes
        BUILD_SQL=yes
        AC_DEFINE(SLAPD_SQL,1,[define to support SQL backend])
        BUILD_SLAPD=yes
        BUILD_SQL=yes
-       SLAPD_SQL_LIBS=-liodbc
        if test "$ol_with_sql_module" != static; then
                AC_DEFINE(SLAPD_SQL_DYNAMIC,1,
                        [define to support dynamic SQL backend])
                BUILD_SQL=mod
                BUILD_SQL_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-sql/back_sql.la"
        if test "$ol_with_sql_module" != static; then
                AC_DEFINE(SLAPD_SQL_DYNAMIC,1,
                        [define to support dynamic SQL backend])
                BUILD_SQL=mod
                BUILD_SQL_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-sql/back_sql.la"
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
        fi
 fi
 
        fi
 fi
 
@@ -2272,43 +2629,49 @@ if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \
        BUILD_SLURPD=yes
 fi
 
        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
+       SLAPD_LIBS="$SLAPD_LIBS -lrewrite"
+fi
+
 dnl ----------------------------------------------------------------
 
 dnl ----------------------------------------------------------------
 
-if test "$LINK_BINS_DYNAMIC" = yes; then
-    LIB_LINKAGE=DYN
-    LT_LIB_LINKAGE=shared
-else
-    LIB_LINKAGE=STAT
-    LT_LIB_LINKAGE=static
-fi
+dnl
+dnl For Windows build, we don't want to include -dlopen flags.
+dnl They hurt more than they help.
+dnl
 
 if test "$ac_cv_mingw32" = yes ; then
 
 if test "$ac_cv_mingw32" = yes ; then
-    PLAT=NT
-    DYN_EXT=dll
+       PLAT=NT
+       SLAPD_MODULES_LDFLAGS=
+       SLAPD_MODULES_LIST=
 else
 else
-    PLAT=UNIX
-    DYN_EXT=so
+       PLAT=UNIX
 fi
 
 AC_SUBST(LIBSRCS)
 fi
 
 AC_SUBST(LIBSRCS)
-
 AC_SUBST(PLAT)
 AC_SUBST(PLAT)
-AC_SUBST(LIB_LINKAGE)
-AC_SUBST(LT_LIB_LINKAGE)
-AC_SUBST(DYN_EXT)
+AC_SUBST(BUILD_LIBS_DYNAMIC)
 
 AC_SUBST(BUILD_SLAPD)
 
 AC_SUBST(BUILD_SLAPD)
+  AC_SUBST(BUILD_BDB)
   AC_SUBST(BUILD_DNSSRV)
   AC_SUBST(BUILD_LDAP)
   AC_SUBST(BUILD_LDBM)
   AC_SUBST(BUILD_DNSSRV)
   AC_SUBST(BUILD_LDAP)
   AC_SUBST(BUILD_LDBM)
+  AC_SUBST(BUILD_META)
+  AC_SUBST(BUILD_MONITOR)
   AC_SUBST(BUILD_PASSWD)
   AC_SUBST(BUILD_PERL)
   AC_SUBST(BUILD_SHELL)
   AC_SUBST(BUILD_SQL)
   AC_SUBST(BUILD_TCL)
   AC_SUBST(BUILD_PASSWD)
   AC_SUBST(BUILD_PERL)
   AC_SUBST(BUILD_SHELL)
   AC_SUBST(BUILD_SQL)
   AC_SUBST(BUILD_TCL)
+  AC_SUBST(BUILD_BDB_DYNAMIC)
   AC_SUBST(BUILD_DNSSRV_DYNAMIC)
   AC_SUBST(BUILD_LDAP_DYNAMIC)
   AC_SUBST(BUILD_LDBM_DYNAMIC)
   AC_SUBST(BUILD_DNSSRV_DYNAMIC)
   AC_SUBST(BUILD_LDAP_DYNAMIC)
   AC_SUBST(BUILD_LDBM_DYNAMIC)
+  AC_SUBST(BUILD_META_DYNAMIC)
+  AC_SUBST(BUILD_MONITOR_DYNAMIC)
   AC_SUBST(BUILD_PASSWD_DYNAMIC)
   AC_SUBST(BUILD_PERL_DYNAMIC)
   AC_SUBST(BUILD_SHELL_DYNAMIC)
   AC_SUBST(BUILD_PASSWD_DYNAMIC)
   AC_SUBST(BUILD_PERL_DYNAMIC)
   AC_SUBST(BUILD_SHELL_DYNAMIC)
@@ -2316,6 +2679,8 @@ AC_SUBST(BUILD_SLAPD)
   AC_SUBST(BUILD_TCL_DYNAMIC)
 AC_SUBST(BUILD_SLURPD)
 
   AC_SUBST(BUILD_TCL_DYNAMIC)
 AC_SUBST(BUILD_SLURPD)
 
+AC_SUBST(LDBM_LIB)
+
 AC_SUBST(LDAP_LIBS)
 AC_SUBST(LDIF_LIBS)
 AC_SUBST(SLAPD_LIBS)
 AC_SUBST(LDAP_LIBS)
 AC_SUBST(LDIF_LIBS)
 AC_SUBST(SLAPD_LIBS)
@@ -2325,12 +2690,14 @@ AC_SUBST(LTHREAD_LIBS)
 AC_SUBST(LUTIL_LIBS)
 AC_SUBST(WRAP_LIBS)
 AC_SUBST(MOD_TCL_LIB)
 AC_SUBST(LUTIL_LIBS)
 AC_SUBST(WRAP_LIBS)
 AC_SUBST(MOD_TCL_LIB)
-AC_SUBST(LINK_BINS_DYNAMIC)
 
 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
 AC_SUBST(SLAPD_MODULES_LDFLAGS)
 AC_SUBST(SLAPD_MODULES_LIST)
 
 
 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
 AC_SUBST(SLAPD_MODULES_LDFLAGS)
 AC_SUBST(SLAPD_MODULES_LIST)
 
+AC_SUBST(SLAPD_STATIC_BACKENDS)
+AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
+
 AC_SUBST(PERL_CPPFLAGS)
 AC_SUBST(SLAPD_PERL_LDFLAGS)
 AC_SUBST(MOD_PERL_LDFLAGS)
 AC_SUBST(PERL_CPPFLAGS)
 AC_SUBST(SLAPD_PERL_LDFLAGS)
 AC_SUBST(MOD_PERL_LDFLAGS)
@@ -2344,6 +2711,8 @@ AC_SUBST(TLS_LIBS)
 AC_SUBST(MODULES_LIBS)
 AC_SUBST(AUTH_LIBS)
 
 AC_SUBST(MODULES_LIBS)
 AC_SUBST(AUTH_LIBS)
 
+AC_SUBST(SLAPD_SLP_LIBS)
+
 AC_SUBST(SLAPD_SQL_LDFLAGS)
 AC_SUBST(SLAPD_SQL_LIBS)
 AC_SUBST(SLAPD_SQL_INCLUDES)
 AC_SUBST(SLAPD_SQL_LDFLAGS)
 AC_SUBST(SLAPD_SQL_LIBS)
 AC_SUBST(SLAPD_SQL_INCLUDES)
@@ -2362,10 +2731,7 @@ doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk \
 doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk \
 clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk \
 clients/finger/Makefile:build/top.mk:clients/finger/Makefile.in:build/rules.mk \
 doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk \
 clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk \
 clients/finger/Makefile:build/top.mk:clients/finger/Makefile.in:build/rules.mk \
-clients/fax500/Makefile:build/top.mk:clients/fax500/Makefile.in:build/rules.mk \
-clients/gopher/Makefile:build/top.mk:clients/gopher/Makefile.in:build/rules.mk \
 clients/mail500/Makefile:build/top.mk:clients/mail500/Makefile.in:build/rules.mk \
 clients/mail500/Makefile:build/top.mk:clients/mail500/Makefile.in:build/rules.mk \
-clients/rcpt500/Makefile:build/top.mk:clients/rcpt500/Makefile.in:build/rules.mk \
 clients/ud/Makefile:build/top.mk:clients/ud/Makefile.in:build/rules.mk \
 clients/maildap/Makefile:build/top.mk:clients/maildap/Makefile.in:build/rules.mk \
 clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk \
 clients/ud/Makefile:build/top.mk:clients/ud/Makefile.in:build/rules.mk \
 clients/maildap/Makefile:build/top.mk:clients/maildap/Makefile.in:build/rules.mk \
 clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk \
@@ -2379,11 +2745,15 @@ libraries/libldbm/Makefile:build/top.mk:libraries/libldbm/Makefile.in:build/lib.
 libraries/libldif/Makefile:build/top.mk:libraries/libldif/Makefile.in:build/lib.mk:build/lib-static.mk \
 libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk \
 libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk       \
 libraries/libldif/Makefile:build/top.mk:libraries/libldif/Makefile.in:build/lib.mk:build/lib-static.mk \
 libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk \
 libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk       \
+libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk \
 servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk \
 servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk \
 servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk \
 servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk \
+servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/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-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-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/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-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-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-shell/Makefile:build/top.mk:servers/slapd/back-shell/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-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk \
@@ -2394,9 +2764,6 @@ servers/slapd/tools/Makefile:build/top.mk:servers/slapd/tools/Makefile.in \
 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/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.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/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk \
-contrib/Makefile:build/top.mk:contrib/Makefile.in:build/dir.mk \
-contrib/saucer/Makefile:build/top.mk:contrib/saucer/Makefile.in:build/rules.mk \
-contrib/web_ldap/Makefile:build/top.mk:contrib/web_ldap/Makefile.in:build/rules.mk \
 ,[
 date > stamp-h
 echo Please \"make depend\" to build dependencies
 ,[
 date > stamp-h
 echo Please \"make depend\" to build dependencies