]> git.sur5r.net Git - openldap/blobdiff - configure.in
Update copyright statements
[openldap] / configure.in
index 31afd330f492a903e0f713bb7539770d3368312c..6d9c243df4d5e681ccce54557a0556cca8277141 100644 (file)
@@ -1,11 +1,12 @@
 dnl $OpenLDAP$
 dnl
-dnl Copyright 1998-2000 The OpenLDAP Foundation.  All Rights Reserved.
+dnl Copyright 1998-2002 The OpenLDAP Foundation.  All Rights Reserved.
 dnl 
-dnl Redistribution and use in source and binary forms are permitted only
-dnl as authorized by the OpenLDAP Public License.  A copy of this
-dnl license is available at http://www.OpenLDAP.org/license.html or
-dnl in file LICENSE in the top-level directory of the distribution.
+dnl Redistribution and use in source and binary forms, with or without
+dnl modification, are permitted only as authorized by the OpenLDAP
+dnl Public License.  A copy of this license is available at
+dnl http://www.OpenLDAP.org/license.html or in file LICENSE in the
+dnl top-level directory of the distribution.
 dnl
 dnl ----------------------------------------------------------------
 dnl Redefine AC_INIT_BINSH to provide RCS IDs and copyright notice
@@ -15,14 +16,15 @@ define([AC_INIT_BINSH],
 # $]OpenLDAP[$
 # from] translit([$OpenLDAP$], $")] [
 
-# Copyright 1998-2000 The OpenLDAP Foundation.  All Rights Reserved.
+# Copyright 1998-2002 The OpenLDAP Foundation.  All Rights Reserved.
 # 
-# Redistribution and use in source and binary forms are permitted only
-# as authorized by the OpenLDAP Public License.  A copy of this
-# license is available at http://www.OpenLDAP.org/license.html or
-# in file LICENSE in the top-level directory of the distribution.
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted only as authorized by the OpenLDAP
+# Public License.  A copy of this license is available at
+# http://www.OpenLDAP.org/license.html or in file LICENSE in the
+# top-level directory of the distribution.
 
-echo "Copyright 1998-2000 The OpenLDAP Foundation,  All Rights Reserved."
+echo "Copyright 1998-2002 The OpenLDAP Foundation,  All Rights Reserved."
 echo "Restrictions apply, see COPYRIGHT and LICENSE files."
 ])dnl
 dnl ----------------------------------------------------------------
@@ -31,36 +33,44 @@ define([AC_CACHE_LOAD], )dnl
 define([AC_CACHE_SAVE], )dnl
 dnl ================================================================
 dnl Configure.in for OpenLDAP
-AC_INIT(build/version)dnl
+AC_INIT(build/version.sh)dnl
 
-# set unset (borrowed from autoconf 2.14a)
-if (unset FOO) >/dev/null 2>&1; then
+# set unset (borrowed from autoconf 2.49c)
+if (OL_FOO=OL_FOO; unset OL_FOO) >/dev/null 2>&1; then
   ol_unset=unset
 else
   ol_unset=false
 fi
 # unset CDPATH
-$ol_unset CDPATH || test "${CDPATH+set}" != set || CDPATH=: && export CDPATH
+$ol_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
 
 AC_CONFIG_AUX_DIR(build)dnl
 
-OL_VERSION=`cat $ac_aux_dir/version`
-if test -z "$OL_VERSION"; then
+eval `$ac_aux_dir/version.sh`
+if test -z "$OL_STRING"; then
        AC_MSG_ERROR([could not determine version])
 fi
 
-echo "Configuring OpenLDAP $OL_VERSION ..."
+echo "Configuring $OL_STRING ..."
 
 dnl Determine host platform
 dnl            we try not to use this for much
 AC_CANONICAL_SYSTEM
 
-AM_INIT_AUTOMAKE(OpenLDAP,[$OL_VERSION], [no defines])dnl
-AC_SUBST(PACKAGE)
-AC_SUBST(VERSION)
+AM_INIT_AUTOMAKE([$OL_PACKAGE],[$OL_VERSION], [no defines])dnl
+AC_SUBST(PACKAGE)dnl
+AC_SUBST(VERSION)dnl
 AC_DEFINE_UNQUOTED(OPENLDAP_PACKAGE,"$PACKAGE",Package)
 AC_DEFINE_UNQUOTED(OPENLDAP_VERSION,"$VERSION",Version)
 
+AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION,$OL_API_INC,Version)
+AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MAJOR,$OL_MAJOR,Major)
+AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MINOR,$OL_MINOR,Minor)
+AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_PATCH,$OL_PATCH,Patch)
+
+OPENLDAP_LIBVERSION=$OL_API_LIB
+AC_SUBST(OPENLDAP_LIBVERSION)dnl
+
 dnl We use autoconf features new to 2.13.
 dnl aclocal.m4 should be built using aclocal from automake 1.4
 dnl libtool 1.3.3 should be installed.
@@ -81,7 +91,7 @@ dnl --with-subdir
 ldap_subdir="/openldap"
 
 AC_ARG_WITH(subdir,
-[  --with-subdir=DIR change default subdirectory used for installs],
+[  --with-subdir=DIR       change default subdirectory used for installs],
 [case "$withval" in
        no) ldap_subdir=""
                ;;
@@ -103,11 +113,12 @@ dnl General "enable" options
 OL_ARG_ENABLE(debug,[  --enable-debug    enable debugging], yes)dnl
 OL_ARG_ENABLE(syslog,[  --enable-syslog          enable syslog support], auto)dnl
 OL_ARG_ENABLE(proctitle,[  --enable-proctitle    enable proctitle support], yes)dnl
-OL_ARG_ENABLE(cache,[  --enable-cache    enable caching], yes)dnl
-OL_ARG_ENABLE(referrals,[  --enable-referrals    enable V2 Referrals extension], yes)dnl
-OL_ARG_ENABLE(kbind,[  --enable-kbind    enable V2 Kerberos IV bind], no)dnl
+OL_ARG_ENABLE(cache,[  --enable-cache    enable caching (experimental)], no)dnl
+OL_ARG_ENABLE(referrals,[  --enable-referrals    enable LDAPv2+ Referrals (experimental)], no)dnl
+OL_ARG_ENABLE(kbind,[  --enable-kbind    enable LDAPv2+ Kerberos IV bind (deprecated)], no)dnl
 OL_ARG_ENABLE(ipv6,[  --enable-ipv6      enable IPv6 support], auto)dnl
 OL_ARG_ENABLE(local,[  --enable-local    enable AF_LOCAL (AF_UNIX) socket support], auto)dnl
+OL_ARG_ENABLE(rewrite,[  --enable-rewrite        enable rewrite], no)dnl
 OL_ARG_ENABLE(x_compile,[  --enable-x-compile    enable cross compiling],
        no, [yes no])dnl
 
@@ -119,7 +130,7 @@ OL_ARG_WITH(cyrus_sasl,[  --with-cyrus-sasl   with Cyrus SASL support],
        auto, [auto yes no] )
 OL_ARG_WITH(fetch,[  --with-fetch                with fetch URL support],
        auto, [auto yes no] )
-OL_ARG_WITH(kerberos,[  --with-kerberos          with support],
+OL_ARG_WITH(kerberos,[  --with-kerberos          with Kerberos support],
        auto, [auto k5 k5only k425 kth k4 afs yes no])
 OL_ARG_WITH(readline,[  --with-readline          with readline support],
        auto, [auto yes no] )
@@ -138,19 +149,24 @@ dnl ----------------------------------------------------------------
 dnl SLAPD OPTIONS
 AC_ARG_WITH(xxslapdoptions,[SLAPD (Standalone LDAP Daemon) Options:])
 OL_ARG_ENABLE(slapd,[  --enable-slapd    enable building slapd], yes)dnl
+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], auto)dnl
+OL_ARG_ENABLE(crypt,[    --enable-crypt          enable crypt(3) passwords], no)dnl
+OL_ARG_ENABLE(dynamic,[    --enable-dynamic      enable linking built binaries with dynamic libs], no)dnl
 OL_ARG_ENABLE(kpasswd,[    --enable-kpasswd      enable Kerberos password verification], no)dnl
+OL_ARG_ENABLE(lmpasswd,[    --enable-lmpasswd    enable LAN Manager passwords], no)dnl
 OL_ARG_ENABLE(spasswd,[    --enable-spasswd      enable (Cyrus) SASL password verification], no)dnl
 OL_ARG_ENABLE(modules,[    --enable-modules      enable dynamic module support], no)dnl
-OL_ARG_ENABLE(multimaster,[    --enable-multimaster  enable multimaster replication], no)dnl
+dnl OL_ARG_ENABLE(multimaster,[    --enable-multimaster  enable multimaster replication], no)dnl
 OL_ARG_ENABLE(phonetic,[    --enable-phonetic    enable phonetic/soundex], no)dnl
-OL_ARG_ENABLE(rlookups,[    --enable-rlookups    enable reverse lookups], auto)dnl
-OL_ARG_ENABLE(aci,[    --enable-aci      enable per-object ACIs], no)dnl
+OL_ARG_ENABLE(rlookups,[    --enable-rlookups    enable reverse lookups], no)dnl
+OL_ARG_ENABLE(slp, [    --enable-slp          enable SLPv2 support], no)dnl     
 OL_ARG_ENABLE(wrappers,[    --enable-wrappers    enable tcp wrapper support], no)dnl
-OL_ARG_ENABLE(dynamic,[    --enable-dynamic      enable linking built binaries with dynamic libs], no)dnl
 
 dnl SLAPD Backend options
+OL_ARG_ENABLE(bdb,[    --enable-bdb      enable Berkeley DB backend], no)dnl
+OL_ARG_WITH(bdb_module,[    --with-bdb-module     module type], static,
+       [static dynamic])
 OL_ARG_ENABLE(dnssrv,[    --enable-dnssrv        enable dnssrv backend], no)dnl
 OL_ARG_WITH(dnssrv_module,[    --with-dnssrv-module  module type], static,
        [static dynamic])
@@ -164,6 +180,12 @@ OL_ARG_WITH(ldbm_module,[    --with-ldbm-module      module type], static,
        [static dynamic])
 OL_ARG_WITH(ldbm_type,[    --with-ldbm-type      use LDBM type], auto,
        [auto btree hash])
+OL_ARG_ENABLE(meta,[    --enable-meta    enable metadirectory backend], no)dnl
+OL_ARG_WITH(meta_module,[    --with-meta-module          module type], static,
+       [static dynamic])
+OL_ARG_ENABLE(monitor,[    --enable-monitor      enable monitor backend], no)dnl
+OL_ARG_WITH(monitor_module,[    --with-monitor-module module type], static,
+       [static dynamic])
 OL_ARG_ENABLE(passwd,[    --enable-passwd        enable passwd backend], no)dnl
 OL_ARG_WITH(passwd_module,[    --with-passwd-module  module type], static,
        [static dynamic])
@@ -197,6 +219,9 @@ dnl General "enable" options
 # validate options
 if test $ol_enable_slapd = no ; then
        dnl SLAPD was specificallly disabled
+       if test $ol_enable_bdb = yes ; then
+               AC_MSG_WARN([slapd disabled, ignoring --enable-bdb argument])
+       fi
        if test $ol_enable_dnssrv = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-dnssrv argument])
        fi
@@ -206,6 +231,12 @@ if test $ol_enable_slapd = no ; then
        if test $ol_enable_ldbm = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-ldbm argument])
        fi
+       if test $ol_enable_meta = yes ; then
+               AC_MSG_WARN([slapd disabled, ignoring --enable-meta argument])
+       fi
+       if test $ol_enable_monitor = yes ; then
+               AC_MSG_WARN([slapd disabled, ignoring --enable-monitor argument])
+       fi
        if test $ol_enable_passwd = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-passwd argument])
        fi
@@ -224,9 +255,9 @@ if test $ol_enable_slapd = no ; then
        if test $ol_enable_modules = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
        fi
-       if test $ol_enable_multimaster = yes ; then
-               AC_MSG_WARN([slapd disabled, ignoring --enable-multimaster argument])
-       fi
+dnl    if test $ol_enable_multimaster = yes ; then
+dnl            AC_MSG_WARN([slapd disabled, ignoring --enable-multimaster argument])
+dnl    fi
        if test $ol_enable_wrappers = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
        fi
@@ -245,6 +276,9 @@ if test $ol_enable_slapd = no ; then
        if test $ol_with_ldbm_type != auto ; then
                AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-type argument])
        fi
+       if test $ol_with_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
@@ -254,6 +288,12 @@ if test $ol_enable_slapd = no ; then
        if test $ol_with_ldbm_module != static ; then
                AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-module argument])
        fi
+       if test $ol_with_meta_module != static ; then
+               AC_MSG_WARN([slapd disabled, ignoring --with-meta-module argument])
+       fi
+       if test $ol_with_monitor_module != static ; then
+               AC_MSG_WARN([slapd disabled, ignoring --with-monitor-module argument])
+       fi
        if test $ol_with_passwd_module != static ; then
                AC_MSG_WARN([slapd disabled, ignoring --with-passwd-module argument])
        fi
@@ -272,11 +312,17 @@ if test $ol_enable_slapd = no ; then
        if test $ol_enable_slurpd = yes ; then
                AC_MSG_ERROR([slurpd requires slapd])
        fi
+       if test $ol_enable_rewrite = yes ; then
+               AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
+       fi
 
        # force settings to no
+       ol_enable_bdb=no
        ol_enable_dnssrv=no
        ol_enable_ldap=no
        ol_enable_ldbm=no
+       ol_enable_meta=no
+       ol_enable_monitor=no
        ol_enable_passwd=no
        ol_enable_perl=no
        ol_enable_shell=no
@@ -284,7 +330,7 @@ if test $ol_enable_slapd = no ; then
        ol_enable_sql=no
 
        ol_enable_modules=no
-       ol_enable_multimaster=no
+dnl    ol_enable_multimaster=no
        ol_enable_phonetic=no
        ol_enable_rlookups=no
        ol_enable_aci=no
@@ -294,9 +340,12 @@ if test $ol_enable_slapd = no ; then
        ol_with_ldbm_api=no
        ol_with_ldbm_type=no
 
+       ol_with_bdb_module=static
        ol_with_dnssrv_module=static
        ol_with_ldap_module=static
        ol_with_ldbm_module=static
+       ol_with_meta_module=static
+       ol_with_monitor_module=static
        ol_with_passwd_module=static
        ol_with_perl_module=static
        ol_with_shell_module=static
@@ -305,6 +354,8 @@ if test $ol_enable_slapd = no ; then
 
        ol_enable_slurpd=no
 
+       ol_enable_rewrite=no
+
 elif test $ol_enable_ldbm = no ; then
        dnl SLAPD without LDBM
 
@@ -321,20 +372,33 @@ elif test $ol_enable_ldbm = no ; then
        fi
 
        if test $ol_enable_modules != yes -a \
+               $ol_enable_bdb = no -a \
                $ol_enable_dnssrv = no -a \
                $ol_enable_ldap = no -a \
+               $ol_enable_meta = no -a \
+               $ol_enable_monitor = no -a \
                $ol_enable_passwd = no -a \
                $ol_enable_perl = no -a \
                $ol_enable_shell = no -a \
                $ol_enable_sql = no -a \
                $ol_enable_tcl = no ; then
-               AC_MSG_ERROR([slapd requires a backend])
+
+               if test $ol_enable_slapd = yes ; then
+                       AC_MSG_ERROR([slapd requires a backend])
+               else
+                       AC_MSG_WARN([skipping slapd, no backend specified])
+                       ol_enable_slapd=no
+               fi
        fi
 
        ol_with_ldbm_api=no
        ol_with_ldbm_type=no
        ol_with_ldbm_module=static
 
+       if test $ol_enable_bdb != no ; then
+               ol_with_ldbm_api=berkeley
+       fi
+
 else
        dnl SLAPD with LDBM
        if test $ol_with_ldbm_api = gdbm -a \
@@ -349,6 +413,21 @@ else
                $ol_with_ldbm_type = btree ; then
                AC_MSG_ERROR([NDBM only supports LDBM type hash])
        fi
+
+       if test $ol_enable_bdb = yes ; then
+               if test $ol_with_ldbm_api = auto ; then
+                       ol_with_ldbm_api=berkeley
+               elif test $ol_with_ldbm_api != berkeley ; then
+                       AC_MSG_ERROR([LDBM API not compatible with BDB])
+               fi
+
+       elif test $ol_enable_bdb = auto ; then
+               if test $ol_with_ldbm_api != berkeley \
+                       -o $ol_with_ldbm_api != auto ; then
+                       AC_MSG_WARN([LDBM API not compatible with BDB, disabling BDB])
+                       ol_enable_bdb=no
+               fi
+       fi
 fi
 
 if test $ol_enable_slurpd = yes ; then
@@ -358,23 +437,33 @@ if test $ol_enable_slurpd = yes ; then
        fi
 fi
 
+if test $ol_enable_lmpasswd = yes ; then
+       if test $ol_with_tls = no ; then
+               AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
+       fi
+fi
+
 if test $ol_enable_kbind = yes -o $ol_enable_kpasswd = yes ; then
        if test $ol_with_kerberos = no ; then
                AC_MSG_ERROR([options require --with-kerberos])
+       elif test $ol_with_kerberos = auto ; then
+               ol_with_kerberos=yes
        fi
-       ol_with_kerberos=yes
+
 elif test $ol_enable_kbind = no -o $ol_enable_kpasswd = no ; then
-       if test $ol_with_kerberos != no -a $ol_with_kerberos != auto ; then
+       if test $ol_with_kerberos = auto ; then
+               ol_with_kerberos=no
+       elif test $ol_with_kerberos != no ; then
                AC_MSG_WARN([Kerberos detection enabled unnecessarily]);
+               ol_with_kerberos=no
        fi
-       ol_with_kerberos=no
 fi
 
 if test $ol_enable_spasswd = yes ; then
        if test $ol_with_cyrus_sasl = no ; then
                AC_MSG_ERROR([options require --with-cyrus-sasl])
        fi
-       ol_link_spasswd=yes
+       ol_with_cyrus_sasl=yes
 fi
 
 AC_MSG_RESULT(done)
@@ -383,6 +472,7 @@ dnl ----------------------------------------------------------------
 dnl Initialize vars
 LDAP_LIBS=
 LDIF_LIBS=
+LDBM_LIB=
 LDBM_LIBS=
 LTHREAD_LIBS=
 LUTIL_LIBS=
@@ -395,18 +485,24 @@ BUILD_SLURPD=no
 
 BUILD_THREAD=no
 
+BUILD_BDB=no
 BUILD_DNSSRV=no
 BUILD_LDAP=no
 BUILD_LDBM=no
+BUILD_META=no
+BUILD_MONITOR=no
 BUILD_PASSWD=no
 BUILD_PERL=no
 BUILD_SHELL=no
 BUILD_SQL=no
 BUILD_TCL=no
 
+BUILD_BDB_DYNAMIC=static
 BUILD_DNSSRV_DYNAMIC=static
 BUILD_LDAP_DYNAMIC=static
 BUILD_LDBM_DYNAMIC=static
+BUILD_META_DYNAMIC=static
+BUILD_MONITOR_DYNAMIC=static
 BUILD_PASSWD_DYNAMIC=static
 BUILD_PERL_DYNAMIC=static
 BUILD_SHELL_DYNAMIC=static
@@ -417,6 +513,9 @@ SLAPD_MODULES_LDFLAGS=
 SLAPD_MODULES_CPPFLAGS=
 SLAPD_MODULES_LIST=
 
+SLAPD_STATIC_BACKENDS=
+SLAPD_DYNAMIC_BACKENDS=
+
 SLAPD_PERL_LDFLAGS=
 MOD_PERL_LDFLAGS=
 PERL_CPPFLAGS=
@@ -435,6 +534,8 @@ TLS_LIBS=
 MODULES_LIBS=
 AUTH_LIBS=
 
+SLAPD_SLP_LIBS=
+
 dnl ================================================================
 dnl Checks for programs
 
@@ -496,6 +597,8 @@ dnl The default CFLAGS is empty NOT whatever AC_PROG_CC sets.
 dnl (for now, let autoconf sort this out)
 dnl CFLAGS=${CFLAGS-""}
 
+AC_CHECK_PROGS(AR,ar gar,ar)
+
 AC_LIBTOOL_WIN32_DLL
 AC_LIBTOOL_DLOPEN
 AC_PROG_LIBTOOL
@@ -594,28 +697,6 @@ AC_CHECK_LIB(s, afopen, [
 ])
 
 
-dnl ----------------------------------------------------------------
-dnl PF_INET6 support requires getaddrinfo
-dnl PF_LOCAL may use getaddrinfo in available
-AC_CHECK_FUNCS( getaddrinfo )
-
-if test $ac_cv_func_getaddrinfo = no ; then
-       if test $ol_enable_ipv6 = yes ; then
-               AC_MSG_ERROR([IPv6 support requires getaddrinfo()])
-       fi
-       ol_enable_ipv6=no
-fi
-
-if test $ol_enable_local != no ; then
-       AC_CHECK_HEADERS( sys/un.h )
-
-       if test $ol_enable_local = auto ; then
-               ol_enable_local=$ac_cv_header_sys_un_h
-       elif test $ac_cv_header_sys_un_h = no ; then
-               AC_MSG_ERROR([AF_LOCAL domain support requires sys/un.h])
-       fi
-fi
-
 dnl ----------------------------------------------------------------
 dnl Check for module support
 ol_link_modules=no
@@ -627,8 +708,8 @@ if test $ol_enable_modules != no ; then
        fi
 
        AC_CHECK_LIB(ltdl, lt_dlinit, [
-           MODULES_LIBS=-lltdl
-           AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
+               MODULES_LIBS=-lltdl
+               AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
        ])
 
        if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then
@@ -636,9 +717,12 @@ if test $ol_enable_modules != no ; then
        fi
        ol_link_modules=yes
 else
+       ol_with_bdb_module=static
        ol_with_dnssrv_module=static
        ol_with_ldap_module=static
        ol_with_ldbm_module=static
+       ol_with_meta_module=static
+       ol_with_monitor_module=static
        ol_with_passwd_module=static
        ol_with_perl_module=static
        ol_with_shell_module=static
@@ -706,33 +790,55 @@ AC_CHECK_HEADERS( \
        termios.h               \
        unistd.h                \
        winsock.h               \
+       winsock2.h              \
 )
 
 
 dnl ----------------------------------------------------------------
 dnl Checks for libraries
 
+AC_CHECK_FUNC(dlopen, :, [AC_CHECK_LIB(dl, dlopen)])
+
 dnl HP-UX requires -lV3
 AC_CHECK_LIB(V3, sigset)
 
-dnl Gotta check for winsock manually
-if test $ac_cv_header_winsock_h = yes; then
-       AC_CACHE_CHECK([for winsock], [ol_cv_winsock], 
-       AC_TRY_LINK([#include <winsock.h>],[
-                       socket(0,0,0);
-                       select(0,NULL,NULL,NULL,NULL);
-                       closesocket(0);
-                       gethostname(NULL,0);
-       ],[ol_cv_winsock=yes],[ol_cv_winsock=no])])
-
-       if test $ol_cv_winsock = yes ; then
-               AC_DEFINE(HAVE_WINSOCK,1,[define if you have winsock])
+dnl The following is INTENTIONALLY scripted out because shell does not
+dnl support variable names with the '@' character, which is what
+dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
+AC_MSG_CHECKING(for winsock)
+save_LIBS="$LIBS"
+for curlib in ws2_32 wsock32; do
+       LIBS="$LIBS -l$curlib"
+       AC_TRY_LINK([
+                       char socket@12();
+                       char select@20();
+                       char closesocket@4();
+                       char gethostname@8();
+                       ],
+                       [
+                       socket@12();
+                       select@20();
+                       closesocket@4();
+                       gethostname@8();
+                       ],
+                       have_winsock=yes, have_winsock=no)
+
+       if test $have_winsock = yes; then
+               AC_DEFINE(HAVE_WINSOCK, 1, [define if you have winsock])
                ac_cv_func_socket=yes
                ac_cv_func_select=yes
                ac_cv_func_closesocket=yes
                ac_cv_func_gethostname=yes
+               if test $curlib = ws2_32; then
+                       have_winsock=winsock2
+                       AC_DEFINE(HAVE_WINSOCK2, 1,
+                                 [define if you have winsock2])
+               fi
+               break
        fi
-fi
+       LIBS="$save_LIBS"
+done
+AC_MSG_RESULT($have_winsock)
 
 dnl Find socket()
 dnl Likely combinations:
@@ -753,10 +859,10 @@ dnl require select
 AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
 
 if test "${ac_cv_header_winsock_h}" != yes; then
-    dnl Select arg types
-    dnl (if this detection becomes permenent, it and the select() detection
-    dnl should be done before the yielding select test) 
-    AC_FUNC_SELECT_ARGTYPES
+       dnl Select arg types
+       dnl (if this detection becomes permenent, it and the select() detection
+       dnl should be done before the yielding select test) 
+       AC_FUNC_SELECT_ARGTYPES
 fi
 
 dnl check to see if system call automatically restart
@@ -768,17 +874,45 @@ AC_CHECK_HEADERS( regex.h )
 if test "$ac_cv_header_regex_h" != yes ; then
        AC_MSG_ERROR([POSIX regex.h required.])
 fi
-AC_CHECK_FUNC(regfree, :, AC_MSG_ERROR([POSIX regex required.]))
+AC_SEARCH_LIBS(regfree, [regex gnuregex],
+       :, AC_MSG_ERROR([POSIX regex required.]))
 
 OL_POSIX_REGEX
 if test "$ol_cv_c_posix_regex" = no ; then
        AC_MSG_ERROR([broken POSIX regex!])
 fi
 
+dnl ----------------------------------------------------------------
+dnl For windows, check for the need of RPCRT for UUID function support
+AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
+save_LIBS="$LIBS"
+LIBS="$LIBS -lrpcrt4"
+AC_TRY_LINK([
+               char UuidCreate@4();
+               char UuidToStringA@8();
+               ],
+               [
+               UuidCreate@4();
+               UuidToStringA@8();
+               ],
+               need_rpcrt=yes, need_rpcrt=no)
+if test $need_rpcrt = yes; then
+       SLAPD_LIBS="$SLAPD_LIBS -lrpcrt4"
+fi
+LIBS="$save_LIBS"
+AC_MSG_RESULT($need_rpcrt)
+
 dnl ----------------------------------------------------------------
 dnl Check for resolver routines
+dnl      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
@@ -794,6 +928,11 @@ if test $ac_cv_func_res_query = no ; then
        ac_cv_func_res_query=$ac_cv_lib_resolv_res_query
 fi
 
+if test $ac_cv_func_res_query = no ; then 
+       AC_CHECK_LIB(resolv, __res_query)
+       ac_cv_func_res_query=$ac_cv_lib_resolv___res_query
+fi
+
 if test "$ac_cv_func_res_query" = yes ; then
        AC_DEFINE(HAVE_RES_QUERY,1,
                [define if you have res_query()])
@@ -807,6 +946,42 @@ if test "$ol_enable_dnssrv" = yes -a "$ol_link_dnssrv" = no ; then
        AC_MSG_ERROR([DNSSRV requires res_query()])
 fi
 
+dnl ----------------------------------------------------------------
+dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
+dnl PF_LOCAL may use getaddrinfo in available
+AC_CHECK_FUNCS( getaddrinfo gai_strerror inet_ntop )
+
+ol_link_ipv6=no
+if test $ac_cv_func_getaddrinfo = no -o $ac_cv_func_inet_ntop = no ; then
+       if test $ol_enable_ipv6 = yes ; then
+               AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
+       fi
+elif test $ol_enable_ipv6 != no ; then
+       AC_CACHE_CHECK([INET6_ADDRSTRLEN],[ol_cv_inet6_addrstrlen],[
+               AC_EGREP_CPP(__has_inet6_addrstrlen__,[
+#                      include <netinet/in.h>
+#                      ifdef INET6_ADDRSTRLEN
+                               __has_inet6_addrstrlen__;
+#                      endif
+               ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])])
+
+       if test $ol_cv_inet6_addrstrlen = yes ; then
+               ol_link_ipv6=yes
+       elif test $ol_enable_ipv6 = yes ; then
+               AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
+       fi
+fi
+
+if test $ol_enable_local != no ; then
+       AC_CHECK_HEADERS( sys/un.h )
+
+       if test $ol_enable_local = auto ; then
+               ol_enable_local=$ac_cv_header_sys_un_h
+       elif test $ac_cv_header_sys_un_h = no ; then
+               AC_MSG_ERROR([AF_LOCAL domain support requires sys/un.h])
+       fi
+fi
+
 dnl ----------------------------------------------------------------
 dnl Kerberos
 ol_link_kbind=no
@@ -830,11 +1005,15 @@ if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
                fi
 
                if test $krb5_impl = mit; then
+                       AC_CHECK_LIB(k5crypto, main,
+                               [krb5crypto=k5crypto],
+                               [krb5crypto=crypto])
+
                        AC_CHECK_LIB(krb5, main,
                                [have_krb5=yes
-                               KRB5_LIBS="-lkrb5 -lcrypto -lcom_err"],
+                               KRB5_LIBS="-lkrb5 -l$krb5crypto -lcom_err"],
                                [have_krb5=no],
-                               [-lcrypto -lcom_err])
+                               [-l$krb5crypto -lcom_err])
 
                elif test $krb5_impl = heimdal; then
                        AC_CHECK_LIB(krb5, main,
@@ -845,6 +1024,7 @@ if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
 
                        AC_DEFINE(HAVE_HEIMDAL_KERBEROS, 1,
                                [define if you have HEIMDAL Kerberos])
+
                else
                        have_krb5=no
                        AC_MSG_WARN([Unrecongized Kerberos5 Implementation])
@@ -880,7 +1060,7 @@ if test $ol_link_krb5 = yes -a \( $ol_with_kerberos = yes -o \
                if test $krb5_impl = mit; then
                        AC_CHECK_LIB(krb4, main, [have_k425=yes
                                KRB4_LIBS="-lkrb4 -ldes425"], [have_k425=no],
-                               [-ldes425 -lkrb5 -lcrypto -lcom_err])
+                               [-ldes425 -lkrb5 -l$krb5crypto -lcom_err])
 
                elif test $krb5_impl = heimdal; then
                        AC_CHECK_LIB(krb4, main, [have_k425=yes
@@ -1034,6 +1214,16 @@ elif test $ol_with_tls != no ; then
        AC_ERROR([Could not locate TLS/SSL package])
 fi
 
+dnl ----------------------------------------------------------------
+dnl LAN Manger password checking requires DES from OpenSSL
+if test $ol_enable_lmpasswd != no; then
+       if test $ol_link_tls != yes ; then
+               AC_ERROR([LAN Manager passwords require OpenSSL])
+       fi
+
+       AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
+fi
+
 dnl ----------------------------------------------------------------
 dnl Tests for reentrant functions necessary to build a
 dnl thread_safe -lldap.
@@ -1085,9 +1275,9 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
        OL_NT_THREADS
 
        if test "$ol_cv_nt_threads" = yes ; then
-       ol_link_threads=nt
-       ol_with_threads=found
-       ol_with_yielding_select=yes
+               ol_link_threads=nt
+               ol_with_threads=found
+               ol_with_yielding_select=yes
 
                AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager])
                AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log])
@@ -1390,7 +1580,7 @@ int main(argc, argv)
                        CPPFLAGS="$save_CPPFLAGS"
                        LIBS="$save_LIBS"
                else
-                       AC_MSG_ERROR([could not link with POSIX Threads])
+                       AC_MSG_ERROR([could not locate usable POSIX Threads])
                fi
        fi
 
@@ -1403,7 +1593,7 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
        -o $ol_with_threads = mach ; then
 
        dnl check for Mach CThreads
-       AC_CHECK_HEADERS(mach/cthreads.h)
+       AC_CHECK_HEADERS(mach/cthreads.h cthread.h)
        if test $ac_cv_header_mach_cthreads_h = yes ; then
                ol_with_threads=found
 
@@ -1431,18 +1621,35 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
                        fi
                fi
 
-               if test $ol_link_threads != no ; then
-                       : check for cthread specific functionality here
-                       AC_DEFINE(HAVE_MACH_CTHREADS,1,
-                               [define if you have Mach Cthreads])
+       elif test $ac_cv_header_cthreads_h = yes ; then
+               dnl Hurd variant of Mach Cthreads
+               dnl uses <cthreads.h> and -lthreads
+
+               ol_with_threads=found
+               dnl save the flags
+               save_LIBS="$LIBS"
+               LIBS="$LIBS -lthreads"
+               AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
+               LIBS="$save_LIBS"
+
+               if test $ol_link_threads = yes ; then
+                       LTHREAD_LIBS="-lthreads"
+                       ol_link_threads=mach
                else
                        AC_MSG_ERROR([could not link with Mach CThreads])
                fi
-       fi
 
-       if test $ol_with_threads = mach ; then
+       elif test $ol_with_threads = mach ; then
                AC_MSG_ERROR([could not locate Mach CThreads])
        fi
+
+       if test $ol_link_threads = mach ; then
+               AC_DEFINE(HAVE_MACH_CTHREADS,1,
+                       [define if you have Mach Cthreads])
+       elif test $ol_with_threads = found ; then
+               AC_MSG_ERROR([could not link with Mach CThreads])
+       fi
 fi
 
 if test $ol_with_threads = auto -o $ol_with_threads = yes \
@@ -1600,7 +1807,7 @@ dnl
 dnl    dnl check for reentrant/threadsafe functions
 dnl    dnl
 dnl    dnl note: these should only be used when linking
-dnl    dnl       with $LTHREAD_LIBS
+dnl    dnl             with $LTHREAD_LIBS
 dnl    dnl
 dnl    save_CPPFLAGS="$CPPFLAGS"
 dnl    save_LIBS="$LIBS"
@@ -1653,7 +1860,7 @@ if test $ol_with_ldbm_api = auto \
                        [define this if Berkeley DB is available])
 
                ol_link_ldbm=berkeley
-               ol_with_ldbm_api=db
+               ol_with_ldbm_api=berkeley
 
                if test $ol_with_ldbm_type = hash ; then
                        AC_DEFINE(LDBM_USE_DBHASH,1,
@@ -1671,6 +1878,12 @@ if test $ol_with_ldbm_api = auto \
        fi
 fi
 
+if test $ol_enable_bdb = yes -a $ol_link_ldbm != berkeley ; then
+       AC_MSG_ERROR(BerkeleyDB not availabl)
+elif test $ol_enable_bdb != no -a $ol_link_ldbm != no ; then
+       ol_enable_bdb=yes
+fi
+
 if test $ol_link_ldbm = no -a $ol_with_ldbm_type = btree ; then
        AC_MSG_WARN(Could not find LDBM with BTREE support)
        ol_with_ldbm_api=none
@@ -1726,9 +1939,10 @@ fi
 
 dnl ----------------------------------------------------------------
 if test $ol_enable_dynamic = yes -a $enable_shared = yes ; then
-       LINK_BINS_DYNAMIC="yes"
+       BUILD_LIBS_DYNAMIC=shared
+       AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
 else
-       LINK_BINS_DYNAMIC="no"
+       BUILD_LIBS_DYNAMIC=static
 fi
 
 dnl ----------------------------------------------------------------
@@ -1813,9 +2027,9 @@ if test $ol_enable_tcl != no ; then
                        AC_CHECK_LIB($lib,main,
                          [have_tcl=yes
                           if test x"$ol_with_tcl_module" = "xstatic" ; then
-                              SLAPD_LIBS="$SLAPD_LIBS -l${lib}"
+                                       SLAPD_LIBS="$SLAPD_LIBS -l${lib}"
                           else
-                              MOD_TCL_LIB="-l${lib}"
+                                       MOD_TCL_LIB="-l${lib}"
                           fi;break],[have_tcl=no])
                done
        fi
@@ -1888,7 +2102,11 @@ if test $ol_with_cyrus_sasl != no ; then
                                AC_MSG_WARN([Strong authentication not supported!])
                        fi
                fi
+
+       elif test $ol_enable_spasswd != no ; then
+               ol_link_spasswd=yes
        fi
+
 else
        AC_MSG_WARN([SASL authentication not supported!])
        if test $ol_link_tls = no ; then
@@ -1898,7 +2116,7 @@ fi
 
 dnl ----------------------------------------------------------------
 dnl Check for entropy sources
-if test $cross_compiling != yes ; then
+if test $cross_compiling != yes -a $ac_cv_mingw32 != yes ; then
        dev=no
        if test -r /dev/urandom ; then
                dev="/dev/urandom";
@@ -2001,6 +2219,23 @@ if test $ol_enable_proctitle != no ; then
        fi
 fi
 
+dnl ----------------------------------------------------------------
+dnl Check for SLPv2 Compliant API Library
+if test $ol_enable_slp != no ; then
+       AC_CHECK_HEADERS( slp.h )
+
+       if test $ac_cv_header_slp_h = yes ; then
+               AC_CHECK_LIB(slp, SLPOpen, [have_slp=yes], [have_slp=no])
+               if test $have_slp = yes ; then
+                       AC_DEFINE(HAVE_SLP, 1, [define if you have -lslp])
+                       SLAPD_SLP_LIBS=-lslp
+               fi
+
+       elif test $ol_enable_slp = yes ; then
+               AC_MSG_ERROR([SLP not found])
+       fi
+fi
+
 dnl ----------------------------------------------------------------
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_TYPE_MODE_T
@@ -2084,6 +2319,7 @@ AC_CHECK_FUNCS(           \
        chroot                  \
        endgrent                \
        endpwent                \
+       fcntl                   \
        flock                   \
        getdtablesize   \
        getgrgid                \
@@ -2099,6 +2335,7 @@ AC_CHECK_FUNCS(           \
        memcpy                  \
        memmove                 \
        mkstemp                 \
+       mktemp                  \
        pipe                    \
        read                    \
        recv                    \
@@ -2112,7 +2349,6 @@ AC_CHECK_FUNCS(           \
        sigaction               \
        signal                  \
        sigset                  \
-       snprintf                \
        strdup                  \
        strerror                \
        strpbrk                 \
@@ -2123,6 +2359,7 @@ AC_CHECK_FUNCS(           \
        strtoul                 \
        strspn                  \
        sysconf                 \
+       usleep                  \
        waitpid                 \
        wait4                   \
        write                   \
@@ -2131,14 +2368,10 @@ AC_CHECK_FUNCS(         \
 )
 
 dnl We actually may need to replace more than this.
-AC_REPLACE_FUNCS(getopt tempnam)
+AC_REPLACE_FUNCS(getopt)
 
 if test "$ac_cv_func_getopt" != yes; then
-    LIBSRCS="$LIBSRCS getopt.c"
-fi
-
-if test "$ac_cv_func_tempnam" != yes; then
-    LIBSRCS="$LIBSRCS tempnam.c"
+       LIBSRCS="$LIBSRCS getopt.c"
 fi
 
 dnl ----------------------------------------------------------------
@@ -2173,7 +2406,7 @@ fi
 if test "$ol_enable_local" != no; then
        AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
 fi
-if test "$ol_enable_ipv6" != no; then
+if test "$ol_link_ipv6" != no; then
        AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
 fi
 if test "$ol_enable_cleartext" != no ; then
@@ -2188,9 +2421,9 @@ fi
 if test "$ol_link_spasswd" != no ; then
        AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
 fi
-if test "$ol_enable_multimaster" != no ; then
-       AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
-fi
+dnl if test "$ol_enable_multimaster" != no ; then
+dnl    AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
+dnl fi
 if test "$ol_enable_phonetic" != no ; then
        AC_DEFINE(SLAPD_PHONETIC,1,[define to support phonetic])
 fi
@@ -2207,6 +2440,22 @@ if test "$ol_link_modules" != no ; then
        SLAPD_MODULES_LDFLAGS="-dlopen self"
 fi
 
+if test "$ol_enable_bdb" != no ; then
+       AC_DEFINE(SLAPD_BDB,1,[define to support BDB backend])
+       BUILD_SLAPD=yes
+       BUILD_BDB=yes
+       if test "$ol_with_bdb_module" != static ; then
+               AC_DEFINE(SLAPD_BDB_DYNAMIC,1,
+                       [define to support dynamic BDB backend])
+               BUILD_BDB=mod
+               BUILD_BDB_DYNAMIC=shared
+               SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-bdb/back_bdb.la"
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
+       fi
+fi
+
 if test "$ol_link_dnssrv" != no ; then
        AC_DEFINE(SLAPD_DNSSRV,1,[define to support DNS SRV backend])
        BUILD_SLAPD=yes
@@ -2217,6 +2466,9 @@ if test "$ol_link_dnssrv" != no ; then
                BUILD_DNSSRV=mod
                BUILD_DNSSRV_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-dnssrv/back_dnssrv.la"
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
        fi
 fi
 
@@ -2230,19 +2482,64 @@ if test "$ol_enable_ldap" != no ; then
                BUILD_LDAP=mod
                BUILD_LDAP_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-ldap/back_ldap.la"
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
        fi
 fi
 
-if test "$ol_link_ldbm" != no ; then
+if test "$ol_link_ldbm" != no -a $ol_enable_ldbm != no; then
        AC_DEFINE(SLAPD_LDBM,1,[define to support LDBM backend])
        BUILD_SLAPD=yes
        BUILD_LDBM=yes
+       LDBM_LIB="-lldbm"
        if test "$ol_with_ldbm_module" != static ; then
                AC_DEFINE(SLAPD_LDBM_DYNAMIC,1,
                        [define to support dynamic LDBM backend])
                BUILD_LDBM=mod
                BUILD_LDBM_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-ldbm/back_ldbm.la"
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldbm"
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldbm"
+       fi
+fi
+
+if test "$ol_enable_meta" != no ; then
+       if test "$ol_enable_ldap" = no ; then
+               AC_MSG_ERROR([need --enable-ldap to use --enable-meta])
+       fi
+       if test "$ol_enable_rewrite" = no ; then
+               AC_MSG_ERROR([need --enable-rewrite to use --enable-meta])
+       fi
+       AC_DEFINE(SLAPD_META,1,[define to support LDAP Metadirectory backend])
+       BUILD_SLAPD=yes
+       BUILD_META=yes
+       if test "$ol_with_meta_module" != static ; then
+               AC_DEFINE(SLAPD_META_DYNAMIC,1,
+                       [define to support dynamic LDAP Metadirectory backend])
+               BUILD_META=mod
+               BUILD_META_DYNAMIC=shared
+               SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-meta/back_meta.la"
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
+       fi
+fi
+
+if test "$ol_enable_monitor" != no ; then
+       AC_DEFINE(SLAPD_MONITOR,1,[define to support cn=Monitor backend])
+       BUILD_SLAPD=yes
+       BUILD_MONITOR=yes
+       if test "$ol_with_monitor_module" != static ; then
+               AC_DEFINE(SLAPD_MONITOR_DYNAMIC,1,
+                       [define to support dynamic cn=Monitor backend])
+               BUILD_MONITOR=mod
+               BUILD_MONITOR_DYNAMIC=shared
+               SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-monitor/back_monitor.la"
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
        fi
 fi
 
@@ -2256,6 +2553,9 @@ if test "$ol_enable_passwd" != no ; then
                BUILD_PASSWD=mod
                BUILD_PASSWD_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-passwd/back_passwd.la"
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
        fi
 fi
 
@@ -2269,6 +2569,9 @@ if test "$ol_link_perl" != no ; then
                BUILD_PERL=mod
                BUILD_PERL_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-perl/back_perl.la"
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
        fi
 fi
 
@@ -2282,6 +2585,9 @@ if test "$ol_enable_shell" != no ; then
                BUILD_SHELL=mod
                BUILD_SHELL_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-shell/back_shell.la"
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
        fi
 fi
 
@@ -2295,6 +2601,9 @@ if test "$ol_enable_tcl" != no ; then
                BUILD_TCL=mod
                BUILD_TCL_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-tcl/back_tcl.la"
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-tcl"
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-tcl"
        fi
 fi
 
@@ -2308,6 +2617,9 @@ if test "$ol_link_sql" != no ; then
                BUILD_SQL=mod
                BUILD_SQL_DYNAMIC=shared
                SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-sql/back_sql.la"
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
        fi
 fi
 
@@ -2316,43 +2628,49 @@ if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \
        BUILD_SLURPD=yes
 fi
 
+if test "$ol_enable_rewrite" != no ; then
+       AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta])
+       BUILD_REWRITE=yes
+       SLAPD_LIBS="$SLAPD_LIBS -lrewrite"
+fi
+
 dnl ----------------------------------------------------------------
 
-if test "$LINK_BINS_DYNAMIC" = yes; then
-    LIB_LINKAGE=DYN
-    LT_LIB_LINKAGE=shared
-else
-    LIB_LINKAGE=STAT
-    LT_LIB_LINKAGE=static
-fi
+dnl
+dnl For Windows build, we don't want to include -dlopen flags.
+dnl They hurt more than they help.
+dnl
 
 if test "$ac_cv_mingw32" = yes ; then
-    PLAT=NT
-    DYN_EXT=dll
+       PLAT=NT
+       SLAPD_MODULES_LDFLAGS=
+       SLAPD_MODULES_LIST=
 else
-    PLAT=UNIX
-    DYN_EXT=so
+       PLAT=UNIX
 fi
 
 AC_SUBST(LIBSRCS)
-
 AC_SUBST(PLAT)
-AC_SUBST(LIB_LINKAGE)
-AC_SUBST(LT_LIB_LINKAGE)
-AC_SUBST(DYN_EXT)
+AC_SUBST(BUILD_LIBS_DYNAMIC)
 
 AC_SUBST(BUILD_SLAPD)
+  AC_SUBST(BUILD_BDB)
   AC_SUBST(BUILD_DNSSRV)
   AC_SUBST(BUILD_LDAP)
   AC_SUBST(BUILD_LDBM)
+  AC_SUBST(BUILD_META)
+  AC_SUBST(BUILD_MONITOR)
   AC_SUBST(BUILD_PASSWD)
   AC_SUBST(BUILD_PERL)
   AC_SUBST(BUILD_SHELL)
   AC_SUBST(BUILD_SQL)
   AC_SUBST(BUILD_TCL)
+  AC_SUBST(BUILD_BDB_DYNAMIC)
   AC_SUBST(BUILD_DNSSRV_DYNAMIC)
   AC_SUBST(BUILD_LDAP_DYNAMIC)
   AC_SUBST(BUILD_LDBM_DYNAMIC)
+  AC_SUBST(BUILD_META_DYNAMIC)
+  AC_SUBST(BUILD_MONITOR_DYNAMIC)
   AC_SUBST(BUILD_PASSWD_DYNAMIC)
   AC_SUBST(BUILD_PERL_DYNAMIC)
   AC_SUBST(BUILD_SHELL_DYNAMIC)
@@ -2360,6 +2678,8 @@ AC_SUBST(BUILD_SLAPD)
   AC_SUBST(BUILD_TCL_DYNAMIC)
 AC_SUBST(BUILD_SLURPD)
 
+AC_SUBST(LDBM_LIB)
+
 AC_SUBST(LDAP_LIBS)
 AC_SUBST(LDIF_LIBS)
 AC_SUBST(SLAPD_LIBS)
@@ -2369,12 +2689,14 @@ AC_SUBST(LTHREAD_LIBS)
 AC_SUBST(LUTIL_LIBS)
 AC_SUBST(WRAP_LIBS)
 AC_SUBST(MOD_TCL_LIB)
-AC_SUBST(LINK_BINS_DYNAMIC)
 
 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
 AC_SUBST(SLAPD_MODULES_LDFLAGS)
 AC_SUBST(SLAPD_MODULES_LIST)
 
+AC_SUBST(SLAPD_STATIC_BACKENDS)
+AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
+
 AC_SUBST(PERL_CPPFLAGS)
 AC_SUBST(SLAPD_PERL_LDFLAGS)
 AC_SUBST(MOD_PERL_LDFLAGS)
@@ -2388,6 +2710,8 @@ AC_SUBST(TLS_LIBS)
 AC_SUBST(MODULES_LIBS)
 AC_SUBST(AUTH_LIBS)
 
+AC_SUBST(SLAPD_SLP_LIBS)
+
 AC_SUBST(SLAPD_SQL_LDFLAGS)
 AC_SUBST(SLAPD_SQL_LIBS)
 AC_SUBST(SLAPD_SQL_INCLUDES)
@@ -2406,10 +2730,7 @@ doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk \
 doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk \
 clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk \
 clients/finger/Makefile:build/top.mk:clients/finger/Makefile.in:build/rules.mk \
-clients/fax500/Makefile:build/top.mk:clients/fax500/Makefile.in:build/rules.mk \
-clients/gopher/Makefile:build/top.mk:clients/gopher/Makefile.in:build/rules.mk \
 clients/mail500/Makefile:build/top.mk:clients/mail500/Makefile.in:build/rules.mk \
-clients/rcpt500/Makefile:build/top.mk:clients/rcpt500/Makefile.in:build/rules.mk \
 clients/ud/Makefile:build/top.mk:clients/ud/Makefile.in:build/rules.mk \
 clients/maildap/Makefile:build/top.mk:clients/maildap/Makefile.in:build/rules.mk \
 clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk \
@@ -2423,11 +2744,15 @@ libraries/libldbm/Makefile:build/top.mk:libraries/libldbm/Makefile.in:build/lib.
 libraries/libldif/Makefile:build/top.mk:libraries/libldif/Makefile.in:build/lib.mk:build/lib-static.mk \
 libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk \
 libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk       \
+libraries/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-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk \
 servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/mod.mk \
+servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk \
+servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk \
 servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk \
 servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk \
 servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk \
@@ -2438,9 +2763,6 @@ servers/slapd/tools/Makefile:build/top.mk:servers/slapd/tools/Makefile.in \
 servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk \
 tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk \
 tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk \
-contrib/Makefile:build/top.mk:contrib/Makefile.in:build/dir.mk \
-contrib/saucer/Makefile:build/top.mk:contrib/saucer/Makefile.in:build/rules.mk \
-contrib/web_ldap/Makefile:build/top.mk:contrib/web_ldap/Makefile.in:build/rules.mk \
 ,[
 date > stamp-h
 echo Please \"make depend\" to build dependencies