]> git.sur5r.net Git - openldap/blobdiff - configure.in
ITS#3922 plug another cookie parsing leak
[openldap] / configure.in
index 20a429ad173ace0fad2a580ac192107ed85cb1b2..2764f9de4ebbfdd1839136621995d7a55c4054a0 100644 (file)
@@ -1,7 +1,7 @@
 dnl $OpenLDAP$
 dnl This work is part of OpenLDAP Software <http://www.openldap.org/>.
 dnl
-dnl Copyright 1998-2004 The OpenLDAP Foundation.
+dnl Copyright 1998-2005 The OpenLDAP Foundation.
 dnl All rights reserved.
 dnl
 dnl Redistribution and use in source and binary forms, with or without
@@ -23,7 +23,7 @@ define([AC_INIT_BINSH],
 
 # This work is part of OpenLDAP Software <http://www.openldap.org/>.
 #
-# Copyright 1998-2004 The OpenLDAP Foundation.
+# Copyright 1998-2005 The OpenLDAP Foundation.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -34,7 +34,7 @@ define([AC_INIT_BINSH],
 # top-level directory of the distribution or, alternatively, at
 # <http://www.OpenLDAP.org/license.html>.
 
-echo "Copyright 1998-2004 The OpenLDAP Foundation. All rights reserved."
+echo "Copyright 1998-2005 The OpenLDAP Foundation. All rights reserved."
 echo " Restrictions apply, see COPYRIGHT and LICENSE files."
 ])dnl
 dnl ----------------------------------------------------------------
@@ -95,15 +95,18 @@ 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
+OPENLDAP_LIBRELEASE=$OL_API_LIB_RELEASE
+AC_SUBST(OPENLDAP_LIBRELEASE)dnl
+
+OPENLDAP_LIBVERSION=$OL_API_LIB_VERSION
 AC_SUBST(OPENLDAP_LIBVERSION)dnl
 
 OPENLDAP_RELEASE_DATE="$OL_RELEASE_DATE"
 AC_SUBST(OPENLDAP_RELEASE_DATE)dnl
 
-dnl We use autoconf features new to 2.13.
+dnl We use autoconf features new to 2.13.  Later versions like won't work.
 dnl aclocal.m4 should be built using aclocal from automake 1.4
-dnl libtool 1.4.2 should be installed.
+dnl libtool 1.4.3 should be installed.
 AC_PREREQ(2.13)dnl Required Autoconf version
 
 AC_CONFIG_HEADER(include/portable.h include/ldap_features.h include/lber_types.h)dnl
@@ -150,8 +153,6 @@ dnl OL_ARG_ENABLE(kbind,[  --enable-kbind     enable LDAPv2+ Kerberos IV bind (dep
 ol_enable_kbind=${ol_enable_kbind-no}
 OL_ARG_ENABLE(ipv6,[  --enable-ipv6      enable IPv6 support], auto)dnl
 OL_ARG_ENABLE(local,[  --enable-local    enable AF_LOCAL (AF_UNIX) socket support], auto)dnl
-OL_ARG_ENABLE(x_compile,[  --enable-x-compile    enable cross compiling],
-       no, [yes no])dnl
 
 dnl ----------------------------------------------------------------
 dnl General "with" options
@@ -170,6 +171,10 @@ 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 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] )
 
 dnl ----------------------------------------------------------------
 dnl Server options
@@ -183,72 +188,99 @@ 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(crypt,[    --enable-crypt          enable crypt(3) passwords], no)dnl
-dnl OL_ARG_ENABLE(kpasswd,[    --enable-kpasswd          enable Kerberos password verification], no)dnl
-ol_enable_kpasswd=${ol_enable_kpasswd-no}
 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 back-meta], no)dnl
+OL_ARG_ENABLE(rewrite,[    --enable-rewrite      enable DN rewriting in back-ldap and rwm overlay], auto)dnl
 OL_ARG_ENABLE(rlookups,[    --enable-rlookups    enable reverse lookups of client hostnames], no)dnl
 OL_ARG_ENABLE(slapi,[    --enable-slapi        enable SLAPI support (experimental)], no)dnl
 OL_ARG_ENABLE(slp,[    --enable-slp          enable SLPv2 support], no)dnl     
 OL_ARG_ENABLE(wrappers,[    --enable-wrappers    enable tcp wrapper support], no)dnl
 
-
-dnl SLAPD Backend options
-OL_ARG_ENABLE(bdb,[    --enable-bdb      enable Berkeley DB backend], yes)dnl
-OL_ARG_WITH(bdb_module,[    --with-bdb-module     module type static|dynamic], 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|dynamic], static,
-       [static dynamic])
-OL_ARG_ENABLE(hdb,[    --enable-hdb      enable Hierarchical DB backend], no)dnl
-OL_ARG_WITH(hdb_module,[    --with-hdb-module     module type static|dynamic], static,
-       [static dynamic])
-OL_ARG_ENABLE(ldap,[    --enable-ldap    enable ldap backend], no)dnl
-OL_ARG_WITH(ldap_module,[    --with-ldap-module          module type static|dynamic], static,
-       [static dynamic])
-OL_ARG_ENABLE(ldbm,[    --enable-ldbm    enable ldbm backend], no)dnl
-OL_ARG_WITH(ldbm_api,[    --with-ldbm-api       with LDBM API auto|berkeley|bcompat|mdbm|gdbm], auto,
-       [auto berkeley bcompat mdbm gdbm])
-OL_ARG_WITH(ldbm_module,[    --with-ldbm-module          module type static|dynamic], static,
-       [static dynamic])
-OL_ARG_WITH(ldbm_type,[    --with-ldbm-type      use LDBM type auto|btree|hash], 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|dynamic], static,
-       [static dynamic])
-OL_ARG_ENABLE(monitor,[    --enable-monitor      enable monitor backend], yes)dnl
-OL_ARG_WITH(monitor_module,[    --with-monitor-module module type static|dynamic], static,
-       [static dynamic])
-OL_ARG_ENABLE(null,[    --enable-null    enable null backend], no)dnl
-OL_ARG_WITH(null_module,[    --with-null-module          module type static|dynamic], 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|dynamic], static,
-       [static dynamic])
-OL_ARG_ENABLE(perl,[    --enable-perl    enable perl backend], no)dnl
-OL_ARG_WITH(perl_module,[    --with-perl-module          module type static|dynamic], static,
-       [static dynamic])
-OL_ARG_ENABLE(shell,[    --enable-shell          enable shell backend], no)dnl
-OL_ARG_WITH(shell_module,[    --with-shell-module        module type static|dynamic], static,
-       [static dynamic])
-OL_ARG_ENABLE(sql,[    --enable-sql      enable sql backend], no)dnl
-OL_ARG_WITH(sql_module,[    --with-sql-module    module type static|dynamic], static,
-       [static dynamic])
+dnl ----------------------------------------------------------------
+dnl SLAPD Backend Options
+Backends="bdb dnssrv hdb ldap ldbm meta monitor null \
+       passwd perl relay shell sql"
+
+AC_ARG_WITH(xxslapbackends,[
+SLAPD Backend Options:])
+
+OL_ARG_ENABLE(backends,[    --enable-backends    enable all available backends no|yes|mod],
+       --, [no yes mod])dnl
+test -n "$ol_enable_backends" && ol_dflt_backends="$ol_enable_backends"
+OL_ARG_ENABLE(bdb,[    --enable-bdb      enable Berkeley DB backend no|yes|mod],
+       ${ol_dflt_backends-yes}, [no yes mod])dnl
+OL_ARG_ENABLE(dnssrv,[    --enable-dnssrv        enable dnssrv backend no|yes|mod],
+       ${ol_dflt_backends-no}, [no yes mod])dnl
+OL_ARG_ENABLE(hdb,[    --enable-hdb      enable Hierarchical DB backend no|yes|mod],
+       ${ol_dflt_backends-yes}, [no yes mod])dnl
+OL_ARG_ENABLE(ldap,[    --enable-ldap    enable ldap backend no|yes|mod],
+       ${ol_dflt_backends-no}, [no yes mod])dnl
+OL_ARG_ENABLE(ldbm,[    --enable-ldbm    enable ldbm backend no|yes|mod],
+       ${ol_dflt_backends-no}, [no yes mod])dnl
+OL_ARG_WITH(ldbm_api,[      --with-ldbm-api     with LDBM API auto|berkeley|bcompat|mdbm|gdbm],
+       auto, [auto berkeley bcompat mdbm gdbm])
+OL_ARG_WITH(ldbm_type,[      --with-ldbm-type    use LDBM type auto|btree|hash],
+       auto, [auto btree hash])
+OL_ARG_ENABLE(meta,[    --enable-meta    enable metadirectory backend no|yes|mod],
+       ${ol_dflt_backends-no}, [no yes mod])dnl
+OL_ARG_ENABLE(monitor,[    --enable-monitor      enable monitor backend no|yes|mod],
+       ${ol_dflt_backends-yes}, [no yes mod])dnl
+OL_ARG_ENABLE(null,[    --enable-null    enable null backend no|yes|mod],
+       ${ol_dflt_backends-no}, [no yes mod])dnl
+OL_ARG_ENABLE(passwd,[    --enable-passwd        enable passwd backend no|yes|mod],
+       ${ol_dflt_backends-no}, [no yes mod])dnl
+OL_ARG_ENABLE(perl,[    --enable-perl    enable perl backend no|yes|mod],
+       ${ol_dflt_backends-no}, [no yes mod])dnl
+OL_ARG_ENABLE(relay,[    --enable-relay          enable relay backend no|yes|mod],
+       ${ol_dflt_backends-yes}, [no yes mod])dnl
+OL_ARG_ENABLE(shell,[    --enable-shell          enable shell backend no|yes|mod],
+       ${ol_dflt_backends-no}, [no yes mod])dnl
+OL_ARG_ENABLE(sql,[    --enable-sql      enable sql backend no|yes|mod],
+       ${ol_dflt_backends-no}, [no yes mod])dnl
 
 dnl ----------------------------------------------------------------
 dnl SLAPD Overlay Options
+Overlays="accesslog denyop dyngroup dynlist glue lastmod ppolicy proxycache \
+       refint retcode rwm syncprov translucent unique"
+
 AC_ARG_WITH(xxslapoverlays,[
 SLAPD Overlay Options:])
-OL_ARG_WITH(dyngroup,[    --with-dyngroup        Dynamic Group overlay no|yes|mod], no,
-       [no yes mod])
-OL_ARG_WITH(proxycache,[    --with-proxycache    Proxy Cache overlay no|yes|mod], no,
-       [no yes mod])
-OL_ARG_WITH(rwm,[    --with-rwm          Rewrite/Remap overlay no|yes|mod], no,
-       [no yes mod])
+
+OL_ARG_ENABLE(overlays,[    --enable-overlays    enable all available overlays no|yes|mod],
+       --, [no yes mod])dnl
+test -n "$ol_enable_overlays" && ol_dflt_overlays="$ol_enable_overlays"
+OL_ARG_ENABLE(accesslog,[    --enable-accesslog          In-Directory Access Logging overlay no|yes|mod],
+       ${ol_dflt_overlays-no}, [no yes mod])
+OL_ARG_ENABLE(denyop,[    --enable-denyop        Deny Operation overlay no|yes|mod],
+       ${ol_dflt_overlays-no}, [no yes mod])
+OL_ARG_ENABLE(dyngroup,[    --enable-dyngroup    Dynamic Group overlay no|yes|mod],
+       ${ol_dflt_overlays-no}, [no yes mod])
+OL_ARG_ENABLE(dynlist,[    --enable-dynlist      Dynamic List overlay no|yes|mod],
+       ${ol_dflt_overlays-no}, [no yes mod])
+OL_ARG_ENABLE(glue,[    --enable-glue    Backend Glue overlay no|yes|mod],
+       ${ol_dflt_overlays-yes}, [no yes mod])
+OL_ARG_ENABLE(lastmod,[    --enable-lastmod      Last Modification overlay no|yes|mod],
+       ${ol_dflt_overlays-no}, [no yes mod])
+OL_ARG_ENABLE(ppolicy,[    --enable-ppolicy      Password Policy overlay no|yes|mod],
+       ${ol_dflt_overlays-no}, [no yes mod])
+OL_ARG_ENABLE(proxycache,[    --enable-proxycache        Proxy Cache overlay no|yes|mod],
+       ${ol_dflt_overlays-no}, [no yes mod])
+OL_ARG_ENABLE(refint,[    --enable-refint        Referential Integrity overlay no|yes|mod],
+       ${ol_dflt_overlays-no}, [no yes mod])
+OL_ARG_ENABLE(retcode,[    --enable-retcode      Return Code testing overlay no|yes|mod],
+       ${ol_dflt_overlays-no}, [no yes mod])
+OL_ARG_ENABLE(rwm,[    --enable-rwm              Rewrite/Remap overlay no|yes|mod],
+       ${ol_dflt_overlays-no}, [no yes mod])
+OL_ARG_ENABLE(syncprov,[    --enable-syncprov    Syncrepl Provider overlay no|yes|mod],
+       ${ol_dflt_overlays-yes}, [no yes mod])
+OL_ARG_ENABLE(translucent,[    --enable-translucent  Translucent Proxy overlay no|yes|mod],
+       ${ol_dflt_overlays-no}, [no yes mod])
+OL_ARG_ENABLE(unique,[    --enable-unique       Attribute Uniqueness overlay no|yes|mod],
+       ${ol_dflt_overlays-no}, [no yes mod])
+
 
 dnl ----------------------------------------------------------------
 dnl SLURPD OPTIONS
@@ -264,49 +296,22 @@ AC_ENABLE_SHARED
 
 dnl ----------------------------------------------------------------
 
-dnl General "enable" options
 # validate options
 if test $ol_enable_slapd = no ; then
        dnl SLAPD was specificallly disabled
        if test $ol_enable_slapi = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-slapi argument])
        fi
-       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_hdb = yes ; then
-               AC_MSG_WARN([slapd disabled, ignoring --enable-hdb argument])
-       fi
-       if test $ol_enable_ldap = yes ; then
-               AC_MSG_WARN([slapd disabled, ignoring --enable-ldap 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_null = yes ; then
-               AC_MSG_WARN([slapd disabled, ignoring --enable-null argument])
-       fi
-       if test $ol_enable_passwd = yes ; then
-               AC_MSG_WARN([slapd disabled, ignoring --enable-passwd argument])
-       fi
-       if test $ol_enable_perl = yes ; then
-               AC_MSG_WARN([slapd disabled, ignoring --enable-perl argument])
-       fi
-       if test $ol_enable_shell = yes ; then
-               AC_MSG_WARN([slapd disabled, ignoring --enable-shell argument])
-       fi
-       if test $ol_enable_sql = yes ; then
-               AC_MSG_WARN([slapd disabled, ignoring --enable-sql argument])
-       fi
+       case "$ol_enable_backends" in yes | mod)
+               AC_MSG_WARN([slapd disabled, ignoring --enable-backends argument])
+       esac
+       for i in $Backends; do
+               eval "ol_tmp=\$ol_enable_$i"
+               if test $ol_tmp != no ; then
+                       AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
+                       eval "ol_enable_$i=no"
+               fi
+       done
        if test $ol_enable_modules = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
        fi
@@ -328,73 +333,29 @@ 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_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_hdb_module != static ; then
-               AC_MSG_WARN([slapd disabled, ignoring --with-hdb-module argument])
-       fi
-       if test $ol_with_ldap_module != static ; then
-               AC_MSG_WARN([slapd disabled, ignoring --with-ldap-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_null_module != static ; then
-               AC_MSG_WARN([slapd disabled, ignoring --with-null-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_perl_module != static ; then
-               AC_MSG_WARN([slapd disabled, ignoring --with-perl-module argument])
-       fi
-       if test $ol_with_shell_module != static ; then
-               AC_MSG_WARN([slapd disabled, ignoring --with-shell-module argument])
-       fi
-       if test $ol_with_sql_module != static ; then
-               AC_MSG_WARN([slapd disabled, ignoring --with-sql-module argument])
-       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
-       if test $ol_with_dyngroup != no ; then
-               AC_MSG_WARN([slapd disabled, ignoring --with-dyngroup argument])
-       fi
-       if test $ol_with_proxycache != no ; then
-               AC_MSG_WARN([slapd disabled, ignoring --with-proxycache argument])
-       fi
-       if test $ol_with_rwm != no ; then
-               AC_MSG_WARN([slapd disabled, ignoring --with-rwm argument])
-       fi
+       dnl overlays
+       case "$ol_enable_overlays" in yes | mod)
+               AC_MSG_WARN([slapd disabled, ignoring --enable-overlays argument])
+       esac
+       for i in $Overlays; do
+               eval "ol_tmp=\$ol_enable_$i"
+               if test $ol_tmp != no ; then
+                       AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
+                       eval "ol_enable_$i=no"
+               fi
+       done
 
        # force settings to no
        ol_enable_slapi=no
-       ol_enable_bdb=no
-       ol_enable_dnssrv=no
-       ol_enable_hdb=no
-       ol_enable_ldap=no
-       ol_enable_ldbm=no
-       ol_enable_meta=no
-       ol_enable_monitor=no
-       ol_enable_null=no
-       ol_enable_passwd=no
-       ol_enable_perl=no
-       ol_enable_shell=no
-       ol_enable_sql=no
 
+       ol_enable_backends=
+       ol_enable_overlays=
        ol_enable_modules=no
        ol_enable_multimaster=no
        ol_enable_rlookups=no
@@ -404,27 +365,10 @@ if test $ol_enable_slapd = no ; then
        ol_with_ldbm_api=no
        ol_with_ldbm_type=no
 
-       ol_with_bdb_module=static
-       ol_with_dnssrv_module=static
-       ol_with_hdb_module=static
-       ol_with_ldap_module=static
-       ol_with_ldbm_module=static
-       ol_with_meta_module=static
-       ol_with_monitor_module=static
-       ol_with_null_module=static
-       ol_with_passwd_module=static
-       ol_with_perl_module=static
-       ol_with_shell_module=static
-       ol_with_sql_module=static
-
        ol_enable_slurpd=no
 
        ol_enable_rewrite=no
 
-       ol_with_dyngroup=no
-       ol_with_proxycache=no
-       ol_with_rwm=no
-
 elif test $ol_enable_ldbm = no ; then
        dnl SLAPD without LDBM
 
@@ -436,10 +380,6 @@ elif test $ol_enable_ldbm = no ; then
                AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-type argument])
        fi
 
-       if test $ol_with_ldbm_module != static ; then
-               AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-module argument])
-       fi
-
        if test $ol_enable_modules != yes -a \
                $ol_enable_bdb = no -a \
                $ol_enable_dnssrv = no -a \
@@ -450,6 +390,7 @@ elif test $ol_enable_ldbm = no ; then
                $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
 
@@ -463,7 +404,6 @@ elif test $ol_enable_ldbm = no ; then
 
        ol_with_ldbm_api=no
        ol_with_ldbm_type=no
-       ol_with_ldbm_module=static
 
        if test $ol_enable_bdb != no -o $ol_enable_hdb != no; then
                ol_with_ldbm_api=berkeley
@@ -484,22 +424,19 @@ else
                AC_MSG_ERROR([NDBM only supports LDBM type hash])
        fi
 
-       if test $ol_enable_bdb = yes -o $ol_enable_hdb = yes ; then
+       if test $ol_enable_bdb != no -o $ol_enable_hdb != no ; 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/HDB])
                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_meta = yes -a $ol_enable_ldap = no ; then
+       AC_MSG_ERROR([--enable-meta requires --enable-ldap])
+fi
+
 if test $ol_enable_slurpd = yes ; then
        dnl SLURPD was specifically enabled
        if test $ol_with_threads = no ; then
@@ -513,14 +450,14 @@ if test $ol_enable_lmpasswd = yes ; then
        fi
 fi
 
-if test $ol_enable_kbind = yes -o $ol_enable_kpasswd = yes ; then
+if test $ol_enable_kbind = yes ; then
        if test $ol_with_kerberos = no ; then
                AC_MSG_ERROR([options require --with-kerberos])
        elif test $ol_with_kerberos = auto ; then
                ol_with_kerberos=yes
        fi
 
-elif test $ol_enable_kbind = no -o $ol_enable_kpasswd = no ; then
+elif test $ol_enable_kbind = no ; then
        if test $ol_with_kerberos = auto ; then
                ol_with_kerberos=no
        elif test $ol_with_kerberos != no ; then
@@ -566,32 +503,32 @@ BUILD_MONITOR=no
 BUILD_NULL=no
 BUILD_PASSWD=no
 BUILD_PERL=no
+BUILD_RELAY=no
 BUILD_SHELL=no
 BUILD_SQL=no
 
-BUILD_BDB_DYNAMIC=static
-BUILD_DNSSRV_DYNAMIC=static
-BUILD_HDB_DYNAMIC=static
-BUILD_LDAP_DYNAMIC=static
-BUILD_LDBM_DYNAMIC=static
-BUILD_META_DYNAMIC=static
-BUILD_MONITOR_DYNAMIC=static
-BUILD_NULL_DYNAMIC=static
-BUILD_PASSWD_DYNAMIC=static
-BUILD_PERL_DYNAMIC=static
-BUILD_SHELL_DYNAMIC=static
-BUILD_SQL_DYNAMIC=static
-
+BUILD_ACCESSLOG=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_SYNCPROV=no
+BUILD_TRANSLUCENT=no
+BUILD_UNIQUE=no
 
+SLAPD_STATIC_OVERLAYS=
 SLAPD_DYNAMIC_OVERLAYS=
 
 SLAPD_MODULES_LDFLAGS=
 SLAPD_MODULES_CPPFLAGS=
 
-SLAPD_STATIC_BACKENDS=
+SLAPD_STATIC_BACKENDS=back-ldif
 SLAPD_DYNAMIC_BACKENDS=
 
 SLAPD_PERL_LDFLAGS=
@@ -613,12 +550,11 @@ LIBSLAPITOOLS=
 AUTH_LIBS=
 
 SLAPD_SLP_LIBS=
+SLAPD_GMP_LIBS=
 
 dnl ================================================================
 dnl Checks for programs
 
-AC_PROG_INSTALL
-
 AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
 
 dnl ----------------------------------------------------------------
@@ -687,9 +623,6 @@ AC_LIBTOOL_WIN32_DLL
 AC_LIBTOOL_DLOPEN
 AC_PROG_LIBTOOL
 
-OL_PROG_LN_H
-AC_PROG_LN_S
-
 dnl ----------------------------------------------------------------
 dnl Perl
 ol_link_perl=no
@@ -705,7 +638,7 @@ if test $ol_enable_perl != no ; then
                PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
                PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e 's/ -lc / /' -e 's/ -lc$//'`"
 
-               if test x"$ol_with_perl_module" = "xstatic" ; then
+               if test x"$ol_enable_perl" = "xyes" ; then
                        SLAPD_PERL_LDFLAGS="$PERL_LDFLAGS"
                else
                        MOD_PERL_LDFLAGS="$PERL_LDFLAGS"
@@ -717,20 +650,6 @@ fi
 
 AC_PROG_CPP
 
-dnl ----------------------------------------------------------------
-dnl Cross compiling checks
-if test $cross_compiling = yes -a $ol_enable_x_compile = yes; then
-       AC_MSG_WARN([cross compiling....  some functionality will be removed.])
-
-elif test $cross_compiling = no -a $ol_enable_x_compile = yes; then
-       AC_MSG_WARN([programs compiled here do run here...])
-       AC_MSG_ERROR([  if not cross compiling, use --disable-x-compile.])
-
-elif test $cross_compiling = yes -a $ol_enable_x_compile = no; then
-       AC_MSG_WARN([programs compiled here do not run here...])
-       AC_MSG_ERROR([  if cross compiling,  add --enable-x-compile.])
-fi
-
 dnl ----------------------------------------------------------------
 dnl Checks for UNIX Variants
 dnl AC_AIX
@@ -784,6 +703,7 @@ esac
 dnl ----------------------------------------------------------------
 dnl Check for module support
 ol_link_modules=no
+WITH_MODULES_ENABLED=no
 if test $ol_enable_modules != no ; then
        AC_CHECK_HEADERS(ltdl.h)
 
@@ -800,31 +720,23 @@ if test $ol_enable_modules != no ; then
                AC_MSG_ERROR([could not locate libtool -lltdl])
        fi
        ol_link_modules=yes
+       WITH_MODULES_ENABLED=yes
+
 else
-       ol_with_bdb_module=static
-       ol_with_dnssrv_module=static
-       ol_with_hdb_module=static
-       ol_with_ldap_module=static
-       ol_with_ldbm_module=static
-       ol_with_meta_module=static
-       ol_with_monitor_module=static
-       ol_with_null_module=static
-       ol_with_passwd_module=static
-       ol_with_perl_module=static
-       ol_with_shell_module=static
-       ol_with_sql_module=static
-       if test $ol_with_dyngroup = mod ; then
-               AC_MSG_WARN([building static dyngroup overlay])
-               ol_with_dyngroup = yes
-       fi
-       if test $ol_with_proxycache = mod ; then
-               AC_MSG_WARN([building static proxycache overlay])
-               ol_with_proxycache = yes
-       fi
-       if test $ol_with_rwm = mod ; then
-               AC_MSG_WARN([building static rwm overlay])
-               ol_with_rwm = yes
-       fi
+       for i in $Backends; do
+               eval "ol_tmp=\$ol_enable_$i"
+               if test $ol_tmp = mod ; then
+                       AC_MSG_WARN([building static $i backend])
+                       eval "ol_enable_$i=yes"
+               fi
+       done
+       for i in $Overlays; do
+               eval "ol_tmp=\$ol_enable_$i"
+               if test $ol_tmp = mod ; then
+                       AC_MSG_WARN([building static $i overlay])
+                       eval "ol_enable_$i=yes"
+               fi
+       done
 fi
 
 dnl ----------------------------------------------------------------
@@ -843,11 +755,11 @@ if test $am_cv_sys_posix_termios = yes ; then
                [define if you have POSIX termios])
 fi
 
-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                \
@@ -860,7 +772,7 @@ AC_CHECK_HEADERS(   \
        libutil.h               \
        limits.h                \
        locale.h                \
-       netinet/tcp.h   \
+       netinet/tcp.h           \
        malloc.h                \
        memory.h                \
        psap.h                  \
@@ -878,11 +790,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/ucred.h             \
@@ -890,24 +802,28 @@ AC_CHECK_HEADERS( \
        syslog.h                \
        termios.h               \
        unistd.h                \
+       utime.h                 \
        winsock.h               \
        winsock2.h              \
 )
 
-
 dnl ----------------------------------------------------------------
 dnl Checks for libraries
 
-AC_CHECK_FUNC(dlopen, :, [AC_CHECK_LIB(dl, dlopen)])
+AC_CHECK_FUNCS( sigaction sigset )
 
 dnl HP-UX requires -lV3
 dnl this is not needed on newer versions of HP-UX
-AC_CHECK_LIB(V3, sigset)
+if test $ac_cv_func_sigaction = no && test $ac_cv_func_sigaction = no ; then
+       AC_CHECK_LIB(V3, sigset)
+fi
 
 dnl The following is INTENTIONALLY scripted out because shell does not
 dnl support variable names with the '@' character, which is what
 dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
-if test "$ac_cv_header_winsock_h" = yes; then
+dnl
+dnl Skip Winsock tests on Cygwin
+if test "$ac_cv_cygwin" != yes && test "$ac_cv_header_winsock_h" = yes; then
 AC_CACHE_CHECK([for winsock], [ol_cv_winsock],
 save_LIBS="$LIBS"
 for curlib in ws2_32 wsock32; do
@@ -967,6 +883,28 @@ fi
 dnl check to see if system call automatically restart
 dnl AC_SYS_RESTARTABLE_SYSCALLS
 
+dnl ----------------------------------------------------------------
+AC_CHECK_FUNCS( poll )
+AC_CHECK_HEADERS( poll.h )
+
+dnl ----------------------------------------------------------------
+AC_CHECK_HEADERS( sys/epoll.h )
+if test "${ac_cv_header_sys_epoll_h}" = yes; then
+AC_MSG_CHECKING(for epoll system call)
+AC_TRY_RUN(
+int main(int argc, char *argv[])
+{
+       int epfd = epoll_create(256);
+       exit (epfd == -1 ? 1 : 0);
+}, [AC_MSG_RESULT(yes)
+AC_DEFINE(HAVE_EPOLL,1, [define if your system supports epoll])],
+AC_MSG_RESULT(no),AC_MSG_RESULT(no))
+fi
+
+dnl ----------------------------------------------------------------
+# strerror checks
+OL_STRERROR
+
 dnl ----------------------------------------------------------------
 dnl require POSIX regex
 AC_CHECK_HEADERS( regex.h )
@@ -1023,48 +961,32 @@ fi
 
 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,:)
-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
-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
-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 = no ; then 
-       AC_CHECK_LIB(resolv, __res_query)
-       ac_cv_func_res_query=$ac_cv_lib_resolv___res_query
-fi
+OL_RESOLVER_LINK
 
-if test "$ac_cv_func_res_query" = yes ; then
+ol_link_dnssrv=no
+if test "$ol_cv_lib_resolver" != no ; then
        AC_DEFINE(HAVE_RES_QUERY,1,
                [define if you have res_query()])
 
-       if test $ol_enable_dnssrv != no ; then
+       if test "$ol_enable_dnssrv" != no ; then
                ol_link_dnssrv=yes
        fi
+
+       if test "$ol_cv_lib_resolver" != yes ; then
+               LIBS="$ol_cv_lib_resolver $LIBS"
+       fi
 fi
 
-if test "$ol_enable_dnssrv" = yes -a "$ol_link_dnssrv" = no ; then
-       AC_MSG_ERROR([DNSSRV requires res_query()])
+if test "$ol_enable_dnssrv" = yes -o "$ol_enable_dnssrv" = mod ; then
+       if test "$ol_link_dnssrv" = no ; then
+               AC_MSG_ERROR([DNSSRV requires res_query()])
+       fi
+else
+       ol_enable_dnssrv=no
 fi
 
+AC_CHECK_FUNCS( hstrerror )
+
 dnl ----------------------------------------------------------------
 dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
 dnl PF_LOCAL may use getaddrinfo in available
@@ -1119,7 +1041,6 @@ fi
 dnl ----------------------------------------------------------------
 dnl Kerberos
 ol_link_kbind=no
-ol_link_kpasswd=no
 ol_link_krb5=no
 ol_link_krb4=no
 
@@ -1174,10 +1095,6 @@ if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
                        AC_DEFINE(HAVE_KRB5, 1,
                                [define if you have Kerberos V])
 
-                       if test $ol_enable_kpasswd != no ; then
-                               ol_link_kpasswd=yes;
-                       fi
-
                        if test $ol_with_kerberos = k5only ; then
                                ol_with_kerberos=found
                        fi
@@ -1274,10 +1191,6 @@ if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
        fi
 fi
 
-if test $ol_link_krb4 = yes -a $ol_enable_kpasswd != no ; then
-       ol_link_kpasswd=yes
-fi
-
 if test $ol_link_krb4 = yes -a $ol_enable_kbind != no ; then
        ol_link_kbind=yes
 
@@ -1294,10 +1207,11 @@ 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_LIB(ssl, SSLeay_add_ssl_algorithms, 
@@ -1336,6 +1250,13 @@ if test $ol_with_tls != no ; then
                                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])
+               fi
        fi
 
 else
@@ -1996,25 +1917,20 @@ if test $ol_with_ldbm_api = auto \
        fi
 fi
 
-if test $ol_enable_bdb = yes -a $ol_link_ldbm != berkeley ; then
-       AC_MSG_ERROR(BDB: BerkeleyDB not available)
-elif test $ol_enable_bdb != no -a $ol_link_ldbm = berkeley ; then
-       OL_BDB_COMPAT
-
-       if test $ol_cv_bdb_compat = yes ; then
-               ol_enable_bdb=yes
-       elif test $ol_enable_bdb = yes ; then
-               AC_MSG_ERROR(BDB: BerkeleyDB version incompatible)
+if test $ol_enable_bdb != no -o $ol_enable_hdb != no; then
+       if test $ol_link_ldbm != berkeley ; then
+               AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
        else
-               ol_enable_bdb=no
+               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_enable_hdb = yes -a $ol_link_ldbm != berkeley ; then
-       AC_MSG_ERROR(HDB: BerkeleyDB not available)
-fi
 
 if test $ol_link_ldbm = no -a $ol_with_ldbm_type = btree ; then
-       AC_MSG_WARN(Could not find LDBM with BTREE support)
+       AC_MSG_WARN([Could not find LDBM with BTREE support])
        ol_with_ldbm_api=none
 fi
 
@@ -2057,13 +1973,13 @@ if test $ol_with_ldbm_api = ndbm ; then
 fi
 
 if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
-       AC_MSG_WARN(could not find suitable LDBM backend)
-       if test $ol_enable_ldbm = yes ; then
-               AC_MSG_ERROR(select appropriate LDBM options or disable)
-       fi
+       AC_MSG_ERROR([could not find suitable LDBM backend])
+fi
 
-       AC_MSG_WARN(disabling LDBM)
-       ol_enable_ldbm=no
+if test $ol_enable_bdb = yes -o \
+       $ol_enable_hdb = yes -o \
+       $ol_enable_ldbm = yes ; then
+       SLAPD_LIBS="$SLAPD_LIBS \$(LDBM_LIBS)"
 fi
 
 dnl ----------------------------------------------------------------
@@ -2148,6 +2064,9 @@ if test $ol_enable_sql != no ; then
                AC_MSG_ERROR([could not locate SQL headers])
        ])
 
+       sql_LIBS="$LIBS"
+       LIBS="$LTHREAD_LIBS"
+
        AC_CHECK_LIB(iodbc,SQLDriverConnect,[have_iodbc=yes],[have_iodbc=no])
        if test $have_iodbc = yes ; then
                ol_link_sql="-liodbc"
@@ -2158,6 +2077,8 @@ if test $ol_enable_sql != no ; then
                fi
        fi
 
+       LIBS="$sql_LIBS"
+
        if test $ol_link_sql != no ; then
                SLAPD_SQL_LIBS="$ol_link_sql"
 
@@ -2170,6 +2091,7 @@ dnl ----------------------------------------------------------------
 dnl
 dnl Check for Cyrus SASL
 dnl
+WITH_SASL=no
 ol_link_sasl=no
 ol_link_spasswd=no
 if test $ol_with_cyrus_sasl != no ; then
@@ -2196,7 +2118,7 @@ if test $ol_with_cyrus_sasl != no ; then
                OL_SASL_COMPAT
                if test $ol_cv_sasl_compat = no ; then
                        ol_link_sasl=no
-                       AC_MSG_ERROR([Cyrus SASL library located but incompatible])
+                       AC_MSG_ERROR([Cyrus SASL library located but is incompatible])
                fi
 
                AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
@@ -2210,6 +2132,8 @@ if test $ol_with_cyrus_sasl != no ; then
                AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1,
                        [define if your SASL library has sasl_version()])])
                LIBS="$ac_save_LIBS"
+
+               WITH_SASL=yes
        fi
 
 else
@@ -2274,12 +2198,12 @@ if test $ol_enable_crypt != no ; then
        if test $have_crypt = yes ; then
                AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
        else
-               AC_MSG_WARN(could not find crypt)
+               AC_MSG_WARN([could not find crypt])
                if test $ol_enable_crypt = yes ; then
-                       AC_MSG_ERROR(could not find crypt, select appropriate options or disable)
+                       AC_MSG_ERROR([could not find crypt, select appropriate options or disable])
                fi
 
-               AC_MSG_WARN(disabling crypt support)
+               AC_MSG_WARN([disabling crypt support])
                ol_enable_crypt=no
        fi
 fi
@@ -2318,6 +2242,99 @@ 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.
 
@@ -2357,6 +2374,7 @@ AC_C_CONST
 OL_C_VOLATILE
 
 if test $cross_compiling = yes ; then
+       AC_MSG_WARN([Crossing compiling... all bets are off!])
        AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
 else
        AC_C_BIGENDIAN
@@ -2365,6 +2383,7 @@ fi
 AC_COMPILE_CHECK_SIZEOF(short) 
 AC_COMPILE_CHECK_SIZEOF(int) 
 AC_COMPILE_CHECK_SIZEOF(long)
+AC_COMPILE_CHECK_SIZEOF(wchar_t)
 
 if test "$ac_cv_sizeof_int" -lt 4 ; then
        AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
@@ -2381,6 +2400,12 @@ AC_DEFINE(LBER_TAG_T,long)
 dnl ----------------------------------------------------------------
 dnl Checks for library functions.
 AC_FUNC_MEMCMP
+
+if test $ac_cv_func_memcmp_clean = no ; then
+       AC_DEFINE(NEED_MEMCMP_REPLACEMENT,1,
+               [define if memcmp is not 8-bit clean or is otherwise broken])
+fi
+
 dnl AM_FUNC_MKTIME dnl checks for sys/time.h and unistd.h
 AC_FUNC_STRFTIME
 dnl AM_FUNC_STRTOD
@@ -2439,11 +2464,8 @@ AC_CHECK_FUNCS(          \
        setsid                  \
        setuid                  \
        seteuid                 \
-       sigaction               \
        signal                  \
-       sigset                  \
        strdup                  \
-       strerror                \
        strpbrk                 \
        strrchr                 \
        strsep                  \
@@ -2472,6 +2494,9 @@ if test "$ac_cv_func_getopt" != yes; then
 fi
 if test "$ac_cv_func_getpeereid" != yes; then
        OL_MSGHDR_MSG_ACCRIGHTS
+       if test "$ac_cv_func_getpeereid" != yes; then
+               OL_MSGHDR_MSG_CONTROL
+       fi
        LIBSRCS="$LIBSRCS getpeereid.c"
 fi
 if test "$ac_cv_func_snprintf" != yes -o "$ac_cv_func_vsnprintf" != yes; then
@@ -2483,15 +2508,11 @@ if test "$ac_cv_func_snprintf" != yes -o "$ac_cv_func_vsnprintf" != yes; then
        fi
 fi
 
-dnl ----------------------------------------------------------------
-# Check Configuration
-OL_SYS_ERRLIST
-
 dnl ----------------------------------------------------------------
 dnl Sort out defines
 
 if test "$ol_enable_slapi" != no ; then
-       dnl This check is donel also if --enable-modules is used;
+       dnl This check is done also if --enable-modules is used;
        dnl it is duplicated here, 'cause it'd be cached anyway
        AC_CHECK_HEADERS(ltdl.h)
 
@@ -2538,9 +2559,6 @@ fi
 if test "$ol_enable_crypt" != no ; then
        AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords])
 fi
-if test "$ol_link_kpasswd" != no ; then
-       AC_DEFINE(SLAPD_KPASSWD,1,[define to support Kerberos passwords])
-fi
 if test "$ol_link_spasswd" != no ; then
        AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
 fi
@@ -2564,229 +2582,347 @@ AC_DEFINE(SLAPD_MOD_STATIC,1,[statically linked module])
 AC_DEFINE(SLAPD_MOD_DYNAMIC,2,[dynamically linked module])
 
 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
+       BUILD_BDB=$ol_enable_bdb
+       if test "$ol_enable_bdb" = mod ; then
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
+               MFLAG=SLAPD_MOD_STATIC
        fi
+       AC_DEFINE_UNQUOTED(SLAPD_BDB,$MFLAG,[define to support BDB backend])
 fi
 
-if test "$ol_link_dnssrv" != no ; then
-       AC_DEFINE(SLAPD_DNSSRV,1,[define to support DNS SRV backend])
+if test "$ol_enable_dnssrv" != no ; then
        BUILD_SLAPD=yes
-       BUILD_DNSSRV=yes
-       if test "$ol_with_dnssrv_module" != static ; then
-               AC_DEFINE(SLAPD_DNSSRV_DYNAMIC,1,
-                       [define to support dynamic DNS SRV backend])
-               BUILD_DNSSRV=mod
-               BUILD_DNSSRV_DYNAMIC=shared
+       BUILD_DNSSRV=$ol_enable_dnssrv
+       if test "$ol_enable_dnssrv" = mod ; then
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
+               MFLAG=SLAPD_MOD_STATIC
        fi
+       AC_DEFINE_UNQUOTED(SLAPD_DNSSRV,$MFLAG,[define to support DNS SRV backend])
 fi
 
 if test "$ol_enable_hdb" != no ; then
-       AC_DEFINE(SLAPD_HDB,1,[define to support HDB backend])
        BUILD_SLAPD=yes
-       BUILD_HDB=yes
-       if test "$ol_with_hdb_module" != static ; then
-               AC_DEFINE(SLAPD_HDB_DYNAMIC,1,
-                       [define to support dynamic HDB backend])
-               BUILD_HDB=mod
-               BUILD_HDB_DYNAMIC=shared
+       BUILD_HDB=$ol_enable_hdb
+       if test "$ol_enable_hdb" = mod ; then
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-hdb"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb"
+               MFLAG=SLAPD_MOD_STATIC
        fi
+       AC_DEFINE_UNQUOTED(SLAPD_HDB,$MFLAG,[define to support HDB backend])
 fi
 
 if test "$ol_enable_ldap" != no ; then
-       AC_DEFINE(SLAPD_LDAP,1,[define to support LDAP backend])
        BUILD_SLAPD=yes
-       BUILD_LDAP=yes
-       if test "$ol_with_ldap_module" != static ; then
-               AC_DEFINE(SLAPD_LDAP_DYNAMIC,1,
-                       [define to support dynamic LDAP backend])
-               BUILD_LDAP=mod
-               BUILD_LDAP_DYNAMIC=shared
+       BUILD_LDAP=$ol_enable_ldap
+       if test "$ol_enable_ldap" = mod ; then
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
+               MFLAG=SLAPD_MOD_STATIC
        fi
+       AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
 fi
 
 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
-       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
+       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
-       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
+       BUILD_META=$ol_enable_meta
        BUILD_REWRITE=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
+       if test "$ol_enable_meta" = mod ; then
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
+               MFLAG=SLAPD_MOD_STATIC
        fi
+       AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
 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
+       BUILD_MONITOR=$ol_enable_monitor
+       if test "$ol_enable_monitor" = mod ; then
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
+               MFLAG=SLAPD_MOD_STATIC
        fi
+       AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
 fi
 
 if test "$ol_enable_null" != no ; then
-       AC_DEFINE(SLAPD_NULL,1,[define to support NULL backend])
        BUILD_SLAPD=yes
-       BUILD_NULL=yes
-       if test "$ol_with_null_module" != static ; then
-               AC_DEFINE(SLAPD_NULL_DYNAMIC,1,
-                       [define to support dynamic NULL backend])
-               BUILD_NULL=mod
-               BUILD_NULL_DYNAMIC=shared
+       BUILD_NULL=$ol_enable_null
+       if test "$ol_enable_null" = mod ; then
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
+               MFLAG=SLAPD_MOD_STATIC
        fi
+       AC_DEFINE_UNQUOTED(SLAPD_NULL,$MFLAG,[define to support NULL backend])
 fi
 
 if test "$ol_enable_passwd" != no ; then
-       AC_DEFINE(SLAPD_PASSWD,1,[define to support PASSWD backend])
        BUILD_SLAPD=yes
-       BUILD_PASSWD=yes
-       if test "$ol_with_passwd_module" != static ; then
-               AC_DEFINE(SLAPD_PASSWD_DYNAMIC,1,
-                       [define to support dynamic PASSWD backend])
-               BUILD_PASSWD=mod
-               BUILD_PASSWD_DYNAMIC=shared
+       BUILD_PASSWD=$ol_enable_passwd
+       if test "$ol_enable_passwd" = mod ; then
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
+               MFLAG=SLAPD_MOD_STATIC
        fi
+       AC_DEFINE_UNQUOTED(SLAPD_PASSWD,$MFLAG,[define to support PASSWD backend])
 fi
 
 if test "$ol_link_perl" != no ; then
-       AC_DEFINE(SLAPD_PERL,1,[define to support PERL backend])
        BUILD_SLAPD=yes
-       BUILD_PERL=yes
-       if test "$ol_with_perl_module" != static ; then
-               AC_DEFINE(SLAPD_PERL_DYNAMIC,1,
-                       [define to support dynamic PERL backend])
-               BUILD_PERL=mod
-               BUILD_PERL_DYNAMIC=shared
+       BUILD_PERL=$ol_enable_perl
+       if test "$ol_enable_perl" = mod ; then
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
+               MFLAG=SLAPD_MOD_STATIC
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_PERL,$MFLAG,[define to support PERL backend])
+fi
+
+if test "$ol_enable_relay" != no ; then
+       BUILD_SLAPD=yes
+       BUILD_RELAY=$ol_enable_relay
+       if test "$ol_enable_relay" = mod ; then
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-relay"
+               MFLAG=SLAPD_MOD_DYNAMIC
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-relay"
+               MFLAG=SLAPD_MOD_STATIC
        fi
+       AC_DEFINE_UNQUOTED(SLAPD_RELAY,$MFLAG,[define to support relay backend])
 fi
 
 if test "$ol_enable_shell" != no ; then
        if test "$ol_link_thread" != no ; then
                AC_MSG_WARN([Use of --without-threads is recommended with back-shell])
        fi
-       AC_DEFINE(SLAPD_SHELL,1,[define to support SHELL backend])
        BUILD_SLAPD=yes
-       BUILD_SHELL=yes
-       if test "$ol_with_shell_module" != static ; then
-               AC_DEFINE(SLAPD_SHELL_DYNAMIC,1,
-                       [define to support dynamic SHELL backend])
-               BUILD_SHELL=mod
-               BUILD_SHELL_DYNAMIC=shared
+       BUILD_SHELL=$ol_enable_shell
+       if test "$ol_enable_shell" = mod ; then
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
+               MFLAG=SLAPD_MOD_STATIC
        fi
+       AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend])
 fi
 
 if test "$ol_link_sql" != no ; then
-       AC_DEFINE(SLAPD_SQL,1,[define to support SQL backend])
        BUILD_SLAPD=yes
-       BUILD_SQL=yes
-       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
+       BUILD_SQL=$ol_enable_sql
+       if test "$ol_enable_sql" = mod; then
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
+               MFLAG=SLAPD_MOD_STATIC
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend])
+fi
+
+if test "$ol_enable_accesslog" != no ; then
+       BUILD_ACCESSLOG=$ol_enable_accesslog
+       if test "$ol_enable_accesslog" = mod ; then
+               MFLAG=SLAPD_MOD_DYNAMIC
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS accesslog.la"
+       else
+               MFLAG=SLAPD_MOD_STATIC
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS accesslog.o"
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay])
+fi
+
+if test "$ol_enable_denyop" != no ; then
+       BUILD_DENYOP=$ol_enable_denyop
+       if test "$ol_enable_denyop" = mod ; then
+               MFLAG=SLAPD_MOD_DYNAMIC
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS denyop.la"
+       else
+               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])
 fi
 
-if test "$ol_with_dyngroup" != no ; then
-       BUILD_DYNGROUP=$ol_with_dyngroup
-       if test "$ol_with_dyngroup" = mod ; then
+if test "$ol_enable_dyngroup" != no ; then
+       BUILD_DYNGROUP=$ol_enable_dyngroup
+       if test "$ol_enable_dyngroup" = mod ; then
                MFLAG=SLAPD_MOD_DYNAMIC
                SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dyngroup.la"
        else
                MFLAG=SLAPD_MOD_STATIC
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dyngroup.o"
        fi
        AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay])
 fi
 
-if test "$ol_with_proxycache" != no ; then
-       BUILD_PROXYCACHE=$ol_with_proxycache
-       if test "$ol_with_proxycache" = mod ; then
+if test "$ol_enable_dynlist" != no ; then
+       BUILD_DYNLIST=$ol_enable_dynlist
+       if test "$ol_enable_dynlist" = mod ; then
+               MFLAG=SLAPD_MOD_DYNAMIC
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dynlist.la"
+       else
+               MFLAG=SLAPD_MOD_STATIC
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dynlist.o"
+       fi
+       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
+               MFLAG=SLAPD_MOD_DYNAMIC
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS lastmod.la"
+       else
+               MFLAG=SLAPD_MOD_STATIC
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS lastmod.o"
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_LASTMOD,$MFLAG,[define for Last Modification overlay])
+fi
+
+if test "$ol_enable_ppolicy" != no ; then
+       BUILD_PPOLICY=$ol_enable_ppolicy
+       if test "$ol_enable_ppolicy" = mod ; then
+               MFLAG=SLAPD_MOD_DYNAMIC
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS ppolicy.la"
+       else
+               MFLAG=SLAPD_MOD_STATIC
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS ppolicy.o"
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_PPOLICY,$MFLAG,[define for Password Policy overlay])
+fi
+
+if test "$ol_enable_proxycache" != no ; then
+       BUILD_PROXYCACHE=$ol_enable_proxycache
+       if test "$ol_enable_proxycache" = mod ; then
                MFLAG=SLAPD_MOD_DYNAMIC
                SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS pcache.la"
        else
                MFLAG=SLAPD_MOD_STATIC
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS pcache.o"
        fi
        AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay])
 fi
 
-if test "$ol_with_rwm " != no ; then
+if test "$ol_enable_refint" != no ; then
+       BUILD_REFINT=$ol_enable_refint
+       if test "$ol_enable_refint" = mod ; then
+               MFLAG=SLAPD_MOD_DYNAMIC
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la"
+       else
+               MFLAG=SLAPD_MOD_STATIC
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS refint.o"
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay])
+fi
+
+if test "$ol_enable_retcode" != no ; then
+       BUILD_RETCODE=$ol_enable_retcode
+       if test "$ol_enable_retcode" = mod ; then
+               MFLAG=SLAPD_MOD_DYNAMIC
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS retcode.la"
+       else
+               MFLAG=SLAPD_MOD_STATIC
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS retcode.o"
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_RETCODE,$MFLAG,[define for Referential Integrity overlay])
+fi
+
+if test "$ol_enable_rwm" != no ; then
        BUILD_REWRITE=yes
-       BUILD_RWM=$ol_with_rwm
-       if test "$ol_with_rwm" = mod ; then
+       BUILD_RWM=$ol_enable_rwm
+       if test "$ol_enable_rwm" = mod ; then
                MFLAG=SLAPD_MOD_DYNAMIC
                SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS rwm.la"
        else
                MFLAG=SLAPD_MOD_STATIC
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS rwm_x.o"
        fi
        AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
 fi
 
+if test "$ol_enable_syncprov" != no ; then
+       BUILD_SYNCPROV=$ol_enable_syncprov
+       if test "$ol_enable_syncprov" = mod ; then
+               MFLAG=SLAPD_MOD_DYNAMIC
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS syncprov.la"
+       else
+               MFLAG=SLAPD_MOD_STATIC
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS syncprov.o"
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_SYNCPROV,$MFLAG,[define for Syncrepl Provider overlay])
+fi
+
+if test "$ol_enable_translucent" != no ; then
+       BUILD_TRANSLUCENT=$ol_enable_translucent
+       if test "$ol_enable_translucent" = mod ; then
+               MFLAG=SLAPD_MOD_DYNAMIC
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS translucent.la"
+       else
+               MFLAG=SLAPD_MOD_STATIC
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS translucent.o"
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_TRANSLUCENT,$MFLAG,[define for Translucent Proxy overlay])
+fi
+
+if test "$ol_enable_unique" != no ; then
+       BUILD_UNIQUE=$ol_enable_unique
+       if test "$ol_enable_unique" = mod ; then
+               MFLAG=SLAPD_MOD_DYNAMIC
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la"
+       else
+               MFLAG=SLAPD_MOD_STATIC
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS unique.o"
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay])
+fi
+
 if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \
        $BUILD_SLAPD = yes ; then
        BUILD_SLURPD=yes
@@ -2817,20 +2953,18 @@ else
        PLAT=UNIX
 fi
 
-if test -z "$SLAPD_STATIC_BACKENDS"; then
-       SLAPD_NO_STATIC='#'
-else
-       SLAPD_NO_STATIC=
-fi
-
 AC_SUBST(LIBSRCS)
 AC_SUBST(PLAT)
+AC_SUBST(WITH_SASL)
 AC_SUBST(WITH_TLS)
+AC_SUBST(WITH_MODULES_ENABLED)
 AC_SUBST(BUILD_LIBS_DYNAMIC)
 
 AC_SUBST(BUILD_SLAPD)
+dnl slapi
   AC_SUBST(BUILD_SLAPI)
   AC_SUBST(SLAPD_SLAPI_DEPEND)
+dnl backends
   AC_SUBST(BUILD_BDB)
   AC_SUBST(BUILD_DNSSRV)
   AC_SUBST(BUILD_HDB)
@@ -2840,24 +2974,25 @@ AC_SUBST(BUILD_SLAPD)
   AC_SUBST(BUILD_MONITOR)
   AC_SUBST(BUILD_NULL)
   AC_SUBST(BUILD_PASSWD)
+  AC_SUBST(BUILD_RELAY)
   AC_SUBST(BUILD_PERL)
   AC_SUBST(BUILD_SHELL)
   AC_SUBST(BUILD_SQL)
-  AC_SUBST(BUILD_BDB_DYNAMIC)
-  AC_SUBST(BUILD_DNSSRV_DYNAMIC)
-  AC_SUBST(BUILD_HDB_DYNAMIC)
-  AC_SUBST(BUILD_LDAP_DYNAMIC)
-  AC_SUBST(BUILD_LDBM_DYNAMIC)
-  AC_SUBST(BUILD_META_DYNAMIC)
-  AC_SUBST(BUILD_MONITOR_DYNAMIC)
-  AC_SUBST(BUILD_NULL_DYNAMIC)
-  AC_SUBST(BUILD_PASSWD_DYNAMIC)
-  AC_SUBST(BUILD_PERL_DYNAMIC)
-  AC_SUBST(BUILD_SHELL_DYNAMIC)
-  AC_SUBST(BUILD_SQL_DYNAMIC)
+dnl overlays
+  AC_SUBST(BUILD_ACCESSLOG)
+  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_SYNCPROV)
+  AC_SUBST(BUILD_TRANSLUCENT)
+  AC_SUBST(BUILD_UNIQUE)
 AC_SUBST(BUILD_SLURPD)
 
 AC_SUBST(LDAP_LIBS)
@@ -2874,6 +3009,7 @@ AC_SUBST(SLAPD_MODULES_LDFLAGS)
 AC_SUBST(SLAPD_NO_STATIC)
 AC_SUBST(SLAPD_STATIC_BACKENDS)
 AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
+AC_SUBST(SLAPD_STATIC_OVERLAYS)
 AC_SUBST(SLAPD_DYNAMIC_OVERLAYS)
 
 AC_SUBST(PERL_CPPFLAGS)
@@ -2891,6 +3027,7 @@ AC_SUBST(LIBSLAPITOOLS)
 AC_SUBST(AUTH_LIBS)
 
 AC_SUBST(SLAPD_SLP_LIBS)
+AC_SUBST(SLAPD_GMP_LIBS)
 
 AC_SUBST(SLAPD_SQL_LDFLAGS)
 AC_SUBST(SLAPD_SQL_LIBS)
@@ -2922,7 +3059,7 @@ libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.
 libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.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 \
+libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-shared.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 \
@@ -2930,17 +3067,18 @@ servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefi
 servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk \
 servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk \
 servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/mod.mk \
+servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk \
 servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk \
 servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk \
 servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk \
 servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk \
 servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk \
+servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk \
 servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk \
 servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk \
 servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk \
 servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk  \
 servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk \
-servers/slapd/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/run \
@@ -2948,5 +3086,57 @@ tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk \
 ,[
 chmod +x tests/run
 date > stamp-h
+BACKENDSC="servers/slapd/backends.c"
+echo "Making $BACKENDSC"
+rm -f $BACKENDSC
+cat > $BACKENDSC << ENDX
+/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+ *
+ * Copyright 1998-2005 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_BACKENDS}"; then
+       for b in config ${STATIC_BACKENDS}; do
+               bb=`echo "${b}" | sed -e 's/back-//'`
+               cat >> $BACKENDSC << ENDX
+extern BI_init ${bb}_back_initialize;
+ENDX
+       done
+
+       cat >> $BACKENDSC << ENDX
+
+BackendInfo slap_binfo[[]] = {
+ENDX
+
+       for b in config ${STATIC_BACKENDS}; do
+               bb=`echo "${b}" | sed -e 's/back-//'`
+               echo "    Add ${bb} ..."
+               cat >> $BACKENDSC << ENDX
+       { "${bb}", ${bb}_back_initialize },
+ENDX
+       done
+
+       cat >> $BACKENDSC << ENDX
+       { NULL, NULL },
+};
+
+/* end of generated file */
+ENDX
+fi
+
 echo Please run \"make depend\" to build dependencies
-])
+],[STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"])