dnl $OpenLDAP$
dnl
-dnl Copyright 1998-2002 The OpenLDAP Foundation. All Rights Reserved.
+dnl Copyright 1998-2003 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
# $]OpenLDAP[$
# from] translit([$OpenLDAP$], $")] [
-# Copyright 1998-2002 The OpenLDAP Foundation. All Rights Reserved.
+# Copyright 1998-2003 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
# 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 "Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved."
echo " Restrictions apply, see COPYRIGHT and LICENSE files."
])dnl
dnl ----------------------------------------------------------------
SHTOOL="$ac_cv_shtool"
dnl AC_SUBST(SHTOOL)dnl
-TB=`$SHTOOL echo -e %B`
-TN=`$SHTOOL echo -e %b`
+TB="`$SHTOOL echo -e '%B' 2>/dev/null`"
+TN="`$SHTOOL echo -e '%b' 2>/dev/null`"
-echo "Configuring $TB$OL_STRING$TN ..."
+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
OPENLDAP_LIBVERSION=$OL_API_LIB
AC_SUBST(OPENLDAP_LIBVERSION)dnl
+OPENLDAP_RELEASE_DATE="$OL_RELEASE_DATE"
+AC_SUBST(OPENLDAP_RELEASE_DATE)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.4.2 should be installed.
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(x_compile,[ --enable-x-compile enable cross compiling],
OL_ARG_WITH(cyrus_sasl,[ --with-cyrus-sasl with Cyrus SASL support],
auto, [auto yes no] )
-OL_ARG_WITH(fetch,[ --with-fetch with freeBSD fetch URL support],
+OL_ARG_WITH(fetch,[ --with-fetch with fetch(3) 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_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_enable_multimaster=${ol_enable_multimaster-no}
OL_ARG_ENABLE(phonetic,[ --enable-phonetic enable phonetic/soundex], no)dnl
OL_ARG_ENABLE(rewrite,[ --enable-rewrite enable DN rewriting in back-ldap and back-meta], no)dnl
OL_ARG_ENABLE(rlookups,[ --enable-rlookups enable reverse lookups of client hostnames], no)dnl
-OL_ARG_ENABLE(slp, [ --enable-slp enable SLPv2 support], no)dnl
+OL_ARG_ENABLE(slapi,[ --enable-slapi enable installation of slapi library], 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], yes)dnl
OL_ARG_WITH(bdb_module,[ --with-bdb-module module type static|dynamic], static,
OL_ARG_ENABLE(dnssrv,[ --enable-dnssrv enable dnssrv backend], no)dnl
OL_ARG_WITH(dnssrv_module,[ --with-dnssrv-module module type static|dynamic], static,
[static dynamic])
+OL_ARG_ENABLE(hdb,[ --enable-hdb enable Hierarchical DB backend], no)dnl
+OL_ARG_WITH(hdb_module,[ --with-hdb-module module type static|dynamic], 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|dynamic], static,
[static dynamic])
AC_ARG_WITH(xxliboptions,[
Library Generation & Linking Options])
AC_ENABLE_STATIC
-dnl AC_DISABLE_SHARED
AC_ENABLE_SHARED
dnl ----------------------------------------------------------------
# validate options
if test $ol_enable_slapd = no ; then
dnl SLAPD was specificallly disabled
+ if test $ol_enable_slapi = yes ; then
+ AC_MSG_WARN([slapd disabled, ignoring --enable-slapi argument])
+ fi
if test $ol_enable_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_hdb = yes ; then
+ AC_MSG_WARN([slapd disabled, ignoring --enable-hdb argument])
+ fi
if test $ol_enable_ldap = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-ldap argument])
fi
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_with_dnssrv_module != static ; then
AC_MSG_WARN([slapd disabled, ignoring --with-dnssrv-module argument])
fi
+ if test $ol_with_hdb_module != static ; then
+ AC_MSG_WARN([slapd disabled, ignoring --with-hdb-module argument])
+ fi
if test $ol_with_ldap_module != static ; then
AC_MSG_WARN([slapd disabled, ignoring --with-ldap-module argument])
fi
fi
# force settings to no
+ ol_enable_slapi=no
ol_enable_bdb=no
ol_enable_dnssrv=no
+ ol_enable_hdb=no
ol_enable_ldap=no
ol_enable_ldbm=no
ol_enable_meta=no
ol_enable_sql=no
ol_enable_modules=no
-dnl ol_enable_multimaster=no
+ ol_enable_multimaster=no
ol_enable_phonetic=no
ol_enable_rlookups=no
ol_enable_aci=no
ol_with_bdb_module=static
ol_with_dnssrv_module=static
+ ol_with_hdb_module=static
ol_with_ldap_module=static
ol_with_ldbm_module=static
ol_with_meta_module=static
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_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
AC_MSG_ERROR([NDBM only supports LDBM type hash])
fi
- if test $ol_enable_bdb = yes ; then
+ if test $ol_enable_bdb = yes -o $ol_enable_hdb = 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])
+ AC_MSG_ERROR([LDBM API not compatible with BDB/HDB])
fi
elif test $ol_enable_bdb = auto ; then
dnl Initialize vars
LDAP_LIBS=
LDIF_LIBS=
-LDBM_LIB=
LDBM_LIBS=
LTHREAD_LIBS=
LUTIL_LIBS=
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_BDB_DYNAMIC=static
BUILD_DNSSRV_DYNAMIC=static
+BUILD_HDB_DYNAMIC=static
BUILD_LDAP_DYNAMIC=static
BUILD_LDBM_DYNAMIC=static
BUILD_META_DYNAMIC=static
SLAPD_MODULES_LDFLAGS=
SLAPD_MODULES_CPPFLAGS=
-SLAPD_MODULES_LIST=
SLAPD_STATIC_BACKENDS=
SLAPD_DYNAMIC_BACKENDS=
TERMCAP_LIBS=
TLS_LIBS=
MODULES_LIBS=
+SLAPI_LIBS=
+LIBSLAPI=
+LIBSLAPITOOLS=
AUTH_LIBS=
SLAPD_SLP_LIBS=
fi
if test -z "${CC}"; then
- AC_CHECK_PROGS(CC,cc)
-fi
+ AC_CHECK_PROGS(CC,cc gcc,missing)
-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 "${CC}" = "missing" ; then
+ AC_MSG_ERROR([Unable to locate cc(1) or suitable replacement. Check PATH or set CC.])
+ fi
+fi
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). Check PATH or set AR.])
+ AC_MSG_ERROR([Unable to locate ar(1) or suitable replacement. Check PATH or set AR.])
fi
fi
AC_LIBTOOL_DLOPEN
AC_PROG_LIBTOOL
-AC_PROG_AWK
OL_PROG_LN_H
AC_PROG_LN_S
-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 Perl
ol_link_perl=no
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
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 <string.h> and <strings.h>])
+ ;;
+esac
dnl ----------------------------------------------------------------
dnl Check for module support
else
ol_with_bdb_module=static
ol_with_dnssrv_module=static
+ ol_with_hdb_module=static
ol_with_ldap_module=static
ol_with_ldbm_module=static
ol_with_meta_module=static
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 \
dnl ----------------------------------------------------------------
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 )
+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
# 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 <sys/types.h>
+#include <sys/socket.h>
+],[
+ 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
else
have_krb5=no
- AC_MSG_WARN([Unrecongized Kerberos5 Implementation])
+ AC_MSG_WARN([Unrecognized Kerberos5 Implementation])
fi
if test $have_krb5 = yes ; then
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],
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
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
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
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"
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
#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);
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 )
dnl _POSIX_THREAD_SAFE_FUNCTIONS
dnl _POSIX_THREADSAFE_FUNCTIONS
dnl
-dnl and is currently defined in lthread.h
+dnl and is currently defined in <ldap_pvt_thread.h>
dnl
-dnl HAVE_THREADS is defined by lthread.h iff -UNO_THREADS
+dnl HAVE_THREADS is defined by <ldap_pvt_thread.h> iff -UNO_THREADS
dnl
-dnl libldap/*.c should only include <lthread.h> iff
+dnl libldap/*.c should only include <ldap_pvt_thread.h> iff
dnl LDAP_R_COMPILE is defined. ie:
dnl #ifdef LDAP_R_COMPILE
-dnl # include LDAP_R_COMPILE
+dnl # include <ldap_pvt_thread.h>
dnl #endif
dnl
dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
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
ol_enable_bdb=no
fi
fi
+if test $ol_enable_hdb = yes -a $ol_link_ldbm != berkeley ; then
+ AC_MSG_ERROR(HDB: BerkeleyDB not available)
+fi
if test $ol_link_ldbm = no -a $ol_with_ldbm_type = btree ; then
AC_MSG_WARN(Could not find LDBM with BTREE support)
fi
dnl ----------------------------------------------------------------
+
if test $ol_enable_dynamic = yes -a $enable_shared = yes ; then
BUILD_LIBS_DYNAMIC=shared
AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
+ LTSTATIC=""
else
BUILD_LIBS_DYNAMIC=static
+ LTSTATIC="-static"
fi
+AC_SUBST(LTSTATIC)dnl
dnl ----------------------------------------------------------------
if test $ol_enable_wrappers != no ; then
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"
[ol_link_sasl="-lsasl"])])
fi
- if test $ol_link_sasl = "-lsasl2"; then
- OL_SASL2_COMPAT
-
- if test $ol_cv_sasl2_compat = no ; then
- ol_link_sasl=no
- AC_MSG_ERROR(SASL: Cyrus SASL2 version obsolete)
- fi
- fi
if test $ol_link_sasl = no ; then
if test $ol_with_cyrus_sasl != auto ; then
AC_MSG_ERROR([Could not locate Cyrus SASL])
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 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"
fi
else
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
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( \
endpwent \
fcntl \
flock \
+ fstat \
getdtablesize \
getgrgid \
gethostname \
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"
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
dnl ----------------------------------------------------------------
dnl Sort out defines
+if test "$ol_enable_slapi" != no ; then
+ dnl This check is donel 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 <ltdl.h>])
+ 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])
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
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_multimaster" != no ; then
+ AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
+fi
if test "$ol_enable_phonetic" != no ; then
AC_DEFINE(SLAPD_PHONETIC,1,[define to support phonetic])
fi
[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"
[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"
SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
else
SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
fi
fi
+if test "$ol_enable_hdb" != no ; then
+ AC_DEFINE(SLAPD_HDB,1,[define to support HDB backend])
+ BUILD_SLAPD=yes
+ BUILD_HDB=yes
+ if test "$ol_with_hdb_module" != static ; then
+ AC_DEFINE(SLAPD_HDB_DYNAMIC,1,
+ [define to support dynamic HDB backend])
+ BUILD_HDB=mod
+ BUILD_HDB_DYNAMIC=shared
+ SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-hdb"
+ else
+ SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb"
+ fi
+fi
+
if test "$ol_enable_ldap" != no ; then
AC_DEFINE(SLAPD_LDAP,1,[define to support LDAP backend])
BUILD_SLAPD=yes
[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"
SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
else
SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
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"
[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"
[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"
[define to support dynamic NULL backend])
BUILD_NULL=mod
BUILD_NULL_DYNAMIC=shared
- SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-null/back_null.la"
SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
else
SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
[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"
SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
else
SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
[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"
SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
else
SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
fi
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
AC_DEFINE(SLAPD_SHELL,1,[define to support SHELL backend])
BUILD_SLAPD=yes
BUILD_SHELL=yes
[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"
SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
else
SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
[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"
SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-tcl"
else
SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-tcl"
[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"
BUILD_REWRITE=yes
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 ----------------------------------------------------------------
dnl
if test "$ac_cv_mingw32" = yes ; then
PLAT=NT
SLAPD_MODULES_LDFLAGS=
- SLAPD_MODULES_LIST=
else
PLAT=UNIX
fi
+if test -z "$SLAPD_STATIC_BACKENDS"; then
+ SLAPD_NO_STATIC='#'
+else
+ SLAPD_NO_STATIC=
+fi
+
AC_SUBST(LIBSRCS)
AC_SUBST(PLAT)
AC_SUBST(BUILD_LIBS_DYNAMIC)
AC_SUBST(BUILD_SLAPD)
+ AC_SUBST(BUILD_SLAPI)
+ AC_SUBST(SLAPD_SLAPI_DEPEND)
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_TCL)
AC_SUBST(BUILD_BDB_DYNAMIC)
AC_SUBST(BUILD_DNSSRV_DYNAMIC)
+ AC_SUBST(BUILD_HDB_DYNAMIC)
AC_SUBST(BUILD_LDAP_DYNAMIC)
AC_SUBST(BUILD_LDBM_DYNAMIC)
AC_SUBST(BUILD_META_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(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(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)
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/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 \
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-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/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk \
servers/slapd/tools/Makefile:build/top.mk:servers/slapd/tools/Makefile.in \
servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk \
tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk \