]> git.sur5r.net Git - openldap/blobdiff - configure.in
Add gettext detection
[openldap] / configure.in
index 899cd51b8438772ba48efa9233d8042518cd8da5..e9c7643152b20643a10ae2e7253ed006ae2aa119 100644 (file)
@@ -1,6 +1,6 @@
 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
@@ -9,42 +9,21 @@ dnl http://www.OpenLDAP.org/license.html or in file LICENSE in the
 dnl top-level directory of the distribution.
 dnl
 dnl ----------------------------------------------------------------
-dnl Redefine AC_INIT_BINSH to provide RCS IDs and copyright notice
-dnl at top of generated configure script.  Prints simple copyright.
-define([AC_INIT_BINSH],
-[[#! /bin/sh
-# $]OpenLDAP[$
-# from] translit([$OpenLDAP$], $")] [
-
-# Copyright 1998-2002 The OpenLDAP Foundation.  All Rights Reserved.
-# 
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted only as authorized by the OpenLDAP
-# Public License.  A copy of this license is available at
-# 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 " Restrictions apply, see COPYRIGHT and LICENSE files."
+AC_COPYRIGHT(
+[Copyright 1998-2003 The OpenLDAP Foundation. All Rights Reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted only as authorized by the OpenLDAP
+Public License.  A copy of this license is available at
+http://www.OpenLDAP.org/license.html or in file LICENSE in the
+top-level directory of the distribution.
 ])dnl
-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.sh)dnl
-
-# set unset (borrowed from autoconf 2.49c)
-if (OL_FOO=OL_FOO; unset OL_FOO) >/dev/null 2>&1; then
-  ol_unset=unset
-else
-  ol_unset=false
-fi
-# unset CDPATH
-$ol_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
 
-AC_CONFIG_AUX_DIR(build)dnl
+AC_INIT([OpenLDAP],,[<http://www.openldap.org/its/>])
+AC_CONFIG_SRCDIR([include/ldap.h])dnl
+AC_CONFIG_AUX_DIR([build])dnl
 
 eval `$ac_aux_dir/version.sh`
 if test -z "$OL_STRING"; then
@@ -60,25 +39,33 @@ fi
 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`"
+
+OPENLDAP_CVS=""
+if test -d $ac_aux_dir/CVS; then
+       OPENLDAP_CVS="(from CVS sources) "
+fi
 
-echo "Configuring $TB$OL_STRING$TN ..."
+echo "Configuring ${TB}${OL_STRING}${TN} ${OPENLDAP_CVS}..."
 
 dnl Determine host platform
 dnl            we try not to use this for much
 AC_CANONICAL_SYSTEM
 
-AM_INIT_AUTOMAKE([$OL_PACKAGE],[$OL_VERSION], [no defines])dnl
-AC_SUBST(PACKAGE)dnl
-AC_SUBST(VERSION)dnl
-AC_DEFINE_UNQUOTED(OPENLDAP_PACKAGE,"$PACKAGE",Package)
-AC_DEFINE_UNQUOTED(OPENLDAP_VERSION,"$VERSION",Version)
+OPENLDAP_PACKAGE=$OL_PACKAGE
+OPENLDAP_VERSION=$OL_VERSION
 
-AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION,$OL_API_INC,Version)
-AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MAJOR,$OL_MAJOR,Major)
-AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MINOR,$OL_MINOR,Minor)
-AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_PATCH,$OL_PATCH,Patch)
+AC_SUBST(OPENLDAP_PACKAGE)
+AC_SUBST(OPENLDAP_VERSION)
+
+AC_DEFINE_UNQUOTED(OPENLDAP_PACKAGE,$OL_PACKAGE,OpenLDAP Package)
+AC_DEFINE_UNQUOTED(OPENLDAP_VERSION,$OL_VERSION,OpenLDAP Version)
+
+AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION,$OL_API_INC,Vendor Version)
+AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MAJOR,$OL_MAJOR,Vendor Major)
+AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MINOR,$OL_MINOR,Vendor Minor)
+AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_PATCH,$OL_PATCH,Vendor Patch)
 
 OPENLDAP_LIBVERSION=$OL_API_LIB
 AC_SUBST(OPENLDAP_LIBVERSION)dnl
@@ -86,10 +73,10 @@ AC_SUBST(OPENLDAP_LIBVERSION)dnl
 OPENLDAP_RELEASE_DATE="$OL_RELEASE_DATE"
 AC_SUBST(OPENLDAP_RELEASE_DATE)dnl
 
-dnl We use autoconf features new to 2.13.
-dnl aclocal.m4 should be built using aclocal from automake 1.4
-dnl libtool 1.4.2 should be installed.
-AC_PREREQ(2.13)dnl Required Autoconf version
+dnl We use autoconf features new to 2.57.
+dnl aclocal.m4 should be built using aclocal from automake 1.7.3
+dnl libtool 1.4.3 should be installed.
+AC_PREREQ(2.57)dnl Required Autoconf version
 
 AC_CONFIG_HEADER(include/portable.h include/ldap_features.h include/lber_types.h)dnl
 
@@ -126,10 +113,11 @@ AC_SUBST(ldap_subdir)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(cache,[  --enable-cache    enable caching (experimental)], no)dnl
-OL_ARG_ENABLE(referrals,[  --enable-referrals    enable LDAPv2+ Referrals (experimental)], 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
@@ -143,7 +131,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(fetch,[  --with-fetch                with freeBSD 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])
@@ -168,7 +156,6 @@ 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(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
@@ -178,9 +165,11 @@ ol_enable_multimaster=${ol_enable_multimaster-no}
 OL_ARG_ENABLE(phonetic,[    --enable-phonetic    enable phonetic/soundex], 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(slp, [    --enable-slp          enable SLPv2 support], 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
 
+
 dnl SLAPD Backend options
 OL_ARG_ENABLE(bdb,[    --enable-bdb      enable Berkeley DB backend], yes)dnl
 OL_ARG_WITH(bdb_module,[    --with-bdb-module     module type static|dynamic], static,
@@ -233,7 +222,6 @@ dnl ----------------------------------------------------------------
 AC_ARG_WITH(xxliboptions,[
 Library Generation & Linking Options])
 AC_ENABLE_STATIC
-dnl AC_DISABLE_SHARED
 AC_ENABLE_SHARED
 
 dnl ----------------------------------------------------------------
@@ -242,6 +230,9 @@ dnl General "enable" options
 # validate options
 if test $ol_enable_slapd = no ; then
        dnl SLAPD was specificallly disabled
+       if test $ol_enable_slapi = yes ; then
+               AC_MSG_WARN([slapd disabled, ignoring --enable-slapi argument])
+       fi
        if test $ol_enable_bdb = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-bdb argument])
        fi
@@ -346,6 +337,7 @@ if test $ol_enable_slapd = no ; then
        fi
 
        # force settings to no
+       ol_enable_slapi=no
        ol_enable_bdb=no
        ol_enable_dnssrv=no
        ol_enable_ldap=no
@@ -516,6 +508,9 @@ BUILD_SLURPD=no
 
 BUILD_THREAD=no
 
+BUILD_SLAPI=no
+SLAPD_SLAPI_DEPEND=
+
 BUILD_BDB=no
 BUILD_DNSSRV=no
 BUILD_LDAP=no
@@ -564,6 +559,9 @@ SASL_LIBS=
 TERMCAP_LIBS=
 TLS_LIBS=
 MODULES_LIBS=
+SLAPI_LIBS=
+LIBSLAPI=
+LIBSLAPITOOLS=
 AUTH_LIBS=
 
 SLAPD_SLP_LIBS=
@@ -571,7 +569,9 @@ SLAPD_SLP_LIBS=
 dnl ================================================================
 dnl Checks for programs
 
+AC_PROG_MAKE_SET
 AC_PROG_INSTALL
+AM_GNU_GETTEXT([external])
 
 AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
 
@@ -641,14 +641,9 @@ AC_LIBTOOL_WIN32_DLL
 AC_LIBTOOL_DLOPEN
 AC_PROG_LIBTOOL
 
-AC_PROG_AWK
 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)
-
 dnl ----------------------------------------------------------------
 dnl Perl
 ol_link_perl=no
@@ -701,7 +696,7 @@ AC_MINGW32
 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
@@ -810,7 +805,6 @@ AC_CHECK_HEADERS(   \
        psap.h                  \
        pwd.h                   \
        process.h               \
-       resolv.h                \
        sgtty.h                 \
        shadow.h                \
        stddef.h                \
@@ -825,9 +819,11 @@ AC_CHECK_HEADERS(  \
        sys/resource.h  \
        sys/select.h    \
        sys/socket.h    \
+       sys/stat.h              \
        sys/syslog.h    \
        sys/time.h              \
        sys/types.h             \
+       sys/uio.h               \
        syslog.h                \
        termios.h               \
        unistd.h                \
@@ -835,6 +831,12 @@ AC_CHECK_HEADERS(  \
        winsock2.h              \
 )
 
+AC_CHECK_HEADERS(sys/ucred.h,,,[#include <sys/types.h>])
+AC_CHECK_HEADERS(resolv.h,,,[
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <arpa/nameser.h>
+])
 
 dnl ----------------------------------------------------------------
 dnl Checks for libraries
@@ -1012,7 +1014,7 @@ fi
 dnl ----------------------------------------------------------------
 dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
 dnl PF_LOCAL may use getaddrinfo in available
-AC_CHECK_FUNCS( getaddrinfo gai_strerror inet_ntop )
+AC_CHECK_FUNCS( getaddrinfo getnameinfo gai_strerror inet_ntop )
 
 ol_link_ipv6=no
 if test $ac_cv_func_getaddrinfo = no -o $ac_cv_func_inet_ntop = no ; then
@@ -1109,7 +1111,7 @@ if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
 
                else
                        have_krb5=no
-                       AC_MSG_WARN([Unrecongized Kerberos5 Implementation])
+                       AC_MSG_WARN([Unrecognized Kerberos5 Implementation])
                fi
 
                if test $have_krb5 = yes ; then
@@ -1242,7 +1244,8 @@ ol_link_tls=no
 if test $ol_with_tls != no ; then
        AC_CHECK_HEADERS(openssl/ssl.h ssl.h)
        
-       if test $ac_cv_header_openssl_ssl_h = yes -o $ac_cv_header_ssl_h = yes ; then
+       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],
@@ -1306,47 +1309,6 @@ if test $ol_enable_lmpasswd != no; then
        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
@@ -1484,11 +1446,12 @@ dnl                     [ol_cv_pthread_lpthread_lexc])
 
                        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 \
-                               $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"
@@ -1497,12 +1460,6 @@ dnl                      [ol_cv_pthread_lpthread_lexc])
                                        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
@@ -1629,12 +1586,13 @@ int main(argc, argv)
        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);
@@ -1851,8 +1809,7 @@ if test $ol_link_threads != no -a $ol_link_threads != nt ; then
        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 ) 
@@ -1869,14 +1826,14 @@ dnl             _POSIX_REENTRANT_FUNCTIONS
 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 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 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            #       include LDAP_R_COMPILE
+dnl            #       include <ldap_pvt_thread.h>
 dnl            #endif
 dnl
 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
@@ -1921,6 +1878,32 @@ if test $ol_link_threads != no ; then
        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 
 
@@ -2025,12 +2008,16 @@ if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
 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])
+       LTSTATIC=""
 else
        BUILD_LIBS_DYNAMIC=static
+       LTSTATIC="-static"
 fi
+AC_SUBST(LTSTATIC)dnl
 
 dnl ----------------------------------------------------------------
 if test $ol_enable_wrappers != no ; then
@@ -2098,6 +2085,10 @@ dnl ----------------------------------------------------------------
 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"
@@ -2297,10 +2288,16 @@ fi
 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], [
+               LIBS="$save_LIBS"
                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
@@ -2322,7 +2319,7 @@ if test $ol_enable_proctitle != no ; then
                        [have_setproctitle=yes
                        LUTIL_LIBS="$LUTIL_LIBS -lutil"],
                        [have_setproctitle=no
-                       LIBOBJS="$LIBOBJS setproctitle.o"
+                       AC_LIBOBJ([setproctitle])
                        LIBSRCS="$LIBSRCS setproctitle.c"])])
 
        if test $have_setproctitle = yes ; then
@@ -2353,12 +2350,12 @@ dnl Checks for typedefs, structures, and compiler characteristics.
 AC_TYPE_MODE_T
 AC_TYPE_OFF_T
 AC_TYPE_PID_T
-AM_TYPE_PTRDIFF_T
+AC_CHECK_TYPES([ptrdiff_t, uintmax_t])
 AC_TYPE_SIGNAL
 AC_TYPE_SIZE_T
 
-AC_CHECK_TYPE(ssize_t, [signed int])
-AC_CHECK_TYPE(caddr_t, [char *])
+AC_CHECK_TYPES([ssize_t, signed int])
+AC_CHECK_TYPES([caddr_t, char *])
 
 OL_TYPE_SOCKLEN_T
 AC_STRUCT_ST_BLKSIZE
@@ -2453,7 +2450,6 @@ AC_CHECK_FUNCS(           \
        read                    \
        recv                    \
        recvfrom                \
-       recvmsg                 \
        setpwfile               \
        setgid                  \
        setegid                 \
@@ -2478,23 +2474,26 @@ AC_CHECK_FUNCS(         \
        wait4                   \
        write                   \
        send                    \
+       sendmsg                 \
        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_getpeereid" != yes; then
+       OL_MSGHDR_MSG_ACCRIGHTS
+       LIBSRCS="$LIBSRCS getpeereid.c"
+fi
 if test "$ac_cv_func_snprintf" != yes -o "$ac_cv_func_vsnprintf" != yes; then
-       LIBSRCS="$LIBSRCS stdio.c"
-       LIBOBJS="$LIBOBJS stdio.o"
        if test "$ac_cv_func_snprintf" != yes; then
-               AC_DEFINE(snprintf, lutil_snprintf, [define to snprintf routine])
+               AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
        fi
        if test "$ac_cv_func_vsnprintf" != yes; then
-               AC_DEFINE(vsnprintf, lutil_vsnprintf, [define to snprintf routine])
+               AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine])
        fi
 fi
 
@@ -2505,6 +2504,24 @@ OL_SYS_ERRLIST
 dnl ----------------------------------------------------------------
 dnl Sort out defines
 
+if test "$ol_enable_slapi" != no ; then
+       dnl This check is donel also if --enable-modules is used;
+       dnl 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])
@@ -2513,10 +2530,6 @@ if test "$ol_enable_syslog" = yes ; then
        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
@@ -2708,6 +2721,9 @@ if test "$ol_link_perl" != 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
@@ -2762,6 +2778,12 @@ if test "$ol_enable_rewrite" != no ; then
        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
@@ -2787,6 +2809,8 @@ 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)
@@ -2841,6 +2865,9 @@ AC_SUBST(SASL_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)
@@ -2858,47 +2885,47 @@ dnl ----------------------------------------------------------------
 dnl final output
 dnl
 
-AC_OUTPUT( \
-Makefile:build/top.mk:Makefile.in:build/dir.mk \
-doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk \
-doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk \
-doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk \
-doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk \
-doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk \
-doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk \
-clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk \
-clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk \
-include/Makefile:build/top.mk:include/Makefile.in \
-libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk     \
-libraries/libavl/Makefile:build/top.mk:libraries/libavl/Makefile.in:build/lib.mk:build/lib-static.mk   \
-libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk \
-libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk \
-libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk     \
-libraries/libldbm/Makefile:build/top.mk:libraries/libldbm/Makefile.in:build/lib.mk:build/lib-static.mk \
-libraries/libldif/Makefile:build/top.mk:libraries/libldif/Makefile.in:build/lib.mk:build/lib-static.mk \
-libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk \
-libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk       \
-libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk \
-servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk \
-servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk \
-servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk \
-servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk \
-servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk \
-servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/mod.mk \
-servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk \
-servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk \
-servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk \
-servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk \
-servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk \
-servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk \
-servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk \
-servers/slapd/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 \
-tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk \
-tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk \
-,[
-date > stamp-h
-echo Please run \"make depend\" to build dependencies
-])
+AC_CONFIG_FILES(Makefile:build/top.mk:Makefile.in:build/dir.mk)
+AC_CONFIG_FILES(doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk)
+AC_CONFIG_FILES(doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk)
+AC_CONFIG_FILES(doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk)
+AC_CONFIG_FILES(doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk)
+AC_CONFIG_FILES(doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk)
+AC_CONFIG_FILES(doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk)
+AC_CONFIG_FILES(clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk)
+AC_CONFIG_FILES(clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk )
+AC_CONFIG_FILES(include/Makefile:build/top.mk:include/Makefile.in)
+AC_CONFIG_FILES(libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk)
+AC_CONFIG_FILES(libraries/libavl/Makefile:build/top.mk:libraries/libavl/Makefile.in:build/lib.mk:build/lib-static.mk)
+AC_CONFIG_FILES(libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk)
+AC_CONFIG_FILES(libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk)
+AC_CONFIG_FILES(libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk)
+AC_CONFIG_FILES(libraries/libldbm/Makefile:build/top.mk:libraries/libldbm/Makefile.in:build/lib.mk:build/lib-static.mk)
+AC_CONFIG_FILES(libraries/libldif/Makefile:build/top.mk:libraries/libldif/Makefile.in:build/lib.mk:build/lib-static.mk)
+AC_CONFIG_FILES(libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk)
+AC_CONFIG_FILES(libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk)
+AC_CONFIG_FILES(libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk)
+AC_CONFIG_FILES(servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk)
+AC_CONFIG_FILES(servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk)
+AC_CONFIG_FILES(servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk)
+AC_CONFIG_FILES(servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk)
+AC_CONFIG_FILES(servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk)
+AC_CONFIG_FILES(servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/mod.mk)
+AC_CONFIG_FILES(servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk)
+AC_CONFIG_FILES(servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk)
+AC_CONFIG_FILES(servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk)
+AC_CONFIG_FILES(servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk)
+AC_CONFIG_FILES(servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk)
+AC_CONFIG_FILES(servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk)
+AC_CONFIG_FILES(servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk)
+AC_CONFIG_FILES(servers/slapd/back-tcl/Makefile:build/top.mk:servers/slapd/back-tcl/Makefile.in:build/mod.mk)
+AC_CONFIG_FILES(servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk)
+AC_CONFIG_FILES(servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk)
+AC_CONFIG_FILES(servers/slapd/tools/Makefile:build/top.mk:servers/slapd/tools/Makefile.in)
+AC_CONFIG_FILES(servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk)
+AC_CONFIG_FILES(tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk)
+AC_CONFIG_FILES(tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk)
+
+AC_CONFIG_COMMANDS([time-stamp], [date >stamp-h
+echo Please run \"make depend\" to build dependencies])
+AC_OUTPUT