]> git.sur5r.net Git - openldap/blobdiff - configure.in
Add a few comments to the ITS#2325 fix
[openldap] / configure.in
index e76123546d41aaad19704c5bc0cdd0230f8f879b..4d1f40782c9a4c5a765a3332fba970f44d38ef0e 100644 (file)
@@ -1,6 +1,6 @@
 dnl $OpenLDAP$
 dnl
 dnl $OpenLDAP$
 dnl
-dnl Copyright 1998-2002 The OpenLDAP Foundation.  All Rights Reserved.
+dnl Copyright 1998-2003 The OpenLDAP Foundation.  All Rights Reserved.
 dnl 
 dnl Redistribution and use in source and binary forms, with or without
 dnl modification, are permitted only as authorized by the OpenLDAP
 dnl 
 dnl Redistribution and use in source and binary forms, with or without
 dnl modification, are permitted only as authorized by the OpenLDAP
@@ -16,7 +16,7 @@ define([AC_INIT_BINSH],
 # $]OpenLDAP[$
 # from] translit([$OpenLDAP$], $")] [
 
 # $]OpenLDAP[$
 # from] translit([$OpenLDAP$], $")] [
 
-# Copyright 1998-2002 The OpenLDAP Foundation.  All Rights Reserved.
+# Copyright 1998-2003 The OpenLDAP Foundation.  All Rights Reserved.
 # 
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted only as authorized by the OpenLDAP
 # 
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted only as authorized by the OpenLDAP
@@ -24,7 +24,7 @@ define([AC_INIT_BINSH],
 # http://www.OpenLDAP.org/license.html or in file LICENSE in the
 # top-level directory of the distribution.
 
 # http://www.OpenLDAP.org/license.html or in file LICENSE in the
 # top-level directory of the distribution.
 
-echo "Copyright 1998-2002 The OpenLDAP Foundation,  All Rights Reserved."
+echo "Copyright 1998-2003 The OpenLDAP Foundation,  All Rights Reserved."
 echo " Restrictions apply, see COPYRIGHT and LICENSE files."
 ])dnl
 dnl ----------------------------------------------------------------
 echo " Restrictions apply, see COPYRIGHT and LICENSE files."
 ])dnl
 dnl ----------------------------------------------------------------
@@ -60,10 +60,15 @@ fi
 SHTOOL="$ac_cv_shtool"
 dnl AC_SUBST(SHTOOL)dnl
 
 SHTOOL="$ac_cv_shtool"
 dnl AC_SUBST(SHTOOL)dnl
 
-TB=`$SHTOOL echo -e %B`
-TN=`$SHTOOL echo -e %b`
+TB="`$SHTOOL echo -e '%B' 2>/dev/null`"
+TN="`$SHTOOL echo -e '%b' 2>/dev/null`"
 
 
-echo "Configuring $TB$OL_STRING$TN ..."
+OPENLDAP_CVS=""
+if test -d $ac_aux_dir/CVS; then
+       OPENLDAP_CVS="(from CVS sources) "
+fi
+
+echo "Configuring ${TB}${OL_STRING}${TN} ${OPENLDAP_CVS}..."
 
 dnl Determine host platform
 dnl            we try not to use this for much
 
 dnl Determine host platform
 dnl            we try not to use this for much
@@ -83,6 +88,9 @@ AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_PATCH,$OL_PATCH,Patch)
 OPENLDAP_LIBVERSION=$OL_API_LIB
 AC_SUBST(OPENLDAP_LIBVERSION)dnl
 
 OPENLDAP_LIBVERSION=$OL_API_LIB
 AC_SUBST(OPENLDAP_LIBVERSION)dnl
 
+OPENLDAP_RELEASE_DATE="$OL_RELEASE_DATE"
+AC_SUBST(OPENLDAP_RELEASE_DATE)dnl
+
 dnl We use autoconf features new to 2.13.
 dnl aclocal.m4 should be built using aclocal from automake 1.4
 dnl libtool 1.4.2 should be installed.
 dnl We use autoconf features new to 2.13.
 dnl aclocal.m4 should be built using aclocal from automake 1.4
 dnl libtool 1.4.2 should be installed.
@@ -123,14 +131,15 @@ AC_SUBST(ldap_subdir)dnl
 dnl ----------------------------------------------------------------
 dnl General "enable" options
 OL_ARG_ENABLE(debug,[  --enable-debug    enable debugging], yes)dnl
 dnl ----------------------------------------------------------------
 dnl General "enable" options
 OL_ARG_ENABLE(debug,[  --enable-debug    enable debugging], yes)dnl
+OL_ARG_ENABLE(dynamic,[  --enable-dynamic        enable linking built binaries with dynamic libs], no)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(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 (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
+dnl OL_ARG_ENABLE(referrals,[  --enable-referrals        enable LDAPv2+ Referrals (experimental)], no)dnl
+ol_enable_referrals=${ol_enable_referrals-no}
+dnl OL_ARG_ENABLE(kbind,[  --enable-kbind        enable LDAPv2+ Kerberos IV bind (deprecated)], no)dnl
+ol_enable_kbind=${ol_enable_kbind-no}
 OL_ARG_ENABLE(ipv6,[  --enable-ipv6      enable IPv6 support], auto)dnl
 OL_ARG_ENABLE(local,[  --enable-local    enable AF_LOCAL (AF_UNIX) socket support], auto)dnl
 OL_ARG_ENABLE(ipv6,[  --enable-ipv6      enable IPv6 support], auto)dnl
 OL_ARG_ENABLE(local,[  --enable-local    enable AF_LOCAL (AF_UNIX) socket support], auto)dnl
-OL_ARG_ENABLE(rewrite,[  --enable-rewrite        enable rewrite], no)dnl
 OL_ARG_ENABLE(x_compile,[  --enable-x-compile    enable cross compiling],
        no, [yes no])dnl
 
 OL_ARG_ENABLE(x_compile,[  --enable-x-compile    enable cross compiling],
        no, [yes no])dnl
 
@@ -140,7 +149,7 @@ dnl OL_ARG_ENABLE(dmalloc,[  --enable-dmalloc         enable debug malloc support], no
 
 OL_ARG_WITH(cyrus_sasl,[  --with-cyrus-sasl      with Cyrus SASL support],
        auto, [auto yes no] )
 
 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],
+OL_ARG_WITH(fetch,[  --with-fetch                with fetch(3) URL support],
        auto, [auto yes no] )
 OL_ARG_WITH(kerberos,[  --with-kerberos          with Kerberos support],
        auto, [auto k5 k5only k425 kth k4 afs yes no])
        auto, [auto yes no] )
 OL_ARG_WITH(kerberos,[  --with-kerberos          with Kerberos support],
        auto, [auto k5 k5only k425 kth k4 afs yes no])
@@ -165,57 +174,60 @@ OL_ARG_ENABLE(slapd,[  --enable-slapd       enable building slapd], yes)dnl
 OL_ARG_ENABLE(aci,[    --enable-aci      enable per-object ACIs (experimental)], no)dnl
 OL_ARG_ENABLE(cleartext,[    --enable-cleartext          enable cleartext passwords], yes)dnl
 OL_ARG_ENABLE(crypt,[    --enable-crypt          enable crypt(3) passwords], no)dnl
 OL_ARG_ENABLE(aci,[    --enable-aci      enable per-object ACIs (experimental)], no)dnl
 OL_ARG_ENABLE(cleartext,[    --enable-cleartext          enable cleartext passwords], yes)dnl
 OL_ARG_ENABLE(crypt,[    --enable-crypt          enable crypt(3) passwords], no)dnl
-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
 dnl OL_ARG_ENABLE(multimaster,[    --enable-multimaster  enable multimaster replication], 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
 dnl OL_ARG_ENABLE(multimaster,[    --enable-multimaster  enable multimaster replication], no)dnl
+ol_enable_multimaster=${ol_enable_multimaster-no}
 OL_ARG_ENABLE(phonetic,[    --enable-phonetic    enable phonetic/soundex], no)dnl
 OL_ARG_ENABLE(phonetic,[    --enable-phonetic    enable phonetic/soundex], no)dnl
-OL_ARG_ENABLE(rlookups,[    --enable-rlookups    enable reverse lookups], no)dnl
-OL_ARG_ENABLE(slp, [    --enable-slp          enable SLPv2 support], no)dnl     
+OL_ARG_ENABLE(rewrite,[    --enable-rewrite      enable DN rewriting in back-ldap and back-meta], no)dnl
+OL_ARG_ENABLE(rlookups,[    --enable-rlookups    enable reverse lookups of client hostnames], no)dnl
+OL_ARG_ENABLE(slapi,[    --enable-slapi        enable installation of slapi library], no)dnl
+OL_ARG_ENABLE(slp,[    --enable-slp          enable SLPv2 support], no)dnl     
 OL_ARG_ENABLE(wrappers,[    --enable-wrappers    enable tcp wrapper support], no)dnl
 
 OL_ARG_ENABLE(wrappers,[    --enable-wrappers    enable tcp wrapper support], no)dnl
 
+
 dnl SLAPD Backend options
 OL_ARG_ENABLE(bdb,[    --enable-bdb      enable Berkeley DB backend], yes)dnl
 dnl SLAPD Backend options
 OL_ARG_ENABLE(bdb,[    --enable-bdb      enable Berkeley DB backend], yes)dnl
-OL_ARG_WITH(bdb_module,[    --with-bdb-module     module type], static,
+OL_ARG_WITH(bdb_module,[    --with-bdb-module     module type static|dynamic], static,
        [static dynamic])
 OL_ARG_ENABLE(dnssrv,[    --enable-dnssrv        enable dnssrv backend], no)dnl
        [static dynamic])
 OL_ARG_ENABLE(dnssrv,[    --enable-dnssrv        enable dnssrv backend], no)dnl
-OL_ARG_WITH(dnssrv_module,[    --with-dnssrv-module  module type], static,
+OL_ARG_WITH(dnssrv_module,[    --with-dnssrv-module  module type static|dynamic], static,
        [static dynamic])
 OL_ARG_ENABLE(ldap,[    --enable-ldap    enable ldap backend], no)dnl
        [static dynamic])
 OL_ARG_ENABLE(ldap,[    --enable-ldap    enable ldap backend], no)dnl
-OL_ARG_WITH(ldap_module,[    --with-ldap-module          module type], static,
+OL_ARG_WITH(ldap_module,[    --with-ldap-module          module type static|dynamic], static,
        [static dynamic])
 OL_ARG_ENABLE(ldbm,[    --enable-ldbm    enable ldbm backend], no)dnl
        [static dynamic])
 OL_ARG_ENABLE(ldbm,[    --enable-ldbm    enable ldbm backend], no)dnl
-OL_ARG_WITH(ldbm_api,[    --with-ldbm-api       with LDBM API], auto,
+OL_ARG_WITH(ldbm_api,[    --with-ldbm-api       with LDBM API auto|berkeley|bcompat|mdbm|gdbm], auto,
        [auto berkeley bcompat mdbm gdbm])
        [auto berkeley bcompat mdbm gdbm])
-OL_ARG_WITH(ldbm_module,[    --with-ldbm-module          module type], static,
+OL_ARG_WITH(ldbm_module,[    --with-ldbm-module          module type static|dynamic], static,
        [static dynamic])
        [static dynamic])
-OL_ARG_WITH(ldbm_type,[    --with-ldbm-type      use LDBM type], auto,
+OL_ARG_WITH(ldbm_type,[    --with-ldbm-type      use LDBM type auto|btree|hash], auto,
        [auto btree hash])
 OL_ARG_ENABLE(meta,[    --enable-meta    enable metadirectory backend], no)dnl
        [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,
+OL_ARG_WITH(meta_module,[    --with-meta-module          module type static|dynamic], static,
        [static dynamic])
 OL_ARG_ENABLE(monitor,[    --enable-monitor      enable monitor backend], no)dnl
        [static dynamic])
 OL_ARG_ENABLE(monitor,[    --enable-monitor      enable monitor backend], no)dnl
-OL_ARG_WITH(monitor_module,[    --with-monitor-module module type], static,
+OL_ARG_WITH(monitor_module,[    --with-monitor-module module type static|dynamic], static,
        [static dynamic])
 OL_ARG_ENABLE(null,[    --enable-null    enable null backend], no)dnl
        [static dynamic])
 OL_ARG_ENABLE(null,[    --enable-null    enable null backend], no)dnl
-OL_ARG_WITH(null_module,[    --with-null-module        module type], static,
+OL_ARG_WITH(null_module,[    --with-null-module          module type static|dynamic], static,
        [static dynamic])
 OL_ARG_ENABLE(passwd,[    --enable-passwd        enable passwd backend], no)dnl
        [static dynamic])
 OL_ARG_ENABLE(passwd,[    --enable-passwd        enable passwd backend], no)dnl
-OL_ARG_WITH(passwd_module,[    --with-passwd-module  module type], static,
+OL_ARG_WITH(passwd_module,[    --with-passwd-module  module type static|dynamic], static,
        [static dynamic])
 OL_ARG_ENABLE(perl,[    --enable-perl    enable perl backend], no)dnl
        [static dynamic])
 OL_ARG_ENABLE(perl,[    --enable-perl    enable perl backend], no)dnl
-OL_ARG_WITH(perl_module,[    --with-perl-module          module type], static,
+OL_ARG_WITH(perl_module,[    --with-perl-module          module type static|dynamic], static,
        [static dynamic])
 OL_ARG_ENABLE(shell,[    --enable-shell          enable shell backend], no)dnl
        [static dynamic])
 OL_ARG_ENABLE(shell,[    --enable-shell          enable shell backend], no)dnl
-OL_ARG_WITH(shell_module,[    --with-shell-module        module type], static,
+OL_ARG_WITH(shell_module,[    --with-shell-module        module type static|dynamic], static,
        [static dynamic])
 OL_ARG_ENABLE(sql,[    --enable-sql      enable sql backend], no)dnl
        [static dynamic])
 OL_ARG_ENABLE(sql,[    --enable-sql      enable sql backend], no)dnl
-OL_ARG_WITH(sql_module,[    --with-sql-module    module type], static,
+OL_ARG_WITH(sql_module,[    --with-sql-module    module type static|dynamic], static,
        [static dynamic])
 OL_ARG_ENABLE(tcl,[    --enable-tcl      enable tcl backend], no)dnl
        [static dynamic])
 OL_ARG_ENABLE(tcl,[    --enable-tcl      enable tcl backend], no)dnl
-OL_ARG_WITH(tcl_module,[    --with-tcl-module    module type], static,
+OL_ARG_WITH(tcl_module,[    --with-tcl-module    module type static|dynamic], static,
        [static dynamic])
 
 dnl ----------------------------------------------------------------
        [static dynamic])
 
 dnl ----------------------------------------------------------------
@@ -228,7 +240,6 @@ dnl ----------------------------------------------------------------
 AC_ARG_WITH(xxliboptions,[
 Library Generation & Linking Options])
 AC_ENABLE_STATIC
 AC_ARG_WITH(xxliboptions,[
 Library Generation & Linking Options])
 AC_ENABLE_STATIC
-dnl AC_DISABLE_SHARED
 AC_ENABLE_SHARED
 
 dnl ----------------------------------------------------------------
 AC_ENABLE_SHARED
 
 dnl ----------------------------------------------------------------
@@ -237,6 +248,9 @@ dnl General "enable" options
 # validate options
 if test $ol_enable_slapd = no ; then
        dnl SLAPD was specificallly disabled
 # validate options
 if test $ol_enable_slapd = no ; then
        dnl SLAPD was specificallly disabled
+       if test $ol_enable_slapi = yes ; then
+               AC_MSG_WARN([slapd disabled, ignoring --enable-slapi argument])
+       fi
        if test $ol_enable_bdb = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-bdb argument])
        fi
        if test $ol_enable_bdb = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-bdb argument])
        fi
@@ -276,9 +290,9 @@ if test $ol_enable_slapd = no ; then
        if test $ol_enable_modules = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
        fi
        if test $ol_enable_modules = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
        fi
-dnl    if test $ol_enable_multimaster = yes ; then
-dnl            AC_MSG_WARN([slapd disabled, ignoring --enable-multimaster argument])
-dnl    fi
+       if test $ol_enable_multimaster = yes ; then
+               AC_MSG_WARN([slapd disabled, ignoring --enable-multimaster argument])
+       fi
        if test $ol_enable_wrappers = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
        fi
        if test $ol_enable_wrappers = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
        fi
@@ -341,6 +355,7 @@ dnl fi
        fi
 
        # force settings to no
        fi
 
        # force settings to no
+       ol_enable_slapi=no
        ol_enable_bdb=no
        ol_enable_dnssrv=no
        ol_enable_ldap=no
        ol_enable_bdb=no
        ol_enable_dnssrv=no
        ol_enable_ldap=no
@@ -355,7 +370,7 @@ dnl fi
        ol_enable_sql=no
 
        ol_enable_modules=no
        ol_enable_sql=no
 
        ol_enable_modules=no
-dnl    ol_enable_multimaster=no
+       ol_enable_multimaster=no
        ol_enable_phonetic=no
        ol_enable_rlookups=no
        ol_enable_aci=no
        ol_enable_phonetic=no
        ol_enable_rlookups=no
        ol_enable_aci=no
@@ -499,7 +514,6 @@ dnl ----------------------------------------------------------------
 dnl Initialize vars
 LDAP_LIBS=
 LDIF_LIBS=
 dnl Initialize vars
 LDAP_LIBS=
 LDIF_LIBS=
-LDBM_LIB=
 LDBM_LIBS=
 LTHREAD_LIBS=
 LUTIL_LIBS=
 LDBM_LIBS=
 LTHREAD_LIBS=
 LUTIL_LIBS=
@@ -512,6 +526,9 @@ BUILD_SLURPD=no
 
 BUILD_THREAD=no
 
 
 BUILD_THREAD=no
 
+BUILD_SLAPI=no
+SLAPD_SLAPI_DEPEND=
+
 BUILD_BDB=no
 BUILD_DNSSRV=no
 BUILD_LDAP=no
 BUILD_BDB=no
 BUILD_DNSSRV=no
 BUILD_LDAP=no
@@ -540,7 +557,6 @@ BUILD_SQL_DYNAMIC=static
 
 SLAPD_MODULES_LDFLAGS=
 SLAPD_MODULES_CPPFLAGS=
 
 SLAPD_MODULES_LDFLAGS=
 SLAPD_MODULES_CPPFLAGS=
-SLAPD_MODULES_LIST=
 
 SLAPD_STATIC_BACKENDS=
 SLAPD_DYNAMIC_BACKENDS=
 
 SLAPD_STATIC_BACKENDS=
 SLAPD_DYNAMIC_BACKENDS=
@@ -561,6 +577,9 @@ SASL_LIBS=
 TERMCAP_LIBS=
 TLS_LIBS=
 MODULES_LIBS=
 TERMCAP_LIBS=
 TLS_LIBS=
 MODULES_LIBS=
+SLAPI_LIBS=
+LIBSLAPI=
+LIBSLAPITOOLS=
 AUTH_LIBS=
 
 SLAPD_SLP_LIBS=
 AUTH_LIBS=
 
 SLAPD_SLP_LIBS=
@@ -619,28 +638,28 @@ if test $ol_aix_threads = yes ; then
 fi
 
 if test -z "${CC}"; then
 fi
 
 if test -z "${CC}"; then
-       AC_CHECK_PROGS(CC,cc)
+       AC_CHECK_PROGS(CC,cc gcc,missing)
+
+       if test "${CC}" = "missing" ; then
+               AC_MSG_ERROR([Unable to locate cc(1) or suitable replacement.  Check PATH or set CC.])
+       fi
 fi
 
 fi
 
-dnl The default CFLAGS is empty NOT whatever AC_PROG_CC sets.
-dnl (for now, let autoconf sort this out)
-dnl CFLAGS=${CFLAGS-""}
+if test -z "${AR}"; then
+       AC_CHECK_PROGS(AR,ar gar,missing)
 
 
-AC_CHECK_PROGS(AR,ar gar,ar)
+       if test "${AR}" = "missing" ; then
+               AC_MSG_ERROR([Unable to locate ar(1) or suitable replacement.  Check PATH or set AR.])
+       fi
+fi
 
 AC_LIBTOOL_WIN32_DLL
 AC_LIBTOOL_DLOPEN
 AC_PROG_LIBTOOL
 
 
 AC_LIBTOOL_WIN32_DLL
 AC_LIBTOOL_DLOPEN
 AC_PROG_LIBTOOL
 
-AC_PROG_AWK
 OL_PROG_LN_H
 AC_PROG_LN_S
 
 OL_PROG_LN_H
 AC_PROG_LN_S
 
-AC_PATH_PROG(SENDMAIL, sendmail, /usr/lib/sendmail,
-       $PATH:/usr/libexec:/usr/lib:/usr/sbin:/usr/etc:/etc)
-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
 dnl ----------------------------------------------------------------
 dnl Perl
 ol_link_perl=no
@@ -693,7 +712,7 @@ AC_MINGW32
 AC_EXEEXT
 AC_OBJEXT
 
 AC_EXEEXT
 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
 
 dnl ----------------------------------------------------------------
 dnl BeOS requires -lbe -lroot -lnet
@@ -721,6 +740,14 @@ AC_CHECK_LIB(s, afopen, [
        AC_DEFINE(HAVE_AIX_SECURITY,1,[define if you have AIX security lib])
 ])
 
        AC_DEFINE(HAVE_AIX_SECURITY,1,[define if you have AIX security lib])
 ])
 
+dnl ----------------------------------------------------------------
+dnl Check for IBM OS/390
+case "$target" in
+*-ibm-openedition)
+       ac_cv_func_getopt=no
+       AC_DEFINE(BOTH_STRINGS_H,1,[define to use both <string.h> and <strings.h>])
+       ;;
+esac
 
 dnl ----------------------------------------------------------------
 dnl Check for module support
 
 dnl ----------------------------------------------------------------
 dnl Check for module support
@@ -812,6 +839,7 @@ AC_CHECK_HEADERS(   \
        sys/syslog.h    \
        sys/time.h              \
        sys/types.h             \
        sys/syslog.h    \
        sys/time.h              \
        sys/types.h             \
+       sys/ucred.h             \
        syslog.h                \
        termios.h               \
        unistd.h                \
        syslog.h                \
        termios.h               \
        unistd.h                \
@@ -1012,10 +1040,25 @@ elif test $ol_enable_ipv6 != no ; then
 #                      endif
                ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])])
 
 #                      endif
                ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])])
 
-       if test $ol_cv_inet6_addrstrlen = yes ; then
+
+       AC_CACHE_CHECK([struct sockaddr_storage],ol_cv_struct_sockaddr_storage,[
+               AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <sys/socket.h>
+],[
+                       struct sockaddr_storage ss;
+],                     [ol_cv_struct_sockaddr_storage=yes],
+                       [ol_cv_struct_sockaddr_storage=no])])
+
+       if test $ol_cv_inet6_addrstrlen = yes \
+               -a $ol_cv_struct_sockaddr_storage = yes ; then
                ol_link_ipv6=yes
                ol_link_ipv6=yes
-       elif test $ol_enable_ipv6 = yes ; then
+       elif test $ol_enable_ipv6 = yes \
+                       -a $ol_cv_inet6_addrstrlen = no ; then
                AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
                AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
+       elif test $ol_enable_ipv6 = yes \
+                       -a $ol_cv_struct_sockaddr_storage = no ; then
+               AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage])
        fi
 fi
 
        fi
 fi
 
@@ -1211,7 +1254,8 @@ ol_link_tls=no
 if test $ol_with_tls != no ; then
        AC_CHECK_HEADERS(openssl/ssl.h ssl.h)
        
 if test $ol_with_tls != no ; then
        AC_CHECK_HEADERS(openssl/ssl.h ssl.h)
        
-       if test $ac_cv_header_openssl_ssl_h = yes -o $ac_cv_header_ssl_h = yes ; then
+       if test $ac_cv_header_openssl_ssl_h = yes \
+               -o $ac_cv_header_ssl_h = yes ; then
                AC_CHECK_LIB(ssl, SSLeay_add_ssl_algorithms, 
                        [have_ssleay=yes
                        need_rsaref=no],
                AC_CHECK_LIB(ssl, SSLeay_add_ssl_algorithms, 
                        [have_ssleay=yes
                        need_rsaref=no],
@@ -1275,47 +1319,6 @@ if test $ol_enable_lmpasswd != no; then
        AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
 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.
-AC_CHECK_FUNCS(                \
-       ctime_r                 \
-       gethostbyname_r gethostbyaddr_r \
-)
-
-if test "$ac_cv_func_ctime_r" = no ; then
-       ol_cv_func_ctime_r_nargs=0
-else
-       OL_FUNC_CTIME_R_NARGS
-dnl    OL_FUNC_CTIME_R_TYPE
-fi
-
-if test "$ac_cv_func_gethostbyname_r" = yes ; then
-       OL_FUNC_GETHOSTBYNAME_R_NARGS
-else
-       ol_cv_func_gethostbyname_r_nargs=0
-fi
-if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
-       OL_FUNC_GETHOSTBYADDR_R_NARGS
-else
-       ol_cv_func_gethostbyaddr_r_nargs=0
-fi
-
-if test "$ac_cv_func_ctime_r" = yes \
-       -a "$ol_cv_func_ctime_r_nargs" -ge 2 \
-       -a "$ol_cv_func_ctime_r_nargs" -le 3 \
-       -a "$ac_cv_func_gethostbyname_r" = yes \
-       -a "$ol_cv_func_gethostbyname_r_nargs" -ge 5 \
-       -a "$ol_cv_func_gethostbyname_r_nargs" -le 6 \
-       -a "$ac_cv_func_gethostbyaddr_r" = yes \
-       -a "$ol_cv_func_gethostbyaddr_r_nargs" -ge 5 \
-       -a "$ol_cv_func_gethostbyaddr_r_nargs" -le 6 \
-       ; then
-       AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_REENTRANT,1)
-fi
-
 dnl ----------------------------------------------------------------
 dnl Threads?
 ol_link_threads=no
 dnl ----------------------------------------------------------------
 dnl Threads?
 ol_link_threads=no
@@ -1347,12 +1350,9 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
        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
 
-               if test $ol_cv_pthread_version = final ; then
-                       AC_DEFINE(HAVE_PTHREADS_FINAL,1,
-                               [define if pthreads API compatible with final spec])
-               elif test $ol_cv_pthread_version = draft4 ; then
-                       AC_DEFINE(HAVE_PTHREADS_D4,1,
-                               [define if pthreads API compatible with draft4 spec])
+               if test $ol_cv_pthread_version != 0 ; then
+                       AC_DEFINE_UNQUOTED(HAVE_PTHREADS,$ol_cv_pthread_version,
+                               [define to pthreads API spec revision])
                else
                        AC_MSG_ERROR([unknown pthread version])
                fi
                else
                        AC_MSG_ERROR([unknown pthread version])
                fi
@@ -1447,9 +1447,6 @@ dnl                       [ol_cv_pthread_lpthread_lexc])
                OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
 
                if test $ol_link_threads != no ; then
                OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
 
                if test $ol_link_threads != no ; then
-                       AC_DEFINE(HAVE_PTHREADS,1,
-                               [define if you have POSIX Threads])
-
                        LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
 
                        dnl save flags
                        LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
 
                        dnl save flags
@@ -1459,11 +1456,12 @@ dnl                     [ol_cv_pthread_lpthread_lexc])
 
                        dnl All POSIX Thread (final) implementations should have
                        dnl sched_yield instead of pthread yield.
 
                        dnl All POSIX Thread (final) implementations should have
                        dnl sched_yield instead of pthread yield.
-                       dnl check for both
-                       AC_CHECK_FUNCS(sched_yield pthread_yield)
+                       dnl check for both, and thr_yield for Solaris
+                       AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
 
                        if test $ac_cv_func_sched_yield = no -a \
 
                        if test $ac_cv_func_sched_yield = no -a \
-                               $ac_cv_func_pthread_yield = no ; then
+                               $ac_cv_func_pthread_yield = no -a \
+                               $ac_cv_func_thr_yield = no ; then
                                dnl Digital UNIX has sched_yield() in -lrt
                                AC_CHECK_LIB(rt, sched_yield,
                                        [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
                                dnl Digital UNIX has sched_yield() in -lrt
                                AC_CHECK_LIB(rt, sched_yield,
                                        [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
@@ -1472,12 +1470,6 @@ dnl                      [ol_cv_pthread_lpthread_lexc])
                                        ac_cv_func_sched_yield=yes],
                                        [ac_cv_func_sched_yield=no])
                        fi
                                        ac_cv_func_sched_yield=yes],
                                        [ac_cv_func_sched_yield=no])
                        fi
-                       if test $ac_cv_func_sched_yield = no -a \
-                               $ac_cv_func_pthread_yield = no ; then
-                               dnl Solaris has sched_yield() stub in -lposix4
-                               dnl but we'll use thr_yield instead.
-                               AC_CHECK_FUNCS(thr_yield)
-                       fi
                        if test $ac_cv_func_sched_yield = no -a \
                                $ac_cv_func_pthread_yield = no -a \
                                "$ac_cv_func_thr_yield" = no ; then
                        if test $ac_cv_func_sched_yield = no -a \
                                $ac_cv_func_pthread_yield = no -a \
                                "$ac_cv_func_thr_yield" = no ; then
@@ -1598,18 +1590,19 @@ int main(argc, argv)
 #endif
 #endif
 
 #endif
 #endif
 
-#if HAVE_PTHREADS_D4
+#if HAVE_PTHREADS < 6
        pthread_create(&t, pthread_attr_default, task, NULL);
 #else
        pthread_create(&t, NULL, task, NULL);
 #endif
 
        pthread_create(&t, pthread_attr_default, task, NULL);
 #else
        pthread_create(&t, NULL, task, NULL);
 #endif
 
-#if HAVE_SCHED_YIELD
-       sched_yield();  /* make sure task runs first */
-#else
-#ifdef HAVE_PTHREAD_YIELD
-       pthread_yield();        /* make sure task runs first */
-#endif
+       /* make sure task runs first */
+#if HAVE_THR_YIELD
+       thr_yield();
+#elif defined( HAVE_SCHED_YIELD )
+       sched_yield();
+#elif defined( HAVE_PTHREAD_YIELD )
+       pthread_yield();
 #endif
 
        exit(2);
 #endif
 
        exit(2);
@@ -1826,8 +1819,7 @@ if test $ol_link_threads != no -a $ol_link_threads != nt ; then
        fi
 
 dnl When in thread environment, use 
        fi
 
 dnl When in thread environment, use 
-dnl            #if defined( HAVE_REENTRANT_FUNCTIONS ) \ 
-dnl                    || defined( HAVE_FUNC_R )
+dnl            #if defined( HAVE_REENTRANT_FUNCTIONS ) || defined( HAVE_FUNC_R )
 dnl                    func_r(...);
 dnl            #else
 dnl            #       if defined( HAVE_THREADS ) 
 dnl                    func_r(...);
 dnl            #else
 dnl            #       if defined( HAVE_THREADS ) 
@@ -1844,14 +1836,14 @@ dnl             _POSIX_REENTRANT_FUNCTIONS
 dnl            _POSIX_THREAD_SAFE_FUNCTIONS
 dnl            _POSIX_THREADSAFE_FUNCTIONS
 dnl
 dnl            _POSIX_THREAD_SAFE_FUNCTIONS
 dnl            _POSIX_THREADSAFE_FUNCTIONS
 dnl
-dnl            and is currently defined in lthread.h
+dnl            and is currently defined in <ldap_pvt_thread.h>
 dnl
 dnl
-dnl HAVE_THREADS is defined by lthread.h iff -UNO_THREADS
+dnl HAVE_THREADS is defined by <ldap_pvt_thread.h> iff -UNO_THREADS
 dnl 
 dnl 
-dnl libldap/*.c should only include <lthread.h> iff
+dnl libldap/*.c should only include <ldap_pvt_thread.h> iff
 dnl LDAP_R_COMPILE is defined.  ie:
 dnl            #ifdef LDAP_R_COMPILE
 dnl LDAP_R_COMPILE is defined.  ie:
 dnl            #ifdef LDAP_R_COMPILE
-dnl            #       include LDAP_R_COMPILE
+dnl            #       include <ldap_pvt_thread.h>
 dnl            #endif
 dnl
 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
 dnl            #endif
 dnl
 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
@@ -1896,6 +1888,32 @@ if test $ol_link_threads != no ; then
        AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1)
 fi
 
        AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1)
 fi
 
+dnl ----------------------------------------------------------------
+dnl Tests for reentrant functions necessary to build -lldap_r
+AC_CHECK_FUNCS(                \
+       ctime_r                 \
+       gethostbyname_r gethostbyaddr_r \
+)
+
+if test "$ac_cv_func_ctime_r" = no ; then
+       ol_cv_func_ctime_r_nargs=0
+else
+       OL_FUNC_CTIME_R_NARGS
+dnl    OL_FUNC_CTIME_R_TYPE
+fi
+
+if test "$ac_cv_func_gethostbyname_r" = yes ; then
+       OL_FUNC_GETHOSTBYNAME_R_NARGS
+else
+       ol_cv_func_gethostbyname_r_nargs=0
+fi
+if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
+       OL_FUNC_GETHOSTBYADDR_R_NARGS
+else
+       ol_cv_func_gethostbyaddr_r_nargs=0
+fi
+
 dnl ----------------------------------------------------------------
 ol_link_ldbm=no 
 
 dnl ----------------------------------------------------------------
 ol_link_ldbm=no 
 
@@ -2000,12 +2018,16 @@ if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
 fi
 
 dnl ----------------------------------------------------------------
 fi
 
 dnl ----------------------------------------------------------------
+
 if test $ol_enable_dynamic = yes -a $enable_shared = yes ; then
        BUILD_LIBS_DYNAMIC=shared
        AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
 if test $ol_enable_dynamic = yes -a $enable_shared = yes ; then
        BUILD_LIBS_DYNAMIC=shared
        AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
+       LTSTATIC=""
 else
        BUILD_LIBS_DYNAMIC=static
 else
        BUILD_LIBS_DYNAMIC=static
+       LTSTATIC="-static"
 fi
 fi
+AC_SUBST(LTSTATIC)dnl
 
 dnl ----------------------------------------------------------------
 if test $ol_enable_wrappers != no ; then
 
 dnl ----------------------------------------------------------------
 if test $ol_enable_wrappers != no ; then
@@ -2073,6 +2095,10 @@ dnl ----------------------------------------------------------------
 dnl SQL
 ol_link_sql=no
 if test $ol_enable_sql != no ; then
 dnl SQL
 ol_link_sql=no
 if test $ol_enable_sql != no ; then
+       AC_CHECK_HEADERS(sql.h sqlext.h,[],[
+               AC_MSG_ERROR([could not locate SQL headers])
+       ])
+
        AC_CHECK_LIB(iodbc,SQLDriverConnect,[have_iodbc=yes],[have_iodbc=no])
        if test $have_iodbc = yes ; then
                ol_link_sql="-liodbc"
        AC_CHECK_LIB(iodbc,SQLDriverConnect,[have_iodbc=yes],[have_iodbc=no])
        if test $have_iodbc = yes ; then
                ol_link_sql="-liodbc"
@@ -2175,11 +2201,23 @@ if test $ol_with_cyrus_sasl != no ; then
                        fi
                fi
        else
                        fi
                fi
        else
+               OL_SASL_COMPAT
+               if test $ol_cv_sasl_compat = no ; then
+                       ol_link_sasl=no
+                       AC_MSG_ERROR([Cyrus SASL library located but incompatible])
+               fi
+
                AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
                SASL_LIBS="$ol_link_sasl"
                if test $ol_enable_spasswd != no ; then
                        ol_link_spasswd=yes
                fi
                AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
                SASL_LIBS="$ol_link_sasl"
                if test $ol_enable_spasswd != no ; then
                        ol_link_spasswd=yes
                fi
+
+               ac_save_LIBS="$LIBS"
+               LIBS="$LIBS $ol_link_sasl"
+               AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1,
+                       [define if your SASL library has sasl_version()])])
+               LIBS="$ac_save_LIBS"
        fi
 
 else
        fi
 
 else
@@ -2260,10 +2298,16 @@ fi
 dnl ----------------------------------------------------------------
 dnl FreeBSD (and others) have crypt(3) in -lcrypt
 if test $ol_enable_crypt != no ; then
 dnl ----------------------------------------------------------------
 dnl FreeBSD (and others) have crypt(3) in -lcrypt
 if test $ol_enable_crypt != no ; then
+       save_LIBS="$LIBS"
+       LIBS="$TLS_LIBS $LIBS"
+
        AC_CHECK_FUNC(crypt, [have_crypt=yes], [
        AC_CHECK_FUNC(crypt, [have_crypt=yes], [
+               LIBS="$save_LIBS"
                AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
                        have_crypt=yes], [have_crypt=no])])
 
                AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
                        have_crypt=yes], [have_crypt=no])])
 
+       LIBS="$save_LIBS"
+
        if test $have_crypt = yes ; then
                AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
        else
        if test $have_crypt = yes ; then
                AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
        else
@@ -2385,7 +2429,7 @@ AC_FUNC_VPRINTF
 
 if test $ac_cv_func_vprintf = yes ; then
        dnl check for vsnprintf
 
 if test $ac_cv_func_vprintf = yes ; then
        dnl check for vsnprintf
-       AC_CHECK_FUNCS(vsnprintf vsprintf)
+       AC_CHECK_FUNCS(snprintf vsnprintf)
 fi
 
 AC_CHECK_FUNCS(                \
 fi
 
 AC_CHECK_FUNCS(                \
@@ -2396,6 +2440,7 @@ AC_CHECK_FUNCS(           \
        endpwent                \
        fcntl                   \
        flock                   \
        endpwent                \
        fcntl                   \
        flock                   \
+       fstat                   \
        getdtablesize   \
        getgrgid                \
        gethostname             \
        getdtablesize   \
        getgrgid                \
        gethostname             \
@@ -2439,15 +2484,27 @@ AC_CHECK_FUNCS(         \
        wait4                   \
        write                   \
        send                    \
        wait4                   \
        write                   \
        send                    \
+       sendmsg                 \
        sendto                  \
 )
 
 dnl We actually may need to replace more than this.
        sendto                  \
 )
 
 dnl We actually may need to replace more than this.
-AC_REPLACE_FUNCS(getopt)
+AC_REPLACE_FUNCS(getopt getpeereid)
 
 if test "$ac_cv_func_getopt" != yes; then
        LIBSRCS="$LIBSRCS getopt.c"
 fi
 
 if test "$ac_cv_func_getopt" != yes; then
        LIBSRCS="$LIBSRCS getopt.c"
 fi
+if test "$ac_cv_func_getpeereid" != yes; then
+       LIBSRCS="$LIBSRCS getpeereid.c"
+fi
+if test "$ac_cv_func_snprintf" != yes -o "$ac_cv_func_vsnprintf" != yes; then
+       if test "$ac_cv_func_snprintf" != yes; then
+               AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
+       fi
+       if test "$ac_cv_func_vsnprintf" != yes; then
+               AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine])
+       fi
+fi
 
 dnl ----------------------------------------------------------------
 # Check Configuration
 
 dnl ----------------------------------------------------------------
 # Check Configuration
@@ -2456,6 +2513,24 @@ OL_SYS_ERRLIST
 dnl ----------------------------------------------------------------
 dnl Sort out defines
 
 dnl ----------------------------------------------------------------
 dnl Sort out defines
 
+if test "$ol_enable_slapi" != no ; then
+       dnl This check is donel also if --enable-modules is used;
+       dnl it is duplicated here, 'cause it'd be cached anyway
+       AC_CHECK_HEADERS(ltdl.h)
+
+       if test $ac_cv_header_ltdl_h != yes ; then
+               AC_MSG_ERROR([could not locate <ltdl.h>])
+       fi
+       AC_CHECK_LIB(ltdl, lt_dlinit, [
+               SLAPI_LIBS=-lltdl
+               LIBSLAPI=./libslapi.a
+               LIBSLAPITOOLS=../libslapi.a
+               AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
+       ],[AC_MSG_ERROR([could not locate libtool -lltdl])])
+
+       AC_DEFINE(LDAP_SLAPI,1, [define this to add SLAPI code])
+fi
+
 if test "$ol_enable_debug" != no ; then
        AC_DEFINE(LDAP_DEBUG,1,
                [define this to add debugging code])
 if test "$ol_enable_debug" != no ; then
        AC_DEFINE(LDAP_DEBUG,1,
                [define this to add debugging code])
@@ -2464,10 +2539,6 @@ if test "$ol_enable_syslog" = yes ; then
        AC_DEFINE(LDAP_SYSLOG,1,
                [define this to add syslog code])
 fi
        AC_DEFINE(LDAP_SYSLOG,1,
                [define this to add syslog code])
 fi
-if test "$ol_enable_cache" = no ; then
-       AC_DEFINE(LDAP_NOCACHE,1,
-               [define this to remove -lldap cache support])
-fi
 if test "$ol_link_kbind" != no ; then
        AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND,LDAP_VENDOR_VERSION)
 fi
 if test "$ol_link_kbind" != no ; then
        AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND,LDAP_VENDOR_VERSION)
 fi
@@ -2496,9 +2567,9 @@ fi
 if test "$ol_link_spasswd" != no ; then
        AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
 fi
 if test "$ol_link_spasswd" != no ; then
        AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
 fi
-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_multimaster" != no ; then
+       AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
+fi
 if test "$ol_enable_phonetic" != no ; then
        AC_DEFINE(SLAPD_PHONETIC,1,[define to support phonetic])
 fi
 if test "$ol_enable_phonetic" != no ; then
        AC_DEFINE(SLAPD_PHONETIC,1,[define to support phonetic])
 fi
@@ -2524,7 +2595,6 @@ if test "$ol_enable_bdb" != no ; then
                        [define to support dynamic BDB backend])
                BUILD_BDB=mod
                BUILD_BDB_DYNAMIC=shared
                        [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"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
@@ -2540,7 +2610,6 @@ if test "$ol_link_dnssrv" != no ; then
                        [define to support dynamic DNS SRV backend])
                BUILD_DNSSRV=mod
                BUILD_DNSSRV_DYNAMIC=shared
                        [define to support dynamic DNS SRV backend])
                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"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
@@ -2556,7 +2625,6 @@ if test "$ol_enable_ldap" != no ; then
                        [define to support dynamic LDAP backend])
                BUILD_LDAP=mod
                BUILD_LDAP_DYNAMIC=shared
                        [define to support dynamic LDAP backend])
                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"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
@@ -2567,13 +2635,11 @@ if test "$ol_link_ldbm" != no -a $ol_enable_ldbm != no; then
        AC_DEFINE(SLAPD_LDBM,1,[define to support LDBM backend])
        BUILD_SLAPD=yes
        BUILD_LDBM=yes
        AC_DEFINE(SLAPD_LDBM,1,[define to support LDBM backend])
        BUILD_SLAPD=yes
        BUILD_LDBM=yes
-       LDBM_LIB="-lldbm"
        if test "$ol_with_ldbm_module" != static ; then
                AC_DEFINE(SLAPD_LDBM_DYNAMIC,1,
                        [define to support dynamic LDBM backend])
                BUILD_LDBM=mod
                BUILD_LDBM_DYNAMIC=shared
        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"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldbm"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldbm"
@@ -2590,12 +2656,13 @@ if test "$ol_enable_meta" != no ; then
        AC_DEFINE(SLAPD_META,1,[define to support LDAP Metadirectory backend])
        BUILD_SLAPD=yes
        BUILD_META=yes
        AC_DEFINE(SLAPD_META,1,[define to support LDAP Metadirectory backend])
        BUILD_SLAPD=yes
        BUILD_META=yes
+       BUILD_LDAP=yes
+       BUILD_REWRITE=yes
        if test "$ol_with_meta_module" != static ; then
                AC_DEFINE(SLAPD_META_DYNAMIC,1,
                        [define to support dynamic LDAP Metadirectory backend])
                BUILD_META=mod
                BUILD_META_DYNAMIC=shared
        if test "$ol_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"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
@@ -2611,7 +2678,6 @@ if test "$ol_enable_monitor" != no ; then
                        [define to support dynamic cn=Monitor backend])
                BUILD_MONITOR=mod
                BUILD_MONITOR_DYNAMIC=shared
                        [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"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
@@ -2627,7 +2693,6 @@ if test "$ol_enable_null" != no ; then
                        [define to support dynamic NULL backend])
                BUILD_NULL=mod
                BUILD_NULL_DYNAMIC=shared
                        [define to support dynamic NULL backend])
                BUILD_NULL=mod
                BUILD_NULL_DYNAMIC=shared
-               SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-null/back_null.la"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
@@ -2643,7 +2708,6 @@ if test "$ol_enable_passwd" != no ; then
                        [define to support dynamic PASSWD backend])
                BUILD_PASSWD=mod
                BUILD_PASSWD_DYNAMIC=shared
                        [define to support dynamic PASSWD backend])
                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"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
@@ -2659,7 +2723,6 @@ if test "$ol_link_perl" != no ; then
                        [define to support dynamic PERL backend])
                BUILD_PERL=mod
                BUILD_PERL_DYNAMIC=shared
                        [define to support dynamic PERL backend])
                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"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
@@ -2667,6 +2730,9 @@ if test "$ol_link_perl" != no ; then
 fi
 
 if test "$ol_enable_shell" != no ; then
 fi
 
 if test "$ol_enable_shell" != no ; then
+       if test "$ol_link_thread" != no ; then
+               AC_MSG_WARN([Use of --without-threads is recommended with back-shell])
+       fi
        AC_DEFINE(SLAPD_SHELL,1,[define to support SHELL backend])
        BUILD_SLAPD=yes
        BUILD_SHELL=yes
        AC_DEFINE(SLAPD_SHELL,1,[define to support SHELL backend])
        BUILD_SLAPD=yes
        BUILD_SHELL=yes
@@ -2675,7 +2741,6 @@ if test "$ol_enable_shell" != no ; then
                        [define to support dynamic SHELL backend])
                BUILD_SHELL=mod
                BUILD_SHELL_DYNAMIC=shared
                        [define to support dynamic SHELL backend])
                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"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
@@ -2691,7 +2756,6 @@ if test "$ol_enable_tcl" != no ; then
                        [define to support dynamic TCL backend])
                BUILD_TCL=mod
                BUILD_TCL_DYNAMIC=shared
                        [define to support dynamic TCL backend])
                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"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-tcl"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-tcl"
@@ -2707,7 +2771,6 @@ if test "$ol_link_sql" != no ; then
                        [define to support dynamic SQL backend])
                BUILD_SQL=mod
                BUILD_SQL_DYNAMIC=shared
                        [define to support dynamic SQL backend])
                BUILD_SQL=mod
                BUILD_SQL_DYNAMIC=shared
-               SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-sql/back_sql.la"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
                SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
        else
                SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
@@ -2724,6 +2787,12 @@ if test "$ol_enable_rewrite" != no ; then
        BUILD_REWRITE=yes
 fi
 
        BUILD_REWRITE=yes
 fi
 
+if test "$ol_enable_slapi" != no ; then
+       AC_DEFINE(ENABLE_SLAPI,1,[define to enable slapi library])
+       BUILD_SLAPI=yes
+       SLAPD_SLAPI_DEPEND=libslapi.a
+fi
+
 dnl ----------------------------------------------------------------
 
 dnl
 dnl ----------------------------------------------------------------
 
 dnl
@@ -2734,16 +2803,23 @@ dnl
 if test "$ac_cv_mingw32" = yes ; then
        PLAT=NT
        SLAPD_MODULES_LDFLAGS=
 if test "$ac_cv_mingw32" = yes ; then
        PLAT=NT
        SLAPD_MODULES_LDFLAGS=
-       SLAPD_MODULES_LIST=
 else
        PLAT=UNIX
 fi
 
 else
        PLAT=UNIX
 fi
 
+if test -z "$SLAPD_STATIC_BACKENDS"; then
+       SLAPD_NO_STATIC='#'
+else
+       SLAPD_NO_STATIC=
+fi
+
 AC_SUBST(LIBSRCS)
 AC_SUBST(PLAT)
 AC_SUBST(BUILD_LIBS_DYNAMIC)
 
 AC_SUBST(BUILD_SLAPD)
 AC_SUBST(LIBSRCS)
 AC_SUBST(PLAT)
 AC_SUBST(BUILD_LIBS_DYNAMIC)
 
 AC_SUBST(BUILD_SLAPD)
+  AC_SUBST(BUILD_SLAPI)
+  AC_SUBST(SLAPD_SLAPI_DEPEND)
   AC_SUBST(BUILD_BDB)
   AC_SUBST(BUILD_DNSSRV)
   AC_SUBST(BUILD_LDAP)
   AC_SUBST(BUILD_BDB)
   AC_SUBST(BUILD_DNSSRV)
   AC_SUBST(BUILD_LDAP)
@@ -2770,8 +2846,6 @@ AC_SUBST(BUILD_SLAPD)
   AC_SUBST(BUILD_TCL_DYNAMIC)
 AC_SUBST(BUILD_SLURPD)
 
   AC_SUBST(BUILD_TCL_DYNAMIC)
 AC_SUBST(BUILD_SLURPD)
 
-AC_SUBST(LDBM_LIB)
-
 AC_SUBST(LDAP_LIBS)
 AC_SUBST(LDIF_LIBS)
 AC_SUBST(SLAPD_LIBS)
 AC_SUBST(LDAP_LIBS)
 AC_SUBST(LDIF_LIBS)
 AC_SUBST(SLAPD_LIBS)
@@ -2784,8 +2858,8 @@ 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_NO_STATIC)
 AC_SUBST(SLAPD_STATIC_BACKENDS)
 AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
 
 AC_SUBST(SLAPD_STATIC_BACKENDS)
 AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
 
@@ -2800,6 +2874,9 @@ AC_SUBST(SASL_LIBS)
 AC_SUBST(TERMCAP_LIBS)
 AC_SUBST(TLS_LIBS)
 AC_SUBST(MODULES_LIBS)
 AC_SUBST(TERMCAP_LIBS)
 AC_SUBST(TLS_LIBS)
 AC_SUBST(MODULES_LIBS)
+AC_SUBST(SLAPI_LIBS)
+AC_SUBST(LIBSLAPI)
+AC_SUBST(LIBSLAPITOOLS)
 AC_SUBST(AUTH_LIBS)
 
 AC_SUBST(SLAPD_SLP_LIBS)
 AC_SUBST(AUTH_LIBS)
 
 AC_SUBST(SLAPD_SLP_LIBS)
@@ -2826,10 +2903,6 @@ doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk \
 doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk \
 doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk \
 clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk \
 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/mail500/Makefile:build/top.mk:clients/mail500/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 \
 include/Makefile:build/top.mk:include/Makefile.in \
 libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk     \
 clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk \
 include/Makefile:build/top.mk:include/Makefile.in \
 libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk     \
@@ -2857,6 +2930,7 @@ servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile
 servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/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/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/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/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk  \
 servers/slapd/tools/Makefile:build/top.mk:servers/slapd/tools/Makefile.in \
 servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk \
 tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk \
 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 \