]> git.sur5r.net Git - openldap/blobdiff - configure.in
Update for release
[openldap] / configure.in
index d1ef9c248cb96775133b726f15d54fd9960979b4..ede3d8e67b70f27c0d396a35d8d9104a93a519e0 100644 (file)
@@ -1,7 +1,7 @@
 dnl $OpenLDAP$
 dnl This work is part of OpenLDAP Software <http://www.openldap.org/>.
 dnl
 dnl $OpenLDAP$
 dnl This work is part of OpenLDAP Software <http://www.openldap.org/>.
 dnl
-dnl Copyright 1998-2005 The OpenLDAP Foundation.
+dnl Copyright 1998-2007 The OpenLDAP Foundation.
 dnl All rights reserved.
 dnl
 dnl Redistribution and use in source and binary forms, with or without
 dnl All rights reserved.
 dnl
 dnl Redistribution and use in source and binary forms, with or without
@@ -23,10 +23,11 @@ define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
 define([AC_LIBTOOL_LANG_GCJ_CONFIG], [:])dnl
 dnl ================================================================
 dnl Configure.in for OpenLDAP
 define([AC_LIBTOOL_LANG_GCJ_CONFIG], [:])dnl
 dnl ================================================================
 dnl Configure.in for OpenLDAP
-AC_COPYRIGHT([[Copyright 1998-2005 The OpenLDAP Foundation. All rights reserved.
+AC_COPYRIGHT([[Copyright 1998-2007 The OpenLDAP Foundation. All rights reserved.
 Restrictions apply, see COPYRIGHT and LICENSE files.]])
 AC_REVISION([$OpenLDAP$])
 AC_INIT([OpenLDAP],,[http://www.openldap.org/its/])
 Restrictions apply, see COPYRIGHT and LICENSE files.]])
 AC_REVISION([$OpenLDAP$])
 AC_INIT([OpenLDAP],,[http://www.openldap.org/its/])
+m4_define([AC_PACKAGE_BUGREPORT],[<http://www.openldap.org/its/>])
 AC_CONFIG_SRCDIR(build/version.sh)dnl
 dnl ----------------------------------------------------------------
 dnl OpenLDAP Autoconf Macros
 AC_CONFIG_SRCDIR(build/version.sh)dnl
 dnl ----------------------------------------------------------------
 dnl OpenLDAP Autoconf Macros
@@ -40,7 +41,7 @@ if test -z "$OL_STRING"; then
        AC_MSG_ERROR([could not determine version])
 fi
 
        AC_MSG_ERROR([could not determine version])
 fi
 
-if test -f "$ac_aux_dir/shtool" -a ! -d $ac_aux_dir/shtool; then
+if test -f "$ac_aux_dir/shtool" && test ! -d $ac_aux_dir/shtool; then
        ac_cv_shtool="$ac_aux_dir/shtool"
 else
        AC_MSG_ERROR([no shtool found in $ac_aux_dir])
        ac_cv_shtool="$ac_aux_dir/shtool"
 else
        AC_MSG_ERROR([no shtool found in $ac_aux_dir])
@@ -92,7 +93,7 @@ AH_TOP([
 /* begin of portable.h.pre */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
 /* begin of portable.h.pre */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2005 The OpenLDAP Foundation
+ * Copyright 1998-2007 The OpenLDAP Foundation
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -245,13 +246,16 @@ ol_with_kerberos=${ol_with_kerberos-auto}
 OL_ARG_WITH(threads,[  --with-threads    with threads],
        auto, [auto nt posix mach pth lwp yes no manual] )
 OL_ARG_WITH(tls,[  --with-tls            with TLS/SSL support],
 OL_ARG_WITH(threads,[  --with-threads    with threads],
        auto, [auto nt posix mach pth lwp yes no manual] )
 OL_ARG_WITH(tls,[  --with-tls            with TLS/SSL support],
-       auto, [auto ssleay openssl yes no] )
-OL_ARG_WITH(yielding_select,[  --with-yielding-select  with implicitly yielding select],
+       auto, [auto openssl yes no] )
+OL_ARG_WITH(yielding_select,
+       [  --with-yielding-select  with implicitly yielding select],
        auto, [auto yes no manual] )
        auto, [auto yes no manual] )
-OL_ARG_WITH(multiple_precision,[  --with-multiple-precision
-                          multiple precision support for statistics
-                         auto|bignum|gmp],
-       auto, [auto bignum gmp yes no] )
+OL_ARG_WITH(mp,
+       [  --with-mp               with multiple precision statistics auto|longlong|long|bignum|gmp],
+       auto, [auto longlong long bignum gmp yes no])
+OL_ARG_WITH(odbc,
+       [  --with-odbc             with specific ODBC support iodbc|unixodbc|auto],
+       auto, [auto iodbc unixodbc] )
 
 dnl ----------------------------------------------------------------
 dnl Server options
 
 dnl ----------------------------------------------------------------
 dnl Server options
@@ -337,6 +341,7 @@ OL_ARG_ENABLE(sql,[    --enable-sql   enable sql backend],
 dnl ----------------------------------------------------------------
 dnl SLAPD Overlay Options
 Overlays="accesslog \
 dnl ----------------------------------------------------------------
 dnl SLAPD Overlay Options
 Overlays="accesslog \
+       auditlog \
        denyop \
        dyngroup \
        dynlist \
        denyop \
        dyngroup \
        dynlist \
@@ -358,6 +363,8 @@ OL_ARG_ENABLE(overlays,[    --enable-overlays         enable all available overlays],
        --, [no yes mod])dnl
 OL_ARG_ENABLE(accesslog,[    --enable-accesslog          In-Directory Access Logging overlay],
        no, [no yes mod], ol_enable_overlays)
        --, [no yes mod])dnl
 OL_ARG_ENABLE(accesslog,[    --enable-accesslog          In-Directory Access Logging overlay],
        no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(auditlog,[    --enable-auditlog    Audit Logging overlay],
+       no, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(denyop,[    --enable-denyop        Deny Operation overlay],
        no, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(dyngroup,[    --enable-dyngroup    Dynamic Group overlay],
 OL_ARG_ENABLE(denyop,[    --enable-denyop        Deny Operation overlay],
        no, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(dyngroup,[    --enable-dyngroup    Dynamic Group overlay],
@@ -483,19 +490,19 @@ elif test $ol_enable_ldbm = no ; then
                AC_MSG_WARN([LDBM disabled, ignoring --enable-ldbm-type argument])
        fi
 
                AC_MSG_WARN([LDBM disabled, ignoring --enable-ldbm-type argument])
        fi
 
-       if test $ol_enable_modules != yes -a \
-               $ol_enable_bdb = no -a \
-               $ol_enable_dnssrv = no -a \
-               $ol_enable_hdb = no -a \
-               $ol_enable_ldap = no -a \
-               $ol_enable_meta = no -a \
-               $ol_enable_monitor = no -a \
-               $ol_enable_null = no -a \
-               $ol_enable_passwd = no -a \
-               $ol_enable_perl = no -a \
-               $ol_enable_relay = no -a \
-               $ol_enable_shell = no -a \
-               $ol_enable_sql = no ; then
+       if test $ol_enable_modules != yes &&
+          test $ol_enable_bdb = no &&
+          test $ol_enable_dnssrv = no &&
+          test $ol_enable_hdb = no &&
+          test $ol_enable_ldap = no &&
+          test $ol_enable_meta = no &&
+          test $ol_enable_monitor = no &&
+          test $ol_enable_null = no &&
+          test $ol_enable_passwd = no &&
+          test $ol_enable_perl = no &&
+          test $ol_enable_relay = no &&
+          test $ol_enable_shell = no &&
+          test $ol_enable_sql = no ; then
 
                if test $ol_enable_slapd = yes ; then
                        AC_MSG_ERROR([slapd requires a backend])
 
                if test $ol_enable_slapd = yes ; then
                        AC_MSG_ERROR([slapd requires a backend])
@@ -508,26 +515,26 @@ elif test $ol_enable_ldbm = no ; then
        ol_enable_ldbm_api=no
        ol_enable_ldbm_type=no
 
        ol_enable_ldbm_api=no
        ol_enable_ldbm_type=no
 
-       if test $ol_enable_bdb != no -o $ol_enable_hdb != no; then
+       if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
                ol_enable_ldbm_api=berkeley
        fi
 
 else
        dnl SLAPD with LDBM
                ol_enable_ldbm_api=berkeley
        fi
 
 else
        dnl SLAPD with LDBM
-       if test $ol_enable_ldbm_api = gdbm -a \
-               $ol_enable_ldbm_type = btree ; then
+       if test $ol_enable_ldbm_api = gdbm &&
+          test $ol_enable_ldbm_type = btree ; then
                AC_MSG_ERROR([GDBM only supports LDBM type hash])
        fi
                AC_MSG_ERROR([GDBM only supports LDBM type hash])
        fi
-       if test $ol_enable_ldbm_api = mdbm -a \
-               $ol_enable_ldbm_type = btree ; then
+       if test $ol_enable_ldbm_api = mdbm &&
+          test $ol_enable_ldbm_type = btree ; then
                AC_MSG_ERROR([MDBM only supports LDBM type hash])
        fi
                AC_MSG_ERROR([MDBM only supports LDBM type hash])
        fi
-       if test $ol_enable_ldbm_api = ndbm -a \
-               $ol_enable_ldbm_type = btree ; then
+       if test $ol_enable_ldbm_api = ndbm &&
+          test $ol_enable_ldbm_type = btree ; then
                AC_MSG_ERROR([NDBM only supports LDBM type hash])
        fi
 
                AC_MSG_ERROR([NDBM only supports LDBM type hash])
        fi
 
-       if test $ol_enable_bdb != no -o $ol_enable_hdb != no ; then
+       if test $ol_enable_bdb/$ol_enable_hdb != no/no ; then
                if test $ol_enable_ldbm_api = auto ; then
                        ol_enable_ldbm_api=berkeley
                elif test $ol_enable_ldbm_api != berkeley ; then
                if test $ol_enable_ldbm_api = auto ; then
                        ol_enable_ldbm_api=berkeley
                elif test $ol_enable_ldbm_api != berkeley ; then
@@ -536,7 +543,7 @@ else
        fi
 fi
 
        fi
 fi
 
-if test $ol_enable_meta = yes -a $ol_enable_ldap = no ; then
+if test $ol_enable_meta/$ol_enable_ldap = yes/no ; then
        AC_MSG_ERROR([--enable-meta requires --enable-ldap])
 fi
 
        AC_MSG_ERROR([--enable-meta requires --enable-ldap])
 fi
 
@@ -611,6 +618,7 @@ BUILD_SHELL=no
 BUILD_SQL=no
 
 BUILD_ACCESSLOG=no
 BUILD_SQL=no
 
 BUILD_ACCESSLOG=no
+BUILD_AUDITLOG=no
 BUILD_DENYOP=no
 BUILD_DYNGROUP=no
 BUILD_DYNLIST=no
 BUILD_DENYOP=no
 BUILD_DYNGROUP=no
 BUILD_DYNLIST=no
@@ -700,10 +708,11 @@ if test $ol_aix_threads = yes ; then
                fi
        fi
 
                fi
        fi
 
-       if test "${CC}" = "cc_r" -o "${CC}" = "xlc_r" ; then
+       case ${CC} in cc_r | xlc_r)
                ol_with_threads=posix
                ol_cv_pthread_create=yes
                ol_with_threads=posix
                ol_cv_pthread_create=yes
-       fi
+               ;;
+       esac
 fi
 
 if test -z "${CC}"; then
 fi
 
 if test -z "${CC}"; then
@@ -852,11 +861,11 @@ AC_HEADER_DIRENT
 AC_HEADER_SYS_WAIT
 AC_HEADER_TIOCGWINSZ
 
 AC_HEADER_SYS_WAIT
 AC_HEADER_TIOCGWINSZ
 
-AC_CHECK_HEADERS(              \
+AC_CHECK_HEADERS(      \
        arpa/inet.h             \
        arpa/inet.h             \
-       arpa/nameser.h          \
+       arpa/nameser.h  \
        assert.h                \
        assert.h                \
-       bits/types.h            \
+       bits/types.h    \
        conio.h                 \
        crypt.h                 \
        direct.h                \
        conio.h                 \
        crypt.h                 \
        direct.h                \
@@ -869,7 +878,6 @@ AC_CHECK_HEADERS(           \
        libutil.h               \
        limits.h                \
        locale.h                \
        libutil.h               \
        limits.h                \
        locale.h                \
-       netinet/tcp.h           \
        malloc.h                \
        memory.h                \
        psap.h                  \
        malloc.h                \
        memory.h                \
        psap.h                  \
@@ -886,11 +894,11 @@ AC_CHECK_HEADERS(         \
        sys/errno.h             \
        sys/ioctl.h             \
        sys/param.h             \
        sys/errno.h             \
        sys/ioctl.h             \
        sys/param.h             \
-       sys/resource.h          \
-       sys/select.h            \
-       sys/socket.h            \
+       sys/resource.h  \
+       sys/select.h    \
+       sys/socket.h    \
        sys/stat.h              \
        sys/stat.h              \
-       sys/syslog.h            \
+       sys/syslog.h    \
        sys/time.h              \
        sys/types.h             \
        sys/uio.h               \
        sys/time.h              \
        sys/types.h             \
        sys/uio.h               \
@@ -898,16 +906,24 @@ AC_CHECK_HEADERS(         \
        termios.h               \
        unistd.h                \
        utime.h                 \
        termios.h               \
        unistd.h                \
        utime.h                 \
-       winsock.h               \
-       winsock2.h              \
 )
 
 )
 
+dnl Only check Winsock on MinGW
+if test "$ac_cv_mingw32" = yes ; then
+       AC_CHECK_HEADERS( winsock.h winsock2.h )
+fi
+
 AC_CHECK_HEADERS( resolv.h, [], [],
 AC_CHECK_HEADERS( resolv.h, [], [],
-[$ac_includes_default]
+[$ac_includes_default
 #include <netinet/in.h>
 #include <netinet/in.h>
-)
+])
 
 
-AC_CHECK_HEADERS(sys/ucred.h, [], [],
+AC_CHECK_HEADERS( netinet/tcp.h, [], [],
+[$ac_includes_default
+#include <netinet/in.h>
+])
+
+AC_CHECK_HEADERS( sys/ucred.h, [], [],
 [$ac_includes_default
 #ifdef HAVE_SYS_PARAM_H
 #include <sys/param.h>
 [$ac_includes_default
 #ifdef HAVE_SYS_PARAM_H
 #include <sys/param.h>
@@ -928,9 +944,7 @@ fi
 dnl The following is INTENTIONALLY scripted out because shell does not
 dnl support variable names with the '@' character, which is what
 dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
 dnl The following is INTENTIONALLY scripted out because shell does not
 dnl support variable names with the '@' character, which is what
 dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
-dnl
-dnl Skip Winsock tests on Cygwin
-if test "$ac_cv_cygwin" != yes && test "$ac_cv_header_winsock_h" = yes; then
+if test "$ac_cv_header_winsock_h" = yes; then
 AC_CACHE_CHECK([for winsock], [ol_cv_winsock],
 save_LIBS="$LIBS"
 for curlib in ws2_32 wsock32; do
 AC_CACHE_CHECK([for winsock], [ol_cv_winsock],
 save_LIBS="$LIBS"
 for curlib in ws2_32 wsock32; do
@@ -1078,7 +1092,7 @@ if test "$ol_cv_lib_resolver" != no ; then
        fi
 fi
 
        fi
 fi
 
-if test "$ol_enable_dnssrv" = yes -o "$ol_enable_dnssrv" = mod ; then
+if test "$ol_enable_dnssrv" = yes || test "$ol_enable_dnssrv" = mod ; then
        if test "$ol_link_dnssrv" = no ; then
                AC_MSG_ERROR([DNSSRV requires res_query()])
        fi
        if test "$ol_link_dnssrv" = no ; then
                AC_MSG_ERROR([DNSSRV requires res_query()])
        fi
@@ -1094,7 +1108,7 @@ dnl PF_LOCAL may use getaddrinfo in available
 AC_CHECK_FUNCS( getaddrinfo getnameinfo gai_strerror inet_ntop )
 
 ol_link_ipv6=no
 AC_CHECK_FUNCS( getaddrinfo getnameinfo gai_strerror inet_ntop )
 
 ol_link_ipv6=no
-if test $ac_cv_func_getaddrinfo = no -o $ac_cv_func_inet_ntop = no ; then
+if test $ac_cv_func_getaddrinfo = no || test $ac_cv_func_inet_ntop = no ; then
        if test $ol_enable_ipv6 = yes ; then
                AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
        fi
        if test $ol_enable_ipv6 = yes ; then
                AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
        fi
@@ -1116,14 +1130,14 @@ elif test $ol_enable_ipv6 != no ; then
                        struct sockaddr_storage ss;
 ]])],[ol_cv_struct_sockaddr_storage=yes],[ol_cv_struct_sockaddr_storage=no])])
 
                        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
+       if test $ol_cv_inet6_addrstrlen = yes &&
+          test $ol_cv_struct_sockaddr_storage = yes ; then
                ol_link_ipv6=yes
                ol_link_ipv6=yes
-       elif test $ol_enable_ipv6 = yes \
-                       -a $ol_cv_inet6_addrstrlen = no ; then
+       elif test $ol_enable_ipv6 = yes &&
+            test $ol_cv_inet6_addrstrlen = no ; then
                AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
                AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
-       elif test $ol_enable_ipv6 = yes \
-                       -a $ol_cv_struct_sockaddr_storage = no ; then
+       elif test $ol_enable_ipv6 = yes &&
+            test $ol_cv_struct_sockaddr_storage = no ; then
                AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage])
        fi
 fi
                AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage])
        fi
 fi
@@ -1144,9 +1158,7 @@ ol_link_kbind=no
 ol_link_krb5=no
 ol_link_krb4=no
 
 ol_link_krb5=no
 ol_link_krb4=no
 
-if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
-       -o $ol_with_kerberos = k5 -o $ol_with_kerberos = k5only \
-       -o $ol_with_kerberos = k425 ; then
+case $ol_with_kerberos in yes | auto | k5 | k5only | k425)
 
        AC_CHECK_HEADERS(krb5.h)
 
 
        AC_CHECK_HEADERS(krb5.h)
 
@@ -1204,10 +1216,13 @@ if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
                fi
 
        fi
                fi
 
        fi
-fi
+       ;;
+esac
 
 
-if test $ol_link_krb5 = yes -a \( $ol_with_kerberos = yes -o \
-       $ol_with_kerberos = auto -o $ol_with_kerberos = k425 \) ; then
+if test $ol_link_krb5 = yes &&
+   { test $ol_with_kerberos = yes ||
+     test $ol_with_kerberos = auto ||
+     test $ol_with_kerberos = k425; }; then
 
        AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
 
 
        AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
 
@@ -1266,8 +1281,7 @@ if test $ol_link_krb5 = yes ; then
        ol_with_kerberos=found
 fi
 
        ol_with_kerberos=found
 fi
 
-if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
-       -o $ol_with_kerberos = k4 -o $ol_with_kerberos = kth ; then
+case $ol_with_kerberos in yes | auto | k4 | kth)
 
        AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
 
 
        AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
 
@@ -1289,19 +1303,20 @@ if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
                        fi
                fi
        fi
                        fi
                fi
        fi
-fi
+       ;;
+esac
 
 
-if test $ol_link_krb4 = yes -a $ol_enable_kbind != no ; then
+if test $ol_link_krb4 = yes && test $ol_enable_kbind != no ; then
        ol_link_kbind=yes
 
 elif test $ol_enable_kbind = yes ; then
        AC_MSG_ERROR([Kerberos IV detection failed])
 fi
 
        ol_link_kbind=yes
 
 elif test $ol_enable_kbind = yes ; then
        AC_MSG_ERROR([Kerberos IV detection failed])
 fi
 
-if test $ol_link_krb4 = yes -o $ol_link_krb5 = yes ; then
+if test $ol_link_krb4 = yes || test $ol_link_krb5 = yes ; then
        AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
 
        AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
 
-elif test $ol_with_kerberos != auto -a $ol_with_kerberos != no ; then
+elif test $ol_with_kerberos != auto && test $ol_with_kerberos != no ; then
        AC_MSG_ERROR([Kerberos detection failed])
 fi
 
        AC_MSG_ERROR([Kerberos detection failed])
 fi
 
@@ -1310,40 +1325,31 @@ dnl TLS/SSL
        
 ol_link_tls=no
 if test $ol_with_tls != no ; then
        
 ol_link_tls=no
 if test $ol_with_tls != no ; then
-       AC_CHECK_HEADERS(openssl/ssl.h ssl.h)
-
-       if test $ac_cv_header_openssl_ssl_h = yes \
-               -o $ac_cv_header_ssl_h = yes ; then
-               AC_CHECK_LIB(ssl, SSLeay_add_ssl_algorithms, 
-                       [have_ssleay=yes
-                       need_rsaref=no],
-                       [have_ssleay=no],
+       AC_CHECK_HEADERS(openssl/ssl.h)
+
+       if test $ac_cv_header_openssl_ssl_h = yes ; then
+               AC_CHECK_LIB(ssl, SSL_library_init,
+                       [have_openssl=yes
+                       need_rsaref=no], [have_openssl=no],
                        [-lcrypto])
                        [-lcrypto])
-                       
-               if test $have_ssleay = no ; then
-                       AC_CHECK_LIB(ssl, SSL_library_init,
-                               [have_ssleay=yes
-                               need_rsaref=no], [have_ssleay=no],
-                               [-lcrypto])
-               fi
 
 
-               if test $have_ssleay = no ; then
+               if test $have_openssl = no ; then
                        AC_CHECK_LIB(ssl, ssl3_accept, 
                        AC_CHECK_LIB(ssl, ssl3_accept, 
-                               [have_ssleay=yes
-                               need_rsaref=yes], [have_ssleay=no],
+                               [have_openssl=yes
+                               need_rsaref=yes], [have_openssl=no],
                                [-lcrypto -lRSAglue -lrsaref])
                fi
 
                                [-lcrypto -lRSAglue -lrsaref])
                fi
 
-               if test $have_ssleay = yes ; then
+               if test $have_openssl = yes ; then
                        ol_with_tls=found
                        ol_link_tls=yes
 
                        ol_with_tls=found
                        ol_link_tls=yes
 
-                       AC_DEFINE(HAVE_SSLEAY, 1, 
-                               [define if you have SSLeay or OpenSSL])
+                       AC_DEFINE(HAVE_OPENSSL, 1, 
+                               [define if you have OpenSSL])
 
                        if test $need_rsaref = yes; then
                                AC_DEFINE(HAVE_RSAREF, 1, 
 
                        if test $need_rsaref = yes; then
                                AC_DEFINE(HAVE_RSAREF, 1, 
-                                       [define if you have RSAref])
+                                       [define if OpenSSL needs RSAref])
 
                                TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
                        else
 
                                TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
                        else
@@ -1390,8 +1396,7 @@ dnl ----------------------------------------------------------------
 dnl Threads?
 ol_link_threads=no
 
 dnl Threads?
 ol_link_threads=no
 
-if test $ol_with_threads = auto -o $ol_with_threads = yes \
-       -o $ol_with_threads = nt ; then
+case $ol_with_threads in auto | yes | nt)
 
        OL_NT_THREADS
 
 
        OL_NT_THREADS
 
@@ -1407,10 +1412,10 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
        if test $ol_with_threads = nt ; then
                AC_MSG_ERROR([could not locate NT Threads])
        fi
        if test $ol_with_threads = nt ; then
                AC_MSG_ERROR([could not locate NT Threads])
        fi
-fi
+       ;;
+esac
 
 
-if test $ol_with_threads = auto -o $ol_with_threads = yes \
-       -o $ol_with_threads = posix ; then
+case $ol_with_threads in auto | yes | posix)
 
        AC_CHECK_HEADERS(pthread.h)
 
 
        AC_CHECK_HEADERS(pthread.h)
 
@@ -1526,9 +1531,9 @@ dnl                       [ol_cv_pthread_lpthread_lexc])
                        dnl check for both, and thr_yield for Solaris
                        AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
 
                        dnl check for both, and thr_yield for Solaris
                        AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
 
-                       if test $ac_cv_func_sched_yield = no -a \
-                               $ac_cv_func_pthread_yield = no -a \
-                               $ac_cv_func_thr_yield = no ; then
+                       if test $ac_cv_func_sched_yield = no &&
+                          test $ac_cv_func_pthread_yield = no &&
+                          test $ac_cv_func_thr_yield = no ; then
                                dnl Digital UNIX has sched_yield() in -lrt
                                AC_CHECK_LIB(rt, sched_yield,
                                        [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
                                dnl Digital UNIX has sched_yield() in -lrt
                                AC_CHECK_LIB(rt, sched_yield,
                                        [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
@@ -1537,9 +1542,9 @@ dnl                       [ol_cv_pthread_lpthread_lexc])
                                        ac_cv_func_sched_yield=yes],
                                        [ac_cv_func_sched_yield=no])
                        fi
                                        ac_cv_func_sched_yield=yes],
                                        [ac_cv_func_sched_yield=no])
                        fi
-                       if test $ac_cv_func_sched_yield = no -a \
-                               $ac_cv_func_pthread_yield = no -a \
-                               "$ac_cv_func_thr_yield" = no ; then
+                       if test $ac_cv_func_sched_yield = no &&
+                          test $ac_cv_func_pthread_yield = no &&
+                          test "$ac_cv_func_thr_yield" = no ; then
                                AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
                        fi
 
                                AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
                        fi
 
@@ -1593,6 +1598,19 @@ dnl                      [ol_cv_pthread_lpthread_lexc])
                                AC_MSG_ERROR([pthread_create is not usable, check environment settings])
                        fi
 
                                AC_MSG_ERROR([pthread_create is not usable, check environment settings])
                        fi
 
+                       ol_replace_broken_yield=no
+dnl                    case "$target" in
+dnl                    *-*-linux*) 
+dnl                            AC_CHECK_FUNCS(nanosleep)
+dnl                            ol_replace_broken_yield=yes
+dnl                    ;;
+dnl                    esac
+
+                       if test $ol_replace_broken_yield = yes ; then
+                               AC_DEFINE([REPLACE_BROKEN_YIELD],1,
+                                       [define if sched_yield yields the entire process])
+                       fi
+
                        dnl Check if select causes an yield
                        if test $ol_with_yielding_select = auto ; then
                                AC_CACHE_CHECK([if select yields when using pthreads],
                        dnl Check if select causes an yield
                        if test $ol_with_yielding_select = auto ; then
                                AC_CACHE_CHECK([if select yields when using pthreads],
@@ -1692,10 +1710,10 @@ int main(argc, argv)
        if test $ol_with_threads = posix ; then
                AC_MSG_ERROR([could not locate POSIX Threads])
        fi
        if test $ol_with_threads = posix ; then
                AC_MSG_ERROR([could not locate POSIX Threads])
        fi
-fi
+       ;;
+esac
 
 
-if test $ol_with_threads = auto -o $ol_with_threads = yes \
-       -o $ol_with_threads = mach ; then
+case $ol_with_threads in auto | yes | mach)
 
        dnl check for Mach CThreads
        AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
 
        dnl check for Mach CThreads
        AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
@@ -1757,10 +1775,10 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
        elif test $ol_with_threads = found ; then
                AC_MSG_ERROR([could not link with Mach CThreads])
        fi
        elif test $ol_with_threads = found ; then
                AC_MSG_ERROR([could not link with Mach CThreads])
        fi
-fi
+       ;;
+esac
 
 
-if test $ol_with_threads = auto -o $ol_with_threads = yes \
-       -o $ol_with_threads = pth ; then
+case $ol_with_threads in auto | yes | pth)
 
        AC_CHECK_HEADERS(pth.h)
 
 
        AC_CHECK_HEADERS(pth.h)
 
@@ -1778,14 +1796,15 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
                        fi
                fi
        fi
                        fi
                fi
        fi
-fi
+       ;;
+esac
 
 
-if test $ol_with_threads = auto -o $ol_with_threads = yes \
-       -o $ol_with_threads = lwp ; then
+case $ol_with_threads in auto | yes | lwp)
 
        dnl check for SunOS5 LWP
        AC_CHECK_HEADERS(thread.h synch.h)
 
        dnl check for SunOS5 LWP
        AC_CHECK_HEADERS(thread.h synch.h)
-       if test $ac_cv_header_thread_h = yes -a $ac_cv_header_synch_h = yes ; then
+       if test $ac_cv_header_thread_h = yes &&
+          test $ac_cv_header_synch_h = yes ; then
                AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
 
                if test $have_thr = yes ; then
                AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
 
                if test $have_thr = yes ; then
@@ -1822,7 +1841,8 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
                        fi
                fi
        fi
                        fi
                fi
        fi
-fi
+       ;;
+esac
 
 if test $ol_with_yielding_select = yes ; then
        AC_DEFINE(HAVE_YIELDING_SELECT,1,
 
 if test $ol_with_yielding_select = yes ; then
        AC_DEFINE(HAVE_YIELDING_SELECT,1,
@@ -1844,7 +1864,7 @@ if test $ol_with_threads = manual ; then
        AC_CHECK_HEADERS(thread.h synch.h)
 fi
 
        AC_CHECK_HEADERS(thread.h synch.h)
 fi
 
-if test $ol_link_threads != no -a $ol_link_threads != nt ; then  
+if test $ol_link_threads != no && test $ol_link_threads != nt ; then
        dnl needed to get reentrant/threadsafe versions
        dnl
        AC_DEFINE(REENTRANT,1)
        dnl needed to get reentrant/threadsafe versions
        dnl
        AC_DEFINE(REENTRANT,1)
@@ -1869,8 +1889,8 @@ if test $ol_link_threads != no -a $ol_link_threads != nt ; then
                AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netdb.h>]], [[h_errno = 0;]])],[ol_cv_h_errno_thread_specific=yes],[ol_cv_h_errno_thread_specific=no])
        ])
 
                AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netdb.h>]], [[h_errno = 0;]])],[ol_cv_h_errno_thread_specific=yes],[ol_cv_h_errno_thread_specific=no])
        ])
 
-       if test $ol_cv_errno_thread_specific != yes \
-               -o $ol_cv_h_errno_thread_specific != yes ; then
+       if test $ol_cv_errno_thread_specific != yes ||
+          test $ol_cv_h_errno_thread_specific != yes ; then
                LIBS="$LTHREAD_LIBS $LIBS"
                LTHREAD_LIBS=""
        fi
                LIBS="$LTHREAD_LIBS $LIBS"
                LTHREAD_LIBS=""
        fi
@@ -1939,6 +1959,9 @@ if test $ol_link_threads = no ; then
        AC_DEFINE(NO_THREADS,1,
                [define if you have (or want) no threads])
        LTHREAD_LIBS=""
        AC_DEFINE(NO_THREADS,1,
                [define if you have (or want) no threads])
        LTHREAD_LIBS=""
+       BUILD_THREAD=no
+else
+       BUILD_THREAD=yes
 fi
 
 if test $ol_link_threads != no ; then
 fi
 
 if test $ol_link_threads != no ; then
@@ -1975,9 +1998,7 @@ fi
 dnl ----------------------------------------------------------------
 ol_link_ldbm=no 
 
 dnl ----------------------------------------------------------------
 ol_link_ldbm=no 
 
-if test $ol_enable_ldbm_api = auto \
-       -o $ol_enable_ldbm_api = berkeley \
-       -o $ol_enable_ldbm_api = bcompat ; then
+case $ol_enable_ldbm_api in auto | berkeley | bcompat)
 
        if test $ol_enable_ldbm_api = bcompat; then \
                OL_BERKELEY_COMPAT_DB
 
        if test $ol_enable_ldbm_api = bcompat; then \
                OL_BERKELEY_COMPAT_DB
@@ -2006,9 +2027,10 @@ if test $ol_enable_ldbm_api = auto \
                        LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
                fi
        fi
                        LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
                fi
        fi
-fi
+       ;;
+esac
 
 
-if test $ol_enable_bdb != no -o $ol_enable_hdb != no; then
+if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
        if test $ol_link_ldbm != berkeley ; then
                AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
        else
        if test $ol_link_ldbm != berkeley ; then
                AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
        else
@@ -2020,12 +2042,12 @@ if test $ol_enable_bdb != no -o $ol_enable_hdb != no; then
        fi
 fi
 
        fi
 fi
 
-if test $ol_link_ldbm = no -a $ol_enable_ldbm_type = btree ; then
+if test $ol_link_ldbm = no && test $ol_enable_ldbm_type = btree ; then
        AC_MSG_WARN([Could not find LDBM with BTREE support])
        ol_enable_ldbm_api=none
 fi
 
        AC_MSG_WARN([Could not find LDBM with BTREE support])
        ol_enable_ldbm_api=none
 fi
 
-if test $ol_enable_ldbm_api = auto -o $ol_enable_ldbm_api = mdbm ; then
+if test $ol_enable_ldbm_api = auto || test $ol_enable_ldbm_api = mdbm ; then
        OL_MDBM
 
        if test $ol_cv_mdbm = yes ; then
        OL_MDBM
 
        if test $ol_cv_mdbm = yes ; then
@@ -2037,7 +2059,7 @@ if test $ol_enable_ldbm_api = auto -o $ol_enable_ldbm_api = mdbm ; then
        fi
 fi
 
        fi
 fi
 
-if test $ol_enable_ldbm_api = auto -o $ol_enable_ldbm_api = gdbm ; then
+if test $ol_enable_ldbm_api = auto || test $ol_enable_ldbm_api = gdbm ; then
        OL_GDBM
 
        if test $ol_cv_gdbm = yes ; then
        OL_GDBM
 
        if test $ol_cv_gdbm = yes ; then
@@ -2063,19 +2085,19 @@ if test $ol_enable_ldbm_api = ndbm ; then
        fi
 fi
 
        fi
 fi
 
-if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
+if test $ol_link_ldbm = no && test $ol_enable_ldbm != no ; then
        AC_MSG_ERROR([could not find suitable LDBM backend])
 fi
 
        AC_MSG_ERROR([could not find suitable LDBM backend])
 fi
 
-if test $ol_enable_bdb = yes -o \
-       $ol_enable_hdb = yes -o \
-       $ol_enable_ldbm = yes ; then
+if test $ol_enable_bdb = yes ||
+   test $ol_enable_hdb = yes ||
+   test $ol_enable_ldbm = yes ; then
        SLAPD_LIBS="$SLAPD_LIBS \$(LDBM_LIBS)"
 fi
 
 dnl ----------------------------------------------------------------
 
        SLAPD_LIBS="$SLAPD_LIBS \$(LDBM_LIBS)"
 fi
 
 dnl ----------------------------------------------------------------
 
-if test $ol_enable_dynamic = yes -a $enable_shared = yes ; then
+if test $ol_enable_dynamic = yes && test $enable_shared = yes ; then
        BUILD_LIBS_DYNAMIC=shared
        AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
        LTSTATIC=""
        BUILD_LIBS_DYNAMIC=shared
        AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
        LTSTATIC=""
@@ -2133,7 +2155,7 @@ fi
 dnl ----------------------------------------------------------------
 if test $ol_enable_syslog != no ; then
        AC_CHECK_FUNC(openlog)
 dnl ----------------------------------------------------------------
 if test $ol_enable_syslog != no ; then
        AC_CHECK_FUNC(openlog)
-       if test $ac_cv_func_openlog = no -a $ol_enable_syslog = yes; then
+       if test $ac_cv_func_openlog = no && test $ol_enable_syslog = yes; then
                AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
        fi
        ol_enable_syslog=$ac_cv_func_openlog
                AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
        fi
        ol_enable_syslog=$ac_cv_func_openlog
@@ -2150,16 +2172,34 @@ if test $ol_enable_sql != no ; then
        sql_LIBS="$LIBS"
        LIBS="$LTHREAD_LIBS"
 
        sql_LIBS="$LIBS"
        LIBS="$LTHREAD_LIBS"
 
-       AC_CHECK_LIB(iodbc,SQLDriverConnect,[have_iodbc=yes],[have_iodbc=no])
-       if test $have_iodbc = yes ; then
-               ol_link_sql="-liodbc"
-       else
-               AC_CHECK_LIB(odbc,SQLDriverConnect,[have_odbc=yes],[have_odbc=no])
-               if test $have_odbc = yes ; then
-                       ol_link_sql="-lodbc"
-               fi
+       if test $ol_with_odbc = auto ; then
+               ol_with_odbc="iodbc unixodbc"
        fi
 
        fi
 
+       for odbc in $ol_with_odbc ; do
+               if test $ol_link_sql = no ; then
+                       case $odbc in
+                       iodbc)
+                               AC_CHECK_LIB(iodbc, SQLDriverConnect, [have_iodbc=yes], [have_iodbc=no])
+                               if test $have_iodbc = yes ; then
+                                       ol_link_sql="-liodbc"
+                               fi
+                               ;;
+
+                       unixodbc)
+                               AC_CHECK_LIB(odbc, SQLDriverConnect, [have_odbc=yes], [have_odbc=no])
+                               if test $have_odbc = yes ; then
+                                       ol_link_sql="-lodbc"
+                               fi
+                               ;;
+
+                       *)
+                               AC_MSG_ERROR([unknown ODBC library])
+                               ;;
+                       esac
+               fi
+       done
+
        LIBS="$sql_LIBS"
 
        if test $ol_link_sql != no ; then
        LIBS="$sql_LIBS"
 
        if test $ol_link_sql != no ; then
@@ -2180,7 +2220,8 @@ ol_link_spasswd=no
 if test $ol_with_cyrus_sasl != no ; then
        AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
 
 if test $ol_with_cyrus_sasl != no ; then
        AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
 
-       if test $ac_cv_header_sasl_sasl_h = yes -o $ac_cv_header_sasl_h = yes; then
+       if test $ac_cv_header_sasl_sasl_h = yes ||
+          test $ac_cv_header_sasl_h = yes; then
                AC_CHECK_LIB(sasl2, sasl_client_init,
                        [ol_link_sasl="-lsasl2"],
                        [AC_CHECK_LIB(sasl, sasl_client_init,
                AC_CHECK_LIB(sasl2, sasl_client_init,
                        [ol_link_sasl="-lsasl2"],
                        [AC_CHECK_LIB(sasl, sasl_client_init,
@@ -2228,7 +2269,7 @@ fi
 
 dnl ----------------------------------------------------------------
 dnl Check for entropy sources
 
 dnl ----------------------------------------------------------------
 dnl Check for entropy sources
-if test $cross_compiling != yes -a "$ac_cv_mingw32" != yes ; then
+if test $cross_compiling != yes && test "$ac_cv_mingw32" != yes ; then
        dev=no
        if test -r /dev/urandom ; then
                dev="/dev/urandom";
        dev=no
        if test -r /dev/urandom ; then
                dev="/dev/urandom";
@@ -2309,7 +2350,6 @@ if test $ol_enable_proctitle != no ; then
 fi
 
 dnl ----------------------------------------------------------------
 fi
 
 dnl ----------------------------------------------------------------
-dnl Check for SLPv2 Compliant API Library
 if test $ol_enable_slp != no ; then
        AC_CHECK_HEADERS( slp.h )
 
 if test $ol_enable_slp != no ; then
        AC_CHECK_HEADERS( slp.h )
 
@@ -2325,99 +2365,6 @@ if test $ol_enable_slp != no ; then
        fi
 fi
 
        fi
 fi
 
-dnl ----------------------------------------------------------------
-dnl Check for multiple precision support
-if test "$ol_with_multiple_precision" != "no" ; then
-       ol_have_bignum=no
-       ol_have_gmp=no
-
-       AC_CHECK_HEADERS(openssl/bn.h bn.h)
-       AC_CHECK_HEADERS(openssl/crypto.h crypto.h)
-       AC_CHECK_HEADERS( gmp.h )
-
-       if test "$ol_with_tls" = "found" ; then
-               ol_have_bn_h=no
-               ol_have_crypto_h=no
-
-               if test "$ac_cv_header_openssl_bn_h" = "yes" \
-                               -o "$ac_cv_header_bn_h" = "yes" ; then
-                       ol_have_bn_h=yes
-               fi
-
-               if test "$ac_cv_header_openssl_crypto_h" = "yes" \
-                               -o "$ac_cv_header_crypto_h" = "yes" ; then
-                       ol_have_crypto_h=yes
-               fi
-
-               if test "$ol_have_bn_h" = "yes" \
-                               -a "$ol_have_crypto_h" = "yes" ; then
-                       ol_have_bignum=yes
-               fi
-       fi
-
-       if test $ac_cv_header_gmp_h = yes ; then
-               AC_CHECK_LIB(gmp, __gmpz_add_ui, [have_gmp=yes], [have_gmp=no])
-               if test $have_gmp = yes ; then
-                       ol_have_gmp=yes
-               fi
-       fi
-
-       AC_MSG_CHECKING([for multiple precision support])
-
-       ol_mp_support="none"
-       case "$ol_with_multiple_precision" in
-       auto)
-               dnl preferred sequence:
-               dnl - OpenSSL's BIGNUM (if libssl is already linked)
-               dnl - GNU's MP
-               dnl - unsigned long
-               if test "$ol_have_bignum" = "yes" ; then
-                       ol_mp_support="bignum"
-               else
-                       if test "$ol_have_gmp" = "yes" ; then
-                               ol_mp_support="gmp"
-                       fi
-               fi
-               ;;
-       bignum)
-               if test "$ol_have_bignum" != "yes" ; then
-                       AC_MSG_ERROR([OpenSSL's BIGNUM not available])
-               fi
-               ol_mp_support="bignum"
-               ;;
-       gmp)
-               if test "$ol_have_gmp" != "yes" ; then
-                       AC_MSG_ERROR([GMP not available])
-               fi
-               ol_mp_support="gmp"
-               ;;
-       yes)
-               if test "$ol_have_bignum" = "yes" ; then
-                       ol_mp_support="bignum"
-               elif test "$ol_have_gmp" = "yes" ; then
-                       ol_mp_support="gmp"
-               else
-                       AC_MSG_ERROR([not available])
-               fi
-               ;;
-       esac
-
-       case "$ol_mp_support" in
-       bignum)
-               AC_DEFINE(HAVE_BIGNUM, 1,
-                       [define if you have SSLeay or OpenSSL's BIGNUM])
-               ;;
-       gmp)
-               AC_DEFINE(HAVE_GMP, 1, [define if you have -lgmp])
-               SLAPD_GMP_LIBS=-lgmp
-               ;;
-       none)
-               ;;
-       esac
-
-       AC_MSG_RESULT($ol_mp_support)
-fi
-
 dnl ----------------------------------------------------------------
 dnl Checks for typedefs, structures, and compiler characteristics.
 
 dnl ----------------------------------------------------------------
 dnl Checks for typedefs, structures, and compiler characteristics.
 
@@ -2431,14 +2378,43 @@ AC_CHECK_TYPE(size_t, unsigned)
 AC_CHECK_TYPES([long long])
 AC_CHECK_TYPES([ptrdiff_t])
 
 AC_CHECK_TYPES([long long])
 AC_CHECK_TYPES([ptrdiff_t])
 
-AC_CHECK_TYPE([socklen_t],,
-       [AC_DEFINE_UNQUOTED([socklen_t], [int],
-               [Define to `int' if <sys/socket.h> does not define.])],
-       [$ac_includes_default
+
+AC_CHECK_TYPE([socklen_t],,, [$ac_includes_default
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif])
+
+dnl socklen_t-like type in accept(), default socklen_t or int:
+dnl - The OS might define socklen_t without using it.  POSIX moved from
+dnl   int to size_t to socklen_t, hoping to stay at a 32-bit type, and
+dnl   HP-UX now has selectors for what to use.
+dnl - On Solaris 2.8 the prototype has void *len, but the default is OK.
+AC_MSG_CHECKING([the type of arg 3 to accept()])
+AC_CACHE_VAL(ol_cv_type_ber_socklen_t, [
+       set socklen_t int unsigned "unsigned long" long size_t
+       test "$ac_cv_type_socklen_t" = yes || shift
+       ol_cv_type_ber_socklen_t=$1 guessing="guessing "
+       for lentype in "$@" ; do for addrtype in "struct sockaddr" void ; do
+               AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$ac_includes_default
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
-       ])
+extern int accept(int s, $addrtype *ap, $lentype *lp);
+], [
+accept(0, (struct sockaddr *) 0, ($lentype *) 0);
+])], [ol_cv_type_ber_socklen_t=$lentype guessing= ; break 2])
+       done ; done])
+AC_MSG_RESULT([$guessing$ol_cv_type_ber_socklen_t *])
+AC_DEFINE_UNQUOTED(ber_socklen_t, $ol_cv_type_ber_socklen_t,
+       [Define to the type of arg 3 for `accept'.])
+
+dnl Modules should use ber_socklen_t, not socklen_t.  Define socklen_t
+dnl for the time being anyway, for backwards compatibility.
+if test "$ac_cv_type_socklen_t" != yes; then
+       AC_DEFINE_UNQUOTED([socklen_t], [$ol_cv_type_ber_socklen_t],
+               [Define like ber_socklen_t if <sys/socket.h> does not define.])
+fi
+
 
 AC_TYPE_SIGNAL
 
 
 AC_TYPE_SIGNAL
 
@@ -2473,6 +2449,7 @@ fi
 AC_CHECK_SIZEOF(short) 
 AC_CHECK_SIZEOF(int) 
 AC_CHECK_SIZEOF(long)
 AC_CHECK_SIZEOF(short) 
 AC_CHECK_SIZEOF(int) 
 AC_CHECK_SIZEOF(long)
+AC_CHECK_SIZEOF(long long)
 AC_CHECK_SIZEOF(wchar_t)
 
 if test "$ac_cv_sizeof_int" -lt 4 ; then
 AC_CHECK_SIZEOF(wchar_t)
 
 if test "$ac_cv_sizeof_int" -lt 4 ; then
@@ -2487,6 +2464,50 @@ AC_DEFINE(LBER_LEN_T,long,[define to large integer type])
 AC_DEFINE(LBER_SOCKET_T,int,[define to socket descriptor type])
 AC_DEFINE(LBER_TAG_T,long,[define to large integer type])
 
 AC_DEFINE(LBER_SOCKET_T,int,[define to socket descriptor type])
 AC_DEFINE(LBER_TAG_T,long,[define to large integer type])
 
+dnl ----------------------------------------------------------------
+dnl Check for multiple precision support
+if test $ol_with_mp = longlong || test $ol_with_mp = auto ; then
+       if test $ac_cv_sizeof_long_long -gt 4 ; then
+               ol_with_mp=longlong
+               AC_DEFINE(USE_MP_LONG_LONG,1,[define to use 'long long' for MP])
+       elif test $ol_with_mp = longlong ; then
+               AC_MSG_ERROR([long long unusable for multiple precision])
+       fi
+fi
+if test $ol_with_mp = long || test $ol_with_mp = auto ; then
+       if test $ac_cv_sizeof_long -gt 4 ; then
+               ol_with_mp=long
+               AC_DEFINE(USE_MP_LONG,1,[define to use 'long' for MP])
+       elif test $ol_with_mp = long ; then
+               AC_MSG_ERROR([long unusable for multiple precision])
+       fi
+fi
+if test $ol_with_mp = bignum || test $ol_with_mp = auto ; then
+       AC_CHECK_HEADERS(openssl/bn.h)
+       AC_CHECK_HEADERS(openssl/crypto.h)
+       if test "$ac_cv_header_openssl_bn_h" = "yes" &&
+               test "$ac_cv_header_openssl_crypto_h" = "yes" &&
+               test "$ol_with_tls" = "found" ; then
+               ol_with_mp=bignum
+               AC_DEFINE(USE_MP_BIGNUM,1,[define to use OpenSSL BIGNUM for MP])
+       elif test $ol_with_mp = bignum ; then
+               AC_MSG_ERROR([bignum not available])
+       fi
+fi
+if test $ol_with_mp = gmp || test $ol_with_mp = auto ; then
+       AC_CHECK_HEADERS(gmp.h)
+       AC_CHECK_LIB(gmp, __gmpz_add_ui)
+       if test $ac_cv_header_gmp_h = yes && test $ac_cv_lib_gmp___gmpz_add_ui = yes ; then
+               AC_DEFINE(USE_MP_GMP,1,[define to use GMP for MP])
+               ol_with_mp=gmp
+       elif test $ol_with_mp = gmp ; then
+               AC_MSG_ERROR([gmp not available])
+       fi
+fi
+if test $ol_with_mp = auto ; then
+       ol_with_mp=no
+fi
+
 dnl ----------------------------------------------------------------
 dnl Checks for library functions.
 AC_FUNC_MEMCMP
 dnl ----------------------------------------------------------------
 dnl Checks for library functions.
 AC_FUNC_MEMCMP
@@ -2537,9 +2558,11 @@ AC_CHECK_FUNCS(          \
        getspnam                \
        gettimeofday    \
        initgroups              \
        getspnam                \
        gettimeofday    \
        initgroups              \
+       inet_ntoa_b             \
        lockf                   \
        memcpy                  \
        memmove                 \
        lockf                   \
        memcpy                  \
        memmove                 \
+       memrchr                 \
        mkstemp                 \
        mktemp                  \
        pipe                    \
        mkstemp                 \
        mktemp                  \
        pipe                    \
@@ -2565,7 +2588,6 @@ AC_CHECK_FUNCS(           \
        strtoll                 \
        strspn                  \
        sysconf                 \
        strtoll                 \
        strspn                  \
        sysconf                 \
-       usleep                  \
        waitpid                 \
        wait4                   \
        write                   \
        waitpid                 \
        wait4                   \
        write                   \
@@ -2595,7 +2617,8 @@ if test "$ac_cv_func_getpeereid" != yes; then
        fi
        LIBSRCS="$LIBSRCS getpeereid.c"
 fi
        fi
        LIBSRCS="$LIBSRCS getpeereid.c"
 fi
-if test "$ac_cv_func_snprintf" != yes -o "$ac_cv_func_vsnprintf" != yes; then
+if test "$ac_cv_func_snprintf" != yes ||
+   test "$ac_cv_func_vsnprintf" != yes; then
        if test "$ac_cv_func_snprintf" != yes; then
                AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
        fi
        if test "$ac_cv_func_snprintf" != yes; then
                AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
        fi
@@ -2734,7 +2757,7 @@ if test "$ol_enable_ldap" != no ; then
        AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
 fi
 
        AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
 fi
 
-if test "$ol_link_ldbm" != no -a $ol_enable_ldbm != no; then
+if test "$ol_link_ldbm" != no && test $ol_enable_ldbm != no; then
        BUILD_SLAPD=yes
        BUILD_LDBM=$ol_enable_ldbm
        if test "$ol_enable_ldbm" = mod ; then
        BUILD_SLAPD=yes
        BUILD_LDBM=$ol_enable_ldbm
        if test "$ol_enable_ldbm" = mod ; then
@@ -2867,6 +2890,18 @@ if test "$ol_enable_accesslog" != no ; then
        AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay])
 fi
 
        AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay])
 fi
 
+if test "$ol_enable_auditlog" != no ; then
+       BUILD_AUDITLOG=$ol_enable_auditlog
+       if test "$ol_enable_auditlog" = mod ; then
+               MFLAG=SLAPD_MOD_DYNAMIC
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS auditlog.la"
+       else
+               MFLAG=SLAPD_MOD_STATIC
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS auditlog.o"
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_AUDITLOG,$MFLAG,[define for Audit Logging overlay])
+fi
+
 if test "$ol_enable_denyop" != no ; then
        BUILD_DENYOP=$ol_enable_denyop
        if test "$ol_enable_denyop" = mod ; then
 if test "$ol_enable_denyop" != no ; then
        BUILD_DENYOP=$ol_enable_denyop
        if test "$ol_enable_denyop" = mod ; then
@@ -2876,7 +2911,7 @@ if test "$ol_enable_denyop" != no ; then
                MFLAG=SLAPD_MOD_STATIC
                SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS denyop.o"
        fi
                MFLAG=SLAPD_MOD_STATIC
                SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS denyop.o"
        fi
-       AC_DEFINE_UNQUOTED(SLAPD_OVER_DENYOP,$MFLAG,[define for Dynamic Group overlay])
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_DENYOP,$MFLAG,[define for Deny Operation overlay])
 fi
 
 if test "$ol_enable_dyngroup" != no ; then
 fi
 
 if test "$ol_enable_dyngroup" != no ; then
@@ -3024,8 +3059,9 @@ if test "$ol_enable_valsort" != no ; then
        AC_DEFINE_UNQUOTED(SLAPD_OVER_VALSORT,$MFLAG,[define for Value Sorting overlay])
 fi
 
        AC_DEFINE_UNQUOTED(SLAPD_OVER_VALSORT,$MFLAG,[define for Value Sorting overlay])
 fi
 
-if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \
-       $BUILD_SLAPD = yes ; then
+if test "$ol_enable_slurpd" != no &&
+   test "$ol_link_threads" != no &&
+   test $BUILD_SLAPD = yes ; then
        BUILD_SLURPD=yes
 fi
 
        BUILD_SLURPD=yes
 fi
 
@@ -3060,6 +3096,7 @@ AC_SUBST(WITH_SASL)
 AC_SUBST(WITH_TLS)
 AC_SUBST(WITH_MODULES_ENABLED)
 AC_SUBST(WITH_ACI_ENABLED)
 AC_SUBST(WITH_TLS)
 AC_SUBST(WITH_MODULES_ENABLED)
 AC_SUBST(WITH_ACI_ENABLED)
+AC_SUBST(BUILD_THREAD)
 AC_SUBST(BUILD_LIBS_DYNAMIC)
 
 AC_SUBST(BUILD_SLAPD)
 AC_SUBST(BUILD_LIBS_DYNAMIC)
 
 AC_SUBST(BUILD_SLAPD)
@@ -3082,6 +3119,7 @@ dnl backends
   AC_SUBST(BUILD_SQL)
 dnl overlays
   AC_SUBST(BUILD_ACCESSLOG)
   AC_SUBST(BUILD_SQL)
 dnl overlays
   AC_SUBST(BUILD_ACCESSLOG)
+  AC_SUBST(BUILD_AUDITLOG)
   AC_SUBST(BUILD_DENYOP)
   AC_SUBST(BUILD_DYNGROUP)
   AC_SUBST(BUILD_DYNLIST)
   AC_SUBST(BUILD_DENYOP)
   AC_SUBST(BUILD_DYNGROUP)
   AC_SUBST(BUILD_DYNLIST)
@@ -3194,7 +3232,7 @@ rm -f $BACKENDSC
 cat > $BACKENDSC << ENDX
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
 cat > $BACKENDSC << ENDX
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2005 The OpenLDAP Foundation.
+ * Copyright 1998-2007 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -3239,7 +3277,63 @@ ENDX
 /* end of generated file */
 ENDX
 fi
 /* end of generated file */
 ENDX
 fi
+OVERLAYSC="servers/slapd/overlays/statover.c"
+echo "Making $OVERLAYSC"
+rm -f $OVERLAYSC
+cat > $OVERLAYSC << ENDX
+/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+ *
+ * Copyright 1998-2007 The OpenLDAP Foundation.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.
+ *
+ * A copy of this license is available in the file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * <http://www.OpenLDAP.org/license.html>.
+ */
+/* This file is automatically generated by configure; please do not edit. */
+
+#include "portable.h"
+#include "slap.h"
+
+ENDX
+if test "${STATIC_OVERLAYS}"; then
+       for o in ${STATIC_OVERLAYS}; do
+               oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
+               cat >> $OVERLAYSC << ENDX
+extern OV_init ${oo}_initialize;
+ENDX
+       done
+fi
+
+cat >> $OVERLAYSC << ENDX
+
+OverlayInit slap_oinfo[] = {
+ENDX
+
+if test "${STATIC_OVERLAYS}"; then
+       for o in ${STATIC_OVERLAYS}; do
+               oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
+               echo "    Add ${oo} ..."
+               cat >> $OVERLAYSC << ENDX
+       { "${oo}", ${oo}_initialize },
+ENDX
+       done
+fi
+
+       cat >> $OVERLAYSC << ENDX
+       { NULL, NULL },
+};
+
+/* end of generated file */
+ENDX
 
 echo Please run \"make depend\" to build dependencies
 
 echo Please run \"make depend\" to build dependencies
-]],[[STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"]])
+]],[[
+STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"
+STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS"
+]])
 AC_OUTPUT
 AC_OUTPUT