dnl $OpenLDAP$
dnl
-dnl Copyright 1998-2000 The OpenLDAP Foundation. All Rights Reserved.
+dnl Copyright 1998-2002 The OpenLDAP Foundation. All Rights Reserved.
dnl
-dnl Redistribution and use in source and binary forms are permitted only
-dnl as authorized by the OpenLDAP Public License. A copy of this
-dnl license is available at http://www.OpenLDAP.org/license.html or
-dnl in file LICENSE in the top-level directory of the distribution.
+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
dnl ----------------------------------------------------------------
dnl Redefine AC_INIT_BINSH to provide RCS IDs and copyright notice
# $]OpenLDAP[$
# from] translit([$OpenLDAP$], $")] [
-# Copyright 1998-2000 The OpenLDAP Foundation. All Rights Reserved.
+# Copyright 1998-2002 The OpenLDAP Foundation. All Rights Reserved.
#
-# Redistribution and use in source and binary forms 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-2000 The OpenLDAP Foundation, All Rights Reserved."
-echo "Copying restrictions apply, see COPYRIGHT file."
+# 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-2002 The OpenLDAP Foundation, All Rights Reserved."
+echo " Restrictions apply, see COPYRIGHT and LICENSE files."
])dnl
dnl ----------------------------------------------------------------
dnl Disable config.cache!
define([AC_CACHE_SAVE], )dnl
dnl ================================================================
dnl Configure.in for OpenLDAP
-AC_INIT(build/version)dnl
+AC_INIT(build/version.sh)dnl
+
+# set unset (borrowed from autoconf 2.49c)
+if (OL_FOO=OL_FOO; unset OL_FOO) >/dev/null 2>&1; then
+ ol_unset=unset
+else
+ ol_unset=false
+fi
+# unset CDPATH
+$ol_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
+
AC_CONFIG_AUX_DIR(build)dnl
-OL_VERSION=`cat $ac_aux_dir/version`
-if test -z "$OL_VERSION"; then
+eval `$ac_aux_dir/version.sh`
+if test -z "$OL_STRING"; then
AC_MSG_ERROR([could not determine version])
fi
-echo "Configuring OpenLDAP $OL_VERSION ..."
+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`
+TN=`$SHTOOL echo -e %b`
+
+echo "Configuring $TB$OL_STRING$TN ..."
dnl Determine host platform
dnl we try not to use this for much
AC_CANONICAL_SYSTEM
-AM_INIT_AUTOMAKE(OpenLDAP,[$OL_VERSION], [no defines])dnl
-AC_SUBST(PACKAGE)
-AC_SUBST(VERSION)
+AM_INIT_AUTOMAKE([$OL_PACKAGE],[$OL_VERSION], [no defines])dnl
+AC_SUBST(PACKAGE)dnl
+AC_SUBST(VERSION)dnl
AC_DEFINE_UNQUOTED(OPENLDAP_PACKAGE,"$PACKAGE",Package)
AC_DEFINE_UNQUOTED(OPENLDAP_VERSION,"$VERSION",Version)
+AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION,$OL_API_INC,Version)
+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
+AC_SUBST(OPENLDAP_LIBVERSION)dnl
+
dnl We use autoconf features new to 2.13.
dnl aclocal.m4 should be built using aclocal from automake 1.4
-dnl libtool 1.3.3 should be installed.
+dnl libtool 1.4.2 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
ldap_subdir="/openldap"
AC_ARG_WITH(subdir,
-[ --with-subdir=DIR change default subdirectory used for installs],
+[ --with-subdir=DIR change default subdirectory used for installs],
[case "$withval" in
no) ldap_subdir=""
;;
dnl ----------------------------------------------------------------
dnl General "enable" options
-OL_ARG_ENABLE(debug,[ --enable-debug enable debugging], yes)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], yes)dnl
-OL_ARG_ENABLE(referrals,[ --enable-referrals enable V2 Referrals extension], yes)dnl
-OL_ARG_ENABLE(kbind,[ --enable-kbind enable V2 Kerberos IV bind], auto)dnl
-OL_ARG_ENABLE(cldap,[ --enable-cldap enable connectionless ldap], no)dnl
-OL_ARG_ENABLE(ldapi,[ --enable-ldapi enable domain socket (PF_LOCAL) ldap], no)dnl
-OL_ARG_ENABLE(x_compile,[ --enable-x-compile enable cross compiling],
+OL_ARG_ENABLE(debug,[ --enable-debug enable debugging], yes)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
+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
-dnl OL_ARG_ENABLE(dmalloc,[ --enable-dmalloc enable debug malloc support], no)dnl
+dnl OL_ARG_ENABLE(dmalloc,[ --enable-dmalloc enable debug malloc support], no)dnl
-OL_ARG_WITH(cyrus_sasl,[ --with-cyrus-sasl with Cyrus SASL support],
+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],
+OL_ARG_WITH(fetch,[ --with-fetch with fetch URL support],
auto, [auto yes no] )
-OL_ARG_WITH(kerberos,[ --with-kerberos with support],
+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(readline,[ --with-readline with readline support],
auto, [auto yes no] )
-OL_ARG_WITH(threads,[ --with-threads use threads],
+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],
+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],
+OL_ARG_WITH(yielding_select,[ --with-yielding-select with implicitly yielding select],
auto, [auto yes no manual] )
dnl ----------------------------------------------------------------
dnl ----------------------------------------------------------------
dnl SLAPD OPTIONS
-AC_ARG_WITH(xxslapdoptions,[SLAPD (Standalone LDAP Daemon) Options:])
-OL_ARG_ENABLE(slapd,[ --enable-slapd enable building slapd], yes)dnl
-OL_ARG_ENABLE(cleartext,[ --enable-cleartext enable cleartext passwords], yes)dnl
-OL_ARG_ENABLE(crypt,[ --enable-crypt enable crypt(3) passwords], auto)dnl
-OL_ARG_ENABLE(kpasswd,[ --enable-kpasswd enable kerberos password verification], 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
-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(quipu,[ --enable-quipu build quipu migration tools], no)dnl
-OL_ARG_ENABLE(rlookups,[ --enable-rlookups enable reverse lookups], auto)dnl
-OL_ARG_ENABLE(aci,[ --enable-aci enable per-object ACIs], no)dnl
-OL_ARG_ENABLE(wrappers,[ --enable-wrappers enable tcp wrapper support], no)dnl
-OL_ARG_ENABLE(dynamic,[ --enable-dynamic enable linking built binaries with dynamic libs], no)dnl
+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_ARG_ENABLE(wrappers,[ --enable-wrappers enable tcp wrapper support], no)dnl
dnl SLAPD Backend options
-OL_ARG_ENABLE(dnssrv,[ --enable-dnssrv enable dnssrv backend], no)dnl
-OL_ARG_WITH(dnssrv_module,[ --with-dnssrv-module module type], static,
+OL_ARG_ENABLE(bdb,[ --enable-bdb enable Berkeley DB backend], yes)dnl
+OL_ARG_WITH(bdb_module,[ --with-bdb-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,
+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(ldbm,[ --enable-ldbm enable ldbm backend], yes)dnl
-OL_ARG_WITH(ldbm_api,[ --with-ldbm-api use LDBM API], auto,
+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], no)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,
+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,
+OL_ARG_WITH(ldbm_type,[ --with-ldbm-type use LDBM type], auto,
[auto btree hash])
-OL_ARG_ENABLE(passwd,[ --enable-passwd enable passwd backend], no)dnl
-OL_ARG_WITH(passwd_module,[ --with-passwd-module module type], static,
+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,
+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,
+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,
+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,
+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 SLURPD OPTIONS
-AC_ARG_WITH(xxslurpdoptions,[SLURPD (Replication Daemon) Options:])
-OL_ARG_ENABLE(slurpd,[ --enable-slurpd enable building slurpd], auto)dnl
+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
# 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_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_modules = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
fi
- if test $ol_enable_multimaster = yes ; then
- AC_MSG_WARN([slapd disabled, ignoring --enable-multimaster 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_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_quipu = yes ; then
- AC_MSG_WARN([slapd disabled, ignoring --enable-quipu argument])
- fi
if test $ol_enable_rlookups = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
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_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_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
# 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_sql=no
ol_enable_modules=no
- ol_enable_multimaster=no
+dnl ol_enable_multimaster=no
ol_enable_phonetic=no
- ol_enable_quipu=no
ol_enable_rlookups=no
ol_enable_aci=no
ol_enable_wrappers=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_enable_slurpd=no
+ ol_enable_rewrite=no
+
elif test $ol_enable_ldbm = no ; then
dnl SLAPD without LDBM
fi
if test $ol_enable_modules != yes -a \
+ $ol_enable_bdb = no -a \
$ol_enable_dnssrv = no -a \
$ol_enable_ldap = no -a \
+ $ol_enable_meta = no -a \
+ $ol_enable_monitor = no -a \
$ol_enable_passwd = no -a \
$ol_enable_perl = no -a \
$ol_enable_shell = no -a \
$ol_enable_sql = no -a \
$ol_enable_tcl = no ; then
- AC_MSG_ERROR([slapd requires a backend])
+
+ if test $ol_enable_slapd = yes ; then
+ AC_MSG_ERROR([slapd requires a backend])
+ else
+ AC_MSG_WARN([skipping slapd, no backend specified])
+ ol_enable_slapd=no
+ fi
fi
ol_with_ldbm_api=no
ol_with_ldbm_type=no
ol_with_ldbm_module=static
+ if test $ol_enable_bdb != no ; then
+ ol_with_ldbm_api=berkeley
+ fi
+
else
dnl SLAPD with LDBM
if test $ol_with_ldbm_api = gdbm -a \
$ol_with_ldbm_type = btree ; then
AC_MSG_ERROR([NDBM only supports LDBM type hash])
fi
+
+ if test $ol_enable_bdb = yes ; 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
+ fi
+ fi
fi
if test $ol_enable_slurpd = yes ; then
fi
fi
+if test $ol_enable_lmpasswd = yes ; then
+ if test $ol_with_tls = no ; then
+ AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
+ fi
+fi
+
if test $ol_enable_kbind = yes -o $ol_enable_kpasswd = yes ; then
if test $ol_with_kerberos = no ; then
AC_MSG_ERROR([options require --with-kerberos])
+ elif test $ol_with_kerberos = auto ; then
+ ol_with_kerberos=yes
fi
+
elif test $ol_enable_kbind = no -o $ol_enable_kpasswd = no ; then
- if test $ol_with_kerberos != auto ; then
+ if test $ol_with_kerberos = auto ; then
+ ol_with_kerberos=no
+ elif test $ol_with_kerberos != no ; then
AC_MSG_WARN([Kerberos detection enabled unnecessarily]);
- else
ol_with_kerberos=no
fi
fi
if test $ol_with_cyrus_sasl = no ; then
AC_MSG_ERROR([options require --with-cyrus-sasl])
fi
- ol_link_spasswd=yes
+ ol_with_cyrus_sasl=yes
fi
AC_MSG_RESULT(done)
dnl Initialize vars
LDAP_LIBS=
LDIF_LIBS=
+LDBM_LIB=
LDBM_LIBS=
LTHREAD_LIBS=
LUTIL_LIBS=
-QUIPU_LIBS=
SLAPD_LIBS=
SLURPD_LIBS=
BUILD_SLAPD=no
BUILD_SLURPD=no
-BUILD_QUIPU=no
BUILD_THREAD=no
+BUILD_BDB=no
BUILD_DNSSRV=no
BUILD_LDAP=no
BUILD_LDBM=no
+BUILD_META=no
+BUILD_MONITOR=no
BUILD_PASSWD=no
BUILD_PERL=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
SLAPD_MODULES_CPPFLAGS=
SLAPD_MODULES_LIST=
+SLAPD_STATIC_BACKENDS=
+SLAPD_DYNAMIC_BACKENDS=
+
SLAPD_PERL_LDFLAGS=
MOD_PERL_LDFLAGS=
PERL_CPPFLAGS=
MODULES_LIBS=
AUTH_LIBS=
+SLAPD_SLP_LIBS=
+
dnl ================================================================
dnl Checks for programs
-dnl AC_PROG_INSTALL
+AC_PROG_INSTALL
AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
dnl (for now, let autoconf sort this out)
dnl CFLAGS=${CFLAGS-""}
+AC_CHECK_PROGS(AR,ar gar,ar)
+
AC_LIBTOOL_WIN32_DLL
AC_LIBTOOL_DLOPEN
AC_PROG_LIBTOOL
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)
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
AC_DEFINE(HAVE_AIX_SECURITY,1,[define if you have AIX security lib])
])
+
dnl ----------------------------------------------------------------
dnl Check for module support
ol_link_modules=no
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
fi
ol_link_modules=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
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 <winsock.h>],[
- socket(0,0,0);
- select(0,NULL,NULL,NULL,NULL);
- closesocket(0);
- gethostname(NULL,0);
- ],[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])
+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
+AC_MSG_CHECKING(for winsock)
+save_LIBS="$LIBS"
+for curlib in ws2_32 wsock32; do
+ LIBS="$LIBS -l$curlib"
+ AC_TRY_LINK([
+ char socket@12();
+ char select@20();
+ char closesocket@4();
+ char gethostname@8();
+ ],
+ [
+ socket@12();
+ select@20();
+ closesocket@4();
+ gethostname@8();
+ ],
+ have_winsock=yes, have_winsock=no)
+
+ if test $have_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
+ have_winsock=winsock2
+ AC_DEFINE(HAVE_WINSOCK2, 1,
+ [define if you have winsock2])
+ fi
+ break
fi
-fi
+ LIBS="$save_LIBS"
+done
+AC_MSG_RESULT($have_winsock)
dnl Find socket()
dnl Likely combinations:
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
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 For windows, check for the need of RPCRT for UUID function support
+AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
+save_LIBS="$LIBS"
+LIBS="$LIBS -lrpcrt4"
+AC_TRY_LINK([
+ char UuidCreate@4();
+ char UuidToStringA@8();
+ ],
+ [
+ UuidCreate@4();
+ UuidToStringA@8();
+ ],
+ 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)
+
dnl ----------------------------------------------------------------
dnl Check for resolver routines
+dnl need to check for both res_query and __res_query
+dnl need to check -lc, -lbind, and -lresolv
ol_link_dnssrv=no
AC_CHECK_FUNC(res_query,:)
+if test $ac_cv_func_res_query = no ; then
+ AC_CHECK_FUNC(__res_query,:)
+ ac_cv_func_res_query=$ac_cv_func___res_query
+fi
+
if test $ac_cv_func_res_query = no ; then
AC_CHECK_LIB(bind, res_query)
ac_cv_func_res_query=$ac_cv_lib_bind_res_query
ac_cv_func_res_query=$ac_cv_lib_resolv_res_query
fi
+if test $ac_cv_func_res_query = no ; then
+ AC_CHECK_LIB(resolv, __res_query)
+ ac_cv_func_res_query=$ac_cv_lib_resolv___res_query
+fi
+
if test "$ac_cv_func_res_query" = yes ; then
AC_DEFINE(HAVE_RES_QUERY,1,
[define if you have res_query()])
fi
dnl ----------------------------------------------------------------
-dnl QUIPU
-if test $ol_enable_quipu != no ; then
- AC_CHECK_HEADERS(quipu/commonarg.h)
-
- if test $ac_cv_header_quipu_commonarg_h = yes ; then
- BUILD_QUIPU=yes
- elif test $ol_enable_quipu = auto ; then
- AC_MSG_WARN([no quipu for --enable-quipu=auto, disabling])
- else
- AC_MSG_ERROR(no quipu for --enable-quipu=$ol_enable_quipu)
+dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
+dnl PF_LOCAL may use getaddrinfo in available
+AC_CHECK_FUNCS( getaddrinfo 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
+elif test $ol_enable_ipv6 != no ; then
+ AC_CACHE_CHECK([INET6_ADDRSTRLEN],[ol_cv_inet6_addrstrlen],[
+ AC_EGREP_CPP(__has_inet6_addrstrlen__,[
+# include <netinet/in.h>
+# ifdef INET6_ADDRSTRLEN
+ __has_inet6_addrstrlen__;
+# endif
+ ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])])
+
+ if test $ol_cv_inet6_addrstrlen = yes ; then
+ ol_link_ipv6=yes
+ elif test $ol_enable_ipv6 = yes ; then
+ AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
+ fi
+fi
+
+if test $ol_enable_local != no ; then
+ AC_CHECK_HEADERS( sys/un.h )
+
+ if test $ol_enable_local = auto ; then
+ ol_enable_local=$ac_cv_header_sys_un_h
+ elif test $ac_cv_header_sys_un_h = no ; then
+ AC_MSG_ERROR([AF_LOCAL domain support requires sys/un.h])
fi
fi
ol_link_krb5=no
ol_link_krb4=no
-if test $ol_with_kerberos = auto -o $ol_with_kerberos = k5 \
- -o $ol_with_kerberos = k5only -o $ol_with_kerberos = k425 ; then
+if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
+ -o $ol_with_kerberos = k5 -o $ol_with_kerberos = k5only \
+ -o $ol_with_kerberos = k425 ; then
AC_CHECK_HEADERS(krb5.h)
fi
if test $krb5_impl = mit; then
+ AC_CHECK_LIB(k5crypto, main,
+ [krb5crypto=k5crypto],
+ [krb5crypto=crypto])
+
AC_CHECK_LIB(krb5, main,
[have_krb5=yes
- KRB5_LIBS="-lkrb5 -lcrypto -lcom_err"],
+ KRB5_LIBS="-lkrb5 -l$krb5crypto -lcom_err"],
[have_krb5=no],
- [-lcrypto -lcom_err])
+ [-l$krb5crypto -lcom_err])
elif test $krb5_impl = heimdal; then
AC_CHECK_LIB(krb5, main,
AC_DEFINE(HAVE_HEIMDAL_KERBEROS, 1,
[define if you have HEIMDAL Kerberos])
+
else
have_krb5=no
AC_MSG_WARN([Unrecongized Kerberos5 Implementation])
fi
fi
-if test $ol_link_krb5 = yes -a \
- \( $ol_with_kerberos = auto -o $ol_with_kerberos = k425 \) ; then
+if test $ol_link_krb5 = yes -a \( $ol_with_kerberos = yes -o \
+ $ol_with_kerberos = auto -o $ol_with_kerberos = k425 \) ; then
AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
if test $krb5_impl = mit; then
AC_CHECK_LIB(krb4, main, [have_k425=yes
KRB4_LIBS="-lkrb4 -ldes425"], [have_k425=no],
- [-ldes425 -lkrb5 -lcrypto -lcom_err])
+ [-ldes425 -lkrb5 -l$krb5crypto -lcom_err])
elif test $krb5_impl = heimdal; then
AC_CHECK_LIB(krb4, main, [have_k425=yes
else
have_425=no
- AC_MSG_WARN([Unrecongized Kerberos5 Implementation])
+ AC_MSG_WARN([Unrecongized Kerberos V Implementation])
fi
if test $have_k425 = yes ; then
ol_with_kerberos=found
fi
-if test $ol_with_kerberos = auto -o $ol_with_kerberos = k4 \
- -o $ol_with_kerberos = kth ; then
+if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
+ -o $ol_with_kerberos = k4 -o $ol_with_kerberos = kth ; then
AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
fi
if test $ol_link_krb4 = yes -a $ol_enable_kpasswd != no ; then
- ol_link_kpasswd=yes;
+ ol_link_kpasswd=yes
+fi
+
+if test $ol_link_krb4 = yes -a $ol_enable_kbind != no ; then
+ ol_link_kbind=yes
+
+elif test $ol_enable_kbind = yes ; then
+ AC_MSG_ERROR([Kerberos IV detection failed])
fi
if test $ol_link_krb4 = yes -o $ol_link_krb5 = yes ; then
AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
elif test $ol_with_kerberos != auto -a $ol_with_kerberos != no ; then
- AC_MSG_ERROR([Kerberos detection failed.])
+ AC_MSG_ERROR([Kerberos detection failed])
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
fi
fi
fi
+
+else
+ AC_WARN([TLS privacy protection not supported!])
fi
if test $ol_link_tls = yes ; then
AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
-fi
+
+elif test $ol_with_tls = auto ; then
+ AC_WARN([Could not locate TLS/SSL package])
+ AC_WARN([TLS privacy protection not supported!])
+
+elif test $ol_with_tls != no ; then
+ AC_ERROR([Could not locate TLS/SSL package])
+fi
+
+dnl ----------------------------------------------------------------
+dnl LAN Manger password checking requires DES from OpenSSL
+if test $ol_enable_lmpasswd != no; then
+ if test $ol_link_tls != yes ; then
+ AC_ERROR([LAN Manager passwords require OpenSSL])
+ fi
+
+ AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
+fi
dnl ----------------------------------------------------------------
dnl Tests for reentrant functions necessary to build a
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])
CPPFLAGS="$save_CPPFLAGS"
LIBS="$save_LIBS"
else
- AC_MSG_ERROR([could not link with POSIX Threads])
+ AC_MSG_ERROR([could not locate usable POSIX Threads])
fi
fi
-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
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 <cthreads.h> 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 \
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
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"
[define this if Berkeley DB is available])
ol_link_ldbm=berkeley
- ol_with_ldbm_api=db
+ ol_with_ldbm_api=berkeley
if test $ol_with_ldbm_type = hash ; then
AC_DEFINE(LDBM_USE_DBHASH,1,
fi
fi
+if test $ol_enable_bdb = yes -a $ol_link_ldbm != berkeley ; then
+ AC_MSG_ERROR(BDB: BerkeleyDB not available)
+elif test $ol_enable_bdb != no -a $ol_link_ldbm = berkeley ; then
+ OL_BDB_COMPAT
+
+ if test $ol_cv_bdb_compat = yes ; then
+ ol_enable_bdb=yes
+ elif test $ol_enable_bdb = yes ; then
+ AC_MSG_ERROR(BDB: BerkeleyDB version incompatible)
+ else
+ ol_enable_bdb=no
+ 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)
ol_with_ldbm_api=none
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])
else
- LINK_BINS_DYNAMIC="no"
+ BUILD_LIBS_DYNAMIC=static
fi
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 <tcpd.h>
+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 <tcpd.h>
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 ore 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
dnl AC_CHECK_HEADERS(dmalloc.h)
dnl AC_CHECK_LIB(dmalloc, dmalloc_shutdown)
dnl fi
+
+dnl ----------------------------------------------------------------
+dnl SQL
+ol_link_sql=no
+if test $ol_enable_sql != no ; then
+ 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
+ fi
+
+ if test $ol_link_sql != no ; then
+ SLAPD_SQL_LIBS="$ol_link_sql"
+
+ elif test $ol_enable_sql != auto ; then
+ AC_MSG_ERROR([could not locate suitable ODBC library])
+ fi
+fi
+
dnl ----------------------------------------------------------------
dnl TCL
if test $ol_enable_tcl != no ; then
AC_CHECK_LIB($lib,main,
[have_tcl=yes
if test x"$ol_with_tcl_module" = "xstatic" ; then
- SLAPD_LIBS="$SLAPD_LIBS -l${lib}"
+ SLAPD_LIBS="$SLAPD_LIBS -l${lib}"
else
- MOD_TCL_LIB="-l${lib}"
+ MOD_TCL_LIB="-l${lib}"
fi;break],[have_tcl=no])
done
fi
ol_link_sasl=no
ol_link_spasswd=no
if test $ol_with_cyrus_sasl != no ; then
- AC_CHECK_HEADER(sasl.h)
+ AC_CHECK_HEADERS(sasl/sasl.h 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])
+ 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 $have_cyrus_sasl != no ; then
- SASL_LIBS="-lsasl"
- AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
- ol_link_sasl=yes
+ if test $ol_link_sasl = no ; then
+ if test $ol_with_cyrus_sasl != auto ; then
+ AC_MSG_ERROR([Could not locate Cyrus SASL])
+ else
+ AC_MSG_WARN([Could not locate Cyrus SASL])
+ AC_MSG_WARN([SASL authentication not supported!])
+ if test $ol_link_tls = no ; then
+ AC_MSG_WARN([Strong authentication not supported!])
+ fi
+ fi
+ else
+ 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
fi
- if test $ol_link_sasl = no -a $ol_with_cyrus_sasl = yes ; then
- AC_MSG_ERROR(no suitable API for --with-cyrus-sasl=$ol_with_cyrus_sasl)
+else
+ AC_MSG_WARN([SASL authentication not supported!])
+ if test $ol_link_tls = no ; then
+ AC_MSG_WARN([Strong authentication not supported!])
fi
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";
fi
fi
+dnl ----------------------------------------------------------------
+dnl Check for SLPv2 Compliant API Library
+if test $ol_enable_slp != no ; then
+ AC_CHECK_HEADERS( slp.h )
+
+ if test $ac_cv_header_slp_h = yes ; then
+ AC_CHECK_LIB(slp, SLPOpen, [have_slp=yes], [have_slp=no])
+ if test $have_slp = yes ; then
+ AC_DEFINE(HAVE_SLP, 1, [define if you have -lslp])
+ SLAPD_SLP_LIBS=-lslp
+ fi
+
+ elif test $ol_enable_slp = yes ; then
+ AC_MSG_ERROR([SLP not found])
+ fi
+fi
+
dnl ----------------------------------------------------------------
dnl Checks for typedefs, structures, and compiler characteristics.
AC_TYPE_MODE_T
chroot \
endgrent \
endpwent \
+ fcntl \
flock \
getdtablesize \
getgrgid \
memcpy \
memmove \
mkstemp \
+ mktemp \
pipe \
read \
recv \
sigaction \
signal \
sigset \
- snprintf \
strdup \
strerror \
strpbrk \
strtoul \
strspn \
sysconf \
+ usleep \
waitpid \
wait4 \
write \
)
dnl We actually may need to replace more than this.
-AC_REPLACE_FUNCS(getopt tempnam)
+AC_REPLACE_FUNCS(getopt)
if test "$ac_cv_func_getopt" != yes; then
- LIBSRCS="$LIBSRCS getopt.c"
-fi
-
-if test "$ac_cv_func_tempnam" != yes; then
- LIBSRCS="$LIBSRCS tempnam.c"
+ LIBSRCS="$LIBSRCS getopt.c"
fi
dnl ----------------------------------------------------------------
AC_DEFINE(LDAP_SYSLOG,1,
[define this to add syslog code])
fi
-if test "$ol_enable_libui" = yes ; then
- AC_DEFINE(LDAP_LIBUI,1,
- [define this for LDAP User Interface support])
-fi
if test "$ol_enable_cache" = no ; then
AC_DEFINE(LDAP_NOCACHE,1,
[define this to remove -lldap cache support])
if test "$ol_enable_referrals" != no ; then
AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION)
fi
-if test "$ol_enable_cldap" != no ; then
- AC_DEFINE(LDAP_CONNECTIONLESS,1,[define to support CLDAP])
+if test "$ol_enable_local" != no; then
+ AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
fi
-if test "$ol_enable_ldapi" != no; then
- AC_DEFINE(USE_PF_LOCAL,1,[define to support PF_LOCAL transport])
+if test "$ol_link_ipv6" != no; then
+ AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
fi
-
if test "$ol_enable_cleartext" != no ; then
AC_DEFINE(SLAPD_CLEARTEXT,1,[define to support cleartext passwords])
fi
if test "$ol_link_spasswd" != no ; then
AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
fi
-if test "$ol_enable_multimaster" != no ; then
- AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
-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])
fi
SLAPD_MODULES_LDFLAGS="-dlopen self"
fi
+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"
+ SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
+ else
+ SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
+ fi
+fi
+
if test "$ol_link_dnssrv" != no ; then
AC_DEFINE(SLAPD_DNSSRV,1,[define to support DNS SRV backend])
BUILD_SLAPD=yes
BUILD_DNSSRV=mod
BUILD_DNSSRV_DYNAMIC=shared
SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-dnssrv/back_dnssrv.la"
+ SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
+ else
+ SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
fi
fi
BUILD_LDAP=mod
BUILD_LDAP_DYNAMIC=shared
SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-ldap/back_ldap.la"
+ SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
+ else
+ SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
fi
fi
-if test "$ol_link_ldbm" != no ; then
+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"
+ SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldbm"
+ else
+ SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldbm"
+ fi
+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"
+ SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
+ else
+ SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
+ fi
+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"
+ SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
+ else
+ SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
fi
fi
BUILD_PASSWD=mod
BUILD_PASSWD_DYNAMIC=shared
SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-passwd/back_passwd.la"
+ SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
+ else
+ SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
fi
fi
BUILD_PERL=mod
BUILD_PERL_DYNAMIC=shared
SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-perl/back_perl.la"
+ SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
+ else
+ SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
fi
fi
BUILD_SHELL=mod
BUILD_SHELL_DYNAMIC=shared
SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-shell/back_shell.la"
+ SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
+ else
+ SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
fi
fi
BUILD_TCL=mod
BUILD_TCL_DYNAMIC=shared
SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-tcl/back_tcl.la"
+ SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-tcl"
+ else
+ SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-tcl"
fi
fi
-if test "$ol_enable_sql" != no ; then
+if test "$ol_link_sql" != no ; then
AC_DEFINE(SLAPD_SQL,1,[define to support SQL backend])
BUILD_SLAPD=yes
BUILD_SQL=yes
- SLAPD_SQL_LIBS=-liodbc
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"
+ SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
+ else
+ SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
fi
fi
BUILD_SLURPD=yes
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
+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=
+ SLAPD_MODULES_LIST=
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(BUILD_LIBS_DYNAMIC)
AC_SUBST(BUILD_SLAPD)
+ AC_SUBST(BUILD_BDB)
AC_SUBST(BUILD_DNSSRV)
AC_SUBST(BUILD_LDAP)
AC_SUBST(BUILD_LDBM)
+ AC_SUBST(BUILD_META)
+ AC_SUBST(BUILD_MONITOR)
AC_SUBST(BUILD_PASSWD)
AC_SUBST(BUILD_PERL)
- AC_SUBST(BUILD_QUIPU)
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_TCL_DYNAMIC)
AC_SUBST(BUILD_SLURPD)
+AC_SUBST(LDBM_LIB)
+
AC_SUBST(LDAP_LIBS)
AC_SUBST(LDIF_LIBS)
AC_SUBST(SLAPD_LIBS)
-AC_SUBST(QUIPU_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_STATIC_BACKENDS)
+AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
+
AC_SUBST(PERL_CPPFLAGS)
AC_SUBST(SLAPD_PERL_LDFLAGS)
AC_SUBST(MOD_PERL_LDFLAGS)
AC_SUBST(MODULES_LIBS)
AC_SUBST(AUTH_LIBS)
+AC_SUBST(SLAPD_SLP_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
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/fax500/Makefile:build/top.mk:clients/fax500/Makefile.in:build/rules.mk \
-clients/gopher/Makefile:build/top.mk:clients/gopher/Makefile.in:build/rules.mk \
clients/mail500/Makefile:build/top.mk:clients/mail500/Makefile.in:build/rules.mk \
-clients/rcpt500/Makefile:build/top.mk:clients/rcpt500/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/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 \
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-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-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-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.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/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk \
-contrib/Makefile:build/top.mk:contrib/Makefile.in:build/dir.mk \
-contrib/saucer/Makefile:build/top.mk:contrib/saucer/Makefile.in:build/rules.mk \
-contrib/web_ldap/Makefile:build/top.mk:contrib/web_ldap/Makefile.in:build/rules.mk \
,[
date > stamp-h
-echo Please \"make depend\" to build dependencies
+echo Please run \"make depend\" to build dependencies
])