X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=configure.in;h=ede3d8e67b70f27c0d396a35d8d9104a93a519e0;hb=424b85d75f835cca7e2a41755af494e2db7c2804;hp=8343d6cc002e9d33d0ff70ee321b405faaede66b;hpb=30976f085d739e224e70ebe1ce53d22491f363d4;p=openldap diff --git a/configure.in b/configure.in index 8343d6cc00..ede3d8e67b 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-2006 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 @@ -23,7 +23,7 @@ define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl define([AC_LIBTOOL_LANG_GCJ_CONFIG], [:])dnl dnl ================================================================ dnl Configure.in for OpenLDAP -AC_COPYRIGHT([[Copyright 1998-2006 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/]) @@ -93,7 +93,7 @@ AH_TOP([ /* begin of portable.h.pre */ /* This work is part of OpenLDAP Software . * - * Copyright 1998-2006 The OpenLDAP Foundation + * Copyright 1998-2007 The OpenLDAP Foundation * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -247,12 +247,15 @@ 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 openssl yes no] ) -OL_ARG_WITH(yielding_select,[ --with-yielding-select with implicitly yielding select], +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] ) +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 @@ -338,6 +341,7 @@ OL_ARG_ENABLE(sql,[ --enable-sql enable sql backend], dnl ---------------------------------------------------------------- dnl SLAPD Overlay Options Overlays="accesslog \ + auditlog \ denyop \ dyngroup \ dynlist \ @@ -359,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) +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], @@ -612,6 +618,7 @@ BUILD_SHELL=no BUILD_SQL=no BUILD_ACCESSLOG=no +BUILD_AUDITLOG=no BUILD_DENYOP=no BUILD_DYNGROUP=no BUILD_DYNLIST=no @@ -854,11 +861,11 @@ AC_HEADER_DIRENT AC_HEADER_SYS_WAIT AC_HEADER_TIOCGWINSZ -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 \ @@ -871,7 +878,6 @@ AC_CHECK_HEADERS( \ libutil.h \ limits.h \ locale.h \ - netinet/tcp.h \ malloc.h \ memory.h \ psap.h \ @@ -888,11 +894,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/uio.h \ @@ -900,16 +906,24 @@ AC_CHECK_HEADERS( \ 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_includes_default] +[$ac_includes_default #include -) +]) + +AC_CHECK_HEADERS( netinet/tcp.h, [], [], +[$ac_includes_default +#include +]) -AC_CHECK_HEADERS(sys/ucred.h, [], [], +AC_CHECK_HEADERS( sys/ucred.h, [], [], [$ac_includes_default #ifdef HAVE_SYS_PARAM_H #include @@ -930,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 -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 @@ -1587,12 +1599,12 @@ dnl [ol_cv_pthread_lpthread_lexc]) fi ol_replace_broken_yield=no - case "$target" in - *-*-linux*) - AC_CHECK_FUNCS(nanosleep) - ol_replace_broken_yield=yes - ;; - esac +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, @@ -2160,16 +2172,34 @@ if test $ol_enable_sql != no ; then 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 + 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 @@ -2320,7 +2350,6 @@ if test $ol_enable_proctitle != no ; then fi dnl ---------------------------------------------------------------- -dnl Check for SLPv2 Compliant API Library if test $ol_enable_slp != no ; then AC_CHECK_HEADERS( slp.h ) @@ -2336,99 +2365,6 @@ 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" || - test "$ac_cv_header_bn_h" = "yes" ; then - ol_have_bn_h=yes - fi - - if test "$ac_cv_header_openssl_crypto_h" = "yes" || - test "$ac_cv_header_crypto_h" = "yes" ; then - ol_have_crypto_h=yes - fi - - if test "$ol_have_bn_h" = "yes" && - test "$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 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. @@ -2442,14 +2378,43 @@ AC_CHECK_TYPE(size_t, unsigned) 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 does not define.])], - [$ac_includes_default + +AC_CHECK_TYPE([socklen_t],,, [$ac_includes_default +#ifdef HAVE_SYS_SOCKET_H +#include +#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 #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 does not define.]) +fi + AC_TYPE_SIGNAL @@ -2484,6 +2449,7 @@ fi 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 @@ -2498,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]) +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 @@ -2880,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 +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 @@ -3097,6 +3119,7 @@ dnl backends 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) @@ -3209,7 +3232,7 @@ rm -f $BACKENDSC cat > $BACKENDSC << ENDX /* This work is part of OpenLDAP Software . * - * Copyright 1998-2006 The OpenLDAP Foundation. + * Copyright 1998-2007 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -3260,7 +3283,7 @@ rm -f $OVERLAYSC cat > $OVERLAYSC << ENDX /* This work is part of OpenLDAP Software . * - * Copyright 1998-2006 The OpenLDAP Foundation. + * Copyright 1998-2007 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without