]> git.sur5r.net Git - openldap/blobdiff - configure.in
Add avl_find2 returning the Avlnode, allowing its data to be reset directly
[openldap] / configure.in
index 0656458bb120ce6377cc946edafcb5f60a46fb8d..2599a0884e62257c699f9ffdc45b673ca1872e6e 100644 (file)
@@ -171,6 +171,10 @@ OL_ARG_WITH(tls,[  --with-tls                with TLS/SSL support],
        auto, [auto ssleay openssl yes no] )
 OL_ARG_WITH(yielding_select,[  --with-yielding-select  with implicitly yielding select],
        auto, [auto yes no manual] )
+OL_ARG_WITH(multiple_precision,[  --with-multiple-precision
+                          multiple precision support for statistics
+                         auto|bignum|gmp],
+       auto, [auto bignum gmp yes no] )
 
 dnl ----------------------------------------------------------------
 dnl Server options
@@ -553,12 +557,11 @@ LIBSLAPITOOLS=
 AUTH_LIBS=
 
 SLAPD_SLP_LIBS=
+SLAPD_GMP_LIBS=
 
 dnl ================================================================
 dnl Checks for programs
 
-AC_PROG_INSTALL
-
 AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
 
 dnl ----------------------------------------------------------------
@@ -627,9 +630,6 @@ AC_LIBTOOL_WIN32_DLL
 AC_LIBTOOL_DLOPEN
 AC_PROG_LIBTOOL
 
-OL_PROG_LN_H
-AC_PROG_LN_S
-
 dnl ----------------------------------------------------------------
 dnl Perl
 ol_link_perl=no
@@ -882,6 +882,15 @@ fi
 dnl check to see if system call automatically restart
 dnl AC_SYS_RESTARTABLE_SYSCALLS
 
+dnl ----------------------------------------------------------------
+AC_CHECK_FUNCS( poll )
+AC_CHECK_HEADERS( poll.h )
+
+dnl ----------------------------------------------------------------
+AC_CHECK_FUNC(epoll_create, AC_DEFINE(HAVE_EPOLL,1,
+                       [define if you have epoll]))
+AC_CHECK_HEADERS( sys/epoll.h )
+
 dnl ----------------------------------------------------------------
 # strerror checks
 OL_STRERROR
@@ -971,6 +980,11 @@ if test $ac_cv_func_res_query = no ; then
        ac_cv_func_res_query=$ac_cv_lib_resolv___res_query
 fi
 
+if test $ac_cv_func_res_query = no ; then 
+       AC_CHECK_LIB(resolv, _res_9_query)
+       ac_cv_func_res_query=$ac_cv_lib_resolv_res_9_query
+fi
+
 if test "$ac_cv_func_res_query" = yes ; then
        AC_DEFINE(HAVE_RES_QUERY,1,
                [define if you have res_query()])
@@ -1206,10 +1220,11 @@ fi
 
 dnl ----------------------------------------------------------------
 dnl TLS/SSL
+       
 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, 
@@ -1248,6 +1263,13 @@ if test $ol_with_tls != no ; then
                                TLS_LIBS="-lssl -lcrypto"
                        fi
                fi
+               OL_SSL_COMPAT
+               if test $ol_cv_ssl_crl_compat = no ; then
+                       ol_link_ssl=no
+                else 
+                       AC_DEFINE(HAVE_OPENSSL_CRL, 1, 
+                               [define if you have OpenSSL with CRL checking capability])
+               fi
        fi
 
 else
@@ -2077,6 +2099,7 @@ dnl ----------------------------------------------------------------
 dnl
 dnl Check for Cyrus SASL
 dnl
+WITH_SASL=no
 ol_link_sasl=no
 ol_link_spasswd=no
 if test $ol_with_cyrus_sasl != no ; then
@@ -2117,6 +2140,8 @@ if test $ol_with_cyrus_sasl != no ; then
                AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1,
                        [define if your SASL library has sasl_version()])])
                LIBS="$ac_save_LIBS"
+
+               WITH_SASL=yes
        fi
 
 else
@@ -2225,6 +2250,99 @@ if test $ol_enable_slp != no ; then
        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.
 
@@ -2773,9 +2891,61 @@ else
        SLAPD_NO_STATIC=
 fi
 
+dnl Generate static backend header file
+BACKEND_HEADER=servers/slapd/backend.h
+cat > $BACKEND_HEADER << EOF
+/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+ *
+ * Copyright 1998-2004 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.
+ */
+
+EOF
+
+for b in $SLAPD_STATIC_BACKENDS; do
+       bb=`echo "$b" | sed -e 's;back-;;'`
+       
+       cat >> $BACKEND_HEADER << EOF
+extern BI_init ${bb}_back_initialize;
+EOF
+done
+
+cat >> $BACKEND_HEADER << EOF
+
+static BackendInfo binfo[[]] = {
+EOF
+
+for b in $SLAPD_STATIC_BACKENDS; do
+       bb=`echo "$b" | sed -e 's;back-;;'`
+       
+       cat >> $BACKEND_HEADER << EOF
+       { "$bb", ${bb}_back_initialize },
+EOF
+done
+
+cat >> $BACKEND_HEADER << EOF
+       { NULL, NULL }
+};
+
+/* end of generated file */
+EOF
+dnl done generating static backend header file
+
 AC_SUBST(LIBSRCS)
 AC_SUBST(PLAT)
+AC_SUBST(WITH_SASL)
 AC_SUBST(WITH_TLS)
+AC_SUBST(WITH_MODULES_ENABLED)
 AC_SUBST(BUILD_LIBS_DYNAMIC)
 
 AC_SUBST(BUILD_SLAPD)
@@ -2839,6 +3009,7 @@ AC_SUBST(LIBSLAPITOOLS)
 AC_SUBST(AUTH_LIBS)
 
 AC_SUBST(SLAPD_SLP_LIBS)
+AC_SUBST(SLAPD_GMP_LIBS)
 
 AC_SUBST(SLAPD_SQL_LDFLAGS)
 AC_SUBST(SLAPD_SQL_LIBS)