X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=configure.in;h=6bf73baa507358262acf2311c1e7672740639a8c;hb=8cc2aa9372a7ac2f3442ab9f687a1124a5642bae;hp=db0cbaf7f43675089f1d4d546e2e9907d54c21dd;hpb=a637926bf27d346a07eb80692393e99cf19b49f5;p=openldap diff --git a/configure.in b/configure.in index db0cbaf7f4..6bf73baa50 100644 --- a/configure.in +++ b/configure.in @@ -1,7 +1,7 @@ dnl $OpenLDAP$ dnl This work is part of OpenLDAP Software . dnl -dnl Copyright 1998-2004 The OpenLDAP Foundation. +dnl Copyright 1998-2005 The OpenLDAP Foundation. dnl All rights reserved. dnl dnl Redistribution and use in source and binary forms, with or without @@ -23,7 +23,7 @@ define([AC_INIT_BINSH], # This work is part of OpenLDAP Software . # -# Copyright 1998-2004 The OpenLDAP Foundation. +# Copyright 1998-2005 The OpenLDAP Foundation. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -34,7 +34,7 @@ define([AC_INIT_BINSH], # top-level directory of the distribution or, alternatively, at # . -echo "Copyright 1998-2004 The OpenLDAP Foundation. All rights reserved." +echo "Copyright 1998-2005 The OpenLDAP Foundation. All rights reserved." echo " Restrictions apply, see COPYRIGHT and LICENSE files." ])dnl dnl ---------------------------------------------------------------- @@ -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 @@ -238,8 +242,8 @@ OL_ARG_ENABLE(sql,[ --enable-sql enable sql backend no|yes|mod], dnl ---------------------------------------------------------------- dnl SLAPD Overlay Options -Overlays="chain denyop dyngroup lastmod ppolicy proxycache rwm \ - refint unique" +Overlays="chain denyop dyngroup glue lastmod ppolicy proxycache rwm \ + refint syncprov unique" AC_ARG_WITH(xxslapoverlays,[ SLAPD Overlay Options:]) @@ -252,6 +256,8 @@ OL_ARG_ENABLE(denyop,[ --enable-denyop Deny Operation overlay no|yes|mod] no, [no yes mod]) OL_ARG_ENABLE(dyngroup,[ --enable-dyngroup Dynamic Group overlay no|yes|mod], no, [no yes mod]) +OL_ARG_ENABLE(glue,[ --enable-glue Backend Glue overlay no|yes|mod], + yes, [no yes mod]) OL_ARG_ENABLE(lastmod,[ --enable-lastmod Last Modification overlay no|yes|mod], no, [no yes mod]) OL_ARG_ENABLE(ppolicy,[ --enable-ppolicy Password Policy overlay no|yes|mod], @@ -262,6 +268,8 @@ OL_ARG_ENABLE(refint,[ --enable-refint Referential Integrity overlay no|yes no, [no yes mod]) OL_ARG_ENABLE(rwm,[ --enable-rwm Rewrite/Remap overlay no|yes|mod], no, [no yes mod]) +OL_ARG_ENABLE(syncprov,[ --enable-syncprov Syncrepl Provider overlay no|yes|mod], + yes, [no yes mod]) OL_ARG_ENABLE(unique,[ --enable-unique Attribute Uniqueness overlay no|yes|mod], no, [no yes mod]) @@ -519,11 +527,13 @@ BUILD_SQL=no BUILD_CHAIN=no BUILD_DENYOP=no BUILD_DYNGROUP=no +BUILD_GLUE=no BUILD_LASTMOD=no BUILD_PPOLICY=no BUILD_PROXYCACHE=no BUILD_REFINT=no BUILD_RWM=no +BUILD_SYNCPROV=no BUILD_UNIQUE=no SLAPD_DYNAMIC_OVERLAYS= @@ -706,6 +716,7 @@ esac dnl ---------------------------------------------------------------- dnl Check for module support ol_link_modules=no +WITH_MODULES_ENABLED=no if test $ol_enable_modules != no ; then AC_CHECK_HEADERS(ltdl.h) @@ -722,6 +733,7 @@ if test $ol_enable_modules != no ; then AC_MSG_ERROR([could not locate libtool -lltdl]) fi ol_link_modules=yes + WITH_MODULES_ENABLED=yes else for i in $Backends; do @@ -878,6 +890,24 @@ 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_HEADERS( sys/epoll.h ) +if test "${ac_cv_header_sys_epoll_h}" = yes; then +AC_MSG_CHECKING(for epoll system call) +AC_TRY_RUN( +int main(int argc, char *argv[]) +{ + int epfd = epoll_create(256); + exit (epfd == -1 ? 1 : 0); +}, [AC_MSG_RESULT(yes) +AC_DEFINE(HAVE_EPOLL,1, [define if your system supports epoll])], +AC_MSG_RESULT(no),AC_MSG_RESULT(no)) +fi + dnl ---------------------------------------------------------------- # strerror checks OL_STRERROR @@ -1207,10 +1237,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, @@ -1249,6 +1280,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 @@ -2230,15 +2268,96 @@ if test $ol_enable_slp != no ; then fi dnl ---------------------------------------------------------------- -dnl Check for GMP API Library -AC_CHECK_HEADERS( gmp.h ) +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 + 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 - fi + ;; + none) + ;; + esac + + AC_MSG_RESULT($ol_mp_support) fi dnl ---------------------------------------------------------------- @@ -2686,6 +2805,17 @@ if test "$ol_enable_dyngroup" != no ; then AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay]) fi +if test "$ol_enable_glue" != no ; then + BUILD_GLUE=$ol_enable_glue + if test "$ol_enable_glue" = mod ; then + MFLAG=SLAPD_MOD_DYNAMIC + SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS glue.la" + else + MFLAG=SLAPD_MOD_STATIC + fi + AC_DEFINE_UNQUOTED(SLAPD_OVER_GLUE,$MFLAG,[define for Backend Glue overlay]) +fi + if test "$ol_enable_lastmod" != no ; then BUILD_LASTMOD=$ol_enable_lastmod if test "$ol_enable_lastmod" = mod ; then @@ -2742,6 +2872,17 @@ if test "$ol_enable_rwm" != no ; then AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay]) fi +if test "$ol_enable_syncprov" != no ; then + BUILD_SYNCPROV=$ol_enable_syncprov + if test "$ol_enable_syncprov" = mod ; then + MFLAG=SLAPD_MOD_DYNAMIC + SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS syncprov.la" + else + MFLAG=SLAPD_MOD_STATIC + fi + AC_DEFINE_UNQUOTED(SLAPD_OVER_SYNCPROV,$MFLAG,[define for Syncrepl Provider overlay]) +fi + if test "$ol_enable_unique" != no ; then BUILD_UNIQUE=$ol_enable_unique if test "$ol_enable_unique" = mod ; then @@ -2783,16 +2924,11 @@ else PLAT=UNIX fi -if test -z "$SLAPD_STATIC_BACKENDS"; then - SLAPD_NO_STATIC='#' -else - SLAPD_NO_STATIC= -fi - AC_SUBST(LIBSRCS) AC_SUBST(PLAT) AC_SUBST(WITH_SASL) AC_SUBST(WITH_TLS) +AC_SUBST(WITH_MODULES_ENABLED) AC_SUBST(BUILD_LIBS_DYNAMIC) AC_SUBST(BUILD_SLAPD) @@ -2817,11 +2953,13 @@ dnl overlays AC_SUBST(BUILD_CHAIN) AC_SUBST(BUILD_DENYOP) AC_SUBST(BUILD_DYNGROUP) + AC_SUBST(BUILD_GLUE) AC_SUBST(BUILD_LASTMOD) AC_SUBST(BUILD_PPOLICY) AC_SUBST(BUILD_PROXYCACHE) AC_SUBST(BUILD_REFINT) AC_SUBST(BUILD_RWM) + AC_SUBST(BUILD_SYNCPROV) AC_SUBST(BUILD_UNIQUE) AC_SUBST(BUILD_SLURPD) @@ -2914,5 +3052,57 @@ tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk \ ,[ chmod +x tests/run date > stamp-h +BACKENDSC="servers/slapd/backends.c" +echo "Making $BACKENDSC" +rm -f $BACKENDSC +cat > $BACKENDSC << ENDX +/* This work is part of OpenLDAP Software . + * + * Copyright 1998-2005 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 + * . + */ +/* This file is automatically generated by configure; please do not edit. */ + +#include "portable.h" +#include "slap.h" + +ENDX +if test "${STATIC_BACKENDS}"; then + for b in ${STATIC_BACKENDS}; do + bb=`echo "${b}" | sed -e 's/back-//'` + cat >> $BACKENDSC << ENDX +extern BI_init ${bb}_back_initialize; +ENDX + done + + cat >> $BACKENDSC << ENDX + +BackendInfo slap_binfo[[]] = { +ENDX + + for b in ${STATIC_BACKENDS}; do + bb=`echo "${b}" | sed -e 's/back-//'` + echo " Add ${bb} ..." + cat >> $BACKENDSC << ENDX + { "${bb}", ${bb}_back_initialize }, +ENDX + done + + cat >> $BACKENDSC << ENDX + { NULL, NULL }, +}; + +/* end of generated file */ +ENDX +fi + echo Please run \"make depend\" to build dependencies -]) +],[STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"])