X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=configure.in;h=2764f9de4ebbfdd1839136621995d7a55c4054a0;hb=7d557f0b0dc39aabe67797afb7d0c7ec0b7193c0;hp=d392cde6052c3c4c0778c73fac6f701236187164;hpb=2b2afda7c1bf947750bd618733d8766e352a4c7b;p=openldap diff --git a/configure.in b/configure.in index d392cde605..2764f9de4e 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 @@ -189,7 +193,7 @@ OL_ARG_ENABLE(spasswd,[ --enable-spasswd enable (Cyrus) SASL password verif OL_ARG_ENABLE(modules,[ --enable-modules enable dynamic module support], no)dnl dnl OL_ARG_ENABLE(multimaster,[ --enable-multimaster enable multimaster replication], no)dnl ol_enable_multimaster=${ol_enable_multimaster-no} -OL_ARG_ENABLE(rewrite,[ --enable-rewrite enable DN rewriting in back-ldap and the rwm overlay], auto)dnl +OL_ARG_ENABLE(rewrite,[ --enable-rewrite enable DN rewriting in back-ldap and rwm overlay], auto)dnl OL_ARG_ENABLE(rlookups,[ --enable-rlookups enable reverse lookups of client hostnames], no)dnl OL_ARG_ENABLE(slapi,[ --enable-slapi enable SLAPI support (experimental)], no)dnl OL_ARG_ENABLE(slp,[ --enable-slp enable SLPv2 support], no)dnl @@ -203,52 +207,79 @@ Backends="bdb dnssrv hdb ldap ldbm meta monitor null \ AC_ARG_WITH(xxslapbackends,[ SLAPD Backend Options:]) -OL_ARG_ENABLE(backends,[ --enable-backends enable all available backends no|yes|mod], no, [no yes mod])dnl -OL_ARG_ENABLE(bdb,[ --enable-bdb enable Berkeley DB backend no|yes|mod], yes, [no yes mod])dnl -OL_ARG_ENABLE(dnssrv,[ --enable-dnssrv enable dnssrv backend no|yes|mod], no, [no yes mod])dnl -OL_ARG_ENABLE(hdb,[ --enable-hdb enable Hierarchical DB backend no|yes|mod], no, [no yes mod])dnl -OL_ARG_ENABLE(ldap,[ --enable-ldap enable ldap backend no|yes|mod], no, [no yes mod])dnl -OL_ARG_ENABLE(ldbm,[ --enable-ldbm enable ldbm backend no|yes|mod], no, [no yes mod])dnl -OL_ARG_WITH(ldbm_api,[ --with-ldbm-api with LDBM API auto|berkeley|bcompat|mdbm|gdbm], auto, - [auto berkeley bcompat mdbm gdbm]) -OL_ARG_WITH(ldbm_type,[ --with-ldbm-type use LDBM type auto|btree|hash], auto, - [auto btree hash]) -OL_ARG_ENABLE(meta,[ --enable-meta enable metadirectory backend no|yes|mod], no, [no yes mod])dnl -OL_ARG_ENABLE(monitor,[ --enable-monitor enable monitor backend no|yes|mod], yes, [no yes mod])dnl -OL_ARG_ENABLE(null,[ --enable-null enable null backend no|yes|mod], no, [no yes mod])dnl -OL_ARG_ENABLE(passwd,[ --enable-passwd enable passwd backend no|yes|mod], no, [no yes mod])dnl -OL_ARG_ENABLE(perl,[ --enable-perl enable perl backend no|yes|mod], no, [no yes mod])dnl -OL_ARG_ENABLE(relay,[ --enable-relay enable relay backend no|yes|mod], yes, [no yes mod])dnl -OL_ARG_ENABLE(shell,[ --enable-shell enable shell backend no|yes|mod], no, [no yes mod])dnl -OL_ARG_ENABLE(sql,[ --enable-sql enable sql backend no|yes|mod], no, [no yes mod])dnl +OL_ARG_ENABLE(backends,[ --enable-backends enable all available backends no|yes|mod], + --, [no yes mod])dnl +test -n "$ol_enable_backends" && ol_dflt_backends="$ol_enable_backends" +OL_ARG_ENABLE(bdb,[ --enable-bdb enable Berkeley DB backend no|yes|mod], + ${ol_dflt_backends-yes}, [no yes mod])dnl +OL_ARG_ENABLE(dnssrv,[ --enable-dnssrv enable dnssrv backend no|yes|mod], + ${ol_dflt_backends-no}, [no yes mod])dnl +OL_ARG_ENABLE(hdb,[ --enable-hdb enable Hierarchical DB backend no|yes|mod], + ${ol_dflt_backends-yes}, [no yes mod])dnl +OL_ARG_ENABLE(ldap,[ --enable-ldap enable ldap backend no|yes|mod], + ${ol_dflt_backends-no}, [no yes mod])dnl +OL_ARG_ENABLE(ldbm,[ --enable-ldbm enable ldbm backend no|yes|mod], + ${ol_dflt_backends-no}, [no yes mod])dnl +OL_ARG_WITH(ldbm_api,[ --with-ldbm-api with LDBM API auto|berkeley|bcompat|mdbm|gdbm], + auto, [auto berkeley bcompat mdbm gdbm]) +OL_ARG_WITH(ldbm_type,[ --with-ldbm-type use LDBM type auto|btree|hash], + auto, [auto btree hash]) +OL_ARG_ENABLE(meta,[ --enable-meta enable metadirectory backend no|yes|mod], + ${ol_dflt_backends-no}, [no yes mod])dnl +OL_ARG_ENABLE(monitor,[ --enable-monitor enable monitor backend no|yes|mod], + ${ol_dflt_backends-yes}, [no yes mod])dnl +OL_ARG_ENABLE(null,[ --enable-null enable null backend no|yes|mod], + ${ol_dflt_backends-no}, [no yes mod])dnl +OL_ARG_ENABLE(passwd,[ --enable-passwd enable passwd backend no|yes|mod], + ${ol_dflt_backends-no}, [no yes mod])dnl +OL_ARG_ENABLE(perl,[ --enable-perl enable perl backend no|yes|mod], + ${ol_dflt_backends-no}, [no yes mod])dnl +OL_ARG_ENABLE(relay,[ --enable-relay enable relay backend no|yes|mod], + ${ol_dflt_backends-yes}, [no yes mod])dnl +OL_ARG_ENABLE(shell,[ --enable-shell enable shell backend no|yes|mod], + ${ol_dflt_backends-no}, [no yes mod])dnl +OL_ARG_ENABLE(sql,[ --enable-sql enable sql backend no|yes|mod], + ${ol_dflt_backends-no}, [no yes mod])dnl dnl ---------------------------------------------------------------- dnl SLAPD Overlay Options -Overlays="chain denyop dyngroup lastmod ppolicy proxycache rwm \ - refint unique" +Overlays="accesslog denyop dyngroup dynlist glue lastmod ppolicy proxycache \ + refint retcode rwm syncprov translucent unique" AC_ARG_WITH(xxslapoverlays,[ SLAPD Overlay Options:]) -OL_ARG_ENABLE(overlays,[ --enable-overlays enable all available overlays no|yes|mod], no, [no yes mod])dnl -OL_ARG_ENABLE(chain,[ --enable-chain LDAP Chain Response no|yes|mod], no, - [no yes mod]) -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(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], no, - [no yes mod]) -OL_ARG_ENABLE(proxycache,[ --enable-proxycache Proxy Cache overlay no|yes|mod], no, - [no yes mod]) -OL_ARG_ENABLE(refint,[ --enable-refint Referential Integrity overlay no|yes|mod], no, - [no yes mod]) -OL_ARG_ENABLE(rwm,[ --enable-rwm Rewrite/Remap overlay no|yes|mod], no, - [no yes mod]) -OL_ARG_ENABLE(unique,[ --enable-unique Attribute Uniqueness overlay no|yes|mod], no, - [no yes mod]) +OL_ARG_ENABLE(overlays,[ --enable-overlays enable all available overlays no|yes|mod], + --, [no yes mod])dnl +test -n "$ol_enable_overlays" && ol_dflt_overlays="$ol_enable_overlays" +OL_ARG_ENABLE(accesslog,[ --enable-accesslog In-Directory Access Logging overlay no|yes|mod], + ${ol_dflt_overlays-no}, [no yes mod]) +OL_ARG_ENABLE(denyop,[ --enable-denyop Deny Operation overlay no|yes|mod], + ${ol_dflt_overlays-no}, [no yes mod]) +OL_ARG_ENABLE(dyngroup,[ --enable-dyngroup Dynamic Group overlay no|yes|mod], + ${ol_dflt_overlays-no}, [no yes mod]) +OL_ARG_ENABLE(dynlist,[ --enable-dynlist Dynamic List overlay no|yes|mod], + ${ol_dflt_overlays-no}, [no yes mod]) +OL_ARG_ENABLE(glue,[ --enable-glue Backend Glue overlay no|yes|mod], + ${ol_dflt_overlays-yes}, [no yes mod]) +OL_ARG_ENABLE(lastmod,[ --enable-lastmod Last Modification overlay no|yes|mod], + ${ol_dflt_overlays-no}, [no yes mod]) +OL_ARG_ENABLE(ppolicy,[ --enable-ppolicy Password Policy overlay no|yes|mod], + ${ol_dflt_overlays-no}, [no yes mod]) +OL_ARG_ENABLE(proxycache,[ --enable-proxycache Proxy Cache overlay no|yes|mod], + ${ol_dflt_overlays-no}, [no yes mod]) +OL_ARG_ENABLE(refint,[ --enable-refint Referential Integrity overlay no|yes|mod], + ${ol_dflt_overlays-no}, [no yes mod]) +OL_ARG_ENABLE(retcode,[ --enable-retcode Return Code testing overlay no|yes|mod], + ${ol_dflt_overlays-no}, [no yes mod]) +OL_ARG_ENABLE(rwm,[ --enable-rwm Rewrite/Remap overlay no|yes|mod], + ${ol_dflt_overlays-no}, [no yes mod]) +OL_ARG_ENABLE(syncprov,[ --enable-syncprov Syncrepl Provider overlay no|yes|mod], + ${ol_dflt_overlays-yes}, [no yes mod]) +OL_ARG_ENABLE(translucent,[ --enable-translucent Translucent Proxy overlay no|yes|mod], + ${ol_dflt_overlays-no}, [no yes mod]) +OL_ARG_ENABLE(unique,[ --enable-unique Attribute Uniqueness overlay no|yes|mod], + ${ol_dflt_overlays-no}, [no yes mod]) dnl ---------------------------------------------------------------- @@ -265,36 +296,15 @@ AC_ENABLE_SHARED dnl ---------------------------------------------------------------- -dnl General "enable" options -# Activate any backends that were not explicitly enabled. -# Note that back_bdb defaults to "yes" so this loop won't touch it. -if test $ol_enable_backends != no ; then - for i in $Backends; do - eval "ol_tmp=\$ol_enable_$i" - if test $ol_tmp = no ; then - eval "ol_enable_$i=$ol_enable_backends" - fi - done -fi -# Activate the overlays -if test $ol_enable_overlays != no ; then - for i in $Overlays; do - eval "ol_tmp=\$ol_enable_$i" - if test $ol_tmp = no ; then - eval "ol_enable_$i=$ol_enable_overlays" - fi - done -fi - # 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_backends != no ; then + case "$ol_enable_backends" in yes | mod) AC_MSG_WARN([slapd disabled, ignoring --enable-backends argument]) - fi + esac for i in $Backends; do eval "ol_tmp=\$ol_enable_$i" if test $ol_tmp != no ; then @@ -330,9 +340,9 @@ if test $ol_enable_slapd = no ; then AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument]) fi dnl overlays - if test $ol_enable_overlays != no ; then + case "$ol_enable_overlays" in yes | mod) AC_MSG_WARN([slapd disabled, ignoring --enable-overlays argument]) - fi + esac for i in $Overlays; do eval "ol_tmp=\$ol_enable_$i" if test $ol_tmp != no ; then @@ -344,8 +354,8 @@ if test $ol_enable_slapd = no ; then # force settings to no ol_enable_slapi=no - ol_enable_backends=no - ol_enable_overlays=no + ol_enable_backends= + ol_enable_overlays= ol_enable_modules=no ol_enable_multimaster=no ol_enable_rlookups=no @@ -423,10 +433,6 @@ else fi fi -if test $ol_enable_chain != no -a $ol_enable_ldap = no ; then - AC_MSG_ERROR([--enable-chain requires --enable-ldap]) -fi - if test $ol_enable_meta = yes -a $ol_enable_ldap = no ; then AC_MSG_ERROR([--enable-meta requires --enable-ldap]) fi @@ -501,22 +507,28 @@ BUILD_RELAY=no BUILD_SHELL=no BUILD_SQL=no -BUILD_CHAIN=no +BUILD_ACCESSLOG=no BUILD_DENYOP=no BUILD_DYNGROUP=no +BUILD_DYNLIST=no +BUILD_GLUE=no BUILD_LASTMOD=no BUILD_PPOLICY=no BUILD_PROXYCACHE=no BUILD_REFINT=no +BUILD_RETCODE=no BUILD_RWM=no +BUILD_SYNCPROV=no +BUILD_TRANSLUCENT=no BUILD_UNIQUE=no +SLAPD_STATIC_OVERLAYS= SLAPD_DYNAMIC_OVERLAYS= SLAPD_MODULES_LDFLAGS= SLAPD_MODULES_CPPFLAGS= -SLAPD_STATIC_BACKENDS= +SLAPD_STATIC_BACKENDS=back-ldif SLAPD_DYNAMIC_BACKENDS= SLAPD_PERL_LDFLAGS= @@ -538,12 +550,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 ---------------------------------------------------------------- @@ -612,9 +623,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 @@ -695,6 +703,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) @@ -711,6 +720,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 @@ -745,11 +755,11 @@ if test $am_cv_sys_posix_termios = yes ; then [define if you have POSIX termios]) fi -AC_CHECK_HEADERS( \ +AC_CHECK_HEADERS( \ arpa/inet.h \ - arpa/nameser.h \ + arpa/nameser.h \ assert.h \ - bits/types.h \ + bits/types.h \ conio.h \ crypt.h \ direct.h \ @@ -762,7 +772,7 @@ AC_CHECK_HEADERS( \ libutil.h \ limits.h \ locale.h \ - netinet/tcp.h \ + netinet/tcp.h \ malloc.h \ memory.h \ psap.h \ @@ -780,11 +790,11 @@ AC_CHECK_HEADERS( \ 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/syslog.h \ + sys/syslog.h \ sys/time.h \ sys/types.h \ sys/ucred.h \ @@ -792,22 +802,28 @@ AC_CHECK_HEADERS( \ syslog.h \ termios.h \ unistd.h \ + utime.h \ winsock.h \ winsock2.h \ ) - dnl ---------------------------------------------------------------- dnl Checks for libraries +AC_CHECK_FUNCS( sigaction sigset ) + dnl HP-UX requires -lV3 dnl this is not needed on newer versions of HP-UX -AC_CHECK_LIB(V3, sigset) +if test $ac_cv_func_sigaction = no && test $ac_cv_func_sigaction = no ; then + AC_CHECK_LIB(V3, sigset) +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 -if test "$ac_cv_header_winsock_h" = yes; then +dnl +dnl Skip Winsock tests on Cygwin +if test "$ac_cv_cygwin" != yes && 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 @@ -867,6 +883,28 @@ 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 + dnl ---------------------------------------------------------------- dnl require POSIX regex AC_CHECK_HEADERS( regex.h ) @@ -923,48 +961,32 @@ fi dnl ---------------------------------------------------------------- dnl Check for resolver routines -dnl need to check for both res_query and __res_query -dnl need to check -lc, -lbind, and -lresolv -ol_link_dnssrv=no -AC_CHECK_FUNC(res_query,:) -if test $ac_cv_func_res_query = no ; then - AC_CHECK_FUNC(__res_query,:) - ac_cv_func_res_query=$ac_cv_func___res_query -fi - -if test $ac_cv_func_res_query = no ; then - AC_CHECK_LIB(bind, res_query) - ac_cv_func_res_query=$ac_cv_lib_bind_res_query -fi +OL_RESOLVER_LINK -if test $ac_cv_func_res_query = no ; then - AC_CHECK_LIB(bind, __res_query) - ac_cv_func_res_query=$ac_cv_lib_bind___res_query -fi - -if test $ac_cv_func_res_query = no ; then - AC_CHECK_LIB(resolv, res_query) - 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_query) - ac_cv_func_res_query=$ac_cv_lib_resolv___res_query -fi - -if test "$ac_cv_func_res_query" = yes ; then +ol_link_dnssrv=no +if test "$ol_cv_lib_resolver" != no ; then AC_DEFINE(HAVE_RES_QUERY,1, [define if you have res_query()]) - if test $ol_enable_dnssrv != no ; then + if test "$ol_enable_dnssrv" != no ; then ol_link_dnssrv=yes fi + + if test "$ol_cv_lib_resolver" != yes ; then + LIBS="$ol_cv_lib_resolver $LIBS" + fi fi -if test "$ol_enable_dnssrv" != no -a "$ol_link_dnssrv" = no ; then - AC_MSG_ERROR([DNSSRV requires res_query()]) +if test "$ol_enable_dnssrv" = yes -o "$ol_enable_dnssrv" = mod ; then + if test "$ol_link_dnssrv" = no ; then + AC_MSG_ERROR([DNSSRV requires res_query()]) + fi +else + ol_enable_dnssrv=no fi +AC_CHECK_FUNCS( hstrerror ) + dnl ---------------------------------------------------------------- dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN dnl PF_LOCAL may use getaddrinfo in available @@ -1185,10 +1207,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, @@ -1227,6 +1250,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 @@ -1943,13 +1973,13 @@ if test $ol_with_ldbm_api = ndbm ; then fi if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then - AC_MSG_WARN([could not find suitable LDBM backend]) - if test $ol_enable_ldbm = yes ; then - AC_MSG_ERROR([select appropriate LDBM options or disable]) - fi + AC_MSG_ERROR([could not find suitable LDBM backend]) +fi - AC_MSG_WARN(disabling LDBM) - ol_enable_ldbm=no +if test $ol_enable_bdb = yes -o \ + $ol_enable_hdb = yes -o \ + $ol_enable_ldbm = yes ; then + SLAPD_LIBS="$SLAPD_LIBS \$(LDBM_LIBS)" fi dnl ---------------------------------------------------------------- @@ -2034,6 +2064,9 @@ if test $ol_enable_sql != no ; then AC_MSG_ERROR([could not locate SQL headers]) ]) + 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" @@ -2044,6 +2077,8 @@ if test $ol_enable_sql != no ; then fi fi + LIBS="$sql_LIBS" + if test $ol_link_sql != no ; then SLAPD_SQL_LIBS="$ol_link_sql" @@ -2056,6 +2091,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 @@ -2096,6 +2132,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 @@ -2204,6 +2242,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. @@ -2269,6 +2400,12 @@ AC_DEFINE(LBER_TAG_T,long) dnl ---------------------------------------------------------------- dnl Checks for library functions. AC_FUNC_MEMCMP + +if test $ac_cv_func_memcmp_clean = no ; then + AC_DEFINE(NEED_MEMCMP_REPLACEMENT,1, + [define if memcmp is not 8-bit clean or is otherwise broken]) +fi + dnl AM_FUNC_MKTIME dnl checks for sys/time.h and unistd.h AC_FUNC_STRFTIME dnl AM_FUNC_STRTOD @@ -2327,11 +2464,8 @@ AC_CHECK_FUNCS( \ setsid \ setuid \ seteuid \ - sigaction \ signal \ - sigset \ strdup \ - strerror \ strpbrk \ strrchr \ strsep \ @@ -2360,6 +2494,9 @@ if test "$ac_cv_func_getopt" != yes; then fi if test "$ac_cv_func_getpeereid" != yes; then OL_MSGHDR_MSG_ACCRIGHTS + if test "$ac_cv_func_getpeereid" != yes; then + OL_MSGHDR_MSG_CONTROL + fi LIBSRCS="$LIBSRCS getpeereid.c" fi if test "$ac_cv_func_snprintf" != yes -o "$ac_cv_func_vsnprintf" != yes; then @@ -2371,10 +2508,6 @@ if test "$ac_cv_func_snprintf" != yes -o "$ac_cv_func_vsnprintf" != yes; then fi fi -dnl ---------------------------------------------------------------- -# Check Configuration -OL_SYS_ERRLIST - dnl ---------------------------------------------------------------- dnl Sort out defines @@ -2621,15 +2754,16 @@ if test "$ol_link_sql" != no ; then AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend]) fi -if test "$ol_enable_chain" != no ; then - BUILD_CHAIN=$ol_enable_chain - if test "$ol_enable_chain" = mod ; then +if test "$ol_enable_accesslog" != no ; then + BUILD_ACCESSLOG=$ol_enable_accesslog + if test "$ol_enable_accesslog" = mod ; then MFLAG=SLAPD_MOD_DYNAMIC - SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS chain.la" + SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS accesslog.la" else MFLAG=SLAPD_MOD_STATIC + SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS accesslog.o" fi - AC_DEFINE_UNQUOTED(SLAPD_OVER_CHAIN,$MFLAG,[define for Dynamic Group overlay]) + AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay]) fi if test "$ol_enable_denyop" != no ; then @@ -2639,6 +2773,7 @@ if test "$ol_enable_denyop" != no ; then SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS denyop.la" else 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]) fi @@ -2650,10 +2785,35 @@ if test "$ol_enable_dyngroup" != no ; then SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dyngroup.la" else MFLAG=SLAPD_MOD_STATIC + SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dyngroup.o" fi AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay]) fi +if test "$ol_enable_dynlist" != no ; then + BUILD_DYNLIST=$ol_enable_dynlist + if test "$ol_enable_dynlist" = mod ; then + MFLAG=SLAPD_MOD_DYNAMIC + SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dynlist.la" + else + MFLAG=SLAPD_MOD_STATIC + SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dynlist.o" + fi + AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNLIST,$MFLAG,[define for Dynamic List 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 + SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS glue.o" + 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 @@ -2661,6 +2821,7 @@ if test "$ol_enable_lastmod" != no ; then SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS lastmod.la" else MFLAG=SLAPD_MOD_STATIC + SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS lastmod.o" fi AC_DEFINE_UNQUOTED(SLAPD_OVER_LASTMOD,$MFLAG,[define for Last Modification overlay]) fi @@ -2672,6 +2833,7 @@ if test "$ol_enable_ppolicy" != no ; then SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS ppolicy.la" else MFLAG=SLAPD_MOD_STATIC + SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS ppolicy.o" fi AC_DEFINE_UNQUOTED(SLAPD_OVER_PPOLICY,$MFLAG,[define for Password Policy overlay]) fi @@ -2683,6 +2845,7 @@ if test "$ol_enable_proxycache" != no ; then SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS pcache.la" else MFLAG=SLAPD_MOD_STATIC + SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS pcache.o" fi AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay]) fi @@ -2694,10 +2857,23 @@ if test "$ol_enable_refint" != no ; then SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la" else MFLAG=SLAPD_MOD_STATIC + SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS refint.o" fi AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay]) fi +if test "$ol_enable_retcode" != no ; then + BUILD_RETCODE=$ol_enable_retcode + if test "$ol_enable_retcode" = mod ; then + MFLAG=SLAPD_MOD_DYNAMIC + SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS retcode.la" + else + MFLAG=SLAPD_MOD_STATIC + SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS retcode.o" + fi + AC_DEFINE_UNQUOTED(SLAPD_OVER_RETCODE,$MFLAG,[define for Referential Integrity overlay]) +fi + if test "$ol_enable_rwm" != no ; then BUILD_REWRITE=yes BUILD_RWM=$ol_enable_rwm @@ -2706,10 +2882,35 @@ if test "$ol_enable_rwm" != no ; then SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS rwm.la" else MFLAG=SLAPD_MOD_STATIC + SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS rwm_x.o" fi 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 + SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS syncprov.o" + fi + AC_DEFINE_UNQUOTED(SLAPD_OVER_SYNCPROV,$MFLAG,[define for Syncrepl Provider overlay]) +fi + +if test "$ol_enable_translucent" != no ; then + BUILD_TRANSLUCENT=$ol_enable_translucent + if test "$ol_enable_translucent" = mod ; then + MFLAG=SLAPD_MOD_DYNAMIC + SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS translucent.la" + else + MFLAG=SLAPD_MOD_STATIC + SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS translucent.o" + fi + AC_DEFINE_UNQUOTED(SLAPD_OVER_TRANSLUCENT,$MFLAG,[define for Translucent Proxy overlay]) +fi + if test "$ol_enable_unique" != no ; then BUILD_UNIQUE=$ol_enable_unique if test "$ol_enable_unique" = mod ; then @@ -2717,6 +2918,7 @@ if test "$ol_enable_unique" != no ; then SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la" else MFLAG=SLAPD_MOD_STATIC + SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS unique.o" fi AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay]) fi @@ -2751,15 +2953,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) @@ -2781,14 +2979,19 @@ dnl backends AC_SUBST(BUILD_SHELL) AC_SUBST(BUILD_SQL) dnl overlays - AC_SUBST(BUILD_CHAIN) + AC_SUBST(BUILD_ACCESSLOG) AC_SUBST(BUILD_DENYOP) AC_SUBST(BUILD_DYNGROUP) + AC_SUBST(BUILD_DYNLIST) + AC_SUBST(BUILD_GLUE) AC_SUBST(BUILD_LASTMOD) AC_SUBST(BUILD_PPOLICY) AC_SUBST(BUILD_PROXYCACHE) AC_SUBST(BUILD_REFINT) + AC_SUBST(BUILD_RETCODE) AC_SUBST(BUILD_RWM) + AC_SUBST(BUILD_SYNCPROV) + AC_SUBST(BUILD_TRANSLUCENT) AC_SUBST(BUILD_UNIQUE) AC_SUBST(BUILD_SLURPD) @@ -2806,6 +3009,7 @@ AC_SUBST(SLAPD_MODULES_LDFLAGS) AC_SUBST(SLAPD_NO_STATIC) AC_SUBST(SLAPD_STATIC_BACKENDS) AC_SUBST(SLAPD_DYNAMIC_BACKENDS) +AC_SUBST(SLAPD_STATIC_OVERLAYS) AC_SUBST(SLAPD_DYNAMIC_OVERLAYS) AC_SUBST(PERL_CPPFLAGS) @@ -2823,6 +3027,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) @@ -2854,7 +3059,7 @@ libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib. libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.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 \ +libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-shared.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 \ @@ -2862,6 +3067,7 @@ servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefi servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/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-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/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 \ @@ -2880,5 +3086,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 config ${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 config ${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"])