X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=configure.in;h=6bf73baa507358262acf2311c1e7672740639a8c;hb=cd797f80899faba87f81892eeb6e4ffe6587bcdb;hp=bc31e25445f9723a836750e060916f0ad2997cef;hpb=2e9983ca08e01317445f026e67ac1e41ef779de1;p=openldap diff --git a/configure.in b/configure.in index bc31e25445..6bf73baa50 100644 --- a/configure.in +++ b/configure.in @@ -1,14 +1,19 @@ dnl $OpenLDAP$ +dnl This work is part of OpenLDAP Software . +dnl +dnl Copyright 1998-2005 The OpenLDAP Foundation. +dnl All rights reserved. dnl -dnl Copyright 1998-2001 The OpenLDAP Foundation. All Rights Reserved. -dnl dnl Redistribution and use in source and binary forms, with or without dnl modification, are permitted only as authorized by the OpenLDAP -dnl Public License. A copy of this license is available at -dnl http://www.OpenLDAP.org/license.html or in file LICENSE in the -dnl top-level directory of the distribution. +dnl Public License. +dnl +dnl A copy of this license is available in the file LICENSE in the +dnl top-level directory of the distribution or, alternatively, at +dnl . dnl dnl ---------------------------------------------------------------- +dnl dnl Redefine AC_INIT_BINSH to provide RCS IDs and copyright notice dnl at top of generated configure script. Prints simple copyright. define([AC_INIT_BINSH], @@ -16,16 +21,21 @@ define([AC_INIT_BINSH], # $]OpenLDAP[$ # from] translit([$OpenLDAP$], $")] [ -# Copyright 1998-2001 The OpenLDAP Foundation. All Rights Reserved. -# +# 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 at -# http://www.OpenLDAP.org/license.html or in file LICENSE in the -# top-level directory of the distribution. - -echo "Copyright 1998-2001 The OpenLDAP Foundation, All Rights Reserved." -echo "Restrictions apply, see COPYRIGHT and LICENSE files." +# Public License. +# +# A copy of this license is available in the file LICENSE in the +# top-level directory of the distribution or, alternatively, at +# . + +echo "Copyright 1998-2005 The OpenLDAP Foundation. All rights reserved." +echo " Restrictions apply, see COPYRIGHT and LICENSE files." ])dnl dnl ---------------------------------------------------------------- dnl Disable config.cache! @@ -51,7 +61,24 @@ if test -z "$OL_STRING"; then AC_MSG_ERROR([could not determine version]) fi -echo "Configuring $OL_STRING ..." +if test -f "$ac_aux_dir/shtool" -a ! -d $ac_aux_dir/shtool; then + ac_cv_shtool="$ac_aux_dir/shtool" +else + AC_MSG_ERROR([no shtool found in $ac_aux_dir]) +fi + +SHTOOL="$ac_cv_shtool" +dnl AC_SUBST(SHTOOL)dnl + +TB="`$SHTOOL echo -e '%B' 2>/dev/null`" +TN="`$SHTOOL echo -e '%b' 2>/dev/null`" + +OPENLDAP_CVS="" +if test -d $ac_aux_dir/CVS; then + OPENLDAP_CVS="(from CVS sources) " +fi + +echo "Configuring ${TB}${OL_STRING}${TN} ${OPENLDAP_CVS}..." dnl Determine host platform dnl we try not to use this for much @@ -68,12 +95,18 @@ AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MAJOR,$OL_MAJOR,Major) AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MINOR,$OL_MINOR,Minor) AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_PATCH,$OL_PATCH,Patch) -OPENLDAP_LIBVERSION=$OL_API_LIB +OPENLDAP_LIBRELEASE=$OL_API_LIB_RELEASE +AC_SUBST(OPENLDAP_LIBRELEASE)dnl + +OPENLDAP_LIBVERSION=$OL_API_LIB_VERSION AC_SUBST(OPENLDAP_LIBVERSION)dnl -dnl We use autoconf features new to 2.13. +OPENLDAP_RELEASE_DATE="$OL_RELEASE_DATE" +AC_SUBST(OPENLDAP_RELEASE_DATE)dnl + +dnl We use autoconf features new to 2.13. Later versions like won't work. dnl aclocal.m4 should be built using aclocal from automake 1.4 -dnl libtool 1.3.3 should be installed. +dnl libtool 1.4.3 should be installed. AC_PREREQ(2.13)dnl Required Autoconf version AC_CONFIG_HEADER(include/portable.h include/ldap_features.h include/lber_types.h)dnl @@ -111,16 +144,15 @@ AC_SUBST(ldap_subdir)dnl dnl ---------------------------------------------------------------- dnl General "enable" options OL_ARG_ENABLE(debug,[ --enable-debug enable debugging], yes)dnl +OL_ARG_ENABLE(dynamic,[ --enable-dynamic enable linking built binaries with dynamic libs], no)dnl OL_ARG_ENABLE(syslog,[ --enable-syslog enable syslog support], auto)dnl OL_ARG_ENABLE(proctitle,[ --enable-proctitle enable proctitle support], yes)dnl -OL_ARG_ENABLE(cache,[ --enable-cache enable caching (experimental)], no)dnl -OL_ARG_ENABLE(referrals,[ --enable-referrals enable LDAPv2+ Referrals (experimental)], no)dnl -OL_ARG_ENABLE(kbind,[ --enable-kbind enable LDAPv2+ Kerberos IV bind (deprecated)], no)dnl +dnl OL_ARG_ENABLE(referrals,[ --enable-referrals enable LDAPv2+ Referrals (experimental)], no)dnl +ol_enable_referrals=${ol_enable_referrals-no} +dnl OL_ARG_ENABLE(kbind,[ --enable-kbind enable LDAPv2+ Kerberos IV bind (deprecated)], no)dnl +ol_enable_kbind=${ol_enable_kbind-no} OL_ARG_ENABLE(ipv6,[ --enable-ipv6 enable IPv6 support], auto)dnl OL_ARG_ENABLE(local,[ --enable-local enable AF_LOCAL (AF_UNIX) socket support], auto)dnl -OL_ARG_ENABLE(rewrite,[ --enable-rewrite enable rewrite], no)dnl -OL_ARG_ENABLE(x_compile,[ --enable-x-compile enable cross compiling], - no, [yes no])dnl dnl ---------------------------------------------------------------- dnl General "with" options @@ -128,18 +160,21 @@ dnl OL_ARG_ENABLE(dmalloc,[ --enable-dmalloc enable debug malloc support], no OL_ARG_WITH(cyrus_sasl,[ --with-cyrus-sasl with Cyrus SASL support], auto, [auto yes no] ) -OL_ARG_WITH(fetch,[ --with-fetch with fetch URL support], - auto, [auto yes no] ) -OL_ARG_WITH(kerberos,[ --with-kerberos with Kerberos support], - auto, [auto k5 k5only k425 kth k4 afs yes no]) -OL_ARG_WITH(readline,[ --with-readline with readline support], +OL_ARG_WITH(fetch,[ --with-fetch with fetch(3) URL support], auto, [auto yes no] ) +dnl OL_ARG_WITH(kerberos,[ --with-kerberos with Kerberos support], +dnl auto, [auto k5 k5only k425 kth k4 afs yes no]) +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], 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 @@ -147,123 +182,158 @@ dnl ---------------------------------------------------------------- dnl ---------------------------------------------------------------- dnl SLAPD OPTIONS -AC_ARG_WITH(xxslapdoptions,[SLAPD (Standalone LDAP Daemon) Options:]) +AC_ARG_WITH(xxslapdoptions,[ +SLAPD (Standalone LDAP Daemon) Options:]) OL_ARG_ENABLE(slapd,[ --enable-slapd enable building slapd], yes)dnl OL_ARG_ENABLE(aci,[ --enable-aci enable per-object ACIs (experimental)], no)dnl OL_ARG_ENABLE(cleartext,[ --enable-cleartext enable cleartext passwords], yes)dnl OL_ARG_ENABLE(crypt,[ --enable-crypt enable crypt(3) passwords], no)dnl -OL_ARG_ENABLE(dynamic,[ --enable-dynamic enable linking built binaries with dynamic libs], no)dnl -OL_ARG_ENABLE(kpasswd,[ --enable-kpasswd enable Kerberos password verification], no)dnl OL_ARG_ENABLE(lmpasswd,[ --enable-lmpasswd enable LAN Manager passwords], no)dnl OL_ARG_ENABLE(spasswd,[ --enable-spasswd enable (Cyrus) SASL password verification], no)dnl 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_ARG_ENABLE(phonetic,[ --enable-phonetic enable phonetic/soundex], no)dnl -OL_ARG_ENABLE(rlookups,[ --enable-rlookups enable reverse lookups], no)dnl -OL_ARG_ENABLE(slp, [ --enable-slp enable SLPv2 support], 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(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 OL_ARG_ENABLE(wrappers,[ --enable-wrappers enable tcp wrapper support], no)dnl -dnl SLAPD Backend options -OL_ARG_ENABLE(bdb,[ --enable-bdb enable Berkeley DB backend], no)dnl -OL_ARG_WITH(bdb_module,[ --with-bdb-module module type], static, - [static dynamic]) -OL_ARG_ENABLE(dnssrv,[ --enable-dnssrv enable dnssrv backend], no)dnl -OL_ARG_WITH(dnssrv_module,[ --with-dnssrv-module module type], static, - [static dynamic]) -OL_ARG_ENABLE(ldap,[ --enable-ldap enable ldap backend], no)dnl -OL_ARG_WITH(ldap_module,[ --with-ldap-module module type], static, - [static dynamic]) -OL_ARG_ENABLE(ldbm,[ --enable-ldbm enable ldbm backend], yes)dnl -OL_ARG_WITH(ldbm_api,[ --with-ldbm-api with LDBM API], auto, - [auto berkeley bcompat mdbm gdbm]) -OL_ARG_WITH(ldbm_module,[ --with-ldbm-module module type], static, - [static dynamic]) -OL_ARG_WITH(ldbm_type,[ --with-ldbm-type use LDBM type], auto, - [auto btree hash]) -OL_ARG_ENABLE(meta,[ --enable-meta enable metadirectory backend], no)dnl -OL_ARG_WITH(meta_module,[ --with-meta-module module type], static, - [static dynamic]) -OL_ARG_ENABLE(monitor,[ --enable-monitor enable monitor backend], no)dnl -OL_ARG_WITH(monitor_module,[ --with-monitor-module module type], static, - [static dynamic]) -OL_ARG_ENABLE(passwd,[ --enable-passwd enable passwd backend], no)dnl -OL_ARG_WITH(passwd_module,[ --with-passwd-module module type], static, - [static dynamic]) -OL_ARG_ENABLE(perl,[ --enable-perl enable perl backend], no)dnl -OL_ARG_WITH(perl_module,[ --with-perl-module module type], static, - [static dynamic]) -OL_ARG_ENABLE(shell,[ --enable-shell enable shell backend], no)dnl -OL_ARG_WITH(shell_module,[ --with-shell-module module type], static, - [static dynamic]) -OL_ARG_ENABLE(sql,[ --enable-sql enable sql backend], no)dnl -OL_ARG_WITH(sql_module,[ --with-sql-module module type], static, - [static dynamic]) -OL_ARG_ENABLE(tcl,[ --enable-tcl enable tcl backend], no)dnl -OL_ARG_WITH(tcl_module,[ --with-tcl-module module type], static, - [static dynamic]) +dnl ---------------------------------------------------------------- +dnl SLAPD Backend Options +Backends="bdb dnssrv hdb ldap ldbm meta monitor null \ + passwd perl relay shell sql" + +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 + +dnl ---------------------------------------------------------------- +dnl SLAPD Overlay Options +Overlays="chain denyop dyngroup glue lastmod ppolicy proxycache rwm \ + refint syncprov 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(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], + 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(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]) + dnl ---------------------------------------------------------------- dnl SLURPD OPTIONS -AC_ARG_WITH(xxslurpdoptions,[SLURPD (Replication Daemon) Options:]) +AC_ARG_WITH(xxslurpdoptions,[ +SLURPD (Replication Daemon) Options:]) OL_ARG_ENABLE(slurpd,[ --enable-slurpd enable building slurpd], auto)dnl dnl ---------------------------------------------------------------- -AC_ARG_WITH(xxliboptions,[Library Generation & Linking Options]) +AC_ARG_WITH(xxliboptions,[ +Library Generation & Linking Options]) AC_ENABLE_STATIC -dnl AC_DISABLE_SHARED 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_bdb = yes ; then - AC_MSG_WARN([slapd disabled, ignoring --enable-bdb argument]) - fi - if test $ol_enable_dnssrv = yes ; then - AC_MSG_WARN([slapd disabled, ignoring --enable-dnssrv argument]) - fi - if test $ol_enable_ldap = yes ; then - AC_MSG_WARN([slapd disabled, ignoring --enable-ldap argument]) + if test $ol_enable_slapi = yes ; then + AC_MSG_WARN([slapd disabled, ignoring --enable-slapi argument]) fi - if test $ol_enable_ldbm = yes ; then - AC_MSG_WARN([slapd disabled, ignoring --enable-ldbm argument]) - fi - if test $ol_enable_meta = yes ; then - AC_MSG_WARN([slapd disabled, ignoring --enable-meta argument]) - fi - if test $ol_enable_monitor = yes ; then - AC_MSG_WARN([slapd disabled, ignoring --enable-monitor argument]) - fi - if test $ol_enable_passwd = yes ; then - AC_MSG_WARN([slapd disabled, ignoring --enable-passwd argument]) - fi - if test $ol_enable_perl = yes ; then - AC_MSG_WARN([slapd disabled, ignoring --enable-perl argument]) - fi - if test $ol_enable_shell = yes ; then - AC_MSG_WARN([slapd disabled, ignoring --enable-shell argument]) - fi - if test $ol_enable_tcl = yes ; then - AC_MSG_WARN([slapd disabled, ignoring --enable-tcl argument]) - fi - if test $ol_enable_sql = yes ; then - AC_MSG_WARN([slapd disabled, ignoring --enable-sql argument]) + if test $ol_enable_backends != no ; then + AC_MSG_WARN([slapd disabled, ignoring --enable-backends argument]) fi + for i in $Backends; do + eval "ol_tmp=\$ol_enable_$i" + if test $ol_tmp != no ; then + AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument]) + eval "ol_enable_$i=no" + fi + done if test $ol_enable_modules = yes ; then AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument]) fi -dnl if test $ol_enable_multimaster = yes ; then -dnl AC_MSG_WARN([slapd disabled, ignoring --enable-multimaster argument]) -dnl fi + if test $ol_enable_multimaster = yes ; then + AC_MSG_WARN([slapd disabled, ignoring --enable-multimaster argument]) + fi if test $ol_enable_wrappers = yes ; then AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument]) fi - if test $ol_enable_phonetic = yes ; then - AC_MSG_WARN([slapd disabled, ignoring --enable-phonetic argument]) - fi if test $ol_enable_rlookups = yes ; then AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument]) fi @@ -276,82 +346,38 @@ dnl fi if test $ol_with_ldbm_type != auto ; then AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-type argument]) fi - if test $ol_with_bdb_module != static ; then - AC_MSG_WARN([slapd disabled, ignoring --with-bdb-module argument]) - fi - if test $ol_with_dnssrv_module != static ; then - AC_MSG_WARN([slapd disabled, ignoring --with-dnssrv-module argument]) - fi - if test $ol_with_ldap_module != static ; then - AC_MSG_WARN([slapd disabled, ignoring --with-ldap-module argument]) - fi - if test $ol_with_ldbm_module != static ; then - AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-module argument]) - fi - if test $ol_with_meta_module != static ; then - AC_MSG_WARN([slapd disabled, ignoring --with-meta-module argument]) - fi - if test $ol_with_monitor_module != static ; then - AC_MSG_WARN([slapd disabled, ignoring --with-monitor-module argument]) - fi - if test $ol_with_passwd_module != static ; then - AC_MSG_WARN([slapd disabled, ignoring --with-passwd-module argument]) - fi - if test $ol_with_perl_module != static ; then - AC_MSG_WARN([slapd disabled, ignoring --with-perl-module argument]) - fi - if test $ol_with_shell_module != static ; then - AC_MSG_WARN([slapd disabled, ignoring --with-shell-module argument]) - fi - if test $ol_with_tcl_module != static ; then - AC_MSG_WARN([slapd disabled, ignoring --with-tcl-module argument]) - fi - if test $ol_with_sql_module != static ; then - AC_MSG_WARN([slapd disabled, ignoring --with-sql-module argument]) - fi if test $ol_enable_slurpd = yes ; then AC_MSG_ERROR([slurpd requires slapd]) fi if test $ol_enable_rewrite = yes ; then AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument]) fi + dnl overlays + if test $ol_enable_overlays != no ; then + AC_MSG_WARN([slapd disabled, ignoring --enable-overlays argument]) + fi + for i in $Overlays; do + eval "ol_tmp=\$ol_enable_$i" + if test $ol_tmp != no ; then + AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument]) + eval "ol_enable_$i=no" + fi + done # force settings to no - ol_enable_bdb=no - ol_enable_dnssrv=no - ol_enable_ldap=no - ol_enable_ldbm=no - ol_enable_meta=no - ol_enable_monitor=no - ol_enable_passwd=no - ol_enable_perl=no - ol_enable_shell=no - ol_enable_tcl=no - ol_enable_sql=no + ol_enable_slapi=no + ol_enable_backends=no + ol_enable_overlays=no ol_enable_modules=no -dnl ol_enable_multimaster=no - ol_enable_phonetic=no + ol_enable_multimaster=no ol_enable_rlookups=no ol_enable_aci=no ol_enable_wrappers=no - ol_enable_dynamic=no ol_with_ldbm_api=no ol_with_ldbm_type=no - ol_with_bdb_module=static - ol_with_dnssrv_module=static - ol_with_ldap_module=static - ol_with_ldbm_module=static - ol_with_meta_module=static - ol_with_monitor_module=static - ol_with_passwd_module=static - ol_with_perl_module=static - ol_with_shell_module=static - ol_with_tcl_module=static - ol_with_sql_module=static - ol_enable_slurpd=no ol_enable_rewrite=no @@ -367,21 +393,19 @@ elif test $ol_enable_ldbm = no ; then AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-type argument]) fi - if test $ol_with_ldbm_module != static ; then - AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-module 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 -a \ - $ol_enable_tcl = no ; then + $ol_enable_sql = no ; then if test $ol_enable_slapd = yes ; then AC_MSG_ERROR([slapd requires a backend]) @@ -393,9 +417,8 @@ elif test $ol_enable_ldbm = no ; then ol_with_ldbm_api=no ol_with_ldbm_type=no - ol_with_ldbm_module=static - if test $ol_enable_bdb != no ; then + if test $ol_enable_bdb != no -o $ol_enable_hdb != no; then ol_with_ldbm_api=berkeley fi @@ -414,22 +437,23 @@ else AC_MSG_ERROR([NDBM only supports LDBM type hash]) fi - if test $ol_enable_bdb = yes ; then + if test $ol_enable_bdb != no -o $ol_enable_hdb != no ; then if test $ol_with_ldbm_api = auto ; then ol_with_ldbm_api=berkeley elif test $ol_with_ldbm_api != berkeley ; then - AC_MSG_ERROR([LDBM API not compatible with BDB]) - fi - - elif test $ol_enable_bdb = auto ; then - if test $ol_with_ldbm_api != berkeley \ - -o $ol_with_ldbm_api != auto ; then - AC_MSG_WARN([LDBM API not compatible with BDB, disabling BDB]) - ol_enable_bdb=no + AC_MSG_ERROR([LDBM API not compatible with BDB/HDB]) fi 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 + if test $ol_enable_slurpd = yes ; then dnl SLURPD was specifically enabled if test $ol_with_threads = no ; then @@ -443,14 +467,14 @@ if test $ol_enable_lmpasswd = yes ; then fi fi -if test $ol_enable_kbind = yes -o $ol_enable_kpasswd = yes ; then +if test $ol_enable_kbind = yes ; then if test $ol_with_kerberos = no ; then AC_MSG_ERROR([options require --with-kerberos]) - elif $ol_with_kerberos = auto ; then + elif test $ol_with_kerberos = auto ; then ol_with_kerberos=yes fi -elif test $ol_enable_kbind = no -o $ol_enable_kpasswd = no ; then +elif test $ol_enable_kbind = no ; then if test $ol_with_kerberos = auto ; then ol_with_kerberos=no elif test $ol_with_kerberos != no ; then @@ -471,8 +495,6 @@ AC_MSG_RESULT(done) dnl ---------------------------------------------------------------- dnl Initialize vars LDAP_LIBS= -LDIF_LIBS= -LDBM_LIB= LDBM_LIBS= LTHREAD_LIBS= LUTIL_LIBS= @@ -485,33 +507,42 @@ BUILD_SLURPD=no BUILD_THREAD=no +BUILD_SLAPI=no +SLAPD_SLAPI_DEPEND= + BUILD_BDB=no BUILD_DNSSRV=no +BUILD_HDB=no BUILD_LDAP=no BUILD_LDBM=no BUILD_META=no BUILD_MONITOR=no +BUILD_NULL=no BUILD_PASSWD=no BUILD_PERL=no +BUILD_RELAY=no BUILD_SHELL=no BUILD_SQL=no -BUILD_TCL=no - -BUILD_BDB_DYNAMIC=static -BUILD_DNSSRV_DYNAMIC=static -BUILD_LDAP_DYNAMIC=static -BUILD_LDBM_DYNAMIC=static -BUILD_META_DYNAMIC=static -BUILD_MONITOR_DYNAMIC=static -BUILD_PASSWD_DYNAMIC=static -BUILD_PERL_DYNAMIC=static -BUILD_SHELL_DYNAMIC=static -BUILD_TCL_DYNAMIC=static -BUILD_SQL_DYNAMIC=static + +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= SLAPD_MODULES_LDFLAGS= SLAPD_MODULES_CPPFLAGS= -SLAPD_MODULES_LIST= + +SLAPD_STATIC_BACKENDS= +SLAPD_DYNAMIC_BACKENDS= SLAPD_PERL_LDFLAGS= MOD_PERL_LDFLAGS= @@ -521,23 +552,22 @@ SLAPD_SQL_LDFLAGS= SLAPD_SQL_LIBS= SLAPD_SQL_INCLUDES= -MOD_TCL_LIB= KRB4_LIBS= KRB5_LIBS= -READLINE_LIBS= SASL_LIBS= -TERMCAP_LIBS= TLS_LIBS= MODULES_LIBS= +SLAPI_LIBS= +LIBSLAPI= +LIBSLAPITOOLS= AUTH_LIBS= SLAPD_SLP_LIBS= +SLAPD_GMP_LIBS= dnl ================================================================ dnl Checks for programs -dnl AC_PROG_INSTALL - AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion]) dnl ---------------------------------------------------------------- @@ -587,30 +617,25 @@ if test $ol_aix_threads = yes ; then fi if test -z "${CC}"; then - AC_CHECK_PROGS(CC,cc) + AC_CHECK_PROGS(CC,cc gcc,missing) + + if test "${CC}" = "missing" ; then + AC_MSG_ERROR([Unable to locate cc(1) or suitable replacement. Check PATH or set CC.]) + fi fi -dnl The default CFLAGS is empty NOT whatever AC_PROG_CC sets. -dnl (for now, let autoconf sort this out) -dnl CFLAGS=${CFLAGS-""} +if test -z "${AR}"; then + AC_CHECK_PROGS(AR,ar gar,missing) + + if test "${AR}" = "missing" ; then + AC_MSG_ERROR([Unable to locate ar(1) or suitable replacement. Check PATH or set AR.]) + fi +fi AC_LIBTOOL_WIN32_DLL AC_LIBTOOL_DLOPEN AC_PROG_LIBTOOL -AC_PROG_AWK -OL_PROG_LN_H -AC_PROG_LN_S - -if test "$LN_H" = "cp" -a "$LN_S" = "ln"; then - LN_S="$LN_H" -fi - -AC_PATH_PROG(SENDMAIL, sendmail, /usr/lib/sendmail, - $PATH:/usr/libexec:/usr/lib:/usr/sbin:/usr/etc:/etc) -AC_PATH_PROG(EDITOR, vi, /usr/ucb/vi, $PATH:/usr/ucb) -AC_PATH_PROG(FINGER, finger, /usr/ucb/finger, $PATH:/usr/ucb) - dnl ---------------------------------------------------------------- dnl Perl ol_link_perl=no @@ -624,10 +649,12 @@ if test $ol_enable_perl != no ; then else PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`" - if test x"$ol_with_perl_module" = "xstatic" ; then - SLAPD_PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e s/-lc//`" + PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e 's/ -lc / /' -e 's/ -lc$//'`" + + if test x"$ol_enable_perl" = "xyes" ; then + SLAPD_PERL_LDFLAGS="$PERL_LDFLAGS" else - MOD_PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e s/-lc//`" + MOD_PERL_LDFLAGS="$PERL_LDFLAGS" fi dnl should check perl version ol_link_perl=yes @@ -636,25 +663,11 @@ fi AC_PROG_CPP -dnl ---------------------------------------------------------------- -dnl Cross compiling checks -if test $cross_compiling = yes -a $ol_enable_x_compile = yes; then - AC_MSG_WARN([cross compiling.... some functionality will be removed.]) - -elif test $cross_compiling = no -a $ol_enable_x_compile = yes; then - AC_MSG_WARN([programs compiled here do run here...]) - AC_MSG_ERROR([ if not cross compiling, use --disable-x-compile.]) - -elif test $cross_compiling = yes -a $ol_enable_x_compile = no; then - AC_MSG_WARN([programs compiled here do not run here...]) - AC_MSG_ERROR([ if cross compiling, add --enable-x-compile.]) -fi - dnl ---------------------------------------------------------------- dnl Checks for UNIX Variants -AC_AIX -AC_ISC_POSIX -AC_MINIX +dnl AC_AIX +dnl AC_ISC_POSIX +dnl AC_MINIX dnl ---------------------------------------------------------------- dnl Checks for system services @@ -663,7 +676,7 @@ AC_MINGW32 AC_EXEEXT AC_OBJEXT -AC_DEFINE_UNQUOTED( EXEEXT, "${EXEEXT}", [defined to be the EXE extension]) +AC_DEFINE_UNQUOTED(EXEEXT, "${EXEEXT}", [defined to be the EXE extension]) dnl ---------------------------------------------------------------- dnl BeOS requires -lbe -lroot -lnet @@ -691,10 +704,19 @@ AC_CHECK_LIB(s, afopen, [ AC_DEFINE(HAVE_AIX_SECURITY,1,[define if you have AIX security lib]) ]) +dnl ---------------------------------------------------------------- +dnl Check for IBM OS/390 +case "$target" in +*-ibm-openedition) + ac_cv_func_getopt=no + AC_DEFINE(BOTH_STRINGS_H,1,[define to use both and ]) + ;; +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) @@ -703,26 +725,31 @@ if test $ol_enable_modules != no ; then fi AC_CHECK_LIB(ltdl, lt_dlinit, [ - MODULES_LIBS=-lltdl - AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl]) + MODULES_LIBS=-lltdl + AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl]) ]) if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then AC_MSG_ERROR([could not locate libtool -lltdl]) fi ol_link_modules=yes + WITH_MODULES_ENABLED=yes + else - ol_with_bdb_module=static - ol_with_dnssrv_module=static - ol_with_ldap_module=static - ol_with_ldbm_module=static - ol_with_meta_module=static - ol_with_monitor_module=static - ol_with_passwd_module=static - ol_with_perl_module=static - ol_with_shell_module=static - ol_with_tcl_module=static - ol_with_sql_module=static + for i in $Backends; do + eval "ol_tmp=\$ol_enable_$i" + if test $ol_tmp = mod ; then + AC_MSG_WARN([building static $i backend]) + eval "ol_enable_$i=yes" + fi + done + for i in $Overlays; do + eval "ol_tmp=\$ol_enable_$i" + if test $ol_tmp = mod ; then + AC_MSG_WARN([building static $i overlay]) + eval "ol_enable_$i=yes" + fi + done fi dnl ---------------------------------------------------------------- @@ -745,6 +772,7 @@ AC_CHECK_HEADERS( \ arpa/inet.h \ arpa/nameser.h \ assert.h \ + bits/types.h \ conio.h \ crypt.h \ direct.h \ @@ -778,41 +806,60 @@ AC_CHECK_HEADERS( \ sys/resource.h \ sys/select.h \ sys/socket.h \ + sys/stat.h \ sys/syslog.h \ sys/time.h \ sys/types.h \ + sys/ucred.h \ + sys/uio.h \ syslog.h \ termios.h \ unistd.h \ winsock.h \ + winsock2.h \ ) dnl ---------------------------------------------------------------- dnl Checks for libraries -AC_CHECK_FUNC(dlopen, :, [AC_CHECK_LIB(dl, dlopen)]) - dnl HP-UX requires -lV3 +dnl this is not needed on newer versions of HP-UX AC_CHECK_LIB(V3, sigset) -dnl Gotta check for winsock manually -if test $ac_cv_header_winsock_h = yes; then - AC_CACHE_CHECK([for winsock], [ol_cv_winsock], - AC_TRY_LINK([#include ],[ +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 +AC_CACHE_CHECK([for winsock], [ol_cv_winsock], +save_LIBS="$LIBS" +for curlib in ws2_32 wsock32; do + LIBS="$LIBS -l$curlib" + AC_TRY_LINK([#include + ], + [ socket(0,0,0); select(0,NULL,NULL,NULL,NULL); closesocket(0); gethostname(NULL,0); - ],[ol_cv_winsock=yes],[ol_cv_winsock=no])) + ], + ol_cv_winsock=yes, ol_cv_winsock=no) - if test $ol_cv_winsock = yes ; then - AC_DEFINE(HAVE_WINSOCK,1,[define if you have winsock]) + if test $ol_cv_winsock = yes; then + AC_DEFINE(HAVE_WINSOCK, 1, [define if you have winsock]) ac_cv_func_socket=yes ac_cv_func_select=yes ac_cv_func_closesocket=yes ac_cv_func_gethostname=yes + if test $curlib = ws2_32; then + ol_cv_winsock=winsock2 + AC_DEFINE(HAVE_WINSOCK2, 1, + [define if you have winsock2]) + fi + break fi + LIBS="$save_LIBS" +done) fi dnl Find socket() @@ -834,28 +881,91 @@ dnl require select AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.])) if test "${ac_cv_header_winsock_h}" != yes; then - dnl Select arg types - dnl (if this detection becomes permenent, it and the select() detection - dnl should be done before the yielding select test) - AC_FUNC_SELECT_ARGTYPES + dnl Select arg types + dnl (if this detection becomes permenent, it and the select() detection + dnl should be done before the yielding select test) + AC_FUNC_SELECT_ARGTYPES 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 ) if test "$ac_cv_header_regex_h" != yes ; then AC_MSG_ERROR([POSIX regex.h required.]) fi -AC_CHECK_FUNC(regfree, :, AC_MSG_ERROR([POSIX regex required.])) +AC_SEARCH_LIBS(regfree, [regex gnuregex], + :, AC_MSG_ERROR([POSIX regex required.])) OL_POSIX_REGEX if test "$ol_cv_c_posix_regex" = no ; then AC_MSG_ERROR([broken POSIX regex!]) fi +dnl ---------------------------------------------------------------- +dnl UUID Support + +have_uuid=no +AC_CHECK_HEADERS(sys/uuid.h) +if test $ac_cv_header_sys_uuid_h = yes ; then + save_LIBS="$LIBS" + AC_SEARCH_LIBS(uuid_to_str, uuid, [have_uuid=yes], :) + LIBS="$save_LIBS" + + if test have_uuid = yes ; then + AC_DEFINE(HAVE_UUID_TO_STR,1, + [define if you have uuid_to_str()]) + + test "$ac_cv_search_uuid_to_str" = "none required" || \ + SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_to_str" + fi +fi + +dnl For windows, check for the need of RPCRT for UUID function support +if test $have_uuid = no ; then + AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support) + save_LIBS="$LIBS" + LIBS="$LIBS -lrpcrt4" + AC_TRY_LINK([ + int __stdcall UuidCreate(void *); + int __stdcall UuidToStringA(void *,void **); + ], + [ + UuidCreate(0); + UuidToStringA(0,0); + ], + need_rpcrt=yes, need_rpcrt=no) + if test $need_rpcrt = yes; then + SLAPD_LIBS="$SLAPD_LIBS -lrpcrt4" + fi + LIBS="$save_LIBS" + AC_MSG_RESULT($need_rpcrt) +fi + dnl ---------------------------------------------------------------- dnl Check for resolver routines dnl need to check for both res_query and __res_query @@ -887,6 +997,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()]) @@ -896,23 +1011,23 @@ if test "$ac_cv_func_res_query" = yes ; then fi fi -if test "$ol_enable_dnssrv" = yes -a "$ol_link_dnssrv" = no ; then +if test "$ol_enable_dnssrv" != no -a "$ol_link_dnssrv" = no ; then AC_MSG_ERROR([DNSSRV requires res_query()]) fi +AC_CHECK_FUNCS( hstrerror ) + dnl ---------------------------------------------------------------- dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN dnl PF_LOCAL may use getaddrinfo in available -AC_CHECK_FUNCS( getaddrinfo inet_ntop ) +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 $ol_enable_ipv6 = yes ; then AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()]) fi -else - AC_CHECK_FUNCS( gai_strerror ) - +elif test $ol_enable_ipv6 != no ; then AC_CACHE_CHECK([INET6_ADDRSTRLEN],[ol_cv_inet6_addrstrlen],[ AC_EGREP_CPP(__has_inet6_addrstrlen__,[ # include @@ -921,10 +1036,25 @@ else # endif ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])]) - if test $ol_cv_inet6_addrstrlen = yes ; then + + AC_CACHE_CHECK([struct sockaddr_storage],ol_cv_struct_sockaddr_storage,[ + AC_TRY_COMPILE([ +#include +#include +],[ + 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 ol_link_ipv6=yes - elif test $ol_enable_ipv6 = yes ; then + elif test $ol_enable_ipv6 = yes \ + -a $ol_cv_inet6_addrstrlen = no ; then AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN]) + elif test $ol_enable_ipv6 = yes \ + -a $ol_cv_struct_sockaddr_storage = no ; then + AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage]) fi fi @@ -941,7 +1071,6 @@ fi dnl ---------------------------------------------------------------- dnl Kerberos ol_link_kbind=no -ol_link_kpasswd=no ol_link_krb5=no ol_link_krb4=no @@ -972,18 +1101,22 @@ if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \ [-l$krb5crypto -lcom_err]) elif test $krb5_impl = heimdal; then + AC_CHECK_LIB(des, main, + [krb5crypto=des], + [krb5crypto=crypto]) + AC_CHECK_LIB(krb5, main, [have_krb5=yes - KRB5_LIBS="-lkrb5 -ldes -lasn1 -lroken -lcom_err"], + KRB5_LIBS="-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err"], [have_krb5=no], - [-ldes -lasn1 -lroken -lcom_err]) + [-l$krb5crypto -lasn1 -lroken -lcom_err]) AC_DEFINE(HAVE_HEIMDAL_KERBEROS, 1, [define if you have HEIMDAL Kerberos]) else have_krb5=no - AC_MSG_WARN([Unrecongized Kerberos5 Implementation]) + AC_MSG_WARN([Unrecognized Kerberos5 Implementation]) fi if test $have_krb5 = yes ; then @@ -992,10 +1125,6 @@ if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \ AC_DEFINE(HAVE_KRB5, 1, [define if you have Kerberos V]) - if test $ol_enable_kpasswd != no ; then - ol_link_kpasswd=yes; - fi - if test $ol_with_kerberos = k5only ; then ol_with_kerberos=found fi @@ -1021,7 +1150,7 @@ if test $ol_link_krb5 = yes -a \( $ol_with_kerberos = yes -o \ elif test $krb5_impl = heimdal; then AC_CHECK_LIB(krb4, main, [have_k425=yes KRB4_LIBS="-lkrb4"], [have_k425=no], - [-lkrb5 -ldes -lasn1 -lroken -lcom_err]) + [-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err]) else have_425=no @@ -1092,10 +1221,6 @@ if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \ fi fi -if test $ol_link_krb4 = yes -a $ol_enable_kpasswd != no ; then - ol_link_kpasswd=yes -fi - if test $ol_link_krb4 = yes -a $ol_enable_kbind != no ; then ol_link_kbind=yes @@ -1112,11 +1237,13 @@ 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 + + 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], @@ -1153,18 +1280,27 @@ 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 - AC_WARN([TLS privacy protection not supported!]) + AC_WARN([TLS data protection not supported!]) fi +WITH_TLS=no if test $ol_link_tls = yes ; then AC_DEFINE(HAVE_TLS, 1, [define if you have TLS]) + WITH_TLS=yes elif test $ol_with_tls = auto ; then AC_WARN([Could not locate TLS/SSL package]) - AC_WARN([TLS privacy protection not supported!]) + AC_WARN([TLS data protection not supported!]) elif test $ol_with_tls != no ; then AC_ERROR([Could not locate TLS/SSL package]) @@ -1180,47 +1316,6 @@ if test $ol_enable_lmpasswd != no; then AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords]) fi -dnl ---------------------------------------------------------------- -dnl Tests for reentrant functions necessary to build a -dnl thread_safe -lldap. -AC_CHECK_FUNCS( \ - ctime_r \ - gethostbyname_r gethostbyaddr_r \ -) - -if test "$ac_cv_func_ctime_r" = no ; then - ol_cv_func_ctime_r_nargs=0 -else - OL_FUNC_CTIME_R_NARGS -dnl OL_FUNC_CTIME_R_TYPE -fi - -if test "$ac_cv_func_gethostbyname_r" = yes ; then - OL_FUNC_GETHOSTBYNAME_R_NARGS -else - ol_cv_func_gethostbyname_r_nargs=0 -fi - -if test "$ac_cv_func_gethostbyaddr_r" = yes ; then - OL_FUNC_GETHOSTBYADDR_R_NARGS -else - ol_cv_func_gethostbyaddr_r_nargs=0 -fi - -if test "$ac_cv_func_ctime_r" = yes \ - -a "$ol_cv_func_ctime_r_nargs" -ge 2 \ - -a "$ol_cv_func_ctime_r_nargs" -le 3 \ - -a "$ac_cv_func_gethostbyname_r" = yes \ - -a "$ol_cv_func_gethostbyname_r_nargs" -ge 5 \ - -a "$ol_cv_func_gethostbyname_r_nargs" -le 6 \ - -a "$ac_cv_func_gethostbyaddr_r" = yes \ - -a "$ol_cv_func_gethostbyaddr_r_nargs" -ge 5 \ - -a "$ol_cv_func_gethostbyaddr_r_nargs" -le 6 \ - ; then - - AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_REENTRANT,1) -fi - dnl ---------------------------------------------------------------- dnl Threads? ol_link_threads=no @@ -1231,9 +1326,9 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \ OL_NT_THREADS if test "$ol_cv_nt_threads" = yes ; then - ol_link_threads=nt - ol_with_threads=found - ol_with_yielding_select=yes + ol_link_threads=nt + ol_with_threads=found + ol_with_yielding_select=yes AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager]) AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log]) @@ -1252,12 +1347,9 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \ if test $ac_cv_header_pthread_h = yes ; then OL_POSIX_THREAD_VERSION - if test $ol_cv_pthread_version = final ; then - AC_DEFINE(HAVE_PTHREADS_FINAL,1, - [define if pthreads API compatible with final spec]) - elif test $ol_cv_pthread_version = draft4 ; then - AC_DEFINE(HAVE_PTHREADS_D4,1, - [define if pthreads API compatible with draft4 spec]) + if test $ol_cv_pthread_version != 0 ; then + AC_DEFINE_UNQUOTED(HAVE_PTHREADS,$ol_cv_pthread_version, + [define to pthreads API spec revision]) else AC_MSG_ERROR([unknown pthread version]) fi @@ -1352,9 +1444,6 @@ dnl [ol_cv_pthread_lpthread_lexc]) OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads]) if test $ol_link_threads != no ; then - AC_DEFINE(HAVE_PTHREADS,1, - [define if you have POSIX Threads]) - LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads" dnl save flags @@ -1364,11 +1453,12 @@ dnl [ol_cv_pthread_lpthread_lexc]) dnl All POSIX Thread (final) implementations should have dnl sched_yield instead of pthread yield. - dnl check for both - AC_CHECK_FUNCS(sched_yield pthread_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 ; then + $ac_cv_func_pthread_yield = no -a \ + $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" @@ -1377,12 +1467,6 @@ dnl [ol_cv_pthread_lpthread_lexc]) 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 ; then - dnl Solaris has sched_yield() stub in -lposix4 - dnl but we'll use thr_yield instead. - AC_CHECK_FUNCS(thr_yield) - fi if test $ac_cv_func_sched_yield = no -a \ $ac_cv_func_pthread_yield = no -a \ "$ac_cv_func_thr_yield" = no ; then @@ -1503,18 +1587,19 @@ int main(argc, argv) #endif #endif -#if HAVE_PTHREADS_D4 +#if HAVE_PTHREADS < 6 pthread_create(&t, pthread_attr_default, task, NULL); #else pthread_create(&t, NULL, task, NULL); #endif -#if HAVE_SCHED_YIELD - sched_yield(); /* make sure task runs first */ -#else -#ifdef HAVE_PTHREAD_YIELD - pthread_yield(); /* make sure task runs first */ -#endif + /* make sure task runs first */ +#if HAVE_THR_YIELD + thr_yield(); +#elif defined( HAVE_SCHED_YIELD ) + sched_yield(); +#elif defined( HAVE_PTHREAD_YIELD ) + pthread_yield(); #endif exit(2); @@ -1549,11 +1634,11 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \ -o $ol_with_threads = mach ; then dnl check for Mach CThreads - AC_CHECK_HEADERS(mach/cthreads.h) + AC_CHECK_HEADERS(mach/cthreads.h cthreads.h) if test $ac_cv_header_mach_cthreads_h = yes ; then ol_with_threads=found - dnl check for cthread support in current $LIBS + dnl check for cthreads support in current $LIBS AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes]) if test $ol_link_threads = no ; then @@ -1574,21 +1659,40 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \ if test $ol_cv_cthread_all_load = yes ; then LTHREAD_LIBS="$LTHREAD_LIBS -all_load" ol_link_threads=mach + ol_with_threads=found fi fi - if test $ol_link_threads != no ; then - : check for cthread specific functionality here - AC_DEFINE(HAVE_MACH_CTHREADS,1, - [define if you have Mach Cthreads]) + elif test $ac_cv_header_cthreads_h = yes ; then + dnl Hurd variant of Mach Cthreads + dnl uses and -lthreads + + ol_with_threads=found + + dnl save the flags + save_LIBS="$LIBS" + LIBS="$LIBS -lthreads" + AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes]) + LIBS="$save_LIBS" + + if test $ol_link_threads = yes ; then + LTHREAD_LIBS="-lthreads" + ol_link_threads=mach + ol_with_threads=found else AC_MSG_ERROR([could not link with Mach CThreads]) fi - fi - if test $ol_with_threads = mach ; then + elif test $ol_with_threads = mach ; then AC_MSG_ERROR([could not locate Mach CThreads]) fi + + if test $ol_link_threads = mach ; then + AC_DEFINE(HAVE_MACH_CTHREADS,1, + [define if you have Mach Cthreads]) + elif test $ol_with_threads = found ; then + AC_MSG_ERROR([could not link with Mach CThreads]) + fi fi if test $ol_with_threads = auto -o $ol_with_threads = yes \ @@ -1603,6 +1707,7 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \ AC_DEFINE(HAVE_GNU_PTH,1,[if you have GNU Pth]) LTHREAD_LIBS="$LTHREAD_LIBS -lpth" ol_link_threads=pth + ol_with_threads=found if test $ol_with_yielding_select = auto ; then ol_with_yielding_select=yes @@ -1711,8 +1816,7 @@ if test $ol_link_threads != no -a $ol_link_threads != nt ; then fi dnl When in thread environment, use -dnl #if defined( HAVE_REENTRANT_FUNCTIONS ) \ -dnl || defined( HAVE_FUNC_R ) +dnl #if defined( HAVE_REENTRANT_FUNCTIONS ) || defined( HAVE_FUNC_R ) dnl func_r(...); dnl #else dnl # if defined( HAVE_THREADS ) @@ -1729,14 +1833,14 @@ dnl _POSIX_REENTRANT_FUNCTIONS dnl _POSIX_THREAD_SAFE_FUNCTIONS dnl _POSIX_THREADSAFE_FUNCTIONS dnl -dnl and is currently defined in lthread.h +dnl and is currently defined in dnl -dnl HAVE_THREADS is defined by lthread.h iff -UNO_THREADS +dnl HAVE_THREADS is defined by iff -UNO_THREADS dnl -dnl libldap/*.c should only include iff +dnl libldap/*.c should only include iff dnl LDAP_R_COMPILE is defined. ie: dnl #ifdef LDAP_R_COMPILE -dnl # include LDAP_R_COMPILE +dnl # include dnl #endif dnl dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in @@ -1746,7 +1850,7 @@ dnl dnl dnl check for reentrant/threadsafe functions dnl dnl dnl dnl note: these should only be used when linking -dnl dnl with $LTHREAD_LIBS +dnl dnl with $LTHREAD_LIBS dnl dnl dnl save_CPPFLAGS="$CPPFLAGS" dnl save_LIBS="$LIBS" @@ -1781,6 +1885,32 @@ if test $ol_link_threads != no ; then AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1) fi +dnl ---------------------------------------------------------------- +dnl Tests for reentrant functions necessary to build -lldap_r +AC_CHECK_FUNCS( \ + ctime_r \ + gethostbyname_r gethostbyaddr_r \ +) + +if test "$ac_cv_func_ctime_r" = no ; then + ol_cv_func_ctime_r_nargs=0 +else + OL_FUNC_CTIME_R_NARGS +dnl OL_FUNC_CTIME_R_TYPE +fi + +if test "$ac_cv_func_gethostbyname_r" = yes ; then + OL_FUNC_GETHOSTBYNAME_R_NARGS +else + ol_cv_func_gethostbyname_r_nargs=0 +fi + +if test "$ac_cv_func_gethostbyaddr_r" = yes ; then + OL_FUNC_GETHOSTBYADDR_R_NARGS +else + ol_cv_func_gethostbyaddr_r_nargs=0 +fi + dnl ---------------------------------------------------------------- ol_link_ldbm=no @@ -1817,14 +1947,20 @@ if test $ol_with_ldbm_api = auto \ fi fi -if test $ol_enable_bdb = yes -a $ol_link_ldbm != berkeley ; then - AC_MSG_ERROR(BerkeleyDB not availabl) -elif test $ol_enable_bdb != no -a $ol_link_ldbm != no ; then - ol_enable_bdb=yes +if test $ol_enable_bdb != no -o $ol_enable_hdb != no; then + if test $ol_link_ldbm != berkeley ; then + AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available) + else + OL_BDB_COMPAT + + if test $ol_cv_bdb_compat != yes ; then + AC_MSG_ERROR([BDB/HDB: BerkeleyDB version incompatible]) + fi + fi fi if test $ol_link_ldbm = no -a $ol_with_ldbm_type = btree ; then - AC_MSG_WARN(Could not find LDBM with BTREE support) + AC_MSG_WARN([Could not find LDBM with BTREE support]) ol_with_ldbm_api=none fi @@ -1867,50 +2003,69 @@ 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 ---------------------------------------------------------------- + if test $ol_enable_dynamic = yes -a $enable_shared = yes ; then - LINK_BINS_DYNAMIC="yes" + BUILD_LIBS_DYNAMIC=shared + AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic]) + LTSTATIC="" else - LINK_BINS_DYNAMIC="no" + BUILD_LIBS_DYNAMIC=static + LTSTATIC="-static" fi +AC_SUBST(LTSTATIC)dnl dnl ---------------------------------------------------------------- if test $ol_enable_wrappers != no ; then - AC_CHECK_HEADERS(tcpd.h) + AC_CHECK_HEADERS(tcpd.h,[ + AC_MSG_CHECKING([for TCP wrappers library]) + save_LIBS="$LIBS" + LIBS="$LIBS -lwrap" + AC_TRY_LINK([ +#include +int allow_severity = 0; +int deny_severity = 0; - if test $ac_cv_header_tcpd_h != yes ; then - have_wrappers=no - else - AC_TRY_COMPILE([ +struct request_info *req; + ],[ +hosts_access(req) + ],[AC_MSG_RESULT([-lwrap]) + have_wrappers=yes + LIBS="$save_LIBS"],[ + dnl try with -lnsl + LIBS="$LIBS -lnsl" + AC_TRY_LINK([ +#include int allow_severity = 0; int deny_severity = 0; - ],[hosts_access()],[have_wrappers=yes],[have_wrappers=no]) - fi + +struct request_info *req; + ],[ +hosts_access(req) + ],[AC_MSG_RESULT([-lwrap -lnsl]) + have_wrappers=yes + LIBS="$save_LIBS -lnsl"],[ + AC_MSG_RESULT(no) + have_wrappers=no + LIBS=$save_LIBS])],[ + have_wrappers=no])],[have_wrappers=no]) if test $have_wrappers = yes ; then AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap]) WRAP_LIBS="-lwrap" - - dnl We add another check for -lnsl since some libwrap's - dnl need it, but it isn't always included from above - AC_CHECK_LIB(nsl, main) + elif test $ol_enable_wrappers = yes ; then + AC_MSG_ERROR([could not find TCP wrappers, select apppropriate options or disable]) else - AC_MSG_WARN(could not find -lwrap) - if test $ol_enable_wrappers = yes ; then - AC_MSG_ERROR(could not find wrappers, select appropriate options or disable) - fi - - AC_MSG_WARN(disabling wrappers support) - ol_enable_wrappers=no + AC_MSG_WARN([could not find TCP wrappers, support disabled]) WRAP_LIBS="" fi fi @@ -1935,6 +2090,10 @@ dnl ---------------------------------------------------------------- dnl SQL ol_link_sql=no if test $ol_enable_sql != no ; then + AC_CHECK_HEADERS(sql.h sqlext.h,[],[ + AC_MSG_ERROR([could not locate SQL headers]) + ]) + AC_CHECK_LIB(iodbc,SQLDriverConnect,[have_iodbc=yes],[have_iodbc=no]) if test $have_iodbc = yes ; then ol_link_sql="-liodbc" @@ -1953,81 +2112,21 @@ if test $ol_enable_sql != no ; then fi fi -dnl ---------------------------------------------------------------- -dnl TCL -if test $ol_enable_tcl != no ; then - AC_CHECK_HEADERS(tcl.h) - - if test $ac_cv_header_tcl_h != yes ; then - have_tcl=no - else - for lib in tcl tcl7.6 tcl8.0 tcl8.2 ; do - AC_CHECK_LIB($lib,main, - [have_tcl=yes - if test x"$ol_with_tcl_module" = "xstatic" ; then - SLAPD_LIBS="$SLAPD_LIBS -l${lib}" - else - MOD_TCL_LIB="-l${lib}" - fi;break],[have_tcl=no]) - done - fi - - if test $have_tcl != yes ; then - AC_MSG_WARN([could not find -ltcl]) - if test $ol_enable_tcl = yes ; then - AC_MSG_ERROR([could not find tcl, select appropriate options or disable]) - fi - - ol_enable_tcl=no - fi -fi - -dnl ---------------------------------------------------------------- -dnl ud needs termcap (should insert check here) -ol_link_termcap=no -AC_CHECK_HEADERS(termcap.h ncurses.h) - -if test $ol_link_termcap = no ; then - AC_CHECK_LIB(termcap, tputs, [have_termcap=yes], [have_termcap=no]) - if test $have_termcap = yes ; then - AC_DEFINE(HAVE_TERMCAP, 1, [define if you have -ltermcap]) - ol_link_termcap=yes - TERMCAP_LIBS=-ltermcap - fi -fi - -if test $ol_link_termcap = no ; then - AC_CHECK_LIB(ncurses, initscr, [have_ncurses=yes], [have_ncurses=no]) - if test $have_ncurses = yes ; then - AC_DEFINE(HAVE_NCURSES, 1, [define if you have -lncurses]) - ol_link_termcap=yes - TERMCAP_LIBS=-lncurses - fi -fi - -if test $ol_link_termcap = no ; then - AC_DEFINE(NO_TERMCAP,1, [define if you have no termcap support]) - TERMCAP_LIBS= -fi - 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 - AC_CHECK_HEADERS(sasl.h) - - if test $ac_cv_header_sasl_h = yes ; then - AC_CHECK_LIB(sasl, sasl_client_init, - [have_cyrus_sasl=yes], [have_cyrus_sasl=no]) + AC_CHECK_HEADERS(sasl/sasl.h sasl.h) - if test $have_cyrus_sasl != no ; then - SASL_LIBS="-lsasl" - AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL]) - ol_link_sasl=yes - fi + if test $ac_cv_header_sasl_sasl_h = yes -o $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, + [ol_link_sasl="-lsasl"])]) fi if test $ol_link_sasl = no ; then @@ -2040,9 +2139,26 @@ if test $ol_with_cyrus_sasl != no ; then AC_MSG_WARN([Strong authentication not supported!]) fi fi + else + OL_SASL_COMPAT + if test $ol_cv_sasl_compat = no ; then + ol_link_sasl=no + AC_MSG_ERROR([Cyrus SASL library located but is incompatible]) + fi + + AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL]) + SASL_LIBS="$ol_link_sasl" + if test $ol_enable_spasswd != no ; then + ol_link_spasswd=yes + fi + + ac_save_LIBS="$LIBS" + LIBS="$LIBS $ol_link_sasl" + AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1, + [define if your SASL library has sasl_version()])]) + LIBS="$ac_save_LIBS" - elif test $ol_enable_spasswd != no ; then - ol_link_spasswd=yes + WITH_SASL=yes fi else @@ -2054,7 +2170,7 @@ fi dnl ---------------------------------------------------------------- dnl Check for entropy sources -if test $cross_compiling != yes ; then +if test $cross_compiling != yes -a "$ac_cv_mingw32" != yes ; then dev=no if test -r /dev/urandom ; then dev="/dev/urandom"; @@ -2083,7 +2199,7 @@ if test $ol_with_fetch != no ; then OL_LIB_FETCH if test $ol_cv_lib_fetch != no ; then - LDIF_LIBS="$LDIF_LIBS $ol_link_fetch" + LUTIL_LIBS="$LUTIL_LIBS $ol_link_fetch" ol_link_fetch=freebsd elif test $ol_with_fetch != auto ; then @@ -2091,51 +2207,28 @@ if test $ol_with_fetch != no ; then fi fi -dnl ---------------------------------------------------------------- -dnl -dnl Check for GNU readline -dnl -ol_link_readline=no -if test $ol_with_readline != no ; then - AC_CHECK_HEADERS(readline/readline.h readline/history.h) - - if test $ac_cv_header_readline_readline_h = yes ; then - save_LIBS="$LIBS" - LIBS="$TERMCAP_LIBS $LIBS" - AC_CHECK_LIB(readline, readline, - [have_readline=yes], [have_readline=no]) - LIBS="$save_LIBS" - - if test $have_readline = yes ; then - ol_with_readline=found - ol_link_readline=yes - - READLINE_LIBS="-lreadline" - fi - fi -fi - -if test $ol_link_readline = yes ; then - AC_DEFINE(HAVE_READLINE, 1, [define if you have -lreadline]) -fi - - dnl ---------------------------------------------------------------- dnl FreeBSD (and others) have crypt(3) in -lcrypt if test $ol_enable_crypt != no ; then + save_LIBS="$LIBS" + LIBS="$TLS_LIBS $LIBS" + AC_CHECK_FUNC(crypt, [have_crypt=yes], [ + LIBS="$save_LIBS" AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt" have_crypt=yes], [have_crypt=no])]) + LIBS="$save_LIBS" + if test $have_crypt = yes ; then AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available]) else - AC_MSG_WARN(could not find crypt) + AC_MSG_WARN([could not find crypt]) if test $ol_enable_crypt = yes ; then - AC_MSG_ERROR(could not find crypt, select appropriate options or disable) + AC_MSG_ERROR([could not find crypt, select appropriate options or disable]) fi - AC_MSG_WARN(disabling crypt support) + AC_MSG_WARN([disabling crypt support]) ol_enable_crypt=no fi fi @@ -2174,8 +2267,111 @@ 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. + +dnl Checks for long long +AC_CACHE_CHECK([long long], ol_cv_type_long_long, [ + AC_TRY_COMPILE([], [long long x;], + [ol_cv_type_long_long=yes], + [ol_cv_type_long_long=no])]) +if test $ol_cv_type_long_long = yes; then + AC_DEFINE(HAVE_LONG_LONG, 1, [define if you have 'long long']) +fi + AC_TYPE_MODE_T AC_TYPE_OFF_T AC_TYPE_PID_T @@ -2203,6 +2399,7 @@ AC_C_CONST OL_C_VOLATILE if test $cross_compiling = yes ; then + AC_MSG_WARN([Crossing compiling... all bets are off!]) AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling]) else AC_C_BIGENDIAN @@ -2211,6 +2408,7 @@ fi AC_COMPILE_CHECK_SIZEOF(short) AC_COMPILE_CHECK_SIZEOF(int) AC_COMPILE_CHECK_SIZEOF(long) +AC_COMPILE_CHECK_SIZEOF(wchar_t) if test "$ac_cv_sizeof_int" -lt 4 ; then AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.]) @@ -2248,7 +2446,7 @@ AC_FUNC_VPRINTF if test $ac_cv_func_vprintf = yes ; then dnl check for vsnprintf - AC_CHECK_FUNCS(vsnprintf vsprintf) + AC_CHECK_FUNCS(snprintf vsnprintf) fi AC_CHECK_FUNCS( \ @@ -2259,6 +2457,7 @@ AC_CHECK_FUNCS( \ endpwent \ fcntl \ flock \ + fstat \ getdtablesize \ getgrgid \ gethostname \ @@ -2272,6 +2471,8 @@ AC_CHECK_FUNCS( \ lockf \ memcpy \ memmove \ + mkstemp \ + mktemp \ pipe \ read \ recv \ @@ -2286,13 +2487,15 @@ AC_CHECK_FUNCS( \ signal \ sigset \ strdup \ - strerror \ strpbrk \ strrchr \ strsep \ strstr \ strtol \ strtoul \ + strtoq \ + strtouq \ + strtoll \ strspn \ sysconf \ usleep \ @@ -2300,23 +2503,50 @@ AC_CHECK_FUNCS( \ wait4 \ write \ send \ + sendmsg \ sendto \ ) dnl We actually may need to replace more than this. -AC_REPLACE_FUNCS(getopt) +AC_REPLACE_FUNCS(getopt getpeereid) if test "$ac_cv_func_getopt" != yes; then - LIBSRCS="$LIBSRCS getopt.c" + LIBSRCS="$LIBSRCS getopt.c" +fi +if test "$ac_cv_func_getpeereid" != yes; then + OL_MSGHDR_MSG_ACCRIGHTS + 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; then + AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine]) + fi + if test "$ac_cv_func_vsnprintf" != yes; then + AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine]) + fi fi - -dnl ---------------------------------------------------------------- -# Check Configuration -OL_SYS_ERRLIST dnl ---------------------------------------------------------------- dnl Sort out defines +if test "$ol_enable_slapi" != no ; then + dnl This check is done also if --enable-modules is used; + dnl it is duplicated here, 'cause it'd be cached anyway + AC_CHECK_HEADERS(ltdl.h) + + if test $ac_cv_header_ltdl_h != yes ; then + AC_MSG_ERROR([could not locate ]) + fi + AC_CHECK_LIB(ltdl, lt_dlinit, [ + SLAPI_LIBS=-lltdl + LIBSLAPI=libslapi.a + LIBSLAPITOOLS=../libslapi.a + AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl]) + ],[AC_MSG_ERROR([could not locate libtool -lltdl])]) + + AC_DEFINE(LDAP_SLAPI,1, [define this to add SLAPI code]) +fi + if test "$ol_enable_debug" != no ; then AC_DEFINE(LDAP_DEBUG,1, [define this to add debugging code]) @@ -2325,10 +2555,6 @@ if test "$ol_enable_syslog" = yes ; then AC_DEFINE(LDAP_SYSLOG,1, [define this to add syslog code]) fi -if test "$ol_enable_cache" = no ; then - AC_DEFINE(LDAP_NOCACHE,1, - [define this to remove -lldap cache support]) -fi if test "$ol_link_kbind" != no ; then AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND,LDAP_VENDOR_VERSION) fi @@ -2351,17 +2577,11 @@ fi if test "$ol_enable_crypt" != no ; then AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords]) fi -if test "$ol_link_kpasswd" != no ; then - AC_DEFINE(SLAPD_KPASSWD,1,[define to support Kerberos passwords]) -fi if test "$ol_link_spasswd" != no ; then AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords]) fi -dnl if test "$ol_enable_multimaster" != no ; then -dnl AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication]) -dnl fi -if test "$ol_enable_phonetic" != no ; then - AC_DEFINE(SLAPD_PHONETIC,1,[define to support phonetic]) +if test "$ol_enable_multimaster" != no ; then + AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication]) fi if test "$ol_enable_rlookups" != no ; then AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups]) @@ -2376,154 +2596,302 @@ if test "$ol_link_modules" != no ; then SLAPD_MODULES_LDFLAGS="-dlopen self" fi +AC_DEFINE(SLAPD_MOD_STATIC,1,[statically linked module]) +AC_DEFINE(SLAPD_MOD_DYNAMIC,2,[dynamically linked module]) + if test "$ol_enable_bdb" != no ; then - AC_DEFINE(SLAPD_BDB,1,[define to support BDB backend]) BUILD_SLAPD=yes - BUILD_BDB=yes - if test "$ol_with_bdb_module" != static ; then - AC_DEFINE(SLAPD_BDB_DYNAMIC,1, - [define to support dynamic BDB backend]) - BUILD_BDB=mod - BUILD_BDB_DYNAMIC=shared - SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-bdb/back_bdb.la" + BUILD_BDB=$ol_enable_bdb + if test "$ol_enable_bdb" = mod ; then + SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb" + MFLAG=SLAPD_MOD_DYNAMIC + else + SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb" + MFLAG=SLAPD_MOD_STATIC + fi + AC_DEFINE_UNQUOTED(SLAPD_BDB,$MFLAG,[define to support BDB backend]) +fi + +if test "$ol_enable_dnssrv" != no ; then + BUILD_SLAPD=yes + BUILD_DNSSRV=$ol_enable_dnssrv + if test "$ol_enable_dnssrv" = mod ; then + SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv" + MFLAG=SLAPD_MOD_DYNAMIC + else + SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv" + MFLAG=SLAPD_MOD_STATIC fi + AC_DEFINE_UNQUOTED(SLAPD_DNSSRV,$MFLAG,[define to support DNS SRV backend]) fi -if test "$ol_link_dnssrv" != no ; then - AC_DEFINE(SLAPD_DNSSRV,1,[define to support DNS SRV backend]) +if test "$ol_enable_hdb" != no ; then BUILD_SLAPD=yes - BUILD_DNSSRV=yes - if test "$ol_with_dnssrv_module" != static ; then - AC_DEFINE(SLAPD_DNSSRV_DYNAMIC,1, - [define to support dynamic DNS SRV backend]) - BUILD_DNSSRV=mod - BUILD_DNSSRV_DYNAMIC=shared - SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-dnssrv/back_dnssrv.la" + BUILD_HDB=$ol_enable_hdb + if test "$ol_enable_hdb" = mod ; then + SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-hdb" + MFLAG=SLAPD_MOD_DYNAMIC + else + SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb" + MFLAG=SLAPD_MOD_STATIC fi + AC_DEFINE_UNQUOTED(SLAPD_HDB,$MFLAG,[define to support HDB backend]) fi if test "$ol_enable_ldap" != no ; then - AC_DEFINE(SLAPD_LDAP,1,[define to support LDAP backend]) BUILD_SLAPD=yes - BUILD_LDAP=yes - if test "$ol_with_ldap_module" != static ; then - AC_DEFINE(SLAPD_LDAP_DYNAMIC,1, - [define to support dynamic LDAP backend]) - BUILD_LDAP=mod - BUILD_LDAP_DYNAMIC=shared - SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-ldap/back_ldap.la" + BUILD_LDAP=$ol_enable_ldap + if test "$ol_enable_ldap" = mod ; then + SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap" + MFLAG=SLAPD_MOD_DYNAMIC + else + SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap" + MFLAG=SLAPD_MOD_STATIC 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 - AC_DEFINE(SLAPD_LDBM,1,[define to support LDBM backend]) BUILD_SLAPD=yes - BUILD_LDBM=yes - LDBM_LIB="-lldbm" - if test "$ol_with_ldbm_module" != static ; then - AC_DEFINE(SLAPD_LDBM_DYNAMIC,1, - [define to support dynamic LDBM backend]) - BUILD_LDBM=mod - BUILD_LDBM_DYNAMIC=shared - SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-ldbm/back_ldbm.la" + BUILD_LDBM=$ol_enable_ldbm + if test "$ol_enable_ldbm" = mod ; then + SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldbm" + MFLAG=SLAPD_MOD_DYNAMIC + else + SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldbm" + MFLAG=SLAPD_MOD_STATIC fi + AC_DEFINE_UNQUOTED(SLAPD_LDBM,$MFLAG,[define to support LDBM backend]) fi if test "$ol_enable_meta" != no ; then - if test "$ol_enable_ldap" = no ; then - AC_MSG_ERROR([need --enable-ldap to use --enable-meta]) - fi - if test "$ol_enable_rewrite" = no ; then - AC_MSG_ERROR([need --enable-rewrite to use --enable-meta]) - fi - AC_DEFINE(SLAPD_META,1,[define to support LDAP Metadirectory backend]) BUILD_SLAPD=yes - BUILD_META=yes - if test "$ol_with_meta_module" != static ; then - AC_DEFINE(SLAPD_META_DYNAMIC,1, - [define to support dynamic LDAP Metadirectory backend]) - BUILD_META=mod - BUILD_META_DYNAMIC=shared - SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-meta/back_meta.la" + BUILD_META=$ol_enable_meta + BUILD_REWRITE=yes + if test "$ol_enable_meta" = mod ; then + SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta" + MFLAG=SLAPD_MOD_DYNAMIC + else + SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta" + MFLAG=SLAPD_MOD_STATIC fi + AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend]) fi if test "$ol_enable_monitor" != no ; then - AC_DEFINE(SLAPD_MONITOR,1,[define to support cn=Monitor backend]) BUILD_SLAPD=yes - BUILD_MONITOR=yes - if test "$ol_with_monitor_module" != static ; then - AC_DEFINE(SLAPD_MONITOR_DYNAMIC,1, - [define to support dynamic cn=Monitor backend]) - BUILD_MONITOR=mod - BUILD_MONITOR_DYNAMIC=shared - SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-monitor/back_monitor.la" + BUILD_MONITOR=$ol_enable_monitor + if test "$ol_enable_monitor" = mod ; then + SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor" + MFLAG=SLAPD_MOD_DYNAMIC + else + SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor" + MFLAG=SLAPD_MOD_STATIC + fi + AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend]) +fi + +if test "$ol_enable_null" != no ; then + BUILD_SLAPD=yes + BUILD_NULL=$ol_enable_null + if test "$ol_enable_null" = mod ; then + SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null" + MFLAG=SLAPD_MOD_DYNAMIC + else + SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null" + MFLAG=SLAPD_MOD_STATIC fi + AC_DEFINE_UNQUOTED(SLAPD_NULL,$MFLAG,[define to support NULL backend]) fi if test "$ol_enable_passwd" != no ; then - AC_DEFINE(SLAPD_PASSWD,1,[define to support PASSWD backend]) BUILD_SLAPD=yes - BUILD_PASSWD=yes - if test "$ol_with_passwd_module" != static ; then - AC_DEFINE(SLAPD_PASSWD_DYNAMIC,1, - [define to support dynamic PASSWD backend]) - BUILD_PASSWD=mod - BUILD_PASSWD_DYNAMIC=shared - SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-passwd/back_passwd.la" + BUILD_PASSWD=$ol_enable_passwd + if test "$ol_enable_passwd" = mod ; then + SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd" + MFLAG=SLAPD_MOD_DYNAMIC + else + SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd" + MFLAG=SLAPD_MOD_STATIC fi + AC_DEFINE_UNQUOTED(SLAPD_PASSWD,$MFLAG,[define to support PASSWD backend]) fi if test "$ol_link_perl" != no ; then - AC_DEFINE(SLAPD_PERL,1,[define to support PERL backend]) BUILD_SLAPD=yes - BUILD_PERL=yes - if test "$ol_with_perl_module" != static ; then - AC_DEFINE(SLAPD_PERL_DYNAMIC,1, - [define to support dynamic PERL backend]) - BUILD_PERL=mod - BUILD_PERL_DYNAMIC=shared - SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-perl/back_perl.la" + BUILD_PERL=$ol_enable_perl + if test "$ol_enable_perl" = mod ; then + SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl" + MFLAG=SLAPD_MOD_DYNAMIC + else + SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl" + MFLAG=SLAPD_MOD_STATIC fi + AC_DEFINE_UNQUOTED(SLAPD_PERL,$MFLAG,[define to support PERL backend]) fi -if test "$ol_enable_shell" != no ; then - AC_DEFINE(SLAPD_SHELL,1,[define to support SHELL backend]) +if test "$ol_enable_relay" != no ; then BUILD_SLAPD=yes - BUILD_SHELL=yes - if test "$ol_with_shell_module" != static ; then - AC_DEFINE(SLAPD_SHELL_DYNAMIC,1, - [define to support dynamic SHELL backend]) - BUILD_SHELL=mod - BUILD_SHELL_DYNAMIC=shared - SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-shell/back_shell.la" + BUILD_RELAY=$ol_enable_relay + if test "$ol_enable_relay" = mod ; then + SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-relay" + MFLAG=SLAPD_MOD_DYNAMIC + else + SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-relay" + MFLAG=SLAPD_MOD_STATIC fi + AC_DEFINE_UNQUOTED(SLAPD_RELAY,$MFLAG,[define to support relay backend]) fi -if test "$ol_enable_tcl" != no ; then - AC_DEFINE(SLAPD_TCL,1,[define to support TCL backend]) +if test "$ol_enable_shell" != no ; then + if test "$ol_link_thread" != no ; then + AC_MSG_WARN([Use of --without-threads is recommended with back-shell]) + fi BUILD_SLAPD=yes - BUILD_TCL=yes - if test "$ol_with_tcl_module" != static; then - AC_DEFINE(SLAPD_TCL_DYNAMIC,1, - [define to support dynamic TCL backend]) - BUILD_TCL=mod - BUILD_TCL_DYNAMIC=shared - SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-tcl/back_tcl.la" + BUILD_SHELL=$ol_enable_shell + if test "$ol_enable_shell" = mod ; then + SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell" + MFLAG=SLAPD_MOD_DYNAMIC + else + SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell" + MFLAG=SLAPD_MOD_STATIC fi + AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend]) fi if test "$ol_link_sql" != no ; then - AC_DEFINE(SLAPD_SQL,1,[define to support SQL backend]) BUILD_SLAPD=yes - BUILD_SQL=yes - if test "$ol_with_sql_module" != static; then - AC_DEFINE(SLAPD_SQL_DYNAMIC,1, - [define to support dynamic SQL backend]) - BUILD_SQL=mod - BUILD_SQL_DYNAMIC=shared - SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-sql/back_sql.la" + BUILD_SQL=$ol_enable_sql + if test "$ol_enable_sql" = mod; then + SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql" + MFLAG=SLAPD_MOD_DYNAMIC + else + SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql" + MFLAG=SLAPD_MOD_STATIC + fi + 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 + MFLAG=SLAPD_MOD_DYNAMIC + SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS chain.la" + else + MFLAG=SLAPD_MOD_STATIC + fi + AC_DEFINE_UNQUOTED(SLAPD_OVER_CHAIN,$MFLAG,[define for Dynamic Group overlay]) +fi + +if test "$ol_enable_denyop" != no ; then + BUILD_DENYOP=$ol_enable_denyop + if test "$ol_enable_denyop" = mod ; then + MFLAG=SLAPD_MOD_DYNAMIC + SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS denyop.la" + else + MFLAG=SLAPD_MOD_STATIC fi + AC_DEFINE_UNQUOTED(SLAPD_OVER_DENYOP,$MFLAG,[define for Dynamic Group overlay]) +fi + +if test "$ol_enable_dyngroup" != no ; then + BUILD_DYNGROUP=$ol_enable_dyngroup + if test "$ol_enable_dyngroup" = mod ; then + MFLAG=SLAPD_MOD_DYNAMIC + SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dyngroup.la" + else + MFLAG=SLAPD_MOD_STATIC + fi + 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 + MFLAG=SLAPD_MOD_DYNAMIC + SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS lastmod.la" + else + MFLAG=SLAPD_MOD_STATIC + fi + AC_DEFINE_UNQUOTED(SLAPD_OVER_LASTMOD,$MFLAG,[define for Last Modification overlay]) +fi + +if test "$ol_enable_ppolicy" != no ; then + BUILD_PPOLICY=$ol_enable_ppolicy + if test "$ol_enable_ppolicy" = mod ; then + MFLAG=SLAPD_MOD_DYNAMIC + SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS ppolicy.la" + else + MFLAG=SLAPD_MOD_STATIC + fi + AC_DEFINE_UNQUOTED(SLAPD_OVER_PPOLICY,$MFLAG,[define for Password Policy overlay]) +fi + +if test "$ol_enable_proxycache" != no ; then + BUILD_PROXYCACHE=$ol_enable_proxycache + if test "$ol_enable_proxycache" = mod ; then + MFLAG=SLAPD_MOD_DYNAMIC + SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS pcache.la" + else + MFLAG=SLAPD_MOD_STATIC + fi + AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay]) +fi + +if test "$ol_enable_refint" != no ; then + BUILD_REFINT=$ol_enable_refint + if test "$ol_enable_refint" = mod ; then + MFLAG=SLAPD_MOD_DYNAMIC + SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la" + else + MFLAG=SLAPD_MOD_STATIC + fi + AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay]) +fi + +if test "$ol_enable_rwm" != no ; then + BUILD_REWRITE=yes + BUILD_RWM=$ol_enable_rwm + if test "$ol_enable_rwm" = mod ; then + MFLAG=SLAPD_MOD_DYNAMIC + SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS rwm.la" + else + MFLAG=SLAPD_MOD_STATIC + 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 + 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 + MFLAG=SLAPD_MOD_DYNAMIC + SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la" + else + MFLAG=SLAPD_MOD_STATIC + fi + AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay]) fi if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \ @@ -2534,75 +2902,82 @@ fi if test "$ol_enable_rewrite" != no ; then AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta]) BUILD_REWRITE=yes - SLAPD_LIBS="$SLAPD_LIBS -lrewrite" +fi + +if test "$ol_enable_slapi" != no ; then + AC_DEFINE(ENABLE_SLAPI,1,[define to enable slapi library]) + BUILD_SLAPI=yes + SLAPD_SLAPI_DEPEND=libslapi.a fi dnl ---------------------------------------------------------------- -if test "$LINK_BINS_DYNAMIC" = yes; then - LIB_LINKAGE=DYN - LT_LIB_LINKAGE=shared -else - LIB_LINKAGE=STAT - LT_LIB_LINKAGE=static -fi +dnl +dnl For Windows build, we don't want to include -dlopen flags. +dnl They hurt more than they help. +dnl if test "$ac_cv_mingw32" = yes ; then - PLAT=NT - DYN_EXT=dll + PLAT=NT + SLAPD_MODULES_LDFLAGS= else - PLAT=UNIX - DYN_EXT=so + PLAT=UNIX fi AC_SUBST(LIBSRCS) - AC_SUBST(PLAT) -AC_SUBST(LIB_LINKAGE) -AC_SUBST(LT_LIB_LINKAGE) -AC_SUBST(DYN_EXT) +AC_SUBST(WITH_SASL) +AC_SUBST(WITH_TLS) +AC_SUBST(WITH_MODULES_ENABLED) +AC_SUBST(BUILD_LIBS_DYNAMIC) AC_SUBST(BUILD_SLAPD) +dnl slapi + AC_SUBST(BUILD_SLAPI) + AC_SUBST(SLAPD_SLAPI_DEPEND) +dnl backends AC_SUBST(BUILD_BDB) AC_SUBST(BUILD_DNSSRV) + AC_SUBST(BUILD_HDB) AC_SUBST(BUILD_LDAP) AC_SUBST(BUILD_LDBM) AC_SUBST(BUILD_META) AC_SUBST(BUILD_MONITOR) + AC_SUBST(BUILD_NULL) AC_SUBST(BUILD_PASSWD) + AC_SUBST(BUILD_RELAY) AC_SUBST(BUILD_PERL) AC_SUBST(BUILD_SHELL) AC_SUBST(BUILD_SQL) - AC_SUBST(BUILD_TCL) - AC_SUBST(BUILD_BDB_DYNAMIC) - AC_SUBST(BUILD_DNSSRV_DYNAMIC) - AC_SUBST(BUILD_LDAP_DYNAMIC) - AC_SUBST(BUILD_LDBM_DYNAMIC) - AC_SUBST(BUILD_META_DYNAMIC) - AC_SUBST(BUILD_MONITOR_DYNAMIC) - AC_SUBST(BUILD_PASSWD_DYNAMIC) - AC_SUBST(BUILD_PERL_DYNAMIC) - AC_SUBST(BUILD_SHELL_DYNAMIC) - AC_SUBST(BUILD_SQL_DYNAMIC) - AC_SUBST(BUILD_TCL_DYNAMIC) +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) -AC_SUBST(LDBM_LIB) - AC_SUBST(LDAP_LIBS) -AC_SUBST(LDIF_LIBS) AC_SUBST(SLAPD_LIBS) AC_SUBST(SLURPD_LIBS) AC_SUBST(LDBM_LIBS) AC_SUBST(LTHREAD_LIBS) AC_SUBST(LUTIL_LIBS) AC_SUBST(WRAP_LIBS) -AC_SUBST(MOD_TCL_LIB) -AC_SUBST(LINK_BINS_DYNAMIC) AC_SUBST(SLAPD_MODULES_CPPFLAGS) AC_SUBST(SLAPD_MODULES_LDFLAGS) -AC_SUBST(SLAPD_MODULES_LIST) + +AC_SUBST(SLAPD_NO_STATIC) +AC_SUBST(SLAPD_STATIC_BACKENDS) +AC_SUBST(SLAPD_DYNAMIC_BACKENDS) +AC_SUBST(SLAPD_DYNAMIC_OVERLAYS) AC_SUBST(PERL_CPPFLAGS) AC_SUBST(SLAPD_PERL_LDFLAGS) @@ -2610,19 +2985,26 @@ AC_SUBST(MOD_PERL_LDFLAGS) AC_SUBST(KRB4_LIBS) AC_SUBST(KRB5_LIBS) -AC_SUBST(READLINE_LIBS) AC_SUBST(SASL_LIBS) -AC_SUBST(TERMCAP_LIBS) AC_SUBST(TLS_LIBS) AC_SUBST(MODULES_LIBS) +AC_SUBST(SLAPI_LIBS) +AC_SUBST(LIBSLAPI) +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) AC_SUBST(SLAPD_SQL_INCLUDES) +dnl ---------------------------------------------------------------- +dnl final help output +AC_ARG_WITH(xxinstall,[ +See INSTALL file for further details.]) + dnl ---------------------------------------------------------------- dnl final output dnl @@ -2636,41 +3018,91 @@ doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk \ doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk \ doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk \ clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk \ -clients/finger/Makefile:build/top.mk:clients/finger/Makefile.in:build/rules.mk \ -clients/mail500/Makefile:build/top.mk:clients/mail500/Makefile.in:build/rules.mk \ -clients/ud/Makefile:build/top.mk:clients/ud/Makefile.in:build/rules.mk \ -clients/maildap/Makefile:build/top.mk:clients/maildap/Makefile.in:build/rules.mk \ clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk \ include/Makefile:build/top.mk:include/Makefile.in \ libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk \ -libraries/libavl/Makefile:build/top.mk:libraries/libavl/Makefile.in:build/lib.mk:build/lib-static.mk \ libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk \ libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk \ libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk \ -libraries/libldbm/Makefile:build/top.mk:libraries/libldbm/Makefile.in:build/lib.mk:build/lib-static.mk \ -libraries/libldif/Makefile:build/top.mk:libraries/libldif/Makefile.in:build/lib.mk:build/lib-static.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-static.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 \ servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk \ +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-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 \ servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk \ servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk \ +servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk \ servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk \ servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk \ -servers/slapd/back-tcl/Makefile:build/top.mk:servers/slapd/back-tcl/Makefile.in:build/mod.mk \ servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk \ -servers/slapd/tools/Makefile:build/top.mk:servers/slapd/tools/Makefile.in \ +servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk \ +servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk \ servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk \ tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk \ +tests/run \ tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk \ ,[ +chmod +x tests/run date > stamp-h -echo Please \"make depend\" to build dependencies -]) +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"])