]> git.sur5r.net Git - openldap/blobdiff - configure.in
ITS#5569
[openldap] / configure.in
index 2aeec53862304969f1c09f8e550afc8fb3651821..6b94c4be8747fa701440de19dec4bda1f0bf81ea 100644 (file)
@@ -1,7 +1,7 @@
 dnl $OpenLDAP$
 dnl This work is part of OpenLDAP Software <http://www.openldap.org/>.
 dnl
 dnl $OpenLDAP$
 dnl This work is part of OpenLDAP Software <http://www.openldap.org/>.
 dnl
-dnl Copyright 1998-2003 The OpenLDAP Foundation.
+dnl Copyright 1998-2008 The OpenLDAP Foundation.
 dnl All rights reserved.
 dnl
 dnl Redistribution and use in source and binary forms, with or without
 dnl All rights reserved.
 dnl
 dnl Redistribution and use in source and binary forms, with or without
@@ -13,46 +13,26 @@ dnl top-level directory of the distribution or, alternatively, at
 dnl <http://www.OpenLDAP.org/license.html>.
 dnl
 dnl ----------------------------------------------------------------
 dnl <http://www.OpenLDAP.org/license.html>.
 dnl
 dnl ----------------------------------------------------------------
-dnl
-dnl Redefine AC_INIT_BINSH to provide RCS IDs and copyright notice
-dnl at top of generated configure script.  Prints simple copyright.
-define([AC_INIT_BINSH],
-[[#! /bin/sh
-# $]OpenLDAP[$
-# from] translit([$OpenLDAP$], $")] [
-
-# This work is part of OpenLDAP Software <http://www.openldap.org/>.
-#
-# Copyright 1998-2003 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>.
-
-echo "Copyright 1998-2003 The OpenLDAP Foundation. All rights reserved."
-echo " Restrictions apply, see COPYRIGHT and LICENSE files."
-])dnl
-dnl ----------------------------------------------------------------
 dnl Disable config.cache!
 define([AC_CACHE_LOAD], )dnl
 define([AC_CACHE_SAVE], )dnl
 dnl Disable config.cache!
 define([AC_CACHE_LOAD], )dnl
 define([AC_CACHE_SAVE], )dnl
+dnl ----------------------------------------------------------------
+dnl Disable libtool 1.5 support for languages we don't use
+define([AC_LIBTOOL_LANG_CXX_CONFIG], [:])dnl
+define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
+define([AC_LIBTOOL_LANG_GCJ_CONFIG], [:])dnl
 dnl ================================================================
 dnl Configure.in for OpenLDAP
 dnl ================================================================
 dnl Configure.in for OpenLDAP
-AC_INIT(build/version.sh)dnl
-
-# 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 CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
+AC_COPYRIGHT([[Copyright 1998-2008 The OpenLDAP Foundation. All rights reserved.
+Restrictions apply, see COPYRIGHT and LICENSE files.]])
+AC_REVISION([$OpenLDAP$])
+AC_INIT([OpenLDAP],,[http://www.openldap.org/its/])
+m4_define([AC_PACKAGE_BUGREPORT],[<http://www.openldap.org/its/>])
+AC_CONFIG_SRCDIR(build/version.sh)dnl
+dnl ----------------------------------------------------------------
+dnl OpenLDAP Autoconf Macros
+builtin(include, build/openldap.m4)dnl
+dnl ================================================================
 
 AC_CONFIG_AUX_DIR(build)dnl
 
 
 AC_CONFIG_AUX_DIR(build)dnl
 
@@ -61,7 +41,7 @@ if test -z "$OL_STRING"; then
        AC_MSG_ERROR([could not determine version])
 fi
 
        AC_MSG_ERROR([could not determine version])
 fi
 
-if test -f "$ac_aux_dir/shtool" -a ! -d $ac_aux_dir/shtool; then
+if test -f "$ac_aux_dir/shtool" && test ! -d $ac_aux_dir/shtool; then
        ac_cv_shtool="$ac_aux_dir/shtool"
 else
        AC_MSG_ERROR([no shtool found in $ac_aux_dir])
        ac_cv_shtool="$ac_aux_dir/shtool"
 else
        AC_MSG_ERROR([no shtool found in $ac_aux_dir])
@@ -82,7 +62,7 @@ echo "Configuring ${TB}${OL_STRING}${TN} ${OPENLDAP_CVS}..."
 
 dnl Determine host platform
 dnl            we try not to use this for much
 
 dnl Determine host platform
 dnl            we try not to use this for much
-AC_CANONICAL_SYSTEM
+AC_CANONICAL_TARGET([])
 
 AM_INIT_AUTOMAKE([$OL_PACKAGE],[$OL_VERSION], [no defines])dnl
 AC_SUBST(PACKAGE)dnl
 
 AM_INIT_AUTOMAKE([$OL_PACKAGE],[$OL_VERSION], [no defines])dnl
 AC_SUBST(PACKAGE)dnl
@@ -95,18 +75,121 @@ 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)
 
 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
 
 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 aclocal.m4 should be built using aclocal from automake 1.4
-dnl libtool 1.4.2 should be installed.
-AC_PREREQ(2.13)dnl Required Autoconf version
+dnl We use autoconf features new to 2.59.  Later versions like won't work.
+dnl aclocal.m4 should be built using aclocal from automake 1.5
+dnl libtool 1.5 should be installed.
+AC_PREREQ(2.59)dnl Required Autoconf version
+
+AH_TOP([
+/* begin of portable.h.pre */
+/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+ *
+ * Copyright 1998-2008 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>.
+ */
+
+#ifndef _LDAP_PORTABLE_H
+#define _LDAP_PORTABLE_H
+
+/* define this if needed to get reentrant functions */
+#ifndef REENTRANT
+#undef REENTRANT
+#endif
+#ifndef _REENTRANT
+#undef _REENTRANT
+#endif
+
+/* define this if needed to get threadsafe functions */
+#ifndef THREADSAFE
+#undef THREADSAFE
+#endif
+#ifndef _THREADSAFE
+#undef _THREADSAFE
+#endif
+#ifndef THREAD_SAFE
+#undef THREAD_SAFE
+#endif
+#ifndef _THREAD_SAFE
+#undef _THREAD_SAFE
+#endif
+
+#ifndef _SGI_MP_SOURCE
+#undef _SGI_MP_SOURCE
+#endif
+
+/* end of portable.h.pre */
+])
+AH_BOTTOM([
+/* begin of portable.h.post */
+
+#ifdef _WIN32
+       /* don't suck in all of the win32 api */
+#      define WIN32_LEAN_AND_MEAN 1
+#endif
+
+#ifndef LDAP_NEEDS_PROTOTYPES
+/* force LDAP_P to always include prototypes */
+#define LDAP_NEEDS_PROTOTYPES 1
+#endif
+
+#ifndef LDAP_REL_ENG
+#if (LDAP_VENDOR_VERSION == 000000) && !defined(LDAP_DEVEL)
+#define LDAP_DEVEL
+#endif
+#if defined(LDAP_DEVEL) && !defined(LDAP_TEST)
+#define LDAP_TEST
+#endif
+#endif
+
+#ifdef HAVE_STDDEF_H
+#      include <stddef.h>
+#endif
+
+#ifdef HAVE_EBCDIC 
+/* ASCII/EBCDIC converting replacements for stdio funcs
+ * vsnprintf and snprintf are used too, but they are already
+ * checked by the configure script
+ */
+#define fputs ber_pvt_fputs
+#define fgets ber_pvt_fgets
+#define printf ber_pvt_printf
+#define fprintf ber_pvt_fprintf
+#define vfprintf ber_pvt_vfprintf
+#define vsprintf ber_pvt_vsprintf
+#endif
 
 
-AC_CONFIG_HEADER(include/portable.h include/ldap_features.h include/lber_types.h)dnl
+#include "ac/fdset.h"
+
+#include "ldap_cdefs.h"
+#include "ldap_features.h"
+
+#include "ac/assert.h"
+#include "ac/localize.h"
+
+#endif /* _LDAP_PORTABLE_H */
+/* end of portable.h.post */
+])
+
+AC_CONFIG_HEADERS([include/portable.h:include/portable.hin])
+AC_CONFIG_HEADERS([include/ldap_features.h:include/ldap_features.hin])
+AC_CONFIG_HEADERS([include/lber_types.h:include/lber_types.hin])
 
 dnl ================================================================
 dnl Start Args
 
 dnl ================================================================
 dnl Start Args
@@ -150,13 +233,9 @@ 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_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
 
 dnl ----------------------------------------------------------------
 dnl General "with" options
-dnl OL_ARG_ENABLE(dmalloc,[  --enable-dmalloc    enable debug malloc support], no)dnl
-
 OL_ARG_WITH(cyrus_sasl,[  --with-cyrus-sasl      with Cyrus SASL support],
        auto, [auto yes no] )
 OL_ARG_WITH(fetch,[  --with-fetch                with fetch(3) URL support],
 OL_ARG_WITH(cyrus_sasl,[  --with-cyrus-sasl      with Cyrus SASL support],
        auto, [auto yes no] )
 OL_ARG_WITH(fetch,[  --with-fetch                with fetch(3) URL support],
@@ -167,9 +246,16 @@ ol_with_kerberos=${ol_with_kerberos-auto}
 OL_ARG_WITH(threads,[  --with-threads    with threads],
        auto, [auto nt posix mach pth lwp yes no manual] )
 OL_ARG_WITH(tls,[  --with-tls            with TLS/SSL support],
 OL_ARG_WITH(threads,[  --with-threads    with threads],
        auto, [auto nt posix mach pth lwp yes no manual] )
 OL_ARG_WITH(tls,[  --with-tls            with TLS/SSL support],
-       auto, [auto ssleay openssl yes no] )
-OL_ARG_WITH(yielding_select,[  --with-yielding-select  with implicitly yielding select],
+       auto, [auto openssl yes no] )
+OL_ARG_WITH(yielding_select,
+       [  --with-yielding-select  with implicitly yielding select],
        auto, [auto yes no manual] )
        auto, [auto yes no manual] )
+OL_ARG_WITH(mp,
+       [  --with-mp               with multiple precision statistics auto|longlong|long|bignum|gmp],
+       auto, [auto longlong long bignum gmp yes no])
+OL_ARG_WITH(odbc,
+       [  --with-odbc             with specific ODBC support iodbc|unixodbc|auto],
+       auto, [auto iodbc unixodbc] )
 
 dnl ----------------------------------------------------------------
 dnl Server options
 
 dnl ----------------------------------------------------------------
 dnl Server options
@@ -177,134 +263,165 @@ dnl ----------------------------------------------------------------
 
 dnl ----------------------------------------------------------------
 dnl SLAPD OPTIONS
 
 dnl ----------------------------------------------------------------
 dnl SLAPD OPTIONS
-AC_ARG_WITH(xxslapdoptions,[
+AC_ARG_ENABLE(xxslapdoptions,[
 SLAPD (Standalone LDAP Daemon) Options:])
 OL_ARG_ENABLE(slapd,[  --enable-slapd    enable building slapd], yes)dnl
 OL_ARG_ENABLE(aci,[    --enable-aci      enable per-object ACIs (experimental)], no)dnl
 OL_ARG_ENABLE(cleartext,[    --enable-cleartext          enable cleartext passwords], yes)dnl
 OL_ARG_ENABLE(crypt,[    --enable-crypt          enable crypt(3) passwords], no)dnl
 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(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(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
 
 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_ENABLE(xxslapbackends,[
+SLAPD Backend Options:])
+
+OL_ARG_ENABLE(backends,[    --enable-backends    enable all available backends],
+       --, [no yes mod])dnl
+OL_ARG_ENABLE(bdb,[    --enable-bdb      enable Berkeley DB backend],
+       yes, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(dnssrv,[    --enable-dnssrv        enable dnssrv backend],
+       no, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(hdb,[    --enable-hdb      enable Hierarchical DB backend],
+       yes, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(ldap,[    --enable-ldap    enable ldap backend],
+       no, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(ldbm,[    --enable-ldbm    enable ldbm backend],
+       no, [no yes mod], ol_enable_backends)dnl
+AC_ARG_WITH(ldbm_api,,[
+       AC_MSG_WARN([Please use --enable-ldbm-api instead of --with-ldbm-api])
+       enable_ldbm_api="$with_ldbm_api"])
+OL_ARG_ENABLE(ldbm_api,[      --enable-ldbm-api   use LDBM API],
+       auto, [auto berkeley bcompat mdbm gdbm])
+AC_ARG_WITH(ldbm_type,,[
+       AC_MSG_WARN([Please use --enable-ldbm-type instead of --with-ldbm-type])
+       enable_ldbm_type="$with_ldbm_type"])
+OL_ARG_ENABLE(ldbm_type,[      --enable-ldbm-type  use LDBM type],
+       auto, [auto btree hash])
+OL_ARG_ENABLE(meta,[    --enable-meta    enable metadirectory backend],
+       no, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(monitor,[    --enable-monitor      enable monitor backend],
+       yes, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(null,[    --enable-null    enable null backend],
+       no, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(passwd,[    --enable-passwd        enable passwd backend],
+       no, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(perl,[    --enable-perl    enable perl backend],
+       no, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(relay,[    --enable-relay          enable relay backend],
+       yes, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(shell,[    --enable-shell          enable shell backend],
+       no, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(sql,[    --enable-sql      enable sql backend],
+       no, [no yes mod], ol_enable_backends)dnl
 
 dnl ----------------------------------------------------------------
 dnl SLAPD Overlay Options
 
 dnl ----------------------------------------------------------------
 dnl SLAPD Overlay Options
-AC_ARG_WITH(xxslapoverlays,[
+Overlays="accesslog \
+       auditlog \
+       denyop \
+       dyngroup \
+       dynlist \
+       lastmod \
+       ppolicy \
+       proxycache \
+       refint \
+       retcode \
+       rwm \
+       syncprov \
+       translucent \
+       unique \
+       valsort"
+
+AC_ARG_ENABLE(xxslapoverlays,[
 SLAPD Overlay Options:])
 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_ENABLE(overlays,[    --enable-overlays    enable all available overlays],
+       --, [no yes mod])dnl
+OL_ARG_ENABLE(accesslog,[    --enable-accesslog          In-Directory Access Logging overlay],
+       no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(auditlog,[    --enable-auditlog    Audit Logging overlay],
+       no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(denyop,[    --enable-denyop        Deny Operation overlay],
+       no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(dyngroup,[    --enable-dyngroup    Dynamic Group overlay],
+       no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(dynlist,[    --enable-dynlist      Dynamic List overlay],
+       no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(lastmod,[    --enable-lastmod      Last Modification overlay],
+       no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(ppolicy,[    --enable-ppolicy      Password Policy overlay],
+       no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(proxycache,[    --enable-proxycache        Proxy Cache overlay],
+       no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(refint,[    --enable-refint        Referential Integrity overlay],
+       no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(retcode,[    --enable-retcode      Return Code testing overlay],
+       no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(rwm,[    --enable-rwm              Rewrite/Remap overlay],
+       no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(syncprov,[    --enable-syncprov    Syncrepl Provider overlay],
+       yes, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(translucent,[    --enable-translucent  Translucent Proxy overlay],
+       no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(unique,[    --enable-unique       Attribute Uniqueness overlay],
+       no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(valsort,[    --enable-valsort      Value Sorting overlay],
+       no, [no yes mod], ol_enable_overlays)
 
 dnl ----------------------------------------------------------------
 dnl SLURPD OPTIONS
 
 dnl ----------------------------------------------------------------
 dnl SLURPD OPTIONS
-AC_ARG_WITH(xxslurpdoptions,[
+AC_ARG_ENABLE(xxslurpdoptions,[
 SLURPD (Replication Daemon) Options:])
 OL_ARG_ENABLE(slurpd,[  --enable-slurpd          enable building slurpd], auto)dnl
 
 dnl ----------------------------------------------------------------
 SLURPD (Replication Daemon) Options:])
 OL_ARG_ENABLE(slurpd,[  --enable-slurpd          enable building slurpd], auto)dnl
 
 dnl ----------------------------------------------------------------
-AC_ARG_WITH(xxliboptions,[
+AC_ARG_ENABLE(xxliboptions,[
 Library Generation & Linking Options])
 AC_ENABLE_STATIC
 AC_ENABLE_SHARED
 
 dnl ----------------------------------------------------------------
 
 Library Generation & Linking Options])
 AC_ENABLE_STATIC
 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
 # 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
        if test $ol_enable_modules = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
        fi
@@ -320,47 +437,11 @@ if test $ol_enable_slapd = no ; then
        if test $ol_enable_aci = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
        fi
        if test $ol_enable_aci = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
        fi
-       if test $ol_with_ldbm_api != auto ; then
-               AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-api 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_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])
+       if test $ol_enable_ldbm_api != auto ; then
+               AC_MSG_WARN([slapd disabled, ignoring --enable-ldbm-api argument])
        fi
        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])
+       if test $ol_enable_ldbm_type != auto ; then
+               AC_MSG_WARN([slapd disabled, ignoring --enable-ldbm-type argument])
        fi
        if test $ol_enable_slurpd = yes ; then
                AC_MSG_ERROR([slurpd requires slapd])
        fi
        if test $ol_enable_slurpd = yes ; then
                AC_MSG_ERROR([slurpd requires slapd])
@@ -368,84 +449,60 @@ if test $ol_enable_slapd = no ; then
        if test $ol_enable_rewrite = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
        fi
        if test $ol_enable_rewrite = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
        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
+       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
 
        # 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
        ol_enable_aci=no
        ol_enable_wrappers=no
 
        ol_enable_modules=no
        ol_enable_multimaster=no
        ol_enable_rlookups=no
        ol_enable_aci=no
        ol_enable_wrappers=no
 
-       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_ldbm_api=no
+       ol_enable_ldbm_type=no
 
        ol_enable_slurpd=no
 
        ol_enable_rewrite=no
 
 
        ol_enable_slurpd=no
 
        ol_enable_rewrite=no
 
-       ol_with_dyngroup=no
-       ol_with_proxycache=no
-
 elif test $ol_enable_ldbm = no ; then
        dnl SLAPD without LDBM
 
 elif test $ol_enable_ldbm = no ; then
        dnl SLAPD without LDBM
 
-       if test $ol_with_ldbm_api != auto ; then
-               AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-api argument])
-       fi
-
-       if test $ol_with_ldbm_type != auto ; then
-               AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-type argument])
+       if test $ol_enable_ldbm_api != auto ; then
+               AC_MSG_WARN([LDBM disabled, ignoring --enable-ldbm-api argument])
        fi
 
        fi
 
-       if test $ol_with_ldbm_module != static ; then
-               AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-module argument])
+       if test $ol_enable_ldbm_type != auto ; then
+               AC_MSG_WARN([LDBM disabled, ignoring --enable-ldbm-type argument])
        fi
 
        fi
 
-       if test $ol_enable_modules != yes -a \
-               $ol_enable_bdb = no -a \
-               $ol_enable_dnssrv = no -a \
-               $ol_enable_hdb = no -a \
-               $ol_enable_ldap = no -a \
-               $ol_enable_meta = no -a \
-               $ol_enable_monitor = no -a \
-               $ol_enable_null = no -a \
-               $ol_enable_passwd = no -a \
-               $ol_enable_perl = no -a \
-               $ol_enable_shell = no -a \
-               $ol_enable_sql = no ; then
+       if test $ol_enable_modules != yes &&
+          test $ol_enable_bdb = no &&
+          test $ol_enable_dnssrv = no &&
+          test $ol_enable_hdb = no &&
+          test $ol_enable_ldap = no &&
+          test $ol_enable_meta = no &&
+          test $ol_enable_monitor = no &&
+          test $ol_enable_null = no &&
+          test $ol_enable_passwd = no &&
+          test $ol_enable_perl = no &&
+          test $ol_enable_relay = no &&
+          test $ol_enable_shell = no &&
+          test $ol_enable_sql = no ; then
 
                if test $ol_enable_slapd = yes ; then
                        AC_MSG_ERROR([slapd requires a backend])
 
                if test $ol_enable_slapd = yes ; then
                        AC_MSG_ERROR([slapd requires a backend])
@@ -455,45 +512,41 @@ elif test $ol_enable_ldbm = no ; then
                fi
        fi
 
                fi
        fi
 
-       ol_with_ldbm_api=no
-       ol_with_ldbm_type=no
-       ol_with_ldbm_module=static
+       ol_enable_ldbm_api=no
+       ol_enable_ldbm_type=no
 
 
-       if test $ol_enable_bdb != no -o $ol_enable_hdb != no; then
-               ol_with_ldbm_api=berkeley
+       if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
+               ol_enable_ldbm_api=berkeley
        fi
 
 else
        dnl SLAPD with LDBM
        fi
 
 else
        dnl SLAPD with LDBM
-       if test $ol_with_ldbm_api = gdbm -a \
-               $ol_with_ldbm_type = btree ; then
+       if test $ol_enable_ldbm_api = gdbm &&
+          test $ol_enable_ldbm_type = btree ; then
                AC_MSG_ERROR([GDBM only supports LDBM type hash])
        fi
                AC_MSG_ERROR([GDBM only supports LDBM type hash])
        fi
-       if test $ol_with_ldbm_api = mdbm -a \
-               $ol_with_ldbm_type = btree ; then
+       if test $ol_enable_ldbm_api = mdbm &&
+          test $ol_enable_ldbm_type = btree ; then
                AC_MSG_ERROR([MDBM only supports LDBM type hash])
        fi
                AC_MSG_ERROR([MDBM only supports LDBM type hash])
        fi
-       if test $ol_with_ldbm_api = ndbm -a \
-               $ol_with_ldbm_type = btree ; then
+       if test $ol_enable_ldbm_api = ndbm &&
+          test $ol_enable_ldbm_type = btree ; then
                AC_MSG_ERROR([NDBM only supports LDBM type hash])
        fi
 
                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_with_ldbm_api = auto ; then
-                       ol_with_ldbm_api=berkeley
-               elif test $ol_with_ldbm_api != berkeley ; then
+       if test $ol_enable_bdb/$ol_enable_hdb != no/no ; then
+               if test $ol_enable_ldbm_api = auto ; then
+                       ol_enable_ldbm_api=berkeley
+               elif test $ol_enable_ldbm_api != berkeley ; then
                        AC_MSG_ERROR([LDBM API not compatible with BDB/HDB])
                fi
                        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
 
        fi
 fi
 
+if test $ol_enable_meta/$ol_enable_ldap = yes/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
 if test $ol_enable_slurpd = yes ; then
        dnl SLURPD was specifically enabled
        if test $ol_with_threads = no ; then
@@ -507,14 +560,14 @@ if test $ol_enable_lmpasswd = yes ; then
        fi
 fi
 
        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
 
        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
        if test $ol_with_kerberos = auto ; then
                ol_with_kerberos=no
        elif test $ol_with_kerberos != no ; then
@@ -560,31 +613,33 @@ BUILD_MONITOR=no
 BUILD_NULL=no
 BUILD_PASSWD=no
 BUILD_PERL=no
 BUILD_NULL=no
 BUILD_PASSWD=no
 BUILD_PERL=no
+BUILD_RELAY=no
 BUILD_SHELL=no
 BUILD_SQL=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_AUDITLOG=no
+BUILD_DENYOP=no
 BUILD_DYNGROUP=no
 BUILD_DYNGROUP=no
+BUILD_DYNLIST=no
+BUILD_LASTMOD=no
+BUILD_PPOLICY=no
 BUILD_PROXYCACHE=no
 BUILD_PROXYCACHE=no
-
+BUILD_REFINT=no
+BUILD_RETCODE=no
+BUILD_RWM=no
+BUILD_SYNCPROV=no
+BUILD_TRANSLUCENT=no
+BUILD_UNIQUE=no
+BUILD_VALSORT=no
+
+SLAPD_STATIC_OVERLAYS=
 SLAPD_DYNAMIC_OVERLAYS=
 
 SLAPD_MODULES_LDFLAGS=
 SLAPD_MODULES_CPPFLAGS=
 
 SLAPD_DYNAMIC_OVERLAYS=
 
 SLAPD_MODULES_LDFLAGS=
 SLAPD_MODULES_CPPFLAGS=
 
-SLAPD_STATIC_BACKENDS=
+SLAPD_STATIC_BACKENDS=back-ldif
 SLAPD_DYNAMIC_BACKENDS=
 
 SLAPD_PERL_LDFLAGS=
 SLAPD_DYNAMIC_BACKENDS=
 
 SLAPD_PERL_LDFLAGS=
@@ -606,12 +661,11 @@ LIBSLAPITOOLS=
 AUTH_LIBS=
 
 SLAPD_SLP_LIBS=
 AUTH_LIBS=
 
 SLAPD_SLP_LIBS=
+SLAPD_GMP_LIBS=
 
 dnl ================================================================
 dnl Checks for programs
 
 
 dnl ================================================================
 dnl Checks for programs
 
-AC_PROG_INSTALL
-
 AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
 
 dnl ----------------------------------------------------------------
 AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
 
 dnl ----------------------------------------------------------------
@@ -654,10 +708,11 @@ if test $ol_aix_threads = yes ; then
                fi
        fi
 
                fi
        fi
 
-       if test "${CC}" = "cc_r" -o "${CC}" = "xlc_r" ; then
+       case ${CC} in cc_r | xlc_r)
                ol_with_threads=posix
                ol_cv_pthread_create=yes
                ol_with_threads=posix
                ol_cv_pthread_create=yes
-       fi
+               ;;
+       esac
 fi
 
 if test -z "${CC}"; then
 fi
 
 if test -z "${CC}"; then
@@ -680,9 +735,6 @@ AC_LIBTOOL_WIN32_DLL
 AC_LIBTOOL_DLOPEN
 AC_PROG_LIBTOOL
 
 AC_LIBTOOL_DLOPEN
 AC_PROG_LIBTOOL
 
-OL_PROG_LN_H
-AC_PROG_LN_S
-
 dnl ----------------------------------------------------------------
 dnl Perl
 ol_link_perl=no
 dnl ----------------------------------------------------------------
 dnl Perl
 ol_link_perl=no
@@ -698,7 +750,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$//'`"
 
                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"
                        SLAPD_PERL_LDFLAGS="$PERL_LDFLAGS"
                else
                        MOD_PERL_LDFLAGS="$PERL_LDFLAGS"
@@ -711,32 +763,16 @@ fi
 AC_PROG_CPP
 
 dnl ----------------------------------------------------------------
 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
-dnl AC_ISC_POSIX
-dnl AC_MINIX
+dnl Checks for Windows NT
+case $host_os in
+  *mingw32* ) ac_cv_mingw32=yes ;;
+  *cygwin* ) ac_cv_cygwin=yes ;;
+esac
 
 dnl ----------------------------------------------------------------
 
 dnl ----------------------------------------------------------------
-dnl Checks for system services
-AC_CYGWIN
-AC_MINGW32
+dnl Checks for file extensions
 AC_EXEEXT
 AC_OBJEXT
 AC_EXEEXT
 AC_OBJEXT
-
 AC_DEFINE_UNQUOTED(EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
 
 dnl ----------------------------------------------------------------
 AC_DEFINE_UNQUOTED(EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
 
 dnl ----------------------------------------------------------------
@@ -745,8 +781,8 @@ AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])
 
 dnl ----------------------------------------------------------------
 dnl OpenLDAP requires STDC features
 
 dnl ----------------------------------------------------------------
 dnl OpenLDAP requires STDC features
-AM_PROG_CC_STDC
-if test "X${am_cv_prog_cc_stdc}" = "Xno" ; then
+AC_PROG_CC
+if test "X${ac_cv_prog_cc_stdc}" = "Xno" ; then
        AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
 fi
 
        AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
 fi
 
@@ -777,6 +813,7 @@ esac
 dnl ----------------------------------------------------------------
 dnl Check for module support
 ol_link_modules=no
 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)
 
 if test $ol_enable_modules != no ; then
        AC_CHECK_HEADERS(ltdl.h)
 
@@ -793,27 +830,23 @@ if test $ol_enable_modules != no ; then
                AC_MSG_ERROR([could not locate libtool -lltdl])
        fi
        ol_link_modules=yes
                AC_MSG_ERROR([could not locate libtool -lltdl])
        fi
        ol_link_modules=yes
+       WITH_MODULES_ENABLED=yes
+
 else
 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
+       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 ----------------------------------------------------------------
 fi
 
 dnl ----------------------------------------------------------------
@@ -826,16 +859,13 @@ fi
 
 AC_HEADER_DIRENT
 AC_HEADER_SYS_WAIT
 
 AC_HEADER_DIRENT
 AC_HEADER_SYS_WAIT
-AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
-if test $am_cv_sys_posix_termios = yes ; then
-       AC_DEFINE(HAVE_POSIX_TERMIOS,1,
-               [define if you have POSIX termios])
-fi
+AC_HEADER_TIOCGWINSZ
 
 AC_CHECK_HEADERS(      \
        arpa/inet.h             \
        arpa/nameser.h  \
        assert.h                \
 
 AC_CHECK_HEADERS(      \
        arpa/inet.h             \
        arpa/nameser.h  \
        assert.h                \
+       bits/types.h    \
        conio.h                 \
        crypt.h                 \
        direct.h                \
        conio.h                 \
        crypt.h                 \
        direct.h                \
@@ -848,13 +878,11 @@ AC_CHECK_HEADERS( \
        libutil.h               \
        limits.h                \
        locale.h                \
        libutil.h               \
        limits.h                \
        locale.h                \
-       netinet/tcp.h   \
        malloc.h                \
        memory.h                \
        psap.h                  \
        pwd.h                   \
        process.h               \
        malloc.h                \
        memory.h                \
        psap.h                  \
        pwd.h                   \
        process.h               \
-       resolv.h                \
        sgtty.h                 \
        shadow.h                \
        stddef.h                \
        sgtty.h                 \
        shadow.h                \
        stddef.h                \
@@ -873,62 +901,78 @@ AC_CHECK_HEADERS( \
        sys/syslog.h    \
        sys/time.h              \
        sys/types.h             \
        sys/syslog.h    \
        sys/time.h              \
        sys/types.h             \
-       sys/ucred.h             \
        sys/uio.h               \
        syslog.h                \
        termios.h               \
        unistd.h                \
        sys/uio.h               \
        syslog.h                \
        termios.h               \
        unistd.h                \
-       winsock.h               \
-       winsock2.h              \
+       utime.h                 \
 )
 
 )
 
+dnl Only check Winsock on MinGW
+if test "$ac_cv_mingw32" = yes ; then
+       AC_CHECK_HEADERS( winsock.h winsock2.h )
+fi
+
+AC_CHECK_HEADERS( resolv.h, [], [],
+[$ac_includes_default
+#include <netinet/in.h>
+])
+
+AC_CHECK_HEADERS( netinet/tcp.h, [], [],
+[$ac_includes_default
+#include <netinet/in.h>
+])
+
+AC_CHECK_HEADERS( sys/ucred.h, [], [],
+[$ac_includes_default
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+])
 
 dnl ----------------------------------------------------------------
 dnl Checks for libraries
 
 
 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
 
 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
 
 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)
+if test "$ac_cv_header_winsock_h" = yes; then
+AC_CACHE_CHECK([for winsock], [ol_cv_winsock],
 save_LIBS="$LIBS"
 for curlib in ws2_32 wsock32; do
        LIBS="$LIBS -l$curlib"
 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_LINK_IFELSE([AC_LANG_PROGRAM([[#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])
                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
                AC_DEFINE(HAVE_WINSOCK, 1, [define if you have winsock])
                ac_cv_func_socket=yes
                ac_cv_func_select=yes
                ac_cv_func_closesocket=yes
                ac_cv_func_gethostname=yes
                if test $curlib = ws2_32; then
-                       have_winsock=winsock2
+                       ol_cv_winsock=winsock2
                        AC_DEFINE(HAVE_WINSOCK2, 1,
                                  [define if you have winsock2])
                fi
                break
        fi
        LIBS="$save_LIBS"
                        AC_DEFINE(HAVE_WINSOCK2, 1,
                                  [define if you have winsock2])
                fi
                break
        fi
        LIBS="$save_LIBS"
-done
-AC_MSG_RESULT($have_winsock)
+done)
+fi
 
 dnl Find socket()
 dnl Likely combinations:
 
 dnl Find socket()
 dnl Likely combinations:
@@ -958,6 +1002,26 @@ fi
 dnl check to see if system call automatically restart
 dnl AC_SYS_RESTARTABLE_SYSCALLS
 
 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_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char *argv)
+{
+       int epfd = epoll_create(256);
+       exit (epfd == -1 ? 1 : 0);
+}]])],[AC_MSG_RESULT(yes)
+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 )
 dnl ----------------------------------------------------------------
 dnl require POSIX regex
 AC_CHECK_HEADERS( regex.h )
@@ -996,15 +1060,13 @@ if test $have_uuid = no ; then
        AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
        save_LIBS="$LIBS"
        LIBS="$LIBS -lrpcrt4"
        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)
+       AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+               int __stdcall UuidCreate(void *);
+               int __stdcall UuidToStringA(void *,void **);
+               ]], [[
+               UuidCreate(0);
+               UuidToStringA(0,0);
+               ]])],[need_rpcrt=yes],[need_rpcrt=no])
        if test $need_rpcrt = yes; then
                SLAPD_LIBS="$SLAPD_LIBS -lrpcrt4"
        fi
        if test $need_rpcrt = yes; then
                SLAPD_LIBS="$SLAPD_LIBS -lrpcrt4"
        fi
@@ -1014,55 +1076,39 @@ fi
 
 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,:)
-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
+OL_RESOLVER_LINK
 
 
-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
-
-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()])
 
        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
                ol_link_dnssrv=yes
        fi
+
+       if test "$ol_cv_lib_resolver" != yes ; then
+               LIBS="$ol_cv_lib_resolver $LIBS"
+       fi
 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 || test "$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
 
 fi
 
+AC_CHECK_FUNCS( hstrerror )
+
 dnl ----------------------------------------------------------------
 dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
 dnl PF_LOCAL may use getaddrinfo in available
 AC_CHECK_FUNCS( getaddrinfo getnameinfo gai_strerror inet_ntop )
 
 ol_link_ipv6=no
 dnl ----------------------------------------------------------------
 dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
 dnl PF_LOCAL may use getaddrinfo in available
 AC_CHECK_FUNCS( getaddrinfo getnameinfo gai_strerror inet_ntop )
 
 ol_link_ipv6=no
-if test $ac_cv_func_getaddrinfo = no -o $ac_cv_func_inet_ntop = no ; then
+if test $ac_cv_func_getaddrinfo = no || test $ac_cv_func_inet_ntop = no ; then
        if test $ol_enable_ipv6 = yes ; then
                AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
        fi
        if test $ol_enable_ipv6 = yes ; then
                AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
        fi
@@ -1077,22 +1123,21 @@ elif test $ol_enable_ipv6 != no ; then
 
 
        AC_CACHE_CHECK([struct sockaddr_storage],ol_cv_struct_sockaddr_storage,[
 
 
        AC_CACHE_CHECK([struct sockaddr_storage],ol_cv_struct_sockaddr_storage,[
-               AC_TRY_COMPILE([
+               AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <sys/types.h>
 #include <sys/socket.h>
-],[
+]], [[
                        struct sockaddr_storage ss;
                        struct sockaddr_storage ss;
-],                     [ol_cv_struct_sockaddr_storage=yes],
-                       [ol_cv_struct_sockaddr_storage=no])])
+]])],[ol_cv_struct_sockaddr_storage=yes],[ol_cv_struct_sockaddr_storage=no])])
 
 
-       if test $ol_cv_inet6_addrstrlen = yes \
-               -a $ol_cv_struct_sockaddr_storage = yes ; then
+       if test $ol_cv_inet6_addrstrlen = yes &&
+          test $ol_cv_struct_sockaddr_storage = yes ; then
                ol_link_ipv6=yes
                ol_link_ipv6=yes
-       elif test $ol_enable_ipv6 = yes \
-                       -a $ol_cv_inet6_addrstrlen = no ; then
+       elif test $ol_enable_ipv6 = yes &&
+            test $ol_cv_inet6_addrstrlen = no ; then
                AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
                AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
-       elif test $ol_enable_ipv6 = yes \
-                       -a $ol_cv_struct_sockaddr_storage = no ; then
+       elif test $ol_enable_ipv6 = yes &&
+            test $ol_cv_struct_sockaddr_storage = no ; then
                AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage])
        fi
 fi
                AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage])
        fi
 fi
@@ -1110,13 +1155,10 @@ fi
 dnl ----------------------------------------------------------------
 dnl Kerberos
 ol_link_kbind=no
 dnl ----------------------------------------------------------------
 dnl Kerberos
 ol_link_kbind=no
-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 = yes -o $ol_with_kerberos = auto \
-       -o $ol_with_kerberos = k5 -o $ol_with_kerberos = k5only \
-       -o $ol_with_kerberos = k425 ; then
+case $ol_with_kerberos in yes | auto | k5 | k5only | k425)
 
        AC_CHECK_HEADERS(krb5.h)
 
 
        AC_CHECK_HEADERS(krb5.h)
 
@@ -1165,10 +1207,6 @@ if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
                        AC_DEFINE(HAVE_KRB5, 1,
                                [define if you have Kerberos V])
 
                        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
                        if test $ol_with_kerberos = k5only ; then
                                ol_with_kerberos=found
                        fi
@@ -1178,10 +1216,13 @@ if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
                fi
 
        fi
                fi
 
        fi
-fi
+       ;;
+esac
 
 
-if test $ol_link_krb5 = yes -a \( $ol_with_kerberos = yes -o \
-       $ol_with_kerberos = auto -o $ol_with_kerberos = k425 \) ; then
+if test $ol_link_krb5 = yes &&
+   { test $ol_with_kerberos = yes ||
+     test $ol_with_kerberos = auto ||
+     test $ol_with_kerberos = k425; }; then
 
        AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
 
 
        AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
 
@@ -1215,13 +1256,13 @@ if test $ol_link_krb5 = yes -a \( $ol_with_kerberos = yes -o \
                                dnl save the flags
                                save_LIBS="$LIBS"
                                LIBS="$KRB4_LIBS $KRB5_LIBS $LIBS"
                                dnl save the flags
                                save_LIBS="$LIBS"
                                LIBS="$KRB4_LIBS $KRB5_LIBS $LIBS"
-                               AC_TRY_LINK([
+                               AC_LINK_IFELSE([AC_LANG_PROGRAM([[
 #include <kerberosIV/krb.h>
 #include <kerberosIV/des.h>
 extern int des_debug;
 #include <kerberosIV/krb.h>
 #include <kerberosIV/des.h>
 extern int des_debug;
-],[
+]], [[
 des_debug = 1;
 des_debug = 1;
-],                             ol_cv_var_des_debug=yes, ol_cv_var_des_debug=no)
+]])],[ol_cv_var_des_debug=yes],[ol_cv_var_des_debug=no])
                                dnl restore the LIBS
                                LIBS="$save_LIBS"
                        ])
                                dnl restore the LIBS
                                LIBS="$save_LIBS"
                        ])
@@ -1240,8 +1281,7 @@ if test $ol_link_krb5 = yes ; then
        ol_with_kerberos=found
 fi
 
        ol_with_kerberos=found
 fi
 
-if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
-       -o $ol_with_kerberos = k4 -o $ol_with_kerberos = kth ; then
+case $ol_with_kerberos in yes | auto | k4 | kth)
 
        AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
 
 
        AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
 
@@ -1263,74 +1303,70 @@ if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
                        fi
                fi
        fi
                        fi
                fi
        fi
-fi
-
-if test $ol_link_krb4 = yes -a $ol_enable_kpasswd != no ; then
-       ol_link_kpasswd=yes
-fi
+       ;;
+esac
 
 
-if test $ol_link_krb4 = yes -a $ol_enable_kbind != no ; then
+if test $ol_link_krb4 = yes && test $ol_enable_kbind != no ; then
        ol_link_kbind=yes
 
 elif test $ol_enable_kbind = yes ; then
        AC_MSG_ERROR([Kerberos IV detection failed])
 fi
 
        ol_link_kbind=yes
 
 elif test $ol_enable_kbind = yes ; then
        AC_MSG_ERROR([Kerberos IV detection failed])
 fi
 
-if test $ol_link_krb4 = yes -o $ol_link_krb5 = yes ; then
+if test $ol_link_krb4 = yes || test $ol_link_krb5 = yes ; then
        AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
 
        AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
 
-elif test $ol_with_kerberos != auto -a $ol_with_kerberos != no ; then
+elif test $ol_with_kerberos != auto && test $ol_with_kerberos != no ; then
        AC_MSG_ERROR([Kerberos detection failed])
 fi
 
 dnl ----------------------------------------------------------------
 dnl TLS/SSL
        AC_MSG_ERROR([Kerberos detection failed])
 fi
 
 dnl ----------------------------------------------------------------
 dnl TLS/SSL
+       
 ol_link_tls=no
 if test $ol_with_tls != no ; then
 ol_link_tls=no
 if test $ol_with_tls != no ; then
-       AC_CHECK_HEADERS(openssl/ssl.h ssl.h)
-       
-       if test $ac_cv_header_openssl_ssl_h = yes \
-               -o $ac_cv_header_ssl_h = yes ; then
-               AC_CHECK_LIB(ssl, SSLeay_add_ssl_algorithms, 
-                       [have_ssleay=yes
-                       need_rsaref=no],
-                       [have_ssleay=no],
+       AC_CHECK_HEADERS(openssl/ssl.h)
+
+       if test $ac_cv_header_openssl_ssl_h = yes ; then
+               AC_CHECK_LIB(ssl, SSL_library_init,
+                       [have_openssl=yes
+                       need_rsaref=no], [have_openssl=no],
                        [-lcrypto])
                        [-lcrypto])
-                       
-               if test $have_ssleay = no ; then
-                       AC_CHECK_LIB(ssl, SSL_library_init,
-                               [have_ssleay=yes
-                               need_rsaref=no], [have_ssleay=no],
-                               [-lcrypto])
-               fi
 
 
-               if test $have_ssleay = no ; then
+               if test $have_openssl = no ; then
                        AC_CHECK_LIB(ssl, ssl3_accept, 
                        AC_CHECK_LIB(ssl, ssl3_accept, 
-                               [have_ssleay=yes
-                               need_rsaref=yes], [have_ssleay=no],
+                               [have_openssl=yes
+                               need_rsaref=yes], [have_openssl=no],
                                [-lcrypto -lRSAglue -lrsaref])
                fi
 
                                [-lcrypto -lRSAglue -lrsaref])
                fi
 
-               if test $have_ssleay = yes ; then
+               if test $have_openssl = yes ; then
                        ol_with_tls=found
                        ol_link_tls=yes
 
                        ol_with_tls=found
                        ol_link_tls=yes
 
-                       AC_DEFINE(HAVE_SSLEAY, 1, 
-                               [define if you have SSLeay or OpenSSL])
+                       AC_DEFINE(HAVE_OPENSSL, 1, 
+                               [define if you have OpenSSL])
 
                        if test $need_rsaref = yes; then
                                AC_DEFINE(HAVE_RSAREF, 1, 
 
                        if test $need_rsaref = yes; then
                                AC_DEFINE(HAVE_RSAREF, 1, 
-                                       [define if you have RSAref])
+                                       [define if OpenSSL needs RSAref])
 
                                TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
                        else
                                TLS_LIBS="-lssl -lcrypto"
                        fi
                fi
 
                                TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
                        else
                                TLS_LIBS="-lssl -lcrypto"
                        fi
                fi
+               OL_SSL_COMPAT
+               if test $ol_cv_ssl_crl_compat = no ; then
+                       ol_link_ssl=no
+                else 
+                       AC_DEFINE(HAVE_OPENSSL_CRL, 1, 
+                               [define if you have OpenSSL with CRL checking capability])
+               fi
        fi
 
 else
        fi
 
 else
-       AC_WARN([TLS data protection not supported!])
+       AC_MSG_WARN([TLS data protection not supported!])
 fi
 
 WITH_TLS=no
 fi
 
 WITH_TLS=no
@@ -1339,18 +1375,18 @@ if test $ol_link_tls = yes ; then
        WITH_TLS=yes
 
 elif test $ol_with_tls = auto ; then
        WITH_TLS=yes
 
 elif test $ol_with_tls = auto ; then
-       AC_WARN([Could not locate TLS/SSL package])
-       AC_WARN([TLS data protection not supported!])
+       AC_MSG_WARN([Could not locate TLS/SSL package])
+       AC_MSG_WARN([TLS data protection not supported!])
 
 elif test $ol_with_tls != no ; then
 
 elif test $ol_with_tls != no ; then
-       AC_ERROR([Could not locate TLS/SSL package])
+       AC_MSG_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
 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])
+               AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
        fi
 
        AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
        fi
 
        AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
@@ -1360,8 +1396,7 @@ dnl ----------------------------------------------------------------
 dnl Threads?
 ol_link_threads=no
 
 dnl Threads?
 ol_link_threads=no
 
-if test $ol_with_threads = auto -o $ol_with_threads = yes \
-       -o $ol_with_threads = nt ; then
+case $ol_with_threads in auto | yes | nt)
 
        OL_NT_THREADS
 
 
        OL_NT_THREADS
 
@@ -1377,10 +1412,10 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
        if test $ol_with_threads = nt ; then
                AC_MSG_ERROR([could not locate NT Threads])
        fi
        if test $ol_with_threads = nt ; then
                AC_MSG_ERROR([could not locate NT Threads])
        fi
-fi
+       ;;
+esac
 
 
-if test $ol_with_threads = auto -o $ol_with_threads = yes \
-       -o $ol_with_threads = posix ; then
+case $ol_with_threads in auto | yes | posix)
 
        AC_CHECK_HEADERS(pthread.h)
 
 
        AC_CHECK_HEADERS(pthread.h)
 
@@ -1440,12 +1475,12 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
                dnl pthread_create in $LIBS
                AC_CACHE_CHECK([for pthread_create in default libraries],
                        ol_cv_pthread_create,[
                dnl pthread_create in $LIBS
                AC_CACHE_CHECK([for pthread_create in default libraries],
                        ol_cv_pthread_create,[
-               AC_TRY_RUN(OL_PTHREAD_TEST_PROGRAM,
-                       [ol_cv_pthread_create=yes],
-                       [ol_cv_pthread_create=no],
-                       [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION,
+                       AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
                                [ol_cv_pthread_create=yes],
                                [ol_cv_pthread_create=yes],
-                               [ol_cv_pthread_create=no])])])
+                               [ol_cv_pthread_create=no],
+                               [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION,
+                                       [ol_cv_pthread_create=yes],
+                                       [ol_cv_pthread_create=no])])])
 
                if test $ol_cv_pthread_create != no ; then
                        ol_link_threads=posix
 
                if test $ol_cv_pthread_create != no ; then
                        ol_link_threads=posix
@@ -1496,9 +1531,9 @@ dnl                       [ol_cv_pthread_lpthread_lexc])
                        dnl check for both, and thr_yield for Solaris
                        AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
 
                        dnl check for both, and thr_yield for Solaris
                        AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
 
-                       if test $ac_cv_func_sched_yield = no -a \
-                               $ac_cv_func_pthread_yield = no -a \
-                               $ac_cv_func_thr_yield = no ; then
+                       if test $ac_cv_func_sched_yield = no &&
+                          test $ac_cv_func_pthread_yield = no &&
+                          test $ac_cv_func_thr_yield = no ; then
                                dnl Digital UNIX has sched_yield() in -lrt
                                AC_CHECK_LIB(rt, sched_yield,
                                        [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
                                dnl Digital UNIX has sched_yield() in -lrt
                                AC_CHECK_LIB(rt, sched_yield,
                                        [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
@@ -1507,9 +1542,9 @@ dnl                       [ol_cv_pthread_lpthread_lexc])
                                        ac_cv_func_sched_yield=yes],
                                        [ac_cv_func_sched_yield=no])
                        fi
                                        ac_cv_func_sched_yield=yes],
                                        [ac_cv_func_sched_yield=no])
                        fi
-                       if test $ac_cv_func_sched_yield = no -a \
-                               $ac_cv_func_pthread_yield = no -a \
-                               "$ac_cv_func_thr_yield" = no ; then
+                       if test $ac_cv_func_sched_yield = no &&
+                          test $ac_cv_func_pthread_yield = no &&
+                          test "$ac_cv_func_thr_yield" = no ; then
                                AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
                        fi
 
                                AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
                        fi
 
@@ -1521,15 +1556,12 @@ dnl                     [ol_cv_pthread_lpthread_lexc])
                        AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
                                [ol_cv_func_pthread_detach], [
                                dnl save the flags
                        AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
                                [ol_cv_func_pthread_detach], [
                                dnl save the flags
-                               AC_TRY_LINK([
+                               AC_LINK_IFELSE([AC_LANG_PROGRAM([[
 #include <pthread.h>
 #ifndef NULL
 #define NULL (void*)0
 #endif
 #include <pthread.h>
 #ifndef NULL
 #define NULL (void*)0
 #endif
-],
-                                       [pthread_detach(NULL);],
-                                       [ol_cv_func_pthread_detach=yes],
-                                       [ol_cv_func_pthread_detach=no])
+]], [[pthread_detach(NULL);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
                        ])
 
                        if test $ol_cv_func_pthread_detach = no ; then
                        ])
 
                        if test $ol_cv_func_pthread_detach = no ; then
@@ -1556,7 +1588,7 @@ dnl                       [ol_cv_pthread_lpthread_lexc])
 
                        AC_CACHE_CHECK([if pthread_create() works],
                                ol_cv_pthread_create_works,[
 
                        AC_CACHE_CHECK([if pthread_create() works],
                                ol_cv_pthread_create_works,[
-                       AC_TRY_RUN(OL_PTHREAD_TEST_PROGRAM,
+                       AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
                                [ol_cv_pthread_create_works=yes],
                                [ol_cv_pthread_create_works=no],
                                [dnl assume yes
                                [ol_cv_pthread_create_works=yes],
                                [ol_cv_pthread_create_works=no],
                                [dnl assume yes
@@ -1566,11 +1598,24 @@ dnl                     [ol_cv_pthread_lpthread_lexc])
                                AC_MSG_ERROR([pthread_create is not usable, check environment settings])
                        fi
 
                                AC_MSG_ERROR([pthread_create is not usable, check environment settings])
                        fi
 
+                       ol_replace_broken_yield=no
+dnl                    case "$target" in
+dnl                    *-*-linux*) 
+dnl                            AC_CHECK_FUNCS(nanosleep)
+dnl                            ol_replace_broken_yield=yes
+dnl                    ;;
+dnl                    esac
+
+                       if test $ol_replace_broken_yield = yes ; then
+                               AC_DEFINE([REPLACE_BROKEN_YIELD],1,
+                                       [define if sched_yield yields the entire process])
+                       fi
+
                        dnl Check if select causes an yield
                        if test $ol_with_yielding_select = auto ; then
                                AC_CACHE_CHECK([if select yields when using pthreads],
                                        ol_cv_pthread_select_yields,[
                        dnl Check if select causes an yield
                        if test $ol_with_yielding_select = auto ; then
                                AC_CACHE_CHECK([if select yields when using pthreads],
                                        ol_cv_pthread_select_yields,[
-                               AC_TRY_RUN([
+                               AC_RUN_IFELSE([AC_LANG_SOURCE([[
 #include <sys/types.h>
 #include <sys/time.h>
 #include <unistd.h>
 #include <sys/types.h>
 #include <sys/time.h>
 #include <unistd.h>
@@ -1643,10 +1688,7 @@ int main(argc, argv)
 #endif
 
        exit(2);
 #endif
 
        exit(2);
-}],
-                               [ol_cv_pthread_select_yields=no],
-                               [ol_cv_pthread_select_yields=yes],
-                               [ol_cv_pthread_select_yields=cross])])
+}]])],[ol_cv_pthread_select_yields=no],[ol_cv_pthread_select_yields=yes],[ol_cv_pthread_select_yields=cross])])
 
                                if test $ol_cv_pthread_select_yields = cross ; then
                                        AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])
 
                                if test $ol_cv_pthread_select_yields = cross ; then
                                        AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])
@@ -1668,10 +1710,10 @@ int main(argc, argv)
        if test $ol_with_threads = posix ; then
                AC_MSG_ERROR([could not locate POSIX Threads])
        fi
        if test $ol_with_threads = posix ; then
                AC_MSG_ERROR([could not locate POSIX Threads])
        fi
-fi
+       ;;
+esac
 
 
-if test $ol_with_threads = auto -o $ol_with_threads = yes \
-       -o $ol_with_threads = mach ; then
+case $ol_with_threads in auto | yes | mach)
 
        dnl check for Mach CThreads
        AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
 
        dnl check for Mach CThreads
        AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
@@ -1689,9 +1731,9 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
                                dnl save the flags
                                save_LIBS="$LIBS"
                                LIBS="-all_load $LIBS"
                                dnl save the flags
                                save_LIBS="$LIBS"
                                LIBS="-all_load $LIBS"
-                               AC_TRY_LINK([#include <mach/cthreads.h>],[
+                               AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <mach/cthreads.h>]], [[
                                        cthread_fork((void *)0, (void *)0);
                                        cthread_fork((void *)0, (void *)0);
-                                       ], ol_cv_cthread_all_load=yes, ol_cv_cthread_all_load=no)
+                                       ]])],[ol_cv_cthread_all_load=yes],[ol_cv_cthread_all_load=no])
                                dnl restore the LIBS
                                LIBS="$save_LIBS"
                        ])
                                dnl restore the LIBS
                                LIBS="$save_LIBS"
                        ])
@@ -1733,10 +1775,10 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
        elif test $ol_with_threads = found ; then
                AC_MSG_ERROR([could not link with Mach CThreads])
        fi
        elif test $ol_with_threads = found ; then
                AC_MSG_ERROR([could not link with Mach CThreads])
        fi
-fi
+       ;;
+esac
 
 
-if test $ol_with_threads = auto -o $ol_with_threads = yes \
-       -o $ol_with_threads = pth ; then
+case $ol_with_threads in auto | yes | pth)
 
        AC_CHECK_HEADERS(pth.h)
 
 
        AC_CHECK_HEADERS(pth.h)
 
@@ -1754,14 +1796,15 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
                        fi
                fi
        fi
                        fi
                fi
        fi
-fi
+       ;;
+esac
 
 
-if test $ol_with_threads = auto -o $ol_with_threads = yes \
-       -o $ol_with_threads = lwp ; then
+case $ol_with_threads in auto | yes | lwp)
 
        dnl check for SunOS5 LWP
        AC_CHECK_HEADERS(thread.h synch.h)
 
        dnl check for SunOS5 LWP
        AC_CHECK_HEADERS(thread.h synch.h)
-       if test $ac_cv_header_thread_h = yes -a $ac_cv_header_synch_h = yes ; then
+       if test $ac_cv_header_thread_h = yes &&
+          test $ac_cv_header_synch_h = yes ; then
                AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
 
                if test $have_thr = yes ; then
                AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
 
                if test $have_thr = yes ; then
@@ -1798,7 +1841,8 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
                        fi
                fi
        fi
                        fi
                fi
        fi
-fi
+       ;;
+esac
 
 if test $ol_with_yielding_select = yes ; then
        AC_DEFINE(HAVE_YIELDING_SELECT,1,
 
 if test $ol_with_yielding_select = yes ; then
        AC_DEFINE(HAVE_YIELDING_SELECT,1,
@@ -1820,7 +1864,7 @@ if test $ol_with_threads = manual ; then
        AC_CHECK_HEADERS(thread.h synch.h)
 fi
 
        AC_CHECK_HEADERS(thread.h synch.h)
 fi
 
-if test $ol_link_threads != no -a $ol_link_threads != nt ; then  
+if test $ol_link_threads != no && test $ol_link_threads != nt ; then
        dnl needed to get reentrant/threadsafe versions
        dnl
        AC_DEFINE(REENTRANT,1)
        dnl needed to get reentrant/threadsafe versions
        dnl
        AC_DEFINE(REENTRANT,1)
@@ -1835,22 +1879,18 @@ if test $ol_link_threads != no -a $ol_link_threads != nt ; then
        dnl If it does, we must link with thread support.
        AC_CACHE_CHECK([for thread specific errno],
                [ol_cv_errno_thread_specific], [
        dnl If it does, we must link with thread support.
        AC_CACHE_CHECK([for thread specific errno],
                [ol_cv_errno_thread_specific], [
-               AC_TRY_LINK([#include <errno.h>], [errno = 0;],
-                       [ol_cv_errno_thread_specific=yes],
-                       [ol_cv_errno_thread_specific=no])
+               AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <errno.h>]], [[errno = 0;]])],[ol_cv_errno_thread_specific=yes],[ol_cv_errno_thread_specific=no])
        ])
 
        dnl The h_errno declaration may dependent upon _REENTRANT.
        dnl If it does, we must link with thread support.
        AC_CACHE_CHECK([for thread specific h_errno],
                [ol_cv_h_errno_thread_specific], [
        ])
 
        dnl The h_errno declaration may dependent upon _REENTRANT.
        dnl If it does, we must link with thread support.
        AC_CACHE_CHECK([for thread specific h_errno],
                [ol_cv_h_errno_thread_specific], [
-               AC_TRY_LINK([#include <netdb.h>], [h_errno = 0;],
-                       [ol_cv_h_errno_thread_specific=yes],
-                       [ol_cv_h_errno_thread_specific=no])
+               AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netdb.h>]], [[h_errno = 0;]])],[ol_cv_h_errno_thread_specific=yes],[ol_cv_h_errno_thread_specific=no])
        ])
 
        ])
 
-       if test $ol_cv_errno_thread_specific != yes \
-               -o $ol_cv_h_errno_thread_specific != yes ; then
+       if test $ol_cv_errno_thread_specific != yes ||
+          test $ol_cv_h_errno_thread_specific != yes ; then
                LIBS="$LTHREAD_LIBS $LIBS"
                LTHREAD_LIBS=""
        fi
                LIBS="$LTHREAD_LIBS $LIBS"
                LTHREAD_LIBS=""
        fi
@@ -1919,10 +1959,14 @@ if test $ol_link_threads = no ; then
        AC_DEFINE(NO_THREADS,1,
                [define if you have (or want) no threads])
        LTHREAD_LIBS=""
        AC_DEFINE(NO_THREADS,1,
                [define if you have (or want) no threads])
        LTHREAD_LIBS=""
+       BUILD_THREAD=no
+else
+       BUILD_THREAD=yes
 fi
 
 if test $ol_link_threads != no ; then
 fi
 
 if test $ol_link_threads != no ; then
-       AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1)
+       AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1,
+               [define to 1 if library is thread safe])
 fi
 
 dnl ----------------------------------------------------------------
 fi
 
 dnl ----------------------------------------------------------------
@@ -1954,11 +1998,9 @@ fi
 dnl ----------------------------------------------------------------
 ol_link_ldbm=no 
 
 dnl ----------------------------------------------------------------
 ol_link_ldbm=no 
 
-if test $ol_with_ldbm_api = auto \
-       -o $ol_with_ldbm_api = berkeley \
-       -o $ol_with_ldbm_api = bcompat ; then
+case $ol_enable_ldbm_api in auto | berkeley | bcompat)
 
 
-       if test $ol_with_ldbm_api = bcompat; then \
+       if test $ol_enable_ldbm_api = bcompat; then \
                OL_BERKELEY_COMPAT_DB
        else
                OL_BERKELEY_DB
                OL_BERKELEY_COMPAT_DB
        else
                OL_BERKELEY_DB
@@ -1969,9 +2011,9 @@ 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=berkeley
+               ol_enable_ldbm_api=berkeley
 
 
-               if test $ol_with_ldbm_type = hash ; then
+               if test $ol_enable_ldbm_type = hash ; then
                        AC_DEFINE(LDBM_USE_DBHASH,1,
                                [define this to use DBHASH w/ LDBM backend])
                else
                        AC_DEFINE(LDBM_USE_DBHASH,1,
                                [define this to use DBHASH w/ LDBM backend])
                else
@@ -1985,48 +2027,44 @@ if test $ol_with_ldbm_api = auto \
                        LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
                fi
        fi
                        LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
                fi
        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
+       ;;
+esac
 
 
-       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/$ol_enable_hdb != no/no; then
+       if test $ol_link_ldbm != berkeley ; then
+               AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
        else
        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
        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)
-       ol_with_ldbm_api=none
+if test $ol_link_ldbm = no && test $ol_enable_ldbm_type = btree ; then
+       AC_MSG_WARN([Could not find LDBM with BTREE support])
+       ol_enable_ldbm_api=none
 fi
 
 fi
 
-if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = mdbm ; then
+if test $ol_enable_ldbm_api = auto || test $ol_enable_ldbm_api = mdbm ; then
        OL_MDBM
 
        if test $ol_cv_mdbm = yes ; then
                ol_link_ldbm=mdbm
        OL_MDBM
 
        if test $ol_cv_mdbm = yes ; then
                ol_link_ldbm=mdbm
-               ol_with_ldbm_api=mdbm
+               ol_enable_ldbm_api=mdbm
                if test $ol_cv_lib_mdbm != yes ; then
                        LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_mdbm"
                fi
        fi
 fi
 
                if test $ol_cv_lib_mdbm != yes ; then
                        LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_mdbm"
                fi
        fi
 fi
 
-if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = gdbm ; then
+if test $ol_enable_ldbm_api = auto || test $ol_enable_ldbm_api = gdbm ; then
        OL_GDBM
 
        if test $ol_cv_gdbm = yes ; then
                ol_link_ldbm=gdbm
        OL_GDBM
 
        if test $ol_cv_gdbm = yes ; then
                ol_link_ldbm=gdbm
-               ol_with_ldbm_api=gdbm
+               ol_enable_ldbm_api=gdbm
 
                if test $ol_cv_lib_gdbm != yes ; then
                        LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
 
                if test $ol_cv_lib_gdbm != yes ; then
                        LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
@@ -2034,12 +2072,12 @@ if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = gdbm ; then
        fi
 fi
 
        fi
 fi
 
-if test $ol_with_ldbm_api = ndbm ; then
+if test $ol_enable_ldbm_api = ndbm ; then
        OL_NDBM
 
        if test $ol_cv_ndbm = yes ; then
                ol_link_ldbm=ndbm
        OL_NDBM
 
        if test $ol_cv_ndbm = yes ; then
                ol_link_ldbm=ndbm
-               ol_with_ldbm_api=ndbm
+               ol_enable_ldbm_api=ndbm
 
                if test $ol_cv_lib_ndbm != yes ; then
                        LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
 
                if test $ol_cv_lib_ndbm != yes ; then
                        LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
@@ -2047,19 +2085,19 @@ if test $ol_with_ldbm_api = ndbm ; then
        fi
 fi
 
        fi
 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
+if test $ol_link_ldbm = no && test $ol_enable_ldbm != no ; then
+       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 ||
+   test $ol_enable_hdb = yes ||
+   test $ol_enable_ldbm = yes ; then
+       SLAPD_LIBS="$SLAPD_LIBS \$(LDBM_LIBS)"
 fi
 
 dnl ----------------------------------------------------------------
 
 fi
 
 dnl ----------------------------------------------------------------
 
-if test $ol_enable_dynamic = yes -a $enable_shared = yes ; then
+if test $ol_enable_dynamic = yes && test $enable_shared = yes ; then
        BUILD_LIBS_DYNAMIC=shared
        AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
        LTSTATIC=""
        BUILD_LIBS_DYNAMIC=shared
        AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
        LTSTATIC=""
@@ -2075,15 +2113,15 @@ if test $ol_enable_wrappers != no ; then
                AC_MSG_CHECKING([for TCP wrappers library])
                save_LIBS="$LIBS"
                LIBS="$LIBS -lwrap"
                AC_MSG_CHECKING([for TCP wrappers library])
                save_LIBS="$LIBS"
                LIBS="$LIBS -lwrap"
-               AC_TRY_LINK([
+               AC_LINK_IFELSE([AC_LANG_PROGRAM([[
 #include <tcpd.h>
 int allow_severity = 0;
 int deny_severity  = 0;
 
 struct request_info *req;
 #include <tcpd.h>
 int allow_severity = 0;
 int deny_severity  = 0;
 
 struct request_info *req;
-               ],[
+               ]], [[
 hosts_access(req)
 hosts_access(req)
-               ],[AC_MSG_RESULT([-lwrap])
+               ]])],[AC_MSG_RESULT([-lwrap])
                have_wrappers=yes
                LIBS="$save_LIBS"],[
                dnl try with -lnsl
                have_wrappers=yes
                LIBS="$save_LIBS"],[
                dnl try with -lnsl
@@ -2101,8 +2139,7 @@ hosts_access(req)
                LIBS="$save_LIBS -lnsl"],[
                AC_MSG_RESULT(no)
                have_wrappers=no
                LIBS="$save_LIBS -lnsl"],[
                AC_MSG_RESULT(no)
                have_wrappers=no
-               LIBS=$save_LIBS])],[
-               have_wrappers=no])],[have_wrappers=no])
+               LIBS=$save_LIBS])])],[have_wrappers=no])
 
        if test $have_wrappers = yes ; then
                AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
 
        if test $have_wrappers = yes ; then
                AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
@@ -2118,19 +2155,12 @@ fi
 dnl ----------------------------------------------------------------
 if test $ol_enable_syslog != no ; then
        AC_CHECK_FUNC(openlog)
 dnl ----------------------------------------------------------------
 if test $ol_enable_syslog != no ; then
        AC_CHECK_FUNC(openlog)
-       if test $ac_cv_func_openlog = no -a $ol_enable_syslog = yes; then
+       if test $ac_cv_func_openlog = no && test $ol_enable_syslog = yes; then
                AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
        fi
        ol_enable_syslog=$ac_cv_func_openlog
 fi
 
                AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
        fi
        ol_enable_syslog=$ac_cv_func_openlog
 fi
 
-dnl ----------------------------------------------------------------
-dnl dmalloc support (deprecated in favor of -DCSRIMALLOC support)
-dnl if test $ol_enable_dmalloc != no ; then
-dnl    AC_CHECK_HEADERS(dmalloc.h)
-dnl    AC_CHECK_LIB(dmalloc, dmalloc_shutdown)
-dnl fi
-
 dnl ----------------------------------------------------------------
 dnl SQL
 ol_link_sql=no
 dnl ----------------------------------------------------------------
 dnl SQL
 ol_link_sql=no
@@ -2139,16 +2169,39 @@ if test $ol_enable_sql != no ; then
                AC_MSG_ERROR([could not locate SQL headers])
        ])
 
                AC_MSG_ERROR([could not locate SQL headers])
        ])
 
-       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
+       sql_LIBS="$LIBS"
+       LIBS="$LTHREAD_LIBS"
+
+       if test $ol_with_odbc = auto ; then
+               ol_with_odbc="iodbc unixodbc"
        fi
 
        fi
 
+       for odbc in $ol_with_odbc ; do
+               if test $ol_link_sql = no ; then
+                       case $odbc in
+                       iodbc)
+                               AC_CHECK_LIB(iodbc, SQLDriverConnect, [have_iodbc=yes], [have_iodbc=no])
+                               if test $have_iodbc = yes ; then
+                                       ol_link_sql="-liodbc"
+                               fi
+                               ;;
+
+                       unixodbc)
+                               AC_CHECK_LIB(odbc, SQLDriverConnect, [have_odbc=yes], [have_odbc=no])
+                               if test $have_odbc = yes ; then
+                                       ol_link_sql="-lodbc"
+                               fi
+                               ;;
+
+                       *)
+                               AC_MSG_ERROR([unknown ODBC library])
+                               ;;
+                       esac
+               fi
+       done
+
+       LIBS="$sql_LIBS"
+
        if test $ol_link_sql != no ; then
                SLAPD_SQL_LIBS="$ol_link_sql"
 
        if test $ol_link_sql != no ; then
                SLAPD_SQL_LIBS="$ol_link_sql"
 
@@ -2161,12 +2214,14 @@ dnl ----------------------------------------------------------------
 dnl
 dnl Check for Cyrus SASL
 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
        AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
 
 ol_link_sasl=no
 ol_link_spasswd=no
 if test $ol_with_cyrus_sasl != no ; then
        AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
 
-       if test $ac_cv_header_sasl_sasl_h = yes -o $ac_cv_header_sasl_h = yes; then
+       if test $ac_cv_header_sasl_sasl_h = yes ||
+          test $ac_cv_header_sasl_h = yes; then
                AC_CHECK_LIB(sasl2, sasl_client_init,
                        [ol_link_sasl="-lsasl2"],
                        [AC_CHECK_LIB(sasl, sasl_client_init,
                AC_CHECK_LIB(sasl2, sasl_client_init,
                        [ol_link_sasl="-lsasl2"],
                        [AC_CHECK_LIB(sasl, sasl_client_init,
@@ -2187,7 +2242,7 @@ if test $ol_with_cyrus_sasl != no ; then
                OL_SASL_COMPAT
                if test $ol_cv_sasl_compat = no ; then
                        ol_link_sasl=no
                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])
                fi
 
                AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
@@ -2201,6 +2256,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"
                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
        fi
 
 else
@@ -2212,7 +2269,7 @@ fi
 
 dnl ----------------------------------------------------------------
 dnl Check for entropy sources
 
 dnl ----------------------------------------------------------------
 dnl Check for entropy sources
-if test $cross_compiling != yes -a "$ac_cv_mingw32" != yes ; then
+if test $cross_compiling != yes && test "$ac_cv_mingw32" != yes ; then
        dev=no
        if test -r /dev/urandom ; then
                dev="/dev/urandom";
        dev=no
        if test -r /dev/urandom ; then
                dev="/dev/urandom";
@@ -2265,12 +2322,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
        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
                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
 
                fi
 
-               AC_MSG_WARN(disabling crypt support)
+               AC_MSG_WARN([disabling crypt support])
                ol_enable_crypt=no
        fi
 fi
                ol_enable_crypt=no
        fi
 fi
@@ -2283,7 +2340,7 @@ if test $ol_enable_proctitle != no ; then
                        [have_setproctitle=yes
                        LUTIL_LIBS="$LUTIL_LIBS -lutil"],
                        [have_setproctitle=no
                        [have_setproctitle=yes
                        LUTIL_LIBS="$LUTIL_LIBS -lutil"],
                        [have_setproctitle=no
-                       LIBOBJS="$LIBOBJS setproctitle.o"
+                       AC_LIBOBJ(setproctitle)
                        LIBSRCS="$LIBSRCS setproctitle.c"])])
 
        if test $have_setproctitle = yes ; then
                        LIBSRCS="$LIBSRCS setproctitle.c"])])
 
        if test $have_setproctitle = yes ; then
@@ -2293,7 +2350,6 @@ if test $ol_enable_proctitle != no ; then
 fi
 
 dnl ----------------------------------------------------------------
 fi
 
 dnl ----------------------------------------------------------------
-dnl Check for SLPv2 Compliant API Library
 if test $ol_enable_slp != no ; then
        AC_CHECK_HEADERS( slp.h )
 
 if test $ol_enable_slp != no ; then
        AC_CHECK_HEADERS( slp.h )
 
 dnl ----------------------------------------------------------------
 dnl Checks for typedefs, structures, and compiler characteristics.
 
 dnl ----------------------------------------------------------------
 dnl Checks for typedefs, structures, and compiler characteristics.
 
-dnl Checks for long long
-AC_CACHE_CHECK([long long], ol_cv_type_long_long, [
-       AC_TRY_COMPILE([], [long long x;],
-               [ol_cv_type_long_long=yes],
-               [ol_cv_type_long_long=no])])
-if test $ol_cv_type_long_long = yes; then
-       AC_DEFINE(HAVE_LONG_LONG, 1, [define if you have 'long long'])
+AC_CHECK_TYPE(mode_t, int)
+AC_CHECK_TYPE(off_t, long)
+AC_CHECK_TYPE(pid_t, int)
+AC_CHECK_TYPE(ssize_t, [signed int])
+AC_CHECK_TYPE(caddr_t, [char *])
+AC_CHECK_TYPE(size_t, unsigned)
+
+AC_CHECK_TYPES([long long])
+AC_CHECK_TYPES([ptrdiff_t])
+
+
+AC_CHECK_TYPE([socklen_t],,, [$ac_includes_default
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif])
+
+dnl socklen_t-like type in accept(), default socklen_t or int:
+dnl - The OS might define socklen_t without using it.  POSIX moved from
+dnl   int to size_t to socklen_t, hoping to stay at a 32-bit type, and
+dnl   HP-UX now has selectors for what to use.
+dnl - On Solaris 2.8 the prototype has void *len, but the default is OK.
+AC_MSG_CHECKING([the type of arg 3 to accept()])
+AC_CACHE_VAL(ol_cv_type_ber_socklen_t, [
+       set socklen_t int unsigned "unsigned long" long size_t
+       test "$ac_cv_type_socklen_t" = yes || shift
+       ol_cv_type_ber_socklen_t=$1 guessing="guessing "
+       for lentype in "$@" ; do for addrtype in "struct sockaddr" void ; do
+               AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$ac_includes_default
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+extern int accept(int s, $addrtype *ap, $lentype *lp);
+], [
+accept(0, (struct sockaddr *) 0, ($lentype *) 0);
+])], [ol_cv_type_ber_socklen_t=$lentype guessing= ; break 2])
+       done ; done])
+AC_MSG_RESULT([$guessing$ol_cv_type_ber_socklen_t *])
+AC_DEFINE_UNQUOTED(ber_socklen_t, $ol_cv_type_ber_socklen_t,
+       [Define to the type of arg 3 for `accept'.])
+
+dnl Modules should use ber_socklen_t, not socklen_t.  Define socklen_t
+dnl for the time being anyway, for backwards compatibility.
+if test "$ac_cv_type_socklen_t" != yes; then
+       AC_DEFINE_UNQUOTED([socklen_t], [$ol_cv_type_ber_socklen_t],
+               [Define like ber_socklen_t if <sys/socket.h> does not define.])
 fi
 
 fi
 
-AC_TYPE_MODE_T
-AC_TYPE_OFF_T
-AC_TYPE_PID_T
-AM_TYPE_PTRDIFF_T
+
 AC_TYPE_SIGNAL
 AC_TYPE_SIGNAL
-AC_TYPE_SIZE_T
 
 
-AC_CHECK_TYPE(ssize_t, [signed int])
-AC_CHECK_TYPE(caddr_t, [char *])
+AC_CHECK_TYPE([sig_atomic_t],,
+       [AC_DEFINE_UNQUOTED([sig_atomic_t], [int],
+               [Define to `int' if <signal.h> does not define.])],
+       [$ac_includes_default
+#include <signal.h>
+       ])
 
 
-OL_TYPE_SOCKLEN_T
-AC_STRUCT_ST_BLKSIZE
-AC_HEADER_TIME
-AC_STRUCT_TM
 AC_TYPE_UID_T
 AC_TYPE_UID_T
-OL_TYPE_SIG_ATOMIC_T
-
-dnl AC_TYPE_GETGROUPS
 
 
-OL_STRUCT_PASSWD_PW_GECOS
-OL_STRUCT_PASSWD_PW_PASSWD
+AC_HEADER_TIME
+AC_STRUCT_TM
+AC_CHECK_MEMBERS([struct stat.st_blksize])
+AC_CHECK_MEMBERS([struct passwd.pw_gecos],,,[$ac_includes_default
+#include <pwd.h>])
+AC_CHECK_MEMBERS([struct passwd.pw_passwd],,,[$ac_includes_default
+#include <pwd.h>])
 
 OL_C_UPPER_LOWER
 AC_C_CONST
 OL_C_VOLATILE
 
 if test $cross_compiling = yes ; then
 
 OL_C_UPPER_LOWER
 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
 fi
 
        AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
 else
        AC_C_BIGENDIAN
 fi
 
-AC_COMPILE_CHECK_SIZEOF(short) 
-AC_COMPILE_CHECK_SIZEOF(int) 
-AC_COMPILE_CHECK_SIZEOF(long)
+AC_CHECK_SIZEOF(short) 
+AC_CHECK_SIZEOF(int) 
+AC_CHECK_SIZEOF(long)
+AC_CHECK_SIZEOF(long long)
+AC_CHECK_SIZEOF(wchar_t)
 
 if test "$ac_cv_sizeof_int" -lt 4 ; then
        AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
 
 
 if test "$ac_cv_sizeof_int" -lt 4 ; then
        AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
 
-       AC_DEFINE(LBER_INT_T,long)
+       AC_DEFINE(LBER_INT_T,long,[define to 32-bit or greater integer type])
 else
 else
-       AC_DEFINE(LBER_INT_T,int)
+       AC_DEFINE(LBER_INT_T,int,[define to 32-bit or greater integer type])
 fi
 
 fi
 
-AC_DEFINE(LBER_LEN_T,long)
-AC_DEFINE(LBER_SOCKET_T,int)
-AC_DEFINE(LBER_TAG_T,long)
+AC_DEFINE(LBER_LEN_T,long,[define to large integer type])
+AC_DEFINE(LBER_SOCKET_T,int,[define to socket descriptor type])
+AC_DEFINE(LBER_TAG_T,long,[define to large integer type])
+
+dnl ----------------------------------------------------------------
+dnl Check for multiple precision support
+if test $ol_with_mp = longlong || test $ol_with_mp = auto ; then
+       if test $ac_cv_sizeof_long_long -gt 4 ; then
+               ol_with_mp=longlong
+               AC_DEFINE(USE_MP_LONG_LONG,1,[define to use 'long long' for MP])
+       elif test $ol_with_mp = longlong ; then
+               AC_MSG_ERROR([long long unusable for multiple precision])
+       fi
+fi
+if test $ol_with_mp = long || test $ol_with_mp = auto ; then
+       if test $ac_cv_sizeof_long -gt 4 ; then
+               ol_with_mp=long
+               AC_DEFINE(USE_MP_LONG,1,[define to use 'long' for MP])
+       elif test $ol_with_mp = long ; then
+               AC_MSG_ERROR([long unusable for multiple precision])
+       fi
+fi
+if test $ol_with_mp = bignum || test $ol_with_mp = auto ; then
+       AC_CHECK_HEADERS(openssl/bn.h)
+       AC_CHECK_HEADERS(openssl/crypto.h)
+       if test "$ac_cv_header_openssl_bn_h" = "yes" &&
+               test "$ac_cv_header_openssl_crypto_h" = "yes" &&
+               test "$ol_with_tls" = "found" ; then
+               ol_with_mp=bignum
+               AC_DEFINE(USE_MP_BIGNUM,1,[define to use OpenSSL BIGNUM for MP])
+       elif test $ol_with_mp = bignum ; then
+               AC_MSG_ERROR([bignum not available])
+       fi
+fi
+if test $ol_with_mp = gmp || test $ol_with_mp = auto ; then
+       AC_CHECK_HEADERS(gmp.h)
+       AC_CHECK_LIB(gmp, __gmpz_add_ui)
+       if test $ac_cv_header_gmp_h = yes && test $ac_cv_lib_gmp___gmpz_add_ui = yes ; then
+               AC_DEFINE(USE_MP_GMP,1,[define to use GMP for MP])
+               ol_with_mp=gmp
+       elif test $ol_with_mp = gmp ; then
+               AC_MSG_ERROR([gmp not available])
+       fi
+fi
+if test $ol_with_mp = auto ; then
+       ol_with_mp=no
+fi
 
 dnl ----------------------------------------------------------------
 dnl Checks for library functions.
 AC_FUNC_MEMCMP
 
 dnl ----------------------------------------------------------------
 dnl Checks for library functions.
 AC_FUNC_MEMCMP
-dnl AM_FUNC_MKTIME dnl checks for sys/time.h and unistd.h
+
+if test $ac_cv_func_memcmp_working = no ; then
+       AC_DEFINE(NEED_MEMCMP_REPLACEMENT,1,
+               [define if memcmp is not 8-bit clean or is otherwise broken])
+fi
+
 AC_FUNC_STRFTIME
 AC_FUNC_STRFTIME
-dnl AM_FUNC_STRTOD
 
 OL_FUNC_INET_ATON
 
 
 OL_FUNC_INET_ATON
 
@@ -2415,9 +2558,11 @@ AC_CHECK_FUNCS(          \
        getspnam                \
        gettimeofday    \
        initgroups              \
        getspnam                \
        gettimeofday    \
        initgroups              \
+       inet_ntoa_b             \
        lockf                   \
        memcpy                  \
        memmove                 \
        lockf                   \
        memcpy                  \
        memmove                 \
+       memrchr                 \
        mkstemp                 \
        mktemp                  \
        pipe                    \
        mkstemp                 \
        mktemp                  \
        pipe                    \
@@ -2430,11 +2575,8 @@ AC_CHECK_FUNCS(          \
        setsid                  \
        setuid                  \
        seteuid                 \
        setsid                  \
        setuid                  \
        seteuid                 \
-       sigaction               \
        signal                  \
        signal                  \
-       sigset                  \
        strdup                  \
        strdup                  \
-       strerror                \
        strpbrk                 \
        strrchr                 \
        strsep                  \
        strpbrk                 \
        strrchr                 \
        strsep                  \
@@ -2446,7 +2588,6 @@ AC_CHECK_FUNCS(           \
        strtoll                 \
        strspn                  \
        sysconf                 \
        strtoll                 \
        strspn                  \
        sysconf                 \
-       usleep                  \
        waitpid                 \
        wait4                   \
        write                   \
        waitpid                 \
        wait4                   \
        write                   \
@@ -2462,10 +2603,22 @@ if test "$ac_cv_func_getopt" != yes; then
        LIBSRCS="$LIBSRCS getopt.c"
 fi
 if test "$ac_cv_func_getpeereid" != yes; then
        LIBSRCS="$LIBSRCS getopt.c"
 fi
 if test "$ac_cv_func_getpeereid" != yes; then
-       OL_MSGHDR_MSG_ACCRIGHTS
+       AC_CHECK_MEMBERS([struct msghdr.msg_accrightslen],,,
+               [$ac_includes_default
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif])
+       if test "$ac_cv_member_struct_msghdr_msg_accrightslen" != yes; then
+               AC_CHECK_MEMBERS([struct msghdr.msg_control],,,
+                       [$ac_includes_default
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif])
+       fi
        LIBSRCS="$LIBSRCS getpeereid.c"
 fi
        LIBSRCS="$LIBSRCS getpeereid.c"
 fi
-if test "$ac_cv_func_snprintf" != yes -o "$ac_cv_func_vsnprintf" != yes; then
+if test "$ac_cv_func_snprintf" != yes ||
+   test "$ac_cv_func_vsnprintf" != yes; then
        if test "$ac_cv_func_snprintf" != yes; then
                AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
        fi
        if test "$ac_cv_func_snprintf" != yes; then
                AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
        fi
@@ -2474,15 +2627,11 @@ if test "$ac_cv_func_snprintf" != yes -o "$ac_cv_func_vsnprintf" != yes; then
        fi
 fi
 
        fi
 fi
 
-dnl ----------------------------------------------------------------
-# Check Configuration
-OL_SYS_ERRLIST
-
 dnl ----------------------------------------------------------------
 dnl Sort out defines
 
 if test "$ol_enable_slapi" != no ; then
 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)
 
        dnl it is duplicated here, 'cause it'd be cached anyway
        AC_CHECK_HEADERS(ltdl.h)
 
@@ -2508,14 +2657,16 @@ if test "$ol_enable_syslog" = yes ; then
                [define this to add syslog code])
 fi
 if test "$ol_link_kbind" != no ; then
                [define this to add syslog code])
 fi
 if test "$ol_link_kbind" != no ; then
-       AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND,LDAP_VENDOR_VERSION)
+       AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND,LDAP_VENDOR_VERSION,
+               [define to LDAP VENDOR VERSION])
 fi
 if test "$ol_enable_proctitle" != no ; then
        AC_DEFINE(LDAP_PROCTITLE,1,
                [define this for LDAP process title support])
 fi
 if test "$ol_enable_referrals" != no ; then
 fi
 if test "$ol_enable_proctitle" != no ; then
        AC_DEFINE(LDAP_PROCTITLE,1,
                [define this for LDAP process title support])
 fi
 if test "$ol_enable_referrals" != no ; then
-       AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION)
+       AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION,
+               [define to LDAP VENDOR VERSION])
 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])
@@ -2529,9 +2680,6 @@ fi
 if test "$ol_enable_crypt" != no ; then
        AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords])
 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
 if test "$ol_link_spasswd" != no ; then
        AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
 fi
@@ -2543,6 +2691,9 @@ if test "$ol_enable_rlookups" != no ; then
 fi
 if test "$ol_enable_aci" != no ; then
        AC_DEFINE(SLAPD_ACI_ENABLED,1,[define to support per-object ACIs])
 fi
 if test "$ol_enable_aci" != no ; then
        AC_DEFINE(SLAPD_ACI_ENABLED,1,[define to support per-object ACIs])
+       WITH_ACI_ENABLED=yes
+else
+       WITH_ACI_ENABLED=no
 fi
 
 if test "$ol_link_modules" != no ; then
 fi
 
 if test "$ol_link_modules" != no ; then
@@ -2555,219 +2706,362 @@ 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_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_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"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
+               MFLAG=SLAPD_MOD_STATIC
        fi
        fi
+       AC_DEFINE_UNQUOTED(SLAPD_BDB,$MFLAG,[define to support BDB backend])
 fi
 
 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_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"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
+               MFLAG=SLAPD_MOD_STATIC
        fi
        fi
+       AC_DEFINE_UNQUOTED(SLAPD_DNSSRV,$MFLAG,[define to support DNS SRV backend])
 fi
 
 if test "$ol_enable_hdb" != no ; then
 fi
 
 if test "$ol_enable_hdb" != no ; then
-       AC_DEFINE(SLAPD_HDB,1,[define to support HDB backend])
        BUILD_SLAPD=yes
        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"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-hdb"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb"
+               MFLAG=SLAPD_MOD_STATIC
        fi
        fi
+       AC_DEFINE_UNQUOTED(SLAPD_HDB,$MFLAG,[define to support HDB backend])
 fi
 
 if test "$ol_enable_ldap" != no ; then
 fi
 
 if test "$ol_enable_ldap" != no ; then
-       AC_DEFINE(SLAPD_LDAP,1,[define to support LDAP backend])
        BUILD_SLAPD=yes
        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"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
+               MFLAG=SLAPD_MOD_STATIC
        fi
        fi
+       AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
 fi
 
 fi
 
-if test "$ol_link_ldbm" != no -a $ol_enable_ldbm != no; then
-       AC_DEFINE(SLAPD_LDBM,1,[define to support LDBM backend])
+if test "$ol_link_ldbm" != no && test $ol_enable_ldbm != no; then
        BUILD_SLAPD=yes
        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"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldbm"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldbm"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldbm"
+               MFLAG=SLAPD_MOD_STATIC
        fi
        fi
+       AC_DEFINE_UNQUOTED(SLAPD_LDBM,$MFLAG,[define to support LDBM backend])
 fi
 
 if test "$ol_enable_meta" != no ; then
 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_SLAPD=yes
-       BUILD_META=yes
+       BUILD_META=$ol_enable_meta
        BUILD_REWRITE=yes
        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"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
+               MFLAG=SLAPD_MOD_STATIC
        fi
        fi
+       AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
 fi
 
 if test "$ol_enable_monitor" != no ; then
 fi
 
 if test "$ol_enable_monitor" != no ; then
-       AC_DEFINE(SLAPD_MONITOR,1,[define to support cn=Monitor backend])
        BUILD_SLAPD=yes
        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"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
+               MFLAG=SLAPD_MOD_STATIC
        fi
        fi
+       AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
 fi
 
 if test "$ol_enable_null" != no ; then
 fi
 
 if test "$ol_enable_null" != no ; then
-       AC_DEFINE(SLAPD_NULL,1,[define to support NULL backend])
        BUILD_SLAPD=yes
        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"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
+               MFLAG=SLAPD_MOD_STATIC
        fi
        fi
+       AC_DEFINE_UNQUOTED(SLAPD_NULL,$MFLAG,[define to support NULL backend])
 fi
 
 if test "$ol_enable_passwd" != no ; then
 fi
 
 if test "$ol_enable_passwd" != no ; then
-       AC_DEFINE(SLAPD_PASSWD,1,[define to support PASSWD backend])
        BUILD_SLAPD=yes
        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"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
+               MFLAG=SLAPD_MOD_STATIC
        fi
        fi
+       AC_DEFINE_UNQUOTED(SLAPD_PASSWD,$MFLAG,[define to support PASSWD backend])
 fi
 
 if test "$ol_link_perl" != no ; then
 fi
 
 if test "$ol_link_perl" != no ; then
-       AC_DEFINE(SLAPD_PERL,1,[define to support PERL backend])
        BUILD_SLAPD=yes
        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"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
        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
        fi
+       AC_DEFINE_UNQUOTED(SLAPD_RELAY,$MFLAG,[define to support relay backend])
 fi
 
 if test "$ol_enable_shell" != no ; then
 fi
 
 if test "$ol_enable_shell" != no ; then
-       if test "$ol_link_thread" != no ; then
+       if test "$ol_link_threads" != no ; then
                AC_MSG_WARN([Use of --without-threads is recommended with back-shell])
        fi
                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_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"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
+               MFLAG=SLAPD_MOD_STATIC
        fi
        fi
+       AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend])
 fi
 
 if test "$ol_link_sql" != no ; then
 fi
 
 if test "$ol_link_sql" != no ; then
-       AC_DEFINE(SLAPD_SQL,1,[define to support SQL backend])
        BUILD_SLAPD=yes
        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"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
+               MFLAG=SLAPD_MOD_DYNAMIC
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
        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_auditlog" != no ; then
+       BUILD_AUDITLOG=$ol_enable_auditlog
+       if test "$ol_enable_auditlog" = mod ; then
+               MFLAG=SLAPD_MOD_DYNAMIC
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS auditlog.la"
+       else
+               MFLAG=SLAPD_MOD_STATIC
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS auditlog.o"
        fi
        fi
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_AUDITLOG,$MFLAG,[define for Audit Logging overlay])
 fi
 
 fi
 
-if test "$ol_with_dyngroup" != no ; then
-       BUILD_DYNGROUP=$ol_with_dyngroup
-       if test "$ol_with_dyngroup" = mod ; then
+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 Deny Operation overlay])
+fi
+
+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
                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
 
        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_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
                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
 
        fi
        AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay])
 fi
 
-if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \
-       $BUILD_SLAPD = yes ; 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_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_valsort" != no ; then
+       BUILD_VALSORT=$ol_enable_valsort
+       if test "$ol_enable_valsort" = mod ; then
+               MFLAG=SLAPD_MOD_DYNAMIC
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS valsort.la"
+       else
+               MFLAG=SLAPD_MOD_STATIC
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS valsort.o"
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_VALSORT,$MFLAG,[define for Value Sorting overlay])
+fi
+
+if test "$ol_enable_slurpd" != no &&
+   test "$ol_link_threads" != no &&
+   test $BUILD_SLAPD = yes ; then
        BUILD_SLURPD=yes
 fi
 
        BUILD_SLURPD=yes
 fi
 
@@ -2796,20 +3090,20 @@ else
        PLAT=UNIX
 fi
 
        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(LIBSRCS)
 AC_SUBST(PLAT)
+AC_SUBST(WITH_SASL)
 AC_SUBST(WITH_TLS)
 AC_SUBST(WITH_TLS)
+AC_SUBST(WITH_MODULES_ENABLED)
+AC_SUBST(WITH_ACI_ENABLED)
+AC_SUBST(BUILD_THREAD)
 AC_SUBST(BUILD_LIBS_DYNAMIC)
 
 AC_SUBST(BUILD_SLAPD)
 AC_SUBST(BUILD_LIBS_DYNAMIC)
 
 AC_SUBST(BUILD_SLAPD)
+dnl slapi
   AC_SUBST(BUILD_SLAPI)
   AC_SUBST(SLAPD_SLAPI_DEPEND)
   AC_SUBST(BUILD_SLAPI)
   AC_SUBST(SLAPD_SLAPI_DEPEND)
+dnl backends
   AC_SUBST(BUILD_BDB)
   AC_SUBST(BUILD_DNSSRV)
   AC_SUBST(BUILD_HDB)
   AC_SUBST(BUILD_BDB)
   AC_SUBST(BUILD_DNSSRV)
   AC_SUBST(BUILD_HDB)
@@ -2819,23 +3113,26 @@ AC_SUBST(BUILD_SLAPD)
   AC_SUBST(BUILD_MONITOR)
   AC_SUBST(BUILD_NULL)
   AC_SUBST(BUILD_PASSWD)
   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_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_AUDITLOG)
+  AC_SUBST(BUILD_DENYOP)
   AC_SUBST(BUILD_DYNGROUP)
   AC_SUBST(BUILD_DYNGROUP)
+  AC_SUBST(BUILD_DYNLIST)
+  AC_SUBST(BUILD_LASTMOD)
+  AC_SUBST(BUILD_PPOLICY)
   AC_SUBST(BUILD_PROXYCACHE)
   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_VALSORT)
 AC_SUBST(BUILD_SLURPD)
 
 AC_SUBST(LDAP_LIBS)
 AC_SUBST(BUILD_SLURPD)
 
 AC_SUBST(LDAP_LIBS)
@@ -2852,6 +3149,7 @@ AC_SUBST(SLAPD_MODULES_LDFLAGS)
 AC_SUBST(SLAPD_NO_STATIC)
 AC_SUBST(SLAPD_STATIC_BACKENDS)
 AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
 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)
 AC_SUBST(SLAPD_DYNAMIC_OVERLAYS)
 
 AC_SUBST(PERL_CPPFLAGS)
@@ -2869,6 +3167,7 @@ AC_SUBST(LIBSLAPITOOLS)
 AC_SUBST(AUTH_LIBS)
 
 AC_SUBST(SLAPD_SLP_LIBS)
 AC_SUBST(AUTH_LIBS)
 
 AC_SUBST(SLAPD_SLP_LIBS)
+AC_SUBST(SLAPD_GMP_LIBS)
 
 AC_SUBST(SLAPD_SQL_LDFLAGS)
 AC_SUBST(SLAPD_SQL_LIBS)
 
 AC_SUBST(SLAPD_SQL_LDFLAGS)
 AC_SUBST(SLAPD_SQL_LIBS)
@@ -2883,48 +3182,158 @@ dnl ----------------------------------------------------------------
 dnl final output
 dnl
 
 dnl final output
 dnl
 
-AC_OUTPUT( \
-Makefile:build/top.mk:Makefile.in:build/dir.mk \
-doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk \
-doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk \
-doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk \
-doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk \
-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/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk \
-include/Makefile:build/top.mk:include/Makefile.in \
-libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk     \
-libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk \
-libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk \
-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 \
-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-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-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-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:build/lib-shared.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 \
-tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk \
-,[
+AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.mk]
+[doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk]
+[doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk]
+[doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk]
+[doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk]
+[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/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk]
+[include/Makefile:build/top.mk:include/Makefile.in]
+[libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk]
+[libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk]
+[libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk]
+[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]
+[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-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/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk]
+[tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk]
+[tests/run]
+[tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk])
+
+AC_CONFIG_COMMANDS([default],[[
 chmod +x tests/run
 date > stamp-h
 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-2008 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
+OVERLAYSC="servers/slapd/overlays/statover.c"
+echo "Making $OVERLAYSC"
+rm -f $OVERLAYSC
+cat > $OVERLAYSC << ENDX
+/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+ *
+ * Copyright 1998-2008 The OpenLDAP Foundation.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.
+ *
+ * A copy of this license is available in the file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * <http://www.OpenLDAP.org/license.html>.
+ */
+/* This file is automatically generated by configure; please do not edit. */
+
+#include "portable.h"
+#include "slap.h"
+
+ENDX
+if test "${STATIC_OVERLAYS}"; then
+       for o in ${STATIC_OVERLAYS}; do
+               oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
+               cat >> $OVERLAYSC << ENDX
+extern OV_init ${oo}_initialize;
+ENDX
+       done
+fi
+
+cat >> $OVERLAYSC << ENDX
+
+OverlayInit slap_oinfo[] = {
+ENDX
+
+if test "${STATIC_OVERLAYS}"; then
+       for o in ${STATIC_OVERLAYS}; do
+               oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
+               echo "    Add ${oo} ..."
+               cat >> $OVERLAYSC << ENDX
+       { "${oo}", ${oo}_initialize },
+ENDX
+       done
+fi
+
+       cat >> $OVERLAYSC << ENDX
+       { NULL, NULL },
+};
+
+/* end of generated file */
+ENDX
+
 echo Please run \"make depend\" to build dependencies
 echo Please run \"make depend\" to build dependencies
-])
+]],[[
+STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"
+STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS"
+]])
+AC_OUTPUT