]> git.sur5r.net Git - openldap/blobdiff - configure.in
* configure.in: add tcl8.2 to list of tcl libs to search for, also added new MOD_TCL_LIB
[openldap] / configure.in
index 7c90f2453a982bb3ffef1dfeb84241f942e6852d..d496304bb933f54ae493f0f1d94787ce2c083e6a 100644 (file)
@@ -1,3 +1,4 @@
+dnl $OpenLDAP$
 dnl
 dnl Copyright 1998,1999 The OpenLDAP Foundation.  All Rights Reserved.
 dnl 
 dnl
 dnl Copyright 1998,1999 The OpenLDAP Foundation.  All Rights Reserved.
 dnl 
@@ -6,11 +7,29 @@ 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
 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
-
+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$], $")] [
+
+# Copyright 1998,1999 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.
+
+echo "Copyright 1998-1999 The OpenLDAP Foundation,  All Rights Reserved."
+echo "Copying restrictions apply, see COPYRIGHT file."
+])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 Configure.in for OpenLDAP
 AC_INIT(build/version)dnl
 AC_CONFIG_AUX_DIR(build)dnl
 dnl Configure.in for OpenLDAP
 AC_INIT(build/version)dnl
 AC_CONFIG_AUX_DIR(build)dnl
@@ -20,7 +39,8 @@ if test -z "$OL_VERSION"; then
        AC_MSG_ERROR([could not determine version])
 fi
 
        AC_MSG_ERROR([could not determine version])
 fi
 
-dnl ----------------------------------------------------------------
+echo "Configuring OpenLDAP $OL_VERSION ..."
+
 dnl Determine host platform
 dnl            we try not to use this for much
 AC_CANONICAL_SYSTEM
 dnl Determine host platform
 dnl            we try not to use this for much
 AC_CANONICAL_SYSTEM
@@ -38,7 +58,7 @@ AC_PREREQ(2.13)dnl Required Autoconf version
 
 AC_CONFIG_HEADER(include/portable.h include/ldap_features.h include/lber_types.h)dnl
 
 
 AC_CONFIG_HEADER(include/portable.h include/ldap_features.h include/lber_types.h)dnl
 
-dnl ----------------------------------------------------------------
+dnl ================================================================
 dnl Start Args
 AC_MSG_CHECKING(configure arguments)
 AC_PREFIX_DEFAULT(/usr/local)
 dnl Start Args
 AC_MSG_CHECKING(configure arguments)
 AC_PREFIX_DEFAULT(/usr/local)
@@ -46,55 +66,69 @@ AC_PREFIX_DEFAULT(/usr/local)
 top_builddir=`pwd`
 AC_SUBST(top_builddir)dnl
 
 top_builddir=`pwd`
 AC_SUBST(top_builddir)dnl
 
-ldap_subdir="openldap"
-
-AC_ARG_WITH(subdir, [  --with-subdir=DIR change default subdirectory used for installs], [
-       if test "$withval" = "no"; then
-               ldap_subdir=""
-       elif test "$withval" != "yes"; then
+dnl ----------------------------------------------------------------
+dnl --with-subdir
+ldap_subdir="/openldap"
+
+AC_ARG_WITH(subdir,
+[  --with-subdir=DIR change default subdirectory used for installs],
+[case "$withval" in
+       no) ldap_subdir=""
+               ;;
+       yes)
+               ;;
+       /*|\\*)
                ldap_subdir="$withval"
                ldap_subdir="$withval"
-       fi
+               ;;
+       *)
+               ldap_subdir="/$withval"
+               ;;
+esac
 ])dnl
 
 AC_SUBST(ldap_subdir)dnl
 
 ])dnl
 
 AC_SUBST(ldap_subdir)dnl
 
+dnl ----------------------------------------------------------------
+dnl General "enable" options
 OL_ARG_ENABLE(debug,[  --enable-debug  enable debugging], yes)dnl
 OL_ARG_ENABLE(debug,[  --enable-debug  enable debugging], yes)dnl
-dnl ol_enable_syslog=no
 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(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(dns,[  --enable-dns              enable V2 DNS  extension], no)dnl
+OL_ARG_ENABLE(dns,[  --enable-dns              enable V2 DX Referrals extension], no)dnl
 OL_ARG_ENABLE(referrals,[  --enable-referrals  enable V2 Referrals extension], yes)dnl
 OL_ARG_ENABLE(cldap,[  --enable-cldap  enable connectionless ldap], no)dnl
 OL_ARG_ENABLE(x_compile,[  --enable-x-compile  enable cross compiling],
        no, [yes no])dnl
 
 OL_ARG_ENABLE(referrals,[  --enable-referrals  enable V2 Referrals extension], yes)dnl
 OL_ARG_ENABLE(cldap,[  --enable-cldap  enable connectionless ldap], no)dnl
 OL_ARG_ENABLE(x_compile,[  --enable-x-compile  enable cross compiling],
        no, [yes no])dnl
 
+dnl ----------------------------------------------------------------
 dnl General "with" options
 OL_ARG_ENABLE(dmalloc,[  --enable-dmalloc      enable debug malloc support], no)dnl
 
 dnl General "with" options
 OL_ARG_ENABLE(dmalloc,[  --enable-dmalloc      enable debug malloc support], no)dnl
 
-OL_ARG_WITH(cyrus_sasl,[  --with-cyrus-sasl  with Cyrus SASL support],
+OL_ARG_WITH(cyrus_sasl,[  --with-cyrus-sasl    with Cyrus SASL support],
        auto, [auto yes no] )
        auto, [auto yes no] )
-OL_ARG_WITH(fetch,[  --with-fetch  with fetch URL support],
+OL_ARG_WITH(fetch,[  --with-fetch              with fetch URL support],
        auto, [auto yes no] )
 OL_ARG_WITH(kerberos,[  --with-kerberos        with Kerberos support],
        auto, [auto k5 k4 afs yes no])
        auto, [auto yes no] )
 OL_ARG_WITH(kerberos,[  --with-kerberos        with Kerberos support],
        auto, [auto k5 k4 afs yes no])
-OL_ARG_WITH(readline,[  --with-readline  with readline support],
+OL_ARG_WITH(readline,[  --with-readline        with readline support],
        auto, [auto yes no] )
 OL_ARG_WITH(threads,[  --with-threads  use threads],
        auto, [auto yes no] )
 OL_ARG_WITH(threads,[  --with-threads  use threads],
-       auto, [auto posix mach lwp yes no manual] )
-OL_ARG_WITH(tls,[  --with-tls  with TLS/SSL support],
+       auto, [auto 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 yes no manual] )
 
        auto, [auto ssleay openssl yes no] )
 OL_ARG_WITH(yielding_select,[  --with-yielding-select  with implicitly yielding select],
        auto, [auto yes no manual] )
 
+dnl ----------------------------------------------------------------
 dnl Server options
 dnl Server options
-
+dnl ----------------------------------------------------------------
 dnl LDAPD OPTIONS
 dnl LDAPD OPTIONS
-AC_ARG_WITH(xxldapdoptions,[LDAPD Options:])
+AC_ARG_WITH(xxldapdoptions,[LDAPD (X.500-to-LDAP Gateway) Options:])
 OL_ARG_ENABLE(ldapd,[  --enable-ldapd  enable building ldapd], no)dnl
 
 OL_ARG_ENABLE(ldapd,[  --enable-ldapd  enable building ldapd], no)dnl
 
+dnl ----------------------------------------------------------------
 dnl SLAPD OPTIONS
 dnl SLAPD OPTIONS
-AC_ARG_WITH(xxslapdoptions,[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(cleartext,[    --enable-cleartext        enable cleartext passwords], yes)dnl
 OL_ARG_ENABLE(crypt,[    --enable-crypt        enable crypt(3) passwords], auto)dnl
 OL_ARG_ENABLE(slapd,[  --enable-slapd  enable building slapd], yes)dnl
 OL_ARG_ENABLE(cleartext,[    --enable-cleartext        enable cleartext passwords], yes)dnl
 OL_ARG_ENABLE(crypt,[    --enable-crypt        enable crypt(3) passwords], auto)dnl
@@ -103,6 +137,8 @@ OL_ARG_ENABLE(multimaster,[    --enable-multimaster enable multimaster replicati
 OL_ARG_ENABLE(phonetic,[    --enable-phonetic  enable phonetic/soundex], no)dnl
 OL_ARG_ENABLE(quipu,[    --enable-quipu        build quipu migration tools], no)dnl
 OL_ARG_ENABLE(rlookups,[    --enable-rlookups  enable reverse lookups], auto)dnl
 OL_ARG_ENABLE(phonetic,[    --enable-phonetic  enable phonetic/soundex], no)dnl
 OL_ARG_ENABLE(quipu,[    --enable-quipu        build quipu migration tools], 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(discreteaci,[    --enable-discreteaci    enable discrete rights in ACIs], no)dnl
 OL_ARG_ENABLE(wrappers,[    --enable-wrappers  enable tcp wrapper support], no)dnl
 
 dnl SLAPD Backend options
 OL_ARG_ENABLE(wrappers,[    --enable-wrappers  enable tcp wrapper support], no)dnl
 
 dnl SLAPD Backend options
@@ -113,10 +149,10 @@ OL_ARG_ENABLE(ldap,[    --enable-ldap     enable ldap backend], no)dnl
 OL_ARG_WITH(ldap_module,[      --with-ldap-module      module type], static,
        [static dynamic])
 OL_ARG_ENABLE(ldbm,[    --enable-ldbm  enable ldbm backend], yes)dnl
 OL_ARG_WITH(ldap_module,[      --with-ldap-module      module type], static,
        [static dynamic])
 OL_ARG_ENABLE(ldbm,[    --enable-ldbm  enable ldbm backend], yes)dnl
-OL_ARG_WITH(ldbm_module,[      --with-ldbm-module      module type], static,
-       [static dynamic])
 OL_ARG_WITH(ldbm_api,[      --with-ldbm-api    use LDBM API], auto,
        [auto db2 db mdbm gdbm ndbm manual])
 OL_ARG_WITH(ldbm_api,[      --with-ldbm-api    use LDBM API], auto,
        [auto db2 db mdbm gdbm ndbm manual])
+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_WITH(ldbm_type,[      --with-ldbm-type  use LDBM type], auto,
        [auto btree hash])
 
@@ -133,15 +169,19 @@ OL_ARG_ENABLE(tcl,[    --enable-tcl       enable tcl backend], no)dnl
 OL_ARG_WITH(tcl_module,[      --with-tcl-module        module type], static,
        [static dynamic])
 
 OL_ARG_WITH(tcl_module,[      --with-tcl-module        module type], static,
        [static dynamic])
 
+dnl ----------------------------------------------------------------
 dnl SLURPD OPTIONS
 dnl SLURPD OPTIONS
-AC_ARG_WITH(xxslurpdoptions,[SLURPD Options:])
+AC_ARG_WITH(xxslurpdoptions,[SLURPD (Replication Daemon) Options:])
 OL_ARG_ENABLE(slurpd,[  --enable-slurpd        enable building slurpd], auto)dnl
 
 OL_ARG_ENABLE(slurpd,[  --enable-slurpd        enable building slurpd], auto)dnl
 
+dnl ----------------------------------------------------------------
 AC_ARG_WITH(xxliboptions,[Library Generation & Linking Options])
 AC_ENABLE_STATIC
 dnl AC_DISABLE_SHARED
 AC_ENABLE_SHARED
 
 AC_ARG_WITH(xxliboptions,[Library Generation & Linking Options])
 AC_ENABLE_STATIC
 dnl AC_DISABLE_SHARED
 AC_ENABLE_SHARED
 
+dnl ----------------------------------------------------------------
+
 dnl General "enable" options
 # validate options
 if test $ol_enable_dns = yes ; then
 dnl General "enable" options
 # validate options
 if test $ol_enable_dns = yes ; then
@@ -195,6 +235,12 @@ if test $ol_enable_slapd = no ; then
        if test $ol_enable_rlookups = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
        fi
        if test $ol_enable_rlookups = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
        fi
+       if test $ol_enable_aci = yes ; then
+               AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
+       fi
+       if test $ol_enable_discreteaci = yes ; then
+               AC_MSG_WARN([slapd disabled, ignoring --enable-discreteaci 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_api != auto ; then
                AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-api argument])
        fi
@@ -240,6 +286,8 @@ if test $ol_enable_slapd = no ; then
        ol_enable_phonetic=no
        ol_enable_quipu=no
        ol_enable_rlookups=no
        ol_enable_phonetic=no
        ol_enable_quipu=no
        ol_enable_rlookups=no
+       ol_enable_aci=no
+       ol_enable_discreteaci=no
        ol_enable_wrappers=no
 
        ol_with_ldbm_api=no
        ol_enable_wrappers=no
 
        ol_with_ldbm_api=no
@@ -331,7 +379,8 @@ fi
 
 AC_MSG_RESULT(done)
 
 
 AC_MSG_RESULT(done)
 
-## Initialize vars
+dnl ----------------------------------------------------------------
+dnl Initialize vars
 LDAP_LIBS=
 LDIF_LIBS=
 LDBM_LIBS=
 LDAP_LIBS=
 LDIF_LIBS=
 LDBM_LIBS=
@@ -356,33 +405,38 @@ BUILD_SHELL=no
 BUILD_TCL=no
 BUILD_THREAD=no
 
 BUILD_TCL=no
 BUILD_THREAD=no
 
-BUILD_BDB2_DYNAMIC=no
-BUILD_LDAP_DYNAMIC=no
-BUILD_LDBM_DYNAMIC=no
-BUILD_PASSWD_DYNAMIC=no
-BUILD_PERL_DYNAMIC=no
-BUILD_SHELL_DYNAMIC=no
-BUILD_TCL_DYNAMIC=no
+BUILD_BDB2_DYNAMIC=static
+BUILD_LDAP_DYNAMIC=static
+BUILD_LDBM_DYNAMIC=static
+BUILD_PASSWD_DYNAMIC=static
+BUILD_PERL_DYNAMIC=static
+BUILD_SHELL_DYNAMIC=static
+BUILD_TCL_DYNAMIC=static
 
 SLAPD_MODULES_LDFLAGS=
 SLAPD_MODULES_CPPFLAGS=
 
 SLAPD_MODULES_LDFLAGS=
 SLAPD_MODULES_CPPFLAGS=
+SLAPD_MODULES_LIST=
 
 SLAPD_PERL_LDFLAGS=
 
 SLAPD_PERL_LDFLAGS=
-SLAPD_PERL_CPPFLAGS=
+MOD_PERL_LDFLAGS=
+PERL_CPPFLAGS=
 
 
+MOD_TCL_LIB=
 KRB_LIBS=
 READLINE_LIBS=
 KRB_LIBS=
 READLINE_LIBS=
+SASL_LIBS=
 TERMCAP_LIBS=
 TLS_LIBS=
 TERMCAP_LIBS=
 TLS_LIBS=
+MODULES_LIBS=
 
 
-dnl ----------------------------------------------------------------
+dnl ================================================================
 dnl Checks for programs
 
 dnl AC_PROG_INSTALL
 
 AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
 
 dnl Checks for programs
 
 dnl AC_PROG_INSTALL
 
 AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
 
-
+dnl ----------------------------------------------------------------
 dnl
 dnl Determine which C translator to use
 dnl
 dnl
 dnl Determine which C translator to use
 dnl
@@ -436,8 +490,8 @@ dnl The default CFLAGS is empty NOT whatever AC_PROG_CC sets.
 dnl (for now, let autoconf sort this out)
 dnl CFLAGS=${CFLAGS-""}
 
 dnl (for now, let autoconf sort this out)
 dnl CFLAGS=${CFLAGS-""}
 
+AC_LIBTOOL_DLOPEN
 AC_PROG_LIBTOOL
 AC_PROG_LIBTOOL
-dnl AC_PROG_MAKE_SET
 
 AC_PROG_AWK
 OL_PROG_LN_H
 
 AC_PROG_AWK
 OL_PROG_LN_H
@@ -452,6 +506,8 @@ AC_PATH_PROG(SENDMAIL, sendmail, /usr/lib/sendmail,
 AC_PATH_PROG(EDITOR, vi, /usr/ucb/vi, $PATH:/usr/ucb)
 AC_PATH_PROG(FINGER, finger, /usr/ucb/finger, $PATH:/usr/ucb)
 
 AC_PATH_PROG(EDITOR, vi, /usr/ucb/vi, $PATH:/usr/ucb)
 AC_PATH_PROG(FINGER, finger, /usr/ucb/finger, $PATH:/usr/ucb)
 
+dnl ----------------------------------------------------------------
+dnl Perl
 ol_link_perl=no
 if test $ol_enable_perl != no ; then
        AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)
 ol_link_perl=no
 if test $ol_enable_perl != no ; then
        AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)
@@ -462,9 +518,12 @@ if test $ol_enable_perl != no ; then
                fi
 
        else
                fi
 
        else
-               SLAPD_PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e s/-lc//`"
-               SLAPD_PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
-
+               PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
+               if test x"$ol_with_perl_module" == "xstatic" ; then
+                       SLAPD_PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e s/-lc//`"
+               else
+                       MOD_PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e s/-lc//`"
+               fi
                dnl should check perl version
                ol_link_perl=yes
        fi
                dnl should check perl version
                ol_link_perl=yes
        fi
@@ -472,6 +531,8 @@ fi
 
 AC_PROG_CPP
 
 
 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.])
 
 if test $cross_compiling = yes -a $ol_enable_x_compile = yes; then
        AC_MSG_WARN([cross compiling....  some functionality will be removed.])
 
@@ -484,11 +545,13 @@ elif test $cross_compiling = yes -a $ol_enable_x_compile = no; then
        AC_MSG_ERROR([  if cross compiling,  add --enable-x-compile.])
 fi
 
        AC_MSG_ERROR([  if cross compiling,  add --enable-x-compile.])
 fi
 
+dnl ----------------------------------------------------------------
 dnl Checks for UNIX Variants
 AC_AIX
 AC_ISC_POSIX
 AC_MINIX
 
 dnl Checks for UNIX Variants
 AC_AIX
 AC_ISC_POSIX
 AC_MINIX
 
+dnl ----------------------------------------------------------------
 dnl Checks for system services
 AC_CYGWIN
 AC_MINGW32
 dnl Checks for system services
 AC_CYGWIN
 AC_MINGW32
@@ -497,15 +560,18 @@ AC_OBJEXT
 
 AC_DEFINE_UNQUOTED( EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
 
 
 AC_DEFINE_UNQUOTED( EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
 
+dnl ----------------------------------------------------------------
 dnl BeOS requires -lbe -lroot -lnet
 AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])
 
 dnl BeOS requires -lbe -lroot -lnet
 AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])
 
+dnl ----------------------------------------------------------------
 dnl OpenLDAP requires STDC features
 AM_PROG_CC_STDC
 if test "X${am_cv_prog_cc_stdc}" = "Xno" ; then
        AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
 fi
 
 dnl OpenLDAP requires STDC features
 AM_PROG_CC_STDC
 if test "X${am_cv_prog_cc_stdc}" = "Xno" ; then
        AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
 fi
 
+dnl ----------------------------------------------------------------
 dnl Check cc depend flags
 OL_MKDEPEND
 if test "${ol_cv_mkdep}" = no ; then
 dnl Check cc depend flags
 OL_MKDEPEND
 if test "${ol_cv_mkdep}" = no ; then
@@ -513,26 +579,22 @@ if test "${ol_cv_mkdep}" = no ; then
        AC_MSG_WARN([do not know how to generate dependencies])
 fi
 
        AC_MSG_WARN([do not know how to generate dependencies])
 fi
 
-dnl
+dnl ----------------------------------------------------------------
 dnl Check for module support
 dnl Check for module support
-dnl
 ol_link_modules=no
 if test $ol_enable_modules != no ; then
 ol_link_modules=no
 if test $ol_enable_modules != no ; then
-       AC_PATH_PROG(GLIBCONFIG, glib-config)
-
-       if test "no$GLIBCONFIG" = "no" ; then
-               if test $ol_enable_modules = yes ; then
-                       AC_MSG_ERROR([could not locate glib-config])
-               fi
+       AC_CHECK_HEADERS(ltdl.h)
 
 
-       else
-               SLAPD_MODULES_VERSION="`$GLIBCONFIG --version gmodule`"
-               SLAPD_MODULES_CPPFLAGS="`$GLIBCONFIG --cflags gmodule`"
-               SLAPD_MODULES_LDFLAGS="`$GLIBCONFIG --libs gmodule`"
+       if test $ac_cv_header_ltdl_h = no ; then
+               AC_MSG_ERROR([could not locate libtool ltdl.h])
+       fi
 
 
-               dnl should check glib version
-               ol_link_modules=yes
+       AC_CHECK_LIB(ltdl, lt_dlinit)
+       if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then
+               AC_MSG_ERROR([could not locate libtool -lltdl])
        fi
        fi
+       ol_link_modules=yes
+
 else
        ol_with_bdb2_module=static
        ol_with_ldap_module=static
 else
        ol_with_bdb2_module=static
        ol_with_ldap_module=static
@@ -580,7 +642,6 @@ AC_CHECK_HEADERS(   \
        resolv.h                \
        sgtty.h                 \
        shadow.h                \
        resolv.h                \
        sgtty.h                 \
        shadow.h                \
-       stdarg.h                \
        stddef.h                \
        string.h                \
        strings.h               \
        stddef.h                \
        string.h                \
        strings.h               \
@@ -604,15 +665,16 @@ AC_CHECK_HEADERS( \
 dnl ----------------------------------------------------------------
 dnl Checks for libraries
 
 dnl ----------------------------------------------------------------
 dnl Checks for libraries
 
+dnl HP-UX requires -lV3
+AC_CHECK_LIB(V3, sigset)
+
 dnl Find socket()
 dnl Likely combinations:
 dnl            -lsocket [ -lnsl_s | -lnsl ]
 dnl            -linet
 
 AC_CHECK_FUNC(socket, :, [     
 dnl Find socket()
 dnl Likely combinations:
 dnl            -lsocket [ -lnsl_s | -lnsl ]
 dnl            -linet
 
 AC_CHECK_FUNC(socket, :, [     
-dnl
 dnl hopefully we won't include too many libraries
 dnl hopefully we won't include too many libraries
-dnl
        AC_CHECK_LIB(socket, main)
        AC_CHECK_LIB(net, main)
        AC_CHECK_LIB(net, socket)
        AC_CHECK_LIB(socket, main)
        AC_CHECK_LIB(net, main)
        AC_CHECK_LIB(net, socket)
@@ -622,14 +684,20 @@ dnl
        AC_CHECK_LIB(gen, main)
 ])
 
        AC_CHECK_LIB(gen, main)
 ])
 
+dnl require select
 AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
 AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
+dnl AC_CHECK_FUNCS(socketpair)
 
 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
 
+dnl check to see if system call automatically restart
+dnl AC_SYS_RESTARTABLE_SYSCALLS
 
 
+dnl ----------------------------------------------------------------
+dnl require POSIX regex
 AC_CHECK_HEADERS( regex.h )
 if test "$ac_cv_header_regex_h" != yes ; then
        AC_MSG_ERROR([POSIX regex.h required.])
 AC_CHECK_HEADERS( regex.h )
 if test "$ac_cv_header_regex_h" != yes ; then
        AC_MSG_ERROR([POSIX regex.h required.])
@@ -641,40 +709,36 @@ if test "$ol_cv_c_posix_regex" = no ; then
        AC_MSG_ERROR([broken POSIX regex!])
 fi
 
        AC_MSG_ERROR([broken POSIX regex!])
 fi
 
+dnl ----------------------------------------------------------------
+dnl Check for resolver routines
+AC_CHECK_FUNC(res_search,:)
+if test $ac_cv_func_res_search = no ; then 
+       AC_CHECK_LIB(bind, res_search)
+       ac_cv_func_res_search=$ac_cv_lib_bind_res_search
+fi
 
 
-dnl HP-UX requires -lV3
-AC_CHECK_LIB(V3, sigset)
-
+if test $ac_cv_func_res_search = no ; then 
+       AC_CHECK_LIB(bind, __res_search)
+       ac_cv_func_res_search=$ac_cv_lib_bind___res_search
+fi
 
 
-# find res_search
-if test $ol_enable_dns != no ; then
-       dnl Check for resolver routines
-       AC_CHECK_FUNC(res_search,:)
-       if test $ac_cv_func_res_search = no ; then 
-               AC_CHECK_LIB(bind, res_search)
-               ac_cv_func_res_search=$ac_cv_lib_bind_res_search
-       fi
-       if test $ac_cv_func_res_search = no ; then 
-               AC_CHECK_LIB(bind, __res_search)
-               ac_cv_func_res_search=$ac_cv_lib_bind___res_search
-       fi
-       if test $ac_cv_func_res_search = no ; then 
-               AC_CHECK_LIB(resolv, res_search)
-               ac_cv_func_res_search=$ac_cv_lib_resolv_res_search
-       fi
+if test $ac_cv_func_res_search = no ; then 
+       AC_CHECK_LIB(resolv, res_search)
+       ac_cv_func_res_search=$ac_cv_lib_resolv_res_search
+fi
 
 
-       if test "$ac_cv_func_res_search" = yes ; then
-               AC_DEFINE(HAVE_RES_SEARCH,1,
-                       [define if you have res_search()])
-       elif test $ol_enable_dns = yes ; then
-               AC_MSG_ERROR([--enable-dns requires res_search])
-       else
-               AC_MSG_WARN([no res_search, disabling DNS support])
-       fi
+if test "$ac_cv_func_res_search" = yes ; then
+       AC_DEFINE(HAVE_RES_SEARCH,1,
+               [define if you have res_search()])
+elif test $ol_enable_dns = yes ; then
+       AC_MSG_ERROR([--enable-dns requires res_search])
+elif test $ol_enable_dns != no ; then
+       AC_MSG_WARN([no res_search, disabling DNS support])
 fi
 
 
 fi
 
 
-# ISODE tests
+dnl ----------------------------------------------------------------
+dnl ISODE tests
 ol_link_isode=no
 if test $ol_enable_ldapd != no ; then
        AC_MSG_WARN([ldapd is not supported and may suffer from bit rot.])
 ol_link_isode=no
 if test $ol_enable_ldapd != no ; then
        AC_MSG_WARN([ldapd is not supported and may suffer from bit rot.])
@@ -706,6 +770,8 @@ if test $ol_link_isode != no; then
        AC_PATH_PROG(PEPSY, pepsy)
 fi
 
        AC_PATH_PROG(PEPSY, pepsy)
 fi
 
+dnl ----------------------------------------------------------------
+dnl QUIPU
 if test $ol_enable_quipu != no ; then
        AC_CHECK_HEADERS(quipu/commonarg.h)
 
 if test $ol_enable_quipu != no ; then
        AC_CHECK_HEADERS(quipu/commonarg.h)
 
@@ -718,9 +784,8 @@ if test $ol_enable_quipu != no ; then
        fi
 fi
 
        fi
 fi
 
-dnl
-dnl check for kerberos
-dnl
+dnl ----------------------------------------------------------------
+dnl Kerberos
 ol_link_kerberos=no
 
 if test $ol_with_kerberos = auto -o $ol_with_kerberos = k5 ; then
 ol_link_kerberos=no
 
 if test $ol_with_kerberos = auto -o $ol_with_kerberos = k5 ; then
@@ -783,9 +848,8 @@ if test $ol_link_kerberos = yes ; then
        AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
 fi
 
        AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
 fi
 
-dnl
-dnl Check for SSL/TLS
-dnl
+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
        
@@ -835,6 +899,7 @@ if test $ol_link_tls = yes ; then
        AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
 fi     
 
        AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
 fi     
 
+dnl ----------------------------------------------------------------
 dnl Tests for reentrant functions necessary to build a
 dnl thread_safe -lldap.
 AC_CHECK_FUNCS(                \
 dnl Tests for reentrant functions necessary to build a
 dnl thread_safe -lldap.
 AC_CHECK_FUNCS(                \
@@ -875,11 +940,13 @@ if test "$ac_cv_func_ctime_r" = yes \
        AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_REENTRANT,1)
 fi
 
        AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_REENTRANT,1)
 fi
 
+dnl ----------------------------------------------------------------
+dnl Threads?
 ol_link_threads=no
 if test $ol_with_threads = auto -o $ol_with_threads = yes \
        -o $ol_with_threads = posix ; then
 
 ol_link_threads=no
 if test $ol_with_threads = auto -o $ol_with_threads = yes \
        -o $ol_with_threads = posix ; then
 
-       AC_CHECK_HEADERS(pthread.h sched.h)
+       AC_CHECK_HEADERS(pthread.h)
 
        if test $ac_cv_header_pthread_h = yes ; then
                OL_POSIX_THREAD_VERSION
 
        if test $ac_cv_header_pthread_h = yes ; then
                OL_POSIX_THREAD_VERSION
@@ -898,6 +965,11 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
                ol_with_threads=found
 
                OL_HEADER_LINUX_THREADS
                ol_with_threads=found
 
                OL_HEADER_LINUX_THREADS
+               OL_HEADER_GNU_PTH_PTHREAD_H
+
+               if test $ol_cv_header_gnu_pth_pthread_h = no ; then
+                       AC_CHECK_HEADERS(sched.h)
+               fi
 
                dnl Now the hard part, how to link?
                dnl
 
                dnl Now the hard part, how to link?
                dnl
@@ -907,7 +979,7 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
                dnl     pthread_create() in $LIBS
                dnl
                dnl Check special pthread (final) flags
                dnl     pthread_create() in $LIBS
                dnl
                dnl Check special pthread (final) flags
-               dnl     pthread_create() with -mt (Solaris)
+               dnl     [skipped] pthread_create() with -mt (Solaris) [disabled]
                dnl     pthread_create() with -kthread (FreeBSD)
                dnl     pthread_create() with -pthread (FreeBSD/Digital Unix)
                dnl     pthread_create() with -pthreads (?)
                dnl     pthread_create() with -kthread (FreeBSD)
                dnl     pthread_create() with -pthread (FreeBSD/Digital Unix)
                dnl     pthread_create() with -pthreads (?)
@@ -917,7 +989,7 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
                dnl Check pthread (final) libraries
                dnl     pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
                dnl     pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
                dnl Check pthread (final) libraries
                dnl     pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
                dnl     pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
-               dnl     (skipped) pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
+               dnl     [skipped] pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
                dnl     pthread_join() -Wl,-woff,85 -lpthread (IRIX)
                dnl     pthread_create() in -lpthread (many)
                dnl     pthread_create() in -lc_r (FreeBSD)
                dnl     pthread_join() -Wl,-woff,85 -lpthread (IRIX)
                dnl     pthread_create() in -lpthread (many)
                dnl     pthread_create() in -lc_r (FreeBSD)
@@ -935,84 +1007,48 @@ 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([
-#include <pthread.h>
-#ifndef NULL
-#define NULL (void*)0
-#endif
-
-static void *task(p)
-       void *p;
-{
-       return (void *) (p == NULL);
-}
-
-int main(argc, argv)
-       int argc;
-       char **argv;
-{
-       pthread_t t;
-       int status;
-
-       /* make sure pthread_create() isn't just a stub */
-#if HAVE_PTHREADS_D4
-       status = pthread_create(&t, pthread_attr_default, task, NULL);
-#else
-       status = pthread_create(&t, NULL, task, NULL);
-#endif
-
-       if( status ) return status;
-
-       /* make sure pthread_detach() isn't just a stub */
-#if HAVE_PTHREADS_D4
-       status = pthread_detach( &t );
-#else
-       status = pthread_detach( t );
-#endif
-
-       return status;
-}
-],
+               AC_TRY_RUN(OL_PTHREAD_TEST_PROGRAM,
                        [ol_cv_pthread_create=yes],
                        [ol_cv_pthread_create=no],
                        [ol_cv_pthread_create=yes],
                        [ol_cv_pthread_create=no],
-                       [dnl assume yes
-                       ol_cv_pthread_create=yes])])
+                       [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
                        ol_link_pthreads=""
                fi
                
 
                if test $ol_cv_pthread_create != no ; then
                        ol_link_threads=posix
                        ol_link_pthreads=""
                fi
                
-               OL_PTHREAD_TRY_LINK([-mt],              [ol_cv_pthread_mt])
-               OL_PTHREAD_TRY_LINK([-kthread], [ol_cv_pthread_kthread])
-               OL_PTHREAD_TRY_LINK([-pthread], [ol_cv_pthread_pthread])
-               OL_PTHREAD_TRY_LINK([-pthreads],[ol_cv_pthread_pthreads])
-               OL_PTHREAD_TRY_LINK([-mthreads],[ol_cv_pthread_mthreads])
-               OL_PTHREAD_TRY_LINK([-thread],  [ol_cv_pthread_thread])
-
-               OL_PTHREAD_TRY_LINK([-lpthread -lmach -lexc -lc_r],
+dnl            OL_PTHREAD_TRY([-mt],           [ol_cv_pthread_mt])
+               OL_PTHREAD_TRY([-kthread],      [ol_cv_pthread_kthread])
+               OL_PTHREAD_TRY([-pthread],      [ol_cv_pthread_pthread])
+               OL_PTHREAD_TRY([-pthreads],     [ol_cv_pthread_pthreads])
+               OL_PTHREAD_TRY([-mthreads],     [ol_cv_pthread_mthreads])
+               OL_PTHREAD_TRY([-thread],       [ol_cv_pthread_thread])
+
+               OL_PTHREAD_TRY([-lpthread -lmach -lexc -lc_r],
                        [ol_cv_pthread_lpthread_lmach_lexc_lc_r])
                        [ol_cv_pthread_lpthread_lmach_lexc_lc_r])
-               OL_PTHREAD_TRY_LINK([-lpthread -lmach -lexc],
+               OL_PTHREAD_TRY([-lpthread -lmach -lexc],
                        [ol_cv_pthread_lpthread_lmach_lexc])
                        [ol_cv_pthread_lpthread_lmach_lexc])
-dnl            OL_PTHREAD_TRY_LINK([-lpthread -lexc],
+dnl            OL_PTHREAD_TRY([-lpthread -lexc],
 dnl                    [ol_cv_pthread_lpthread_lexc])
 
 dnl                    [ol_cv_pthread_lpthread_lexc])
 
-               OL_PTHREAD_TRY_LINK([-lpthread -Wl,-woff,85],
+               OL_PTHREAD_TRY([-lpthread -Wl,-woff,85],
                        [ol_cv_pthread_lib_lpthread_woff])
 
                        [ol_cv_pthread_lib_lpthread_woff])
 
-               OL_PTHREAD_TRY_LINK([-lpthread],[ol_cv_pthread_lpthread])
-               OL_PTHREAD_TRY_LINK([-lc_r],    [ol_cv_pthread_lc_r])
+               OL_PTHREAD_TRY([-lpthread],     [ol_cv_pthread_lpthread])
+               OL_PTHREAD_TRY([-lc_r],         [ol_cv_pthread_lc_r])
 
 
-               OL_PTHREAD_TRY_LINK([-threads], [ol_cv_pthread_threads])
+               OL_PTHREAD_TRY([-threads],      [ol_cv_pthread_threads])
 
 
-               OL_PTHREAD_TRY_LINK([-lpthreads -lmach -lexc -lc_r],
+               OL_PTHREAD_TRY([-lpthreads -lmach -lexc -lc_r],
                        [ol_cv_pthread_lpthreads_lmach_lexc_lc_r])
                        [ol_cv_pthread_lpthreads_lmach_lexc_lc_r])
-               OL_PTHREAD_TRY_LINK([-lpthreads -lmach -lexc],
+               OL_PTHREAD_TRY([-lpthreads -lmach -lexc],
                        [ol_cv_pthread_lpthreads_lmach_lexc])
                        [ol_cv_pthread_lpthreads_lmach_lexc])
-               OL_PTHREAD_TRY_LINK([-lpthreads -lexc],
+               OL_PTHREAD_TRY([-lpthreads -lexc],
                        [ol_cv_pthread_lpthreads_lexc])
 
                        [ol_cv_pthread_lpthreads_lexc])
 
-               OL_PTHREAD_TRY_LINK([-lpthreads],       [ol_cv_pthread_lib_lpthreads])
+               OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
 
                if test $ol_link_threads != no ; then
                        AC_DEFINE(HAVE_PTHREADS,1,
 
                if test $ol_link_threads != no ; then
                        AC_DEFINE(HAVE_PTHREADS,1,
@@ -1095,30 +1131,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([
-#include <pthread.h>
-#ifndef NULL
-#define NULL (void*)0
-#endif
-
-static void *task(p)
-       void *p;
-{
-       return (void *) (p == NULL);
-}
-
-int main(argc, argv)
-       int argc;
-       char **argv;
-{
-       pthread_t t;
-#if HAVE_PTHREADS_D4
-       exit(pthread_create(&t, pthread_attr_default, task, NULL));
-#else
-       exit(pthread_create(&t, NULL, task, NULL));
-#endif
-}
-],
+                       AC_TRY_RUN(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
@@ -1277,6 +1290,26 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
        fi
 fi
 
        fi
 fi
 
+if test $ol_with_threads = auto -o $ol_with_threads = yes \
+       -o $ol_with_threads = pth ; then
+
+       AC_CHECK_HEADERS(pth.h)
+
+       if test $ac_cv_header_pth_h = yes ; then
+               AC_CHECK_LIB(pth, pth_version, [have_pth=yes], [have_pth=no])
+
+               if test $have_pth = yes ; then
+                       AC_DEFINE(HAVE_GNU_PTH,1,[if you have GNU Pth])
+                       LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
+                       ol_link_threads=pth
+
+                       if test $ol_with_yielding_select = auto ; then
+                               ol_with_yielding_select=yes
+                       fi
+               fi
+       fi
+fi
+
 if test $ol_with_threads = auto -o $ol_with_threads = yes \
        -o $ol_with_threads = lwp ; then
 
 if test $ol_with_threads = auto -o $ol_with_threads = yes \
        -o $ol_with_threads = lwp ; then
 
@@ -1465,6 +1498,8 @@ if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = db2 ; then
                                [define this to use DBBTREE w/ LDBM backend])
                fi
 
                                [define this to use DBBTREE w/ LDBM backend])
                fi
 
+               OL_BERKELEY_DB2_DB_THREAD
+
                dnl $ol_cv_lib_db2 should be yes or -ldb
                dnl (it could be no, but that would be an error
                if test $ol_cv_lib_db2 != yes ; then
                dnl $ol_cv_lib_db2 should be yes or -ldb
                dnl (it could be no, but that would be an error
                if test $ol_cv_lib_db2 != yes ; then
@@ -1475,7 +1510,11 @@ fi
 
 ol_link_bdb2=no
 if test $ol_link_ldbm = db2 -a $ol_enable_bdb2 != no ; then
 
 ol_link_bdb2=no
 if test $ol_link_ldbm = db2 -a $ol_enable_bdb2 != no ; then
-       ol_link_bdb2=yes
+       if test $ol_cv_berkeley_db2_db_thread != no ; then
+               ol_link_bdb2=yes
+       else
+               AC_MSG_WARN([Installed BerkeleyDB does not provide DB_THREAD support.])
+       fi
 fi
 
 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = db ; then
 fi
 
 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = db ; then
@@ -1565,19 +1604,22 @@ if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
        ol_enable_ldbm=no
 fi
 
        ol_enable_ldbm=no
 fi
 
+dnl ----------------------------------------------------------------
 if test $ol_enable_wrappers != no ; then
        AC_CHECK_HEADERS(tcpd.h)
 
        if test $ac_cv_header_tcpd_h != yes ; then
                have_wrappers=no
        else
 if test $ol_enable_wrappers != no ; then
        AC_CHECK_HEADERS(tcpd.h)
 
        if test $ac_cv_header_tcpd_h != yes ; then
                have_wrappers=no
        else
-               AC_CHECK_LIB(wrap, main,
-                       [have_wrappers=yes], [have_wrappers=no])
+               AC_TRY_COMPILE([
+int allow_severity = 0;
+int deny_severity  = 0;
+               ],[hosts_access()],[have_wrappers=yes],[have_wrappers=no])
        fi
 
        if test $have_wrappers = yes ; then
                AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
        fi
 
        if test $have_wrappers = yes ; then
                AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
-               SLAPD_LIBS="$SLAPD_LIBS -lwrap"
+               WRAP_LIBS="-lwrap"
 
                dnl We add another check for -lnsl since some libwrap's
                dnl need it, but it isn't always included from above
 
                dnl We add another check for -lnsl since some libwrap's
                dnl need it, but it isn't always included from above
@@ -1590,9 +1632,11 @@ if test $ol_enable_wrappers != no ; then
 
                AC_MSG_WARN(disabling wrappers support)
                ol_enable_wrappers=no
 
                AC_MSG_WARN(disabling wrappers support)
                ol_enable_wrappers=no
+               WRAP_LIBS=""
        fi
 fi
 
        fi
 fi
 
+dnl ----------------------------------------------------------------
 if test $ol_enable_syslog != no ; then
        AC_CHECK_FUNC(openlog)
        if test $ac_cv_func_openlog = no -a $ol_enable_syslog = yes; then
 if test $ol_enable_syslog != no ; then
        AC_CHECK_FUNC(openlog)
        if test $ac_cv_func_openlog = no -a $ol_enable_syslog = yes; then
@@ -1601,32 +1645,29 @@ if test $ol_enable_syslog != no ; then
        ol_enable_syslog=$ac_cv_func_openlog
 fi
 
        ol_enable_syslog=$ac_cv_func_openlog
 fi
 
+dnl ----------------------------------------------------------------
 if test $ol_enable_dmalloc != no ; then
        AC_CHECK_HEADERS(dmalloc.h)
        AC_CHECK_LIB(dmalloc, dmalloc_shutdown)
 fi
 
 if test $ol_enable_dmalloc != no ; then
        AC_CHECK_HEADERS(dmalloc.h)
        AC_CHECK_LIB(dmalloc, dmalloc_shutdown)
 fi
 
+dnl ----------------------------------------------------------------
+dnl TCL
 if test $ol_enable_tcl != no ; then
        AC_CHECK_HEADERS(tcl.h)
 
        if test $ac_cv_header_tcl_h != yes ; then
                have_tcl=no
        else
 if test $ol_enable_tcl != no ; then
        AC_CHECK_HEADERS(tcl.h)
 
        if test $ac_cv_header_tcl_h != yes ; then
                have_tcl=no
        else
-               AC_CHECK_LIB(tcl,main,
-                       [have_tcl=yes; SLAPD_LIBS="$SLAPD_LIBS -ltcl"],
-                       [have_tcl=no])
-
-               if test $have_tcl != yes; then
-                       AC_CHECK_LIB(tcl7.6,main,
-                               [have_tcl=yes; SLAPD_LIBS="$SLAPD_LIBS -ltcl7.6"],
-                               [have_tcl=no])
-               fi
-
-               if test $have_tcl != yes; then
-                       AC_CHECK_LIB(tcl8.0,main,
-                               [have_tcl=yes; SLAPD_LIBS="$SLAPD_LIBS -ltcl8.0"],
-                               [have_tcl=no])
-               fi
+               for lib in tcl tcl7.6 tcl8.0 tcl8.2 ; do
+                       AC_CHECK_LIB($lib,main,
+                         [have_tcl=yes
+                          if test x"$ol_with_tcl_module" == "xstatic" ; then
+                              SLAPD_LIBS="$SLAPD_LIBS -l${lib}"
+                          else
+                              MOD_TCL_LIB="-l${lib}"
+                          fi;break],[have_tcl=no])
+               done
        fi
 
        if test $have_tcl != yes ; then
        fi
 
        if test $have_tcl != yes ; then
@@ -1639,7 +1680,8 @@ if test $ol_enable_tcl != no ; then
        fi
 fi
 
        fi
 fi
 
-# ud needs termcap (should insert check here)
+dnl ----------------------------------------------------------------
+dnl ud needs termcap (should insert check here)
 ol_link_termcap=no
 AC_CHECK_HEADERS(termcap.h ncurses.h)
 
 ol_link_termcap=no
 AC_CHECK_HEADERS(termcap.h ncurses.h)
 
@@ -1666,6 +1708,7 @@ if test $ol_link_termcap = no ; then
        TERMCAP_LIBS=
 fi
 
        TERMCAP_LIBS=
 fi
 
+dnl ----------------------------------------------------------------
 dnl
 dnl Check for fetch URL support
 dnl            should be extended to support other fetch URL APIs
 dnl
 dnl Check for fetch URL support
 dnl            should be extended to support other fetch URL APIs
@@ -1679,7 +1722,7 @@ if test $ol_with_cyrus_sasl != no ; then
                        [have_cyrus_sasl=yes], [have_cyrus_sasl=no])
 
                if test $have_cyrus_sasl != no ; then
                        [have_cyrus_sasl=yes], [have_cyrus_sasl=no])
 
                if test $have_cyrus_sasl != no ; then
-                       LUTIL_LIBS="$LUTIL_LIBS -lsasl"
+                       SASL_LIBS="-lsasl"
                        AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
                        ol_link_sasl=yes
                fi
                        AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
                        ol_link_sasl=yes
                fi
@@ -1690,6 +1733,7 @@ if test $ol_with_cyrus_sasl != no ; then
        fi
 fi
 
        fi
 fi
 
+dnl ----------------------------------------------------------------
 dnl
 dnl Check for fetch URL support
 dnl            should be extended to support other fetch URL APIs
 dnl
 dnl Check for fetch URL support
 dnl            should be extended to support other fetch URL APIs
@@ -1707,6 +1751,7 @@ if test $ol_with_fetch != no ; then
        fi 
 fi
 
        fi 
 fi
 
+dnl ----------------------------------------------------------------
 dnl
 dnl Check for GNU readline
 dnl
 dnl
 dnl Check for GNU readline
 dnl
@@ -1735,7 +1780,8 @@ if test $ol_link_readline = yes ; then
 fi
 
 
 fi
 
 
-# FreeBSD (and others) have crypt(3) in -lcrypt
+dnl ----------------------------------------------------------------
+dnl FreeBSD (and others) have crypt(3) in -lcrypt
 if test $ol_enable_crypt != no ; then
        AC_CHECK_FUNC(crypt, [have_crypt=yes], [
                AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
 if test $ol_enable_crypt != no ; then
        AC_CHECK_FUNC(crypt, [have_crypt=yes], [
                AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
@@ -1754,7 +1800,8 @@ if test $ol_enable_crypt != no ; then
        fi
 fi
 
        fi
 fi
 
-# FreeBSD (and others) have setproctitle(3) in -lutil
+dnl ----------------------------------------------------------------
+dnl FreeBSD (and others) have setproctitle(3) in -lutil
 if test $ol_enable_proctitle != no ; then
        AC_CHECK_FUNC(setproctitle,     [have_setproctitle=yes], [
                AC_CHECK_LIB(util, setproctitle,
 if test $ol_enable_proctitle != no ; then
        AC_CHECK_FUNC(setproctitle,     [have_setproctitle=yes], [
                AC_CHECK_LIB(util, setproctitle,
@@ -1855,6 +1902,7 @@ AC_CHECK_FUNCS(           \
        memcpy                  \
        memmove                 \
        mkstemp                 \
        memcpy                  \
        memmove                 \
        mkstemp                 \
+       pipe                    \
        read                    \
        recv                    \
        recvfrom                \
        read                    \
        recv                    \
        recvfrom                \
@@ -1864,6 +1912,7 @@ AC_CHECK_FUNCS(           \
        setsid                  \
        setuid                  \
        seteuid                 \
        setsid                  \
        setuid                  \
        seteuid                 \
+       sigaction               \
        signal                  \
        sigset                  \
        snprintf                \
        signal                  \
        sigset                  \
        snprintf                \
@@ -1939,10 +1988,18 @@ fi
 if test "$ol_enable_rlookups" != no ; then
        AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
 fi
 if test "$ol_enable_rlookups" != no ; then
        AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
 fi
+if test "$ol_enable_aci" != no ; then
+       AC_DEFINE(SLAPD_ACI_ENABLED,1,[define to support per-object ACIs])
+fi
+if test "$ol_enable_discreteaci" != no ; then
+       AC_DEFINE(SLAPD_ACI_DISCRETE_RIGHTS,1,[define to support discrete rights in ACIs])
+fi
 
 if test "$ol_link_modules" != no ; then
        AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
        BUILD_SLAPD=yes
 
 if test "$ol_link_modules" != no ; then
        AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
        BUILD_SLAPD=yes
+       MODULES_LIBS=-lltdl
+       SLAPD_MODULES_LDFLAGS="-dlopen self"
 fi
 
 if test "$ol_link_bdb2" != no ; then
 fi
 
 if test "$ol_link_bdb2" != no ; then
@@ -1952,7 +2009,9 @@ if test "$ol_link_bdb2" != no ; then
        if test "$ol_with_bdb2_module" != static ; then
                AC_DEFINE(SLAPD_BDB2_DYNAMIC,1,
                        [define to support dynamic BDB2 backend])
        if test "$ol_with_bdb2_module" != static ; then
                AC_DEFINE(SLAPD_BDB2_DYNAMIC,1,
                        [define to support dynamic BDB2 backend])
-               BUILD_BDB2_DYNAMIC=yes
+               BUILD_BDB2=mod
+               BUILD_BDB2_DYNAMIC=shared
+               SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-bdb2/back_bdb2.la"
        fi
 fi
 
        fi
 fi
 
@@ -1963,7 +2022,9 @@ if test "$ol_enable_ldap" != no ; then
        if test "$ol_with_ldap_module" != static ; then
                AC_DEFINE(SLAPD_LDAP_DYNAMIC,1,
                        [define to support dynamic LDAP backend])
        if test "$ol_with_ldap_module" != static ; then
                AC_DEFINE(SLAPD_LDAP_DYNAMIC,1,
                        [define to support dynamic LDAP backend])
-               BUILD_LDAP_DYNAMIC=yes
+               BUILD_LDAP=mod
+               BUILD_LDAP_DYNAMIC=shared
+               SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-ldap/back_ldap.la"
        fi
 fi
 
        fi
 fi
 
@@ -1974,7 +2035,9 @@ if test "$ol_link_ldbm" != no ; then
        if test "$ol_with_ldbm_module" != static ; then
                AC_DEFINE(SLAPD_LDBM_DYNAMIC,1,
                        [define to support dynamic LDBM backend])
        if test "$ol_with_ldbm_module" != static ; then
                AC_DEFINE(SLAPD_LDBM_DYNAMIC,1,
                        [define to support dynamic LDBM backend])
-               BUILD_LDBM_DYNAMIC=yes
+               BUILD_LDBM=mod
+               BUILD_LDBM_DYNAMIC=shared
+               SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-ldbm/back_ldbm.la"
        fi
 fi
 
        fi
 fi
 
@@ -1985,7 +2048,9 @@ if test "$ol_enable_passwd" != no ; then
        if test "$ol_with_passwd_module" != static ; then
                AC_DEFINE(SLAPD_PASSWD_DYNAMIC,1,
                        [define to support dynamic PASSWD backend])
        if test "$ol_with_passwd_module" != static ; then
                AC_DEFINE(SLAPD_PASSWD_DYNAMIC,1,
                        [define to support dynamic PASSWD backend])
-               BUILD_PASSWD_DYNAMIC=yes
+               BUILD_PASSWD=mod
+               BUILD_PASSWD_DYNAMIC=shared
+               SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-passwd/back_passwd.la"
        fi
 fi
 
        fi
 fi
 
@@ -1996,7 +2061,9 @@ if test "$ol_link_perl" != no ; then
        if test "$ol_with_perl_module" != static ; then
                AC_DEFINE(SLAPD_PERL_DYNAMIC,1,
                        [define to support dynamic PERL backend])
        if test "$ol_with_perl_module" != static ; then
                AC_DEFINE(SLAPD_PERL_DYNAMIC,1,
                        [define to support dynamic PERL backend])
-               BUILD_PERL_DYNAMIC=yes
+               BUILD_PERL=mod
+               BUILD_PERL_DYNAMIC=shared
+               SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-perl/back_perl.la"
        fi
 fi
 
        fi
 fi
 
@@ -2007,7 +2074,9 @@ if test "$ol_enable_shell" != no ; then
        if test "$ol_with_shell_module" != static ; then
                AC_DEFINE(SLAPD_SHELL_DYNAMIC,1,
                        [define to support dynamic SHELL backend])
        if test "$ol_with_shell_module" != static ; then
                AC_DEFINE(SLAPD_SHELL_DYNAMIC,1,
                        [define to support dynamic SHELL backend])
-               BUILD_SHELL_DYNAMIC=yes
+               BUILD_SHELL=mod
+               BUILD_SHELL_DYNAMIC=shared
+               SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-shell/back_shell.la"
        fi
 fi
 
        fi
 fi
 
@@ -2018,7 +2087,9 @@ if test "$ol_enable_tcl" != no ; then
        if test "$ol_with_tcl_module" != static; then
                AC_DEFINE(SLAPD_TCL_DYNAMIC,1,
                        [define to support dynamic TCL backend])
        if test "$ol_with_tcl_module" != static; then
                AC_DEFINE(SLAPD_TCL_DYNAMIC,1,
                        [define to support dynamic TCL backend])
-               BUILD_TCL_DYNAMIC=yes
+               BUILD_TCL=mod
+               BUILD_TCL_DYNAMIC=shared
+               SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-tcl/back_tcl.la"
        fi
 fi
 
        fi
 fi
 
@@ -2060,17 +2131,23 @@ AC_SUBST(SLURPD_LIBS)
 AC_SUBST(LDBM_LIBS)
 AC_SUBST(LTHREAD_LIBS)
 AC_SUBST(LUTIL_LIBS)
 AC_SUBST(LDBM_LIBS)
 AC_SUBST(LTHREAD_LIBS)
 AC_SUBST(LUTIL_LIBS)
+AC_SUBST(WRAP_LIBS)
+AC_SUBST(MOD_TCL_LIB)
 
 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
 AC_SUBST(SLAPD_MODULES_LDFLAGS)
 
 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
 AC_SUBST(SLAPD_MODULES_LDFLAGS)
+AC_SUBST(SLAPD_MODULES_LIST)
 
 
-AC_SUBST(SLAPD_PERL_CPPFLAGS)
+AC_SUBST(PERL_CPPFLAGS)
 AC_SUBST(SLAPD_PERL_LDFLAGS)
 AC_SUBST(SLAPD_PERL_LDFLAGS)
+AC_SUBST(MOD_PERL_LDFLAGS)
 
 AC_SUBST(KRB_LIBS)
 AC_SUBST(READLINE_LIBS)
 
 AC_SUBST(KRB_LIBS)
 AC_SUBST(READLINE_LIBS)
+AC_SUBST(SASL_LIBS)
 AC_SUBST(TERMCAP_LIBS)
 AC_SUBST(TLS_LIBS)
 AC_SUBST(TERMCAP_LIBS)
 AC_SUBST(TLS_LIBS)
+AC_SUBST(MODULES_LIBS)
 
 dnl ----------------------------------------------------------------
 dnl final output
 
 dnl ----------------------------------------------------------------
 dnl final output
@@ -2104,13 +2181,13 @@ libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/li
 servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk \
 servers/ldapd/Makefile:build/top.mk:servers/ldapd/Makefile.in:build/srv.mk \
 servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk \
 servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk \
 servers/ldapd/Makefile:build/top.mk:servers/ldapd/Makefile.in:build/srv.mk \
 servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk \
-servers/slapd/back-bdb2/Makefile:build/top.mk:servers/slapd/back-bdb2/Makefile.in:build/srv.mk \
-servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/srv.mk \
-servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/srv.mk \
-servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/srv.mk \
-servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/srv.mk \
-servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/srv.mk \
-servers/slapd/back-tcl/Makefile:build/top.mk:servers/slapd/back-tcl/Makefile.in:build/srv.mk \
+servers/slapd/back-bdb2/Makefile:build/top.mk:servers/slapd/back-bdb2/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-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-tcl/Makefile:build/top.mk:servers/slapd/back-tcl/Makefile.in:build/mod.mk \
 servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.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 \
 servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.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 \