2 dnl This work is part of OpenLDAP Software <http://www.openldap.org/>.
4 dnl Copyright 1998-2005 The OpenLDAP Foundation.
5 dnl All rights reserved.
7 dnl Redistribution and use in source and binary forms, with or without
8 dnl modification, are permitted only as authorized by the OpenLDAP
11 dnl A copy of this license is available in the file LICENSE in the
12 dnl top-level directory of the distribution or, alternatively, at
13 dnl <http://www.OpenLDAP.org/license.html>.
15 dnl ----------------------------------------------------------------
16 dnl Disable config.cache!
17 define([AC_CACHE_LOAD], )dnl
18 define([AC_CACHE_SAVE], )dnl
19 dnl ================================================================
20 dnl Configure.in for OpenLDAP
21 AC_COPYRIGHT([[Copyright 1998-2005 The OpenLDAP Foundation. All rights reserved.
22 Restrictions apply, see COPYRIGHT and LICENSE files.]])
23 AC_REVISION([$OpenLDAP$])
24 AC_INIT([OpenLDAP],,[http://www.openldap.org/its/])
25 AC_CONFIG_SRCDIR(build/version.sh)dnl
26 dnl ----------------------------------------------------------------
27 dnl OpenLDAP Autoconf Macros
28 builtin(include, build/openldap.m4)dnl
29 dnl ================================================================
31 # set unset (borrowed from autoconf 2.49c)
32 if (OL_FOO=OL_FOO; unset OL_FOO) >/dev/null 2>&1; then
38 $ol_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
40 AC_CONFIG_AUX_DIR(build)dnl
42 eval `$ac_aux_dir/version.sh`
43 if test -z "$OL_STRING"; then
44 AC_MSG_ERROR([could not determine version])
47 if test -f "$ac_aux_dir/shtool" -a ! -d $ac_aux_dir/shtool; then
48 ac_cv_shtool="$ac_aux_dir/shtool"
50 AC_MSG_ERROR([no shtool found in $ac_aux_dir])
53 SHTOOL="$ac_cv_shtool"
54 dnl AC_SUBST(SHTOOL)dnl
56 TB="`$SHTOOL echo -e '%B' 2>/dev/null`"
57 TN="`$SHTOOL echo -e '%b' 2>/dev/null`"
60 if test -d $ac_aux_dir/CVS; then
61 OPENLDAP_CVS="(from CVS sources) "
64 echo "Configuring ${TB}${OL_STRING}${TN} ${OPENLDAP_CVS}..."
66 dnl Determine host platform
67 dnl we try not to use this for much
68 AC_CANONICAL_TARGET([])
70 AM_INIT_AUTOMAKE([$OL_PACKAGE],[$OL_VERSION], [no defines])dnl
73 AC_DEFINE_UNQUOTED(OPENLDAP_PACKAGE,"$PACKAGE",Package)
74 AC_DEFINE_UNQUOTED(OPENLDAP_VERSION,"$VERSION",Version)
76 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION,$OL_API_INC,Version)
77 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MAJOR,$OL_MAJOR,Major)
78 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MINOR,$OL_MINOR,Minor)
79 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_PATCH,$OL_PATCH,Patch)
81 OPENLDAP_LIBRELEASE=$OL_API_LIB_RELEASE
82 AC_SUBST(OPENLDAP_LIBRELEASE)dnl
84 OPENLDAP_LIBVERSION=$OL_API_LIB_VERSION
85 AC_SUBST(OPENLDAP_LIBVERSION)dnl
87 OPENLDAP_RELEASE_DATE="$OL_RELEASE_DATE"
88 AC_SUBST(OPENLDAP_RELEASE_DATE)dnl
90 dnl We use autoconf features new to 2.59. Later versions like won't work.
91 dnl aclocal.m4 should be built using aclocal from automake 1.5
92 dnl libtool 1.5 should be installed.
93 AC_PREREQ(2.59)dnl Required Autoconf version
96 /* begin of portable.h.pre */
97 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
99 * Copyright 1998-2005 The OpenLDAP Foundation
100 * All rights reserved.
102 * Redistribution and use in source and binary forms, with or without
103 * modification, are permitted only as authorized by the OpenLDAP
106 * A copy of this license is available in the file LICENSE in the
107 * top-level directory of the distribution or, alternatively, at
108 * <http://www.OpenLDAP.org/license.html>.
111 #ifndef _LDAP_PORTABLE_H
112 #define _LDAP_PORTABLE_H
114 /* define this if needed to get reentrant functions */
122 /* define this if needed to get threadsafe functions */
136 #ifndef _SGI_MP_SOURCE
137 #undef _SGI_MP_SOURCE
140 /* end of portable.h.pre */
143 /* begin of portable.h.post */
146 /* don't suck in all of the win32 api */
147 # define WIN32_LEAN_AND_MEAN 1
150 #ifndef LDAP_NEEDS_PROTOTYPES
151 /* force LDAP_P to always include prototypes */
152 #define LDAP_NEEDS_PROTOTYPES 1
156 #if (LDAP_VENDOR_VERSION == 000000) && !defined(LDAP_DEVEL)
159 #if defined(LDAP_DEVEL) && !defined(LDAP_TEST)
169 /* ASCII/EBCDIC converting replacements for stdio funcs
170 * vsnprintf and snprintf are used too, but they are already
171 * checked by the configure script
173 #define fputs ber_pvt_fputs
174 #define fgets ber_pvt_fgets
175 #define printf ber_pvt_printf
176 #define fprintf ber_pvt_fprintf
177 #define vfprintf ber_pvt_vfprintf
178 #define vsprintf ber_pvt_vsprintf
181 #include "ac/fdset.h"
183 #include "ldap_cdefs.h"
184 #include "ldap_features.h"
186 #include "ac/assert.h"
187 #include "ac/localize.h"
189 #endif /* _LDAP_PORTABLE_H */
190 /* end of portable.h.post */
193 AC_CONFIG_HEADERS([include/portable.h:include/portable.hin])
194 AC_CONFIG_HEADERS([include/ldap_features.h:include/ldap_features.hin])
195 AC_CONFIG_HEADERS([include/lber_types.h:include/lber_types.hin])
197 dnl ================================================================
199 AC_MSG_CHECKING(configure arguments)
200 AC_PREFIX_DEFAULT(/usr/local)
203 AC_SUBST(top_builddir)dnl
205 dnl ----------------------------------------------------------------
207 ldap_subdir="/openldap"
210 [ --with-subdir=DIR change default subdirectory used for installs],
217 ldap_subdir="$withval"
220 ldap_subdir="/$withval"
225 AC_SUBST(ldap_subdir)dnl
227 dnl ----------------------------------------------------------------
228 dnl General "enable" options
229 OL_ARG_ENABLE(debug,[ --enable-debug enable debugging], yes)dnl
230 OL_ARG_ENABLE(dynamic,[ --enable-dynamic enable linking built binaries with dynamic libs], no)dnl
231 OL_ARG_ENABLE(syslog,[ --enable-syslog enable syslog support], auto)dnl
232 OL_ARG_ENABLE(proctitle,[ --enable-proctitle enable proctitle support], yes)dnl
233 dnl OL_ARG_ENABLE(referrals,[ --enable-referrals enable LDAPv2+ Referrals (experimental)], no)dnl
234 ol_enable_referrals=${ol_enable_referrals-no}
235 dnl OL_ARG_ENABLE(kbind,[ --enable-kbind enable LDAPv2+ Kerberos IV bind (deprecated)], no)dnl
236 ol_enable_kbind=${ol_enable_kbind-no}
237 OL_ARG_ENABLE(ipv6,[ --enable-ipv6 enable IPv6 support], auto)dnl
238 OL_ARG_ENABLE(local,[ --enable-local enable AF_LOCAL (AF_UNIX) socket support], auto)dnl
240 dnl ----------------------------------------------------------------
241 dnl General "with" options
242 OL_ARG_WITH(cyrus_sasl,[ --with-cyrus-sasl with Cyrus SASL support],
243 auto, [auto yes no] )
244 OL_ARG_WITH(fetch,[ --with-fetch with fetch(3) URL support],
245 auto, [auto yes no] )
246 dnl OL_ARG_WITH(kerberos,[ --with-kerberos with Kerberos support],
247 dnl auto, [auto k5 k5only k425 kth k4 afs yes no])
248 ol_with_kerberos=${ol_with_kerberos-auto}
249 OL_ARG_WITH(threads,[ --with-threads with threads],
250 auto, [auto nt posix mach pth lwp yes no manual] )
251 OL_ARG_WITH(tls,[ --with-tls with TLS/SSL support],
252 auto, [auto ssleay openssl yes no] )
253 OL_ARG_WITH(yielding_select,[ --with-yielding-select with implicitly yielding select],
254 auto, [auto yes no manual] )
255 OL_ARG_WITH(multiple_precision,[ --with-multiple-precision
256 multiple precision support for statistics
258 auto, [auto bignum gmp yes no] )
260 dnl ----------------------------------------------------------------
262 dnl ----------------------------------------------------------------
264 dnl ----------------------------------------------------------------
266 AC_ARG_WITH(xxslapdoptions,[
267 SLAPD (Standalone LDAP Daemon) Options:])
268 OL_ARG_ENABLE(slapd,[ --enable-slapd enable building slapd], yes)dnl
269 OL_ARG_ENABLE(aci,[ --enable-aci enable per-object ACIs (experimental)], no)dnl
270 OL_ARG_ENABLE(cleartext,[ --enable-cleartext enable cleartext passwords], yes)dnl
271 OL_ARG_ENABLE(crypt,[ --enable-crypt enable crypt(3) passwords], no)dnl
272 OL_ARG_ENABLE(lmpasswd,[ --enable-lmpasswd enable LAN Manager passwords], no)dnl
273 OL_ARG_ENABLE(spasswd,[ --enable-spasswd enable (Cyrus) SASL password verification], no)dnl
274 OL_ARG_ENABLE(modules,[ --enable-modules enable dynamic module support], no)dnl
275 dnl OL_ARG_ENABLE(multimaster,[ --enable-multimaster enable multimaster replication], no)dnl
276 ol_enable_multimaster=${ol_enable_multimaster-no}
277 OL_ARG_ENABLE(rewrite,[ --enable-rewrite enable DN rewriting in back-ldap and rwm overlay], auto)dnl
278 OL_ARG_ENABLE(rlookups,[ --enable-rlookups enable reverse lookups of client hostnames], no)dnl
279 OL_ARG_ENABLE(slapi,[ --enable-slapi enable SLAPI support (experimental)], no)dnl
280 OL_ARG_ENABLE(slp,[ --enable-slp enable SLPv2 support], no)dnl
281 OL_ARG_ENABLE(wrappers,[ --enable-wrappers enable tcp wrapper support], no)dnl
283 dnl ----------------------------------------------------------------
284 dnl SLAPD Backend Options
285 Backends="bdb dnssrv hdb ldap ldbm meta monitor null \
286 passwd perl relay shell sql"
288 AC_ARG_WITH(xxslapbackends,[
289 SLAPD Backend Options:])
291 OL_ARG_ENABLE(backends,[ --enable-backends enable all available backends no|yes|mod],
293 test -n "$ol_enable_backends" && ol_dflt_backends="$ol_enable_backends"
294 OL_ARG_ENABLE(bdb,[ --enable-bdb enable Berkeley DB backend no|yes|mod],
295 ${ol_dflt_backends-yes}, [no yes mod])dnl
296 OL_ARG_ENABLE(dnssrv,[ --enable-dnssrv enable dnssrv backend no|yes|mod],
297 ${ol_dflt_backends-no}, [no yes mod])dnl
298 OL_ARG_ENABLE(hdb,[ --enable-hdb enable Hierarchical DB backend no|yes|mod],
299 ${ol_dflt_backends-yes}, [no yes mod])dnl
300 OL_ARG_ENABLE(ldap,[ --enable-ldap enable ldap backend no|yes|mod],
301 ${ol_dflt_backends-no}, [no yes mod])dnl
302 OL_ARG_ENABLE(ldbm,[ --enable-ldbm enable ldbm backend no|yes|mod],
303 ${ol_dflt_backends-no}, [no yes mod])dnl
304 OL_ARG_WITH(ldbm_api,[ --with-ldbm-api with LDBM API auto|berkeley|bcompat|mdbm|gdbm],
305 auto, [auto berkeley bcompat mdbm gdbm])
306 OL_ARG_WITH(ldbm_type,[ --with-ldbm-type use LDBM type auto|btree|hash],
307 auto, [auto btree hash])
308 OL_ARG_ENABLE(meta,[ --enable-meta enable metadirectory backend no|yes|mod],
309 ${ol_dflt_backends-no}, [no yes mod])dnl
310 OL_ARG_ENABLE(monitor,[ --enable-monitor enable monitor backend no|yes|mod],
311 ${ol_dflt_backends-yes}, [no yes mod])dnl
312 OL_ARG_ENABLE(null,[ --enable-null enable null backend no|yes|mod],
313 ${ol_dflt_backends-no}, [no yes mod])dnl
314 OL_ARG_ENABLE(passwd,[ --enable-passwd enable passwd backend no|yes|mod],
315 ${ol_dflt_backends-no}, [no yes mod])dnl
316 OL_ARG_ENABLE(perl,[ --enable-perl enable perl backend no|yes|mod],
317 ${ol_dflt_backends-no}, [no yes mod])dnl
318 OL_ARG_ENABLE(relay,[ --enable-relay enable relay backend no|yes|mod],
319 ${ol_dflt_backends-yes}, [no yes mod])dnl
320 OL_ARG_ENABLE(shell,[ --enable-shell enable shell backend no|yes|mod],
321 ${ol_dflt_backends-no}, [no yes mod])dnl
322 OL_ARG_ENABLE(sql,[ --enable-sql enable sql backend no|yes|mod],
323 ${ol_dflt_backends-no}, [no yes mod])dnl
325 dnl ----------------------------------------------------------------
326 dnl SLAPD Overlay Options
327 Overlays="accesslog denyop dyngroup dynlist glue lastmod ppolicy proxycache \
328 refint retcode rwm syncprov translucent unique"
330 AC_ARG_WITH(xxslapoverlays,[
331 SLAPD Overlay Options:])
333 OL_ARG_ENABLE(overlays,[ --enable-overlays enable all available overlays no|yes|mod],
335 test -n "$ol_enable_overlays" && ol_dflt_overlays="$ol_enable_overlays"
336 OL_ARG_ENABLE(accesslog,[ --enable-accesslog In-Directory Access Logging overlay no|yes|mod],
337 ${ol_dflt_overlays-no}, [no yes mod])
338 OL_ARG_ENABLE(denyop,[ --enable-denyop Deny Operation overlay no|yes|mod],
339 ${ol_dflt_overlays-no}, [no yes mod])
340 OL_ARG_ENABLE(dyngroup,[ --enable-dyngroup Dynamic Group overlay no|yes|mod],
341 ${ol_dflt_overlays-no}, [no yes mod])
342 OL_ARG_ENABLE(dynlist,[ --enable-dynlist Dynamic List overlay no|yes|mod],
343 ${ol_dflt_overlays-no}, [no yes mod])
344 OL_ARG_ENABLE(glue,[ --enable-glue Backend Glue overlay no|yes|mod],
345 ${ol_dflt_overlays-yes}, [no yes mod])
346 OL_ARG_ENABLE(lastmod,[ --enable-lastmod Last Modification overlay no|yes|mod],
347 ${ol_dflt_overlays-no}, [no yes mod])
348 OL_ARG_ENABLE(ppolicy,[ --enable-ppolicy Password Policy overlay no|yes|mod],
349 ${ol_dflt_overlays-no}, [no yes mod])
350 OL_ARG_ENABLE(proxycache,[ --enable-proxycache Proxy Cache overlay no|yes|mod],
351 ${ol_dflt_overlays-no}, [no yes mod])
352 OL_ARG_ENABLE(refint,[ --enable-refint Referential Integrity overlay no|yes|mod],
353 ${ol_dflt_overlays-no}, [no yes mod])
354 OL_ARG_ENABLE(retcode,[ --enable-retcode Return Code testing overlay no|yes|mod],
355 ${ol_dflt_overlays-no}, [no yes mod])
356 OL_ARG_ENABLE(rwm,[ --enable-rwm Rewrite/Remap overlay no|yes|mod],
357 ${ol_dflt_overlays-no}, [no yes mod])
358 OL_ARG_ENABLE(syncprov,[ --enable-syncprov Syncrepl Provider overlay no|yes|mod],
359 ${ol_dflt_overlays-yes}, [no yes mod])
360 OL_ARG_ENABLE(translucent,[ --enable-translucent Translucent Proxy overlay no|yes|mod],
361 ${ol_dflt_overlays-no}, [no yes mod])
362 OL_ARG_ENABLE(unique,[ --enable-unique Attribute Uniqueness overlay no|yes|mod],
363 ${ol_dflt_overlays-no}, [no yes mod])
366 dnl ----------------------------------------------------------------
368 AC_ARG_WITH(xxslurpdoptions,[
369 SLURPD (Replication Daemon) Options:])
370 OL_ARG_ENABLE(slurpd,[ --enable-slurpd enable building slurpd], auto)dnl
372 dnl ----------------------------------------------------------------
373 AC_ARG_WITH(xxliboptions,[
374 Library Generation & Linking Options])
378 dnl ----------------------------------------------------------------
381 if test $ol_enable_slapd = no ; then
382 dnl SLAPD was specificallly disabled
383 if test $ol_enable_slapi = yes ; then
384 AC_MSG_WARN([slapd disabled, ignoring --enable-slapi argument])
386 case "$ol_enable_backends" in yes | mod)
387 AC_MSG_WARN([slapd disabled, ignoring --enable-backends argument])
389 for i in $Backends; do
390 eval "ol_tmp=\$ol_enable_$i"
391 if test $ol_tmp != no ; then
392 AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
393 eval "ol_enable_$i=no"
396 if test $ol_enable_modules = yes ; then
397 AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
399 if test $ol_enable_multimaster = yes ; then
400 AC_MSG_WARN([slapd disabled, ignoring --enable-multimaster argument])
402 if test $ol_enable_wrappers = yes ; then
403 AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
405 if test $ol_enable_rlookups = yes ; then
406 AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
408 if test $ol_enable_aci = yes ; then
409 AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
411 if test $ol_with_ldbm_api != auto ; then
412 AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-api argument])
414 if test $ol_with_ldbm_type != auto ; then
415 AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-type argument])
417 if test $ol_enable_slurpd = yes ; then
418 AC_MSG_ERROR([slurpd requires slapd])
420 if test $ol_enable_rewrite = yes ; then
421 AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
424 case "$ol_enable_overlays" in yes | mod)
425 AC_MSG_WARN([slapd disabled, ignoring --enable-overlays argument])
427 for i in $Overlays; do
428 eval "ol_tmp=\$ol_enable_$i"
429 if test $ol_tmp != no ; then
430 AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
431 eval "ol_enable_$i=no"
435 # force settings to no
441 ol_enable_multimaster=no
442 ol_enable_rlookups=no
444 ol_enable_wrappers=no
453 elif test $ol_enable_ldbm = no ; then
454 dnl SLAPD without LDBM
456 if test $ol_with_ldbm_api != auto ; then
457 AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-api argument])
460 if test $ol_with_ldbm_type != auto ; then
461 AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-type argument])
464 if test $ol_enable_modules != yes -a \
465 $ol_enable_bdb = no -a \
466 $ol_enable_dnssrv = no -a \
467 $ol_enable_hdb = no -a \
468 $ol_enable_ldap = no -a \
469 $ol_enable_meta = no -a \
470 $ol_enable_monitor = no -a \
471 $ol_enable_null = no -a \
472 $ol_enable_passwd = no -a \
473 $ol_enable_perl = no -a \
474 $ol_enable_relay = no -a \
475 $ol_enable_shell = no -a \
476 $ol_enable_sql = no ; then
478 if test $ol_enable_slapd = yes ; then
479 AC_MSG_ERROR([slapd requires a backend])
481 AC_MSG_WARN([skipping slapd, no backend specified])
489 if test $ol_enable_bdb != no -o $ol_enable_hdb != no; then
490 ol_with_ldbm_api=berkeley
495 if test $ol_with_ldbm_api = gdbm -a \
496 $ol_with_ldbm_type = btree ; then
497 AC_MSG_ERROR([GDBM only supports LDBM type hash])
499 if test $ol_with_ldbm_api = mdbm -a \
500 $ol_with_ldbm_type = btree ; then
501 AC_MSG_ERROR([MDBM only supports LDBM type hash])
503 if test $ol_with_ldbm_api = ndbm -a \
504 $ol_with_ldbm_type = btree ; then
505 AC_MSG_ERROR([NDBM only supports LDBM type hash])
508 if test $ol_enable_bdb != no -o $ol_enable_hdb != no ; then
509 if test $ol_with_ldbm_api = auto ; then
510 ol_with_ldbm_api=berkeley
511 elif test $ol_with_ldbm_api != berkeley ; then
512 AC_MSG_ERROR([LDBM API not compatible with BDB/HDB])
517 if test $ol_enable_meta = yes -a $ol_enable_ldap = no ; then
518 AC_MSG_ERROR([--enable-meta requires --enable-ldap])
521 if test $ol_enable_slurpd = yes ; then
522 dnl SLURPD was specifically enabled
523 if test $ol_with_threads = no ; then
524 AC_MSG_ERROR([slurpd requires threads])
528 if test $ol_enable_lmpasswd = yes ; then
529 if test $ol_with_tls = no ; then
530 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
534 if test $ol_enable_kbind = yes ; then
535 if test $ol_with_kerberos = no ; then
536 AC_MSG_ERROR([options require --with-kerberos])
537 elif test $ol_with_kerberos = auto ; then
541 elif test $ol_enable_kbind = no ; then
542 if test $ol_with_kerberos = auto ; then
544 elif test $ol_with_kerberos != no ; then
545 AC_MSG_WARN([Kerberos detection enabled unnecessarily]);
550 if test $ol_enable_spasswd = yes ; then
551 if test $ol_with_cyrus_sasl = no ; then
552 AC_MSG_ERROR([options require --with-cyrus-sasl])
554 ol_with_cyrus_sasl=yes
559 dnl ----------------------------------------------------------------
606 SLAPD_STATIC_OVERLAYS=
607 SLAPD_DYNAMIC_OVERLAYS=
609 SLAPD_MODULES_LDFLAGS=
610 SLAPD_MODULES_CPPFLAGS=
612 SLAPD_STATIC_BACKENDS=back-ldif
613 SLAPD_DYNAMIC_BACKENDS=
636 dnl ================================================================
637 dnl Checks for programs
639 AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
641 dnl ----------------------------------------------------------------
643 dnl Determine which C translator to use
646 dnl AIX Thread requires we use cc_r or xlc_r.
647 dnl But only do this IF AIX and CC is not set
648 dnl and threads are auto|yes|posix.
650 dnl If we find cc_r|xlc_r, force pthreads and assume
651 dnl pthread_create is in $LIBS (ie: don't bring in
652 dnl any additional thread libraries)
653 dnl If we do not find cc_r|xlc_r, disable threads
657 *-*-aix*) dnl all AIX is not a good idea.
658 if test -z "$CC" ; then
659 case "$ol_with_threads" in
660 auto | yes | posix) ol_aix_threads=yes ;;
666 if test $ol_aix_threads = yes ; then
667 if test -z "${CC}" ; then
668 AC_CHECK_PROGS(CC,cc_r xlc_r cc)
670 if test "$CC" = cc ; then
671 dnl no CC! don't allow --with-threads
672 if test $ol_with_threads != auto ; then
673 AC_MSG_ERROR([--with-threads requires cc_r (or other suitable compiler) on AIX])
675 AC_MSG_WARN([disabling threads, no cc_r on AIX])
681 if test "${CC}" = "cc_r" -o "${CC}" = "xlc_r" ; then
682 ol_with_threads=posix
683 ol_cv_pthread_create=yes
687 if test -z "${CC}"; then
688 AC_CHECK_PROGS(CC,cc gcc,missing)
690 if test "${CC}" = "missing" ; then
691 AC_MSG_ERROR([Unable to locate cc(1) or suitable replacement. Check PATH or set CC.])
695 if test -z "${AR}"; then
696 AC_CHECK_PROGS(AR,ar gar,missing)
698 if test "${AR}" = "missing" ; then
699 AC_MSG_ERROR([Unable to locate ar(1) or suitable replacement. Check PATH or set AR.])
707 dnl ----------------------------------------------------------------
710 if test $ol_enable_perl != no ; then
711 AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)
713 if test "no$PERLBIN" = "no" ; then
714 if test $ol_enable_perl = yes ; then
715 AC_MSG_ERROR([could not locate perl])
719 PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
720 PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e 's/ -lc / /' -e 's/ -lc$//'`"
722 if test x"$ol_enable_perl" = "xyes" ; then
723 SLAPD_PERL_LDFLAGS="$PERL_LDFLAGS"
725 MOD_PERL_LDFLAGS="$PERL_LDFLAGS"
727 dnl should check perl version
734 dnl ----------------------------------------------------------------
735 dnl Checks for file extensions
738 AC_DEFINE_UNQUOTED(EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
740 dnl ----------------------------------------------------------------
741 dnl BeOS requires -lbe -lroot -lnet
742 AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])
744 dnl ----------------------------------------------------------------
745 dnl OpenLDAP requires STDC features
747 if test "X${ac_cv_prog_cc_stdc}" = "Xno" ; then
748 AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
751 dnl ----------------------------------------------------------------
752 dnl Check cc depend flags
754 if test "${ol_cv_mkdep}" = no ; then
755 # this will soon become an error
756 AC_MSG_WARN([do not know how to generate dependencies])
759 dnl ----------------------------------------------------------------
760 dnl Check for AIX security library
761 AC_CHECK_LIB(s, afopen, [
763 AC_DEFINE(HAVE_AIX_SECURITY,1,[define if you have AIX security lib])
766 dnl ----------------------------------------------------------------
767 dnl Check for IBM OS/390
771 AC_DEFINE(BOTH_STRINGS_H,1,[define to use both <string.h> and <strings.h>])
775 dnl ----------------------------------------------------------------
776 dnl Check for module support
778 WITH_MODULES_ENABLED=no
779 if test $ol_enable_modules != no ; then
780 AC_CHECK_HEADERS(ltdl.h)
782 if test $ac_cv_header_ltdl_h = no ; then
783 AC_MSG_ERROR([could not locate libtool ltdl.h])
786 AC_CHECK_LIB(ltdl, lt_dlinit, [
788 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
791 if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then
792 AC_MSG_ERROR([could not locate libtool -lltdl])
795 WITH_MODULES_ENABLED=yes
798 for i in $Backends; do
799 eval "ol_tmp=\$ol_enable_$i"
800 if test $ol_tmp = mod ; then
801 AC_MSG_WARN([building static $i backend])
802 eval "ol_enable_$i=yes"
805 for i in $Overlays; do
806 eval "ol_tmp=\$ol_enable_$i"
807 if test $ol_tmp = mod ; then
808 AC_MSG_WARN([building static $i overlay])
809 eval "ol_enable_$i=yes"
814 dnl ----------------------------------------------------------------
815 dnl Checks for header files.
818 if test $ol_cv_header_stdc != yes; then
819 AC_MSG_WARN([could not locate Standard C compliant headers])
876 AC_CHECK_HEADERS( resolv.h, [], [],
877 [$ac_includes_default]
878 #include <netinet/in.h>
881 AC_CHECK_HEADERS(sys/ucred.h, [], [],
882 [$ac_includes_default
883 #ifdef HAVE_SYS_PARAM_H
884 #include <sys/param.h>
888 dnl ----------------------------------------------------------------
889 dnl Checks for libraries
891 AC_CHECK_FUNCS( sigaction sigset )
893 dnl HP-UX requires -lV3
894 dnl this is not needed on newer versions of HP-UX
895 if test $ac_cv_func_sigaction = no && test $ac_cv_func_sigaction = no ; then
896 AC_CHECK_LIB(V3, sigset)
899 dnl The following is INTENTIONALLY scripted out because shell does not
900 dnl support variable names with the '@' character, which is what
901 dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
903 dnl Skip Winsock tests on Cygwin
904 if test "$ac_cv_cygwin" != yes && test "$ac_cv_header_winsock_h" = yes; then
905 AC_CACHE_CHECK([for winsock], [ol_cv_winsock],
907 for curlib in ws2_32 wsock32; do
908 LIBS="$LIBS -l$curlib"
909 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <winsock.h>
912 select(0,NULL,NULL,NULL,NULL);
915 ]])],[ol_cv_winsock=yes],[ol_cv_winsock=no])
917 if test $ol_cv_winsock = yes; then
918 AC_DEFINE(HAVE_WINSOCK, 1, [define if you have winsock])
919 ac_cv_func_socket=yes
920 ac_cv_func_select=yes
921 ac_cv_func_closesocket=yes
922 ac_cv_func_gethostname=yes
923 if test $curlib = ws2_32; then
924 ol_cv_winsock=winsock2
925 AC_DEFINE(HAVE_WINSOCK2, 1,
926 [define if you have winsock2])
935 dnl Likely combinations:
936 dnl -lsocket [ -lnsl_s | -lnsl ]
939 AC_CHECK_FUNC(socket, :, [
940 dnl hopefully we won't include too many libraries
941 AC_CHECK_LIB(socket, main)
942 AC_CHECK_LIB(net, main)
943 AC_CHECK_LIB(nsl_s, main)
944 AC_CHECK_LIB(nsl, main)
945 AC_CHECK_LIB(inet, socket)
946 AC_CHECK_LIB(gen, main)
950 AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
952 if test "${ac_cv_header_winsock_h}" != yes; then
954 dnl (if this detection becomes permenent, it and the select() detection
955 dnl should be done before the yielding select test)
956 AC_FUNC_SELECT_ARGTYPES
959 dnl check to see if system call automatically restart
960 dnl AC_SYS_RESTARTABLE_SYSCALLS
962 dnl ----------------------------------------------------------------
963 AC_CHECK_FUNCS( poll )
964 AC_CHECK_HEADERS( poll.h )
966 dnl ----------------------------------------------------------------
967 AC_CHECK_HEADERS( sys/epoll.h )
968 if test "${ac_cv_header_sys_epoll_h}" = yes; then
969 AC_MSG_CHECKING(for epoll system call)
970 AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char *argv)
972 int epfd = epoll_create(256);
973 exit (epfd == -1 ? 1 : 0);
974 }]])],[AC_MSG_RESULT(yes)
975 AC_DEFINE(HAVE_EPOLL,1, [define if your system supports epoll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
978 dnl ----------------------------------------------------------------
982 dnl ----------------------------------------------------------------
983 dnl require POSIX regex
984 AC_CHECK_HEADERS( regex.h )
985 if test "$ac_cv_header_regex_h" != yes ; then
986 AC_MSG_ERROR([POSIX regex.h required.])
988 AC_SEARCH_LIBS(regfree, [regex gnuregex],
989 :, AC_MSG_ERROR([POSIX regex required.]))
992 if test "$ol_cv_c_posix_regex" = no ; then
993 AC_MSG_ERROR([broken POSIX regex!])
996 dnl ----------------------------------------------------------------
1000 AC_CHECK_HEADERS(sys/uuid.h)
1001 if test $ac_cv_header_sys_uuid_h = yes ; then
1003 AC_SEARCH_LIBS(uuid_to_str, uuid, [have_uuid=yes], :)
1006 if test have_uuid = yes ; then
1007 AC_DEFINE(HAVE_UUID_TO_STR,1,
1008 [define if you have uuid_to_str()])
1010 test "$ac_cv_search_uuid_to_str" = "none required" || \
1011 SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_to_str"
1015 dnl For windows, check for the need of RPCRT for UUID function support
1016 if test $have_uuid = no ; then
1017 AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
1019 LIBS="$LIBS -lrpcrt4"
1020 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1021 int __stdcall UuidCreate(void *);
1022 int __stdcall UuidToStringA(void *,void **);
1026 ]])],[need_rpcrt=yes],[need_rpcrt=no])
1027 if test $need_rpcrt = yes; then
1028 SLAPD_LIBS="$SLAPD_LIBS -lrpcrt4"
1031 AC_MSG_RESULT($need_rpcrt)
1034 dnl ----------------------------------------------------------------
1035 dnl Check for resolver routines
1039 if test "$ol_cv_lib_resolver" != no ; then
1040 AC_DEFINE(HAVE_RES_QUERY,1,
1041 [define if you have res_query()])
1043 if test "$ol_enable_dnssrv" != no ; then
1047 if test "$ol_cv_lib_resolver" != yes ; then
1048 LIBS="$ol_cv_lib_resolver $LIBS"
1052 if test "$ol_enable_dnssrv" = yes -o "$ol_enable_dnssrv" = mod ; then
1053 if test "$ol_link_dnssrv" = no ; then
1054 AC_MSG_ERROR([DNSSRV requires res_query()])
1060 AC_CHECK_FUNCS( hstrerror )
1062 dnl ----------------------------------------------------------------
1063 dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
1064 dnl PF_LOCAL may use getaddrinfo in available
1065 AC_CHECK_FUNCS( getaddrinfo getnameinfo gai_strerror inet_ntop )
1068 if test $ac_cv_func_getaddrinfo = no -o $ac_cv_func_inet_ntop = no ; then
1069 if test $ol_enable_ipv6 = yes ; then
1070 AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
1072 elif test $ol_enable_ipv6 != no ; then
1073 AC_CACHE_CHECK([INET6_ADDRSTRLEN],[ol_cv_inet6_addrstrlen],[
1074 AC_EGREP_CPP(__has_inet6_addrstrlen__,[
1075 # include <netinet/in.h>
1076 # ifdef INET6_ADDRSTRLEN
1077 __has_inet6_addrstrlen__;
1079 ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])])
1082 AC_CACHE_CHECK([struct sockaddr_storage],ol_cv_struct_sockaddr_storage,[
1083 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1084 #include <sys/types.h>
1085 #include <sys/socket.h>
1087 struct sockaddr_storage ss;
1088 ]])],[ol_cv_struct_sockaddr_storage=yes],[ol_cv_struct_sockaddr_storage=no])])
1090 if test $ol_cv_inet6_addrstrlen = yes \
1091 -a $ol_cv_struct_sockaddr_storage = yes ; then
1093 elif test $ol_enable_ipv6 = yes \
1094 -a $ol_cv_inet6_addrstrlen = no ; then
1095 AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
1096 elif test $ol_enable_ipv6 = yes \
1097 -a $ol_cv_struct_sockaddr_storage = no ; then
1098 AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage])
1102 if test $ol_enable_local != no ; then
1103 AC_CHECK_HEADERS( sys/un.h )
1105 if test $ol_enable_local = auto ; then
1106 ol_enable_local=$ac_cv_header_sys_un_h
1107 elif test $ac_cv_header_sys_un_h = no ; then
1108 AC_MSG_ERROR([AF_LOCAL domain support requires sys/un.h])
1112 dnl ----------------------------------------------------------------
1118 if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
1119 -o $ol_with_kerberos = k5 -o $ol_with_kerberos = k5only \
1120 -o $ol_with_kerberos = k425 ; then
1122 AC_CHECK_HEADERS(krb5.h)
1124 if test $ac_cv_header_krb5_h = yes ; then
1125 dnl lazy check for Heimdal Kerberos
1126 AC_CHECK_HEADERS(heim_err.h)
1127 if test $ac_cv_header_heim_err_h = yes ; then
1133 if test $krb5_impl = mit; then
1134 AC_CHECK_LIB(k5crypto, main,
1135 [krb5crypto=k5crypto],
1136 [krb5crypto=crypto])
1138 AC_CHECK_LIB(krb5, main,
1140 KRB5_LIBS="-lkrb5 -l$krb5crypto -lcom_err"],
1142 [-l$krb5crypto -lcom_err])
1144 elif test $krb5_impl = heimdal; then
1145 AC_CHECK_LIB(des, main,
1147 [krb5crypto=crypto])
1149 AC_CHECK_LIB(krb5, main,
1151 KRB5_LIBS="-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err"],
1153 [-l$krb5crypto -lasn1 -lroken -lcom_err])
1155 AC_DEFINE(HAVE_HEIMDAL_KERBEROS, 1,
1156 [define if you have HEIMDAL Kerberos])
1160 AC_MSG_WARN([Unrecognized Kerberos5 Implementation])
1163 if test $have_krb5 = yes ; then
1166 AC_DEFINE(HAVE_KRB5, 1,
1167 [define if you have Kerberos V])
1169 if test $ol_with_kerberos = k5only ; then
1170 ol_with_kerberos=found
1173 elif test $ol_with_kerberos != auto ; then
1174 AC_MSG_ERROR([Required Kerberos 5 support not available])
1180 if test $ol_link_krb5 = yes -a \( $ol_with_kerberos = yes -o \
1181 $ol_with_kerberos = auto -o $ol_with_kerberos = k425 \) ; then
1183 AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
1185 if test $ac_cv_header_kerberosIV_krb_h = yes ; then
1186 if test $krb5_impl = mit; then
1187 AC_CHECK_LIB(krb4, main, [have_k425=yes
1188 KRB4_LIBS="-lkrb4 -ldes425"], [have_k425=no],
1189 [-ldes425 -lkrb5 -l$krb5crypto -lcom_err])
1191 elif test $krb5_impl = heimdal; then
1192 AC_CHECK_LIB(krb4, main, [have_k425=yes
1193 KRB4_LIBS="-lkrb4"], [have_k425=no],
1194 [-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err])
1198 AC_MSG_WARN([Unrecongized Kerberos V Implementation])
1201 if test $have_k425 = yes ; then
1202 ol_with_kerberos=found
1205 AC_DEFINE(HAVE_KRB425, 1,
1206 [define if you have Kerberos V with IV support])
1207 AC_DEFINE(HAVE_KRB4, 1,
1208 [define if you have Kerberos IV])
1210 AC_CACHE_CHECK([for des_debug in Kerberos libraries],
1211 [ol_cv_var_des_debug], [
1214 LIBS="$KRB4_LIBS $KRB5_LIBS $LIBS"
1215 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1216 #include <kerberosIV/krb.h>
1217 #include <kerberosIV/des.h>
1218 extern int des_debug;
1221 ]])],[ol_cv_var_des_debug=yes],[ol_cv_var_des_debug=no])
1222 dnl restore the LIBS
1226 if test $ol_cv_var_des_debug = yes ; then
1227 AC_DEFINE(HAVE_DES_DEBUG,1,
1228 [define if you have Kerberos des_debug])
1236 if test $ol_link_krb5 = yes ; then
1237 ol_with_kerberos=found
1240 if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
1241 -o $ol_with_kerberos = k4 -o $ol_with_kerberos = kth ; then
1243 AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
1245 if test $ac_cv_header_krb_h = yes ; then
1246 AC_CHECK_LIB(krb, main, [have_k4=yes], [have_k4=no], [-ldes])
1248 if test $have_k4 = yes ; then
1249 ol_with_kerberos=found
1252 AC_DEFINE(HAVE_KRB4, 1,
1253 [define if you have Kerberos IV])
1255 KRB4_LIBS="-lkrb -ldes"
1257 if test $ac_cv_header_krb_archaeology_h = yes ; then
1258 AC_DEFINE(HAVE_KTH_KERBEROS, 1,
1259 [define if you have Kth Kerberos])
1265 if test $ol_link_krb4 = yes -a $ol_enable_kbind != no ; then
1268 elif test $ol_enable_kbind = yes ; then
1269 AC_MSG_ERROR([Kerberos IV detection failed])
1272 if test $ol_link_krb4 = yes -o $ol_link_krb5 = yes ; then
1273 AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
1275 elif test $ol_with_kerberos != auto -a $ol_with_kerberos != no ; then
1276 AC_MSG_ERROR([Kerberos detection failed])
1279 dnl ----------------------------------------------------------------
1283 if test $ol_with_tls != no ; then
1284 AC_CHECK_HEADERS(openssl/ssl.h ssl.h)
1286 if test $ac_cv_header_openssl_ssl_h = yes \
1287 -o $ac_cv_header_ssl_h = yes ; then
1288 AC_CHECK_LIB(ssl, SSLeay_add_ssl_algorithms,
1294 if test $have_ssleay = no ; then
1295 AC_CHECK_LIB(ssl, SSL_library_init,
1297 need_rsaref=no], [have_ssleay=no],
1301 if test $have_ssleay = no ; then
1302 AC_CHECK_LIB(ssl, ssl3_accept,
1304 need_rsaref=yes], [have_ssleay=no],
1305 [-lcrypto -lRSAglue -lrsaref])
1308 if test $have_ssleay = yes ; then
1312 AC_DEFINE(HAVE_SSLEAY, 1,
1313 [define if you have SSLeay or OpenSSL])
1315 if test $need_rsaref = yes; then
1316 AC_DEFINE(HAVE_RSAREF, 1,
1317 [define if you have RSAref])
1319 TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
1321 TLS_LIBS="-lssl -lcrypto"
1325 if test $ol_cv_ssl_crl_compat = no ; then
1328 AC_DEFINE(HAVE_OPENSSL_CRL, 1,
1329 [define if you have OpenSSL with CRL checking capability])
1334 AC_MSG_WARN([TLS data protection not supported!])
1338 if test $ol_link_tls = yes ; then
1339 AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
1342 elif test $ol_with_tls = auto ; then
1343 AC_MSG_WARN([Could not locate TLS/SSL package])
1344 AC_MSG_WARN([TLS data protection not supported!])
1346 elif test $ol_with_tls != no ; then
1347 AC_MSG_ERROR([Could not locate TLS/SSL package])
1350 dnl ----------------------------------------------------------------
1351 dnl LAN Manger password checking requires DES from OpenSSL
1352 if test $ol_enable_lmpasswd != no; then
1353 if test $ol_link_tls != yes ; then
1354 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
1357 AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
1360 dnl ----------------------------------------------------------------
1364 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1365 -o $ol_with_threads = nt ; then
1369 if test "$ol_cv_nt_threads" = yes ; then
1371 ol_with_threads=found
1372 ol_with_yielding_select=yes
1374 AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager])
1375 AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log])
1378 if test $ol_with_threads = nt ; then
1379 AC_MSG_ERROR([could not locate NT Threads])
1383 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1384 -o $ol_with_threads = posix ; then
1386 AC_CHECK_HEADERS(pthread.h)
1388 if test $ac_cv_header_pthread_h = yes ; then
1389 OL_POSIX_THREAD_VERSION
1391 if test $ol_cv_pthread_version != 0 ; then
1392 AC_DEFINE_UNQUOTED(HAVE_PTHREADS,$ol_cv_pthread_version,
1393 [define to pthreads API spec revision])
1395 AC_MSG_ERROR([unknown pthread version])
1398 # consider threads found
1399 ol_with_threads=found
1401 OL_HEADER_LINUX_THREADS
1402 OL_HEADER_GNU_PTH_PTHREAD_H
1404 if test $ol_cv_header_gnu_pth_pthread_h = no ; then
1405 AC_CHECK_HEADERS(sched.h)
1408 dnl Now the hard part, how to link?
1410 dnl currently supported checks:
1412 dnl Check for no flags
1413 dnl pthread_create() in $LIBS
1415 dnl Check special pthread (final) flags
1416 dnl [skipped] pthread_create() with -mt (Solaris) [disabled]
1417 dnl pthread_create() with -kthread (FreeBSD)
1418 dnl pthread_create() with -pthread (FreeBSD/Digital Unix)
1419 dnl pthread_create() with -pthreads (?)
1420 dnl pthread_create() with -mthreads (AIX)
1421 dnl pthread_create() with -thread (?)
1423 dnl Check pthread (final) libraries
1424 dnl pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
1425 dnl pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
1426 dnl [skipped] pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
1427 dnl pthread_join() -Wl,-woff,85 -lpthread (IRIX)
1428 dnl pthread_create() in -lpthread (many)
1429 dnl pthread_create() in -lc_r (FreeBSD)
1431 dnl Check pthread (draft4) flags (depreciated)
1432 dnl pthread_create() with -threads (OSF/1)
1434 dnl Check pthread (draft4) libraries (depreciated)
1435 dnl pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
1436 dnl pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
1437 dnl pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
1438 dnl pthread_create() in -lpthreads (many)
1441 dnl pthread_create in $LIBS
1442 AC_CACHE_CHECK([for pthread_create in default libraries],
1443 ol_cv_pthread_create,[
1444 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1445 [ol_cv_pthread_create=yes],
1446 [ol_cv_pthread_create=no],
1447 [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION,
1448 [ol_cv_pthread_create=yes],
1449 [ol_cv_pthread_create=no])])])
1451 if test $ol_cv_pthread_create != no ; then
1452 ol_link_threads=posix
1456 dnl OL_PTHREAD_TRY([-mt], [ol_cv_pthread_mt])
1457 OL_PTHREAD_TRY([-kthread], [ol_cv_pthread_kthread])
1458 OL_PTHREAD_TRY([-pthread], [ol_cv_pthread_pthread])
1459 OL_PTHREAD_TRY([-pthreads], [ol_cv_pthread_pthreads])
1460 OL_PTHREAD_TRY([-mthreads], [ol_cv_pthread_mthreads])
1461 OL_PTHREAD_TRY([-thread], [ol_cv_pthread_thread])
1463 OL_PTHREAD_TRY([-lpthread -lmach -lexc -lc_r],
1464 [ol_cv_pthread_lpthread_lmach_lexc_lc_r])
1465 OL_PTHREAD_TRY([-lpthread -lmach -lexc],
1466 [ol_cv_pthread_lpthread_lmach_lexc])
1467 dnl OL_PTHREAD_TRY([-lpthread -lexc],
1468 dnl [ol_cv_pthread_lpthread_lexc])
1470 OL_PTHREAD_TRY([-lpthread -Wl,-woff,85],
1471 [ol_cv_pthread_lib_lpthread_woff])
1473 OL_PTHREAD_TRY([-lpthread], [ol_cv_pthread_lpthread])
1474 OL_PTHREAD_TRY([-lc_r], [ol_cv_pthread_lc_r])
1476 OL_PTHREAD_TRY([-threads], [ol_cv_pthread_threads])
1478 OL_PTHREAD_TRY([-lpthreads -lmach -lexc -lc_r],
1479 [ol_cv_pthread_lpthreads_lmach_lexc_lc_r])
1480 OL_PTHREAD_TRY([-lpthreads -lmach -lexc],
1481 [ol_cv_pthread_lpthreads_lmach_lexc])
1482 OL_PTHREAD_TRY([-lpthreads -lexc],
1483 [ol_cv_pthread_lpthreads_lexc])
1485 OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
1487 if test $ol_link_threads != no ; then
1488 LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
1491 save_CPPFLAGS="$CPPFLAGS"
1493 LIBS="$LTHREAD_LIBS $LIBS"
1495 dnl All POSIX Thread (final) implementations should have
1496 dnl sched_yield instead of pthread yield.
1497 dnl check for both, and thr_yield for Solaris
1498 AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
1500 if test $ac_cv_func_sched_yield = no -a \
1501 $ac_cv_func_pthread_yield = no -a \
1502 $ac_cv_func_thr_yield = no ; then
1503 dnl Digital UNIX has sched_yield() in -lrt
1504 AC_CHECK_LIB(rt, sched_yield,
1505 [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
1506 AC_DEFINE(HAVE_SCHED_YIELD,1,
1507 [Define if you have the sched_yield function.])
1508 ac_cv_func_sched_yield=yes],
1509 [ac_cv_func_sched_yield=no])
1511 if test $ac_cv_func_sched_yield = no -a \
1512 $ac_cv_func_pthread_yield = no -a \
1513 "$ac_cv_func_thr_yield" = no ; then
1514 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
1517 dnl Check functions for compatibility
1518 AC_CHECK_FUNCS(pthread_kill pthread_rwlock_destroy)
1520 dnl Check for pthread_detach with <pthread.h> inclusion
1521 dnl as it's symbol may have been mangled.
1522 AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
1523 [ol_cv_func_pthread_detach], [
1525 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1526 #include <pthread.h>
1528 #define NULL (void*)0
1530 ]], [[pthread_detach(NULL);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
1533 if test $ol_cv_func_pthread_detach = no ; then
1534 AC_MSG_ERROR([could not locate pthread_detach()])
1537 AC_DEFINE(HAVE_PTHREAD_DETACH,1,
1538 [define if you have pthread_detach function])
1540 dnl Check for setconcurreny functions
1542 pthread_setconcurrency \
1543 pthread_getconcurrency \
1544 thr_setconcurrency \
1545 thr_getconcurrency \
1548 OL_SYS_LINUX_THREADS
1551 if test $ol_cv_linux_threads = error; then
1552 AC_MSG_ERROR([LinuxThreads header/library mismatch]);
1555 AC_CACHE_CHECK([if pthread_create() works],
1556 ol_cv_pthread_create_works,[
1557 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1558 [ol_cv_pthread_create_works=yes],
1559 [ol_cv_pthread_create_works=no],
1561 ol_cv_pthread_create_works=yes])])
1563 if test $ol_cv_pthread_create_works = no ; then
1564 AC_MSG_ERROR([pthread_create is not usable, check environment settings])
1567 dnl Check if select causes an yield
1568 if test $ol_with_yielding_select = auto ; then
1569 AC_CACHE_CHECK([if select yields when using pthreads],
1570 ol_cv_pthread_select_yields,[
1571 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1572 #include <sys/types.h>
1573 #include <sys/time.h>
1575 #include <pthread.h>
1577 #define NULL (void*) 0
1580 static int fildes[2];
1582 static void *task(p)
1594 FD_SET(fildes[0], &rfds);
1596 /* we're not interested in any fds */
1597 i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
1604 exit(0); /* if we exit here, the select blocked the whole process */
1607 int main(argc, argv)
1613 /* create a pipe to select */
1614 if(pipe(&fildes[0])) {
1619 #ifdef HAVE_PTHREAD_SETCONCURRENCY
1620 (void) pthread_setconcurrency(2);
1622 #ifdef HAVE_THR_SETCONCURRENCY
1623 /* Set Solaris LWP concurrency to 2 */
1624 thr_setconcurrency(2);
1628 #if HAVE_PTHREADS < 6
1629 pthread_create(&t, pthread_attr_default, task, NULL);
1631 pthread_create(&t, NULL, task, NULL);
1634 /* make sure task runs first */
1637 #elif defined( HAVE_SCHED_YIELD )
1639 #elif defined( HAVE_PTHREAD_YIELD )
1644 }]])],[ol_cv_pthread_select_yields=no],[ol_cv_pthread_select_yields=yes],[ol_cv_pthread_select_yields=cross])])
1646 if test $ol_cv_pthread_select_yields = cross ; then
1647 AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])
1650 if test $ol_cv_pthread_select_yields = yes ; then
1651 ol_with_yielding_select=yes
1656 CPPFLAGS="$save_CPPFLAGS"
1659 AC_MSG_ERROR([could not locate usable POSIX Threads])
1663 if test $ol_with_threads = posix ; then
1664 AC_MSG_ERROR([could not locate POSIX Threads])
1668 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1669 -o $ol_with_threads = mach ; then
1671 dnl check for Mach CThreads
1672 AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
1673 if test $ac_cv_header_mach_cthreads_h = yes ; then
1674 ol_with_threads=found
1676 dnl check for cthreads support in current $LIBS
1677 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1679 if test $ol_link_threads = no ; then
1681 dnl this test needs work
1682 AC_CACHE_CHECK([for cthread_fork with -all_load],
1683 [ol_cv_cthread_all_load], [
1686 LIBS="-all_load $LIBS"
1687 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <mach/cthreads.h>]], [[
1688 cthread_fork((void *)0, (void *)0);
1689 ]])],[ol_cv_cthread_all_load=yes],[ol_cv_cthread_all_load=no])
1690 dnl restore the LIBS
1694 if test $ol_cv_cthread_all_load = yes ; then
1695 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
1696 ol_link_threads=mach
1697 ol_with_threads=found
1701 elif test $ac_cv_header_cthreads_h = yes ; then
1702 dnl Hurd variant of Mach Cthreads
1703 dnl uses <cthreads.h> and -lthreads
1705 ol_with_threads=found
1709 LIBS="$LIBS -lthreads"
1710 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1713 if test $ol_link_threads = yes ; then
1714 LTHREAD_LIBS="-lthreads"
1715 ol_link_threads=mach
1716 ol_with_threads=found
1718 AC_MSG_ERROR([could not link with Mach CThreads])
1721 elif test $ol_with_threads = mach ; then
1722 AC_MSG_ERROR([could not locate Mach CThreads])
1725 if test $ol_link_threads = mach ; then
1726 AC_DEFINE(HAVE_MACH_CTHREADS,1,
1727 [define if you have Mach Cthreads])
1728 elif test $ol_with_threads = found ; then
1729 AC_MSG_ERROR([could not link with Mach CThreads])
1733 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1734 -o $ol_with_threads = pth ; then
1736 AC_CHECK_HEADERS(pth.h)
1738 if test $ac_cv_header_pth_h = yes ; then
1739 AC_CHECK_LIB(pth, pth_version, [have_pth=yes], [have_pth=no])
1741 if test $have_pth = yes ; then
1742 AC_DEFINE(HAVE_GNU_PTH,1,[if you have GNU Pth])
1743 LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
1745 ol_with_threads=found
1747 if test $ol_with_yielding_select = auto ; then
1748 ol_with_yielding_select=yes
1754 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1755 -o $ol_with_threads = lwp ; then
1757 dnl check for SunOS5 LWP
1758 AC_CHECK_HEADERS(thread.h synch.h)
1759 if test $ac_cv_header_thread_h = yes -a $ac_cv_header_synch_h = yes ; then
1760 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
1762 if test $have_thr = yes ; then
1763 AC_DEFINE(HAVE_THR,1,
1764 [if you have Solaris LWP (thr) package])
1765 LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
1768 if test $ol_with_yielding_select = auto ; then
1769 ol_with_yielding_select=yes
1772 dnl Check for setconcurreny functions
1774 thr_setconcurrency \
1775 thr_getconcurrency \
1780 dnl check for SunOS4 LWP
1781 AC_CHECK_HEADERS(lwp/lwp.h)
1782 if test $ac_cv_header_lwp_lwp_h = yes ; then
1783 AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
1785 if test $have_lwp = yes ; then
1786 AC_DEFINE(HAVE_LWP,1,
1787 [if you have SunOS LWP package])
1788 LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
1791 if test $ol_with_yielding_select = auto ; then
1792 ol_with_yielding_select=no
1798 if test $ol_with_yielding_select = yes ; then
1799 AC_DEFINE(HAVE_YIELDING_SELECT,1,
1800 [define if select implicitly yields])
1803 if test $ol_with_threads = manual ; then
1804 dnl User thinks he can manually configure threads.
1807 AC_MSG_WARN([thread defines and link options must be set manually])
1809 AC_CHECK_HEADERS(pthread.h sched.h)
1810 AC_CHECK_FUNCS(sched_yield pthread_yield)
1811 OL_HEADER_LINUX_THREADS
1813 AC_CHECK_HEADERS(mach/cthreads.h)
1814 AC_CHECK_HEADERS(lwp/lwp.h)
1815 AC_CHECK_HEADERS(thread.h synch.h)
1818 if test $ol_link_threads != no -a $ol_link_threads != nt ; then
1819 dnl needed to get reentrant/threadsafe versions
1821 AC_DEFINE(REENTRANT,1)
1822 AC_DEFINE(_REENTRANT,1)
1823 AC_DEFINE(THREAD_SAFE,1)
1824 AC_DEFINE(_THREAD_SAFE,1)
1825 AC_DEFINE(THREADSAFE,1)
1826 AC_DEFINE(_THREADSAFE,1)
1827 AC_DEFINE(_SGI_MP_SOURCE,1)
1829 dnl The errno declaration may dependent upon _REENTRANT.
1830 dnl If it does, we must link with thread support.
1831 AC_CACHE_CHECK([for thread specific errno],
1832 [ol_cv_errno_thread_specific], [
1833 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <errno.h>]], [[errno = 0;]])],[ol_cv_errno_thread_specific=yes],[ol_cv_errno_thread_specific=no])
1836 dnl The h_errno declaration may dependent upon _REENTRANT.
1837 dnl If it does, we must link with thread support.
1838 AC_CACHE_CHECK([for thread specific h_errno],
1839 [ol_cv_h_errno_thread_specific], [
1840 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netdb.h>]], [[h_errno = 0;]])],[ol_cv_h_errno_thread_specific=yes],[ol_cv_h_errno_thread_specific=no])
1843 if test $ol_cv_errno_thread_specific != yes \
1844 -o $ol_cv_h_errno_thread_specific != yes ; then
1845 LIBS="$LTHREAD_LIBS $LIBS"
1849 dnl When in thread environment, use
1850 dnl #if defined( HAVE_REENTRANT_FUNCTIONS ) || defined( HAVE_FUNC_R )
1853 dnl # if defined( HAVE_THREADS )
1857 dnl # if defined( HAVE_THREADS )
1862 dnl HAVE_REENTRANT_FUNCTIONS is derived from:
1863 dnl _POSIX_REENTRANT_FUNCTIONS
1864 dnl _POSIX_THREAD_SAFE_FUNCTIONS
1865 dnl _POSIX_THREADSAFE_FUNCTIONS
1867 dnl and is currently defined in <ldap_pvt_thread.h>
1869 dnl HAVE_THREADS is defined by <ldap_pvt_thread.h> iff -UNO_THREADS
1871 dnl libldap/*.c should only include <ldap_pvt_thread.h> iff
1872 dnl LDAP_R_COMPILE is defined. ie:
1873 dnl #ifdef LDAP_R_COMPILE
1874 dnl # include <ldap_pvt_thread.h>
1877 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
1878 dnl specifically for compiling the threadsafe version of
1879 dnl the ldap library (-lldap_r).
1881 dnl dnl check for reentrant/threadsafe functions
1883 dnl dnl note: these should only be used when linking
1884 dnl dnl with $LTHREAD_LIBS
1886 dnl save_CPPFLAGS="$CPPFLAGS"
1887 dnl save_LIBS="$LIBS"
1888 dnl LIBS="$LTHREAD_LIBS $LIBS"
1889 dnl AC_CHECK_FUNCS( \
1891 dnl gethostbyaddr_r gethostbyname_r \
1892 dnl feof_unlocked unlocked_feof \
1893 dnl putc_unlocked unlocked_putc \
1894 dnl flockfile ftrylockfile \
1896 dnl CPPFLAGS="$save_CPPFLAGS"
1897 dnl LIBS="$save_LIBS"
1900 if test $ol_link_threads = no ; then
1901 if test $ol_with_threads = yes ; then
1902 AC_MSG_ERROR([no suitable thread support])
1905 if test $ol_with_threads = auto ; then
1906 AC_MSG_WARN([no suitable thread support, disabling threads])
1910 AC_DEFINE(NO_THREADS,1,
1911 [define if you have (or want) no threads])
1915 if test $ol_link_threads != no ; then
1916 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1,
1917 [define to 1 if library is thread safe])
1920 dnl ----------------------------------------------------------------
1921 dnl Tests for reentrant functions necessary to build -lldap_r
1924 gethostbyname_r gethostbyaddr_r \
1927 if test "$ac_cv_func_ctime_r" = no ; then
1928 ol_cv_func_ctime_r_nargs=0
1930 OL_FUNC_CTIME_R_NARGS
1931 dnl OL_FUNC_CTIME_R_TYPE
1934 if test "$ac_cv_func_gethostbyname_r" = yes ; then
1935 OL_FUNC_GETHOSTBYNAME_R_NARGS
1937 ol_cv_func_gethostbyname_r_nargs=0
1940 if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
1941 OL_FUNC_GETHOSTBYADDR_R_NARGS
1943 ol_cv_func_gethostbyaddr_r_nargs=0
1946 dnl ----------------------------------------------------------------
1949 if test $ol_with_ldbm_api = auto \
1950 -o $ol_with_ldbm_api = berkeley \
1951 -o $ol_with_ldbm_api = bcompat ; then
1953 if test $ol_with_ldbm_api = bcompat; then \
1954 OL_BERKELEY_COMPAT_DB
1959 if test $ol_cv_berkeley_db != no ; then
1960 AC_DEFINE(HAVE_BERKELEY_DB,1,
1961 [define this if Berkeley DB is available])
1963 ol_link_ldbm=berkeley
1964 ol_with_ldbm_api=berkeley
1966 if test $ol_with_ldbm_type = hash ; then
1967 AC_DEFINE(LDBM_USE_DBHASH,1,
1968 [define this to use DBHASH w/ LDBM backend])
1970 AC_DEFINE(LDBM_USE_DBBTREE,1,
1971 [define this to use DBBTREE w/ LDBM backend])
1974 dnl $ol_cv_lib_db should be yes or -ldb
1975 dnl (it could be no, but that would be an error
1976 if test $ol_cv_lib_db != yes ; then
1977 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
1982 if test $ol_enable_bdb != no -o $ol_enable_hdb != no; then
1983 if test $ol_link_ldbm != berkeley ; then
1984 AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
1988 if test $ol_cv_bdb_compat != yes ; then
1989 AC_MSG_ERROR([BDB/HDB: BerkeleyDB version incompatible])
1994 if test $ol_link_ldbm = no -a $ol_with_ldbm_type = btree ; then
1995 AC_MSG_WARN([Could not find LDBM with BTREE support])
1996 ol_with_ldbm_api=none
1999 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = mdbm ; then
2002 if test $ol_cv_mdbm = yes ; then
2004 ol_with_ldbm_api=mdbm
2005 if test $ol_cv_lib_mdbm != yes ; then
2006 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_mdbm"
2011 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = gdbm ; then
2014 if test $ol_cv_gdbm = yes ; then
2016 ol_with_ldbm_api=gdbm
2018 if test $ol_cv_lib_gdbm != yes ; then
2019 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
2024 if test $ol_with_ldbm_api = ndbm ; then
2027 if test $ol_cv_ndbm = yes ; then
2029 ol_with_ldbm_api=ndbm
2031 if test $ol_cv_lib_ndbm != yes ; then
2032 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
2037 if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
2038 AC_MSG_ERROR([could not find suitable LDBM backend])
2041 if test $ol_enable_bdb = yes -o \
2042 $ol_enable_hdb = yes -o \
2043 $ol_enable_ldbm = yes ; then
2044 SLAPD_LIBS="$SLAPD_LIBS \$(LDBM_LIBS)"
2047 dnl ----------------------------------------------------------------
2049 if test $ol_enable_dynamic = yes -a $enable_shared = yes ; then
2050 BUILD_LIBS_DYNAMIC=shared
2051 AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
2054 BUILD_LIBS_DYNAMIC=static
2057 AC_SUBST(LTSTATIC)dnl
2059 dnl ----------------------------------------------------------------
2060 if test $ol_enable_wrappers != no ; then
2061 AC_CHECK_HEADERS(tcpd.h,[
2062 AC_MSG_CHECKING([for TCP wrappers library])
2065 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
2067 int allow_severity = 0;
2068 int deny_severity = 0;
2070 struct request_info *req;
2073 ]])],[AC_MSG_RESULT([-lwrap])
2075 LIBS="$save_LIBS"],[
2080 int allow_severity = 0;
2081 int deny_severity = 0;
2083 struct request_info *req;
2086 ],[AC_MSG_RESULT([-lwrap -lnsl])
2088 LIBS="$save_LIBS -lnsl"],[
2091 LIBS=$save_LIBS])])],[have_wrappers=no])
2093 if test $have_wrappers = yes ; then
2094 AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
2096 elif test $ol_enable_wrappers = yes ; then
2097 AC_MSG_ERROR([could not find TCP wrappers, select apppropriate options or disable])
2099 AC_MSG_WARN([could not find TCP wrappers, support disabled])
2104 dnl ----------------------------------------------------------------
2105 if test $ol_enable_syslog != no ; then
2106 AC_CHECK_FUNC(openlog)
2107 if test $ac_cv_func_openlog = no -a $ol_enable_syslog = yes; then
2108 AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
2110 ol_enable_syslog=$ac_cv_func_openlog
2113 dnl ----------------------------------------------------------------
2116 if test $ol_enable_sql != no ; then
2117 AC_CHECK_HEADERS(sql.h sqlext.h,[],[
2118 AC_MSG_ERROR([could not locate SQL headers])
2122 LIBS="$LTHREAD_LIBS"
2124 AC_CHECK_LIB(iodbc,SQLDriverConnect,[have_iodbc=yes],[have_iodbc=no])
2125 if test $have_iodbc = yes ; then
2126 ol_link_sql="-liodbc"
2128 AC_CHECK_LIB(odbc,SQLDriverConnect,[have_odbc=yes],[have_odbc=no])
2129 if test $have_odbc = yes ; then
2130 ol_link_sql="-lodbc"
2136 if test $ol_link_sql != no ; then
2137 SLAPD_SQL_LIBS="$ol_link_sql"
2139 elif test $ol_enable_sql != auto ; then
2140 AC_MSG_ERROR([could not locate suitable ODBC library])
2144 dnl ----------------------------------------------------------------
2146 dnl Check for Cyrus SASL
2151 if test $ol_with_cyrus_sasl != no ; then
2152 AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
2154 if test $ac_cv_header_sasl_sasl_h = yes -o $ac_cv_header_sasl_h = yes; then
2155 AC_CHECK_LIB(sasl2, sasl_client_init,
2156 [ol_link_sasl="-lsasl2"],
2157 [AC_CHECK_LIB(sasl, sasl_client_init,
2158 [ol_link_sasl="-lsasl"])])
2161 if test $ol_link_sasl = no ; then
2162 if test $ol_with_cyrus_sasl != auto ; then
2163 AC_MSG_ERROR([Could not locate Cyrus SASL])
2165 AC_MSG_WARN([Could not locate Cyrus SASL])
2166 AC_MSG_WARN([SASL authentication not supported!])
2167 if test $ol_link_tls = no ; then
2168 AC_MSG_WARN([Strong authentication not supported!])
2173 if test $ol_cv_sasl_compat = no ; then
2175 AC_MSG_ERROR([Cyrus SASL library located but is incompatible])
2178 AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
2179 SASL_LIBS="$ol_link_sasl"
2180 if test $ol_enable_spasswd != no ; then
2184 ac_save_LIBS="$LIBS"
2185 LIBS="$LIBS $ol_link_sasl"
2186 AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1,
2187 [define if your SASL library has sasl_version()])])
2188 LIBS="$ac_save_LIBS"
2194 AC_MSG_WARN([SASL authentication not supported!])
2195 if test $ol_link_tls = no ; then
2196 AC_MSG_WARN([Strong authentication not supported!])
2200 dnl ----------------------------------------------------------------
2201 dnl Check for entropy sources
2202 if test $cross_compiling != yes -a "$ac_cv_mingw32" != yes ; then
2204 if test -r /dev/urandom ; then
2206 elif test -r /idev/urandom ; then
2207 dev="/idev/urandom";
2208 elif test -r /dev/srandom ; then
2210 elif test -r /dev/random ; then
2212 elif test -r /idev/random ; then
2216 if test $dev != no ; then
2217 AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
2221 dnl ----------------------------------------------------------------
2223 dnl Check for fetch URL support
2224 dnl should be extended to support other fetch URL APIs
2227 if test $ol_with_fetch != no ; then
2230 if test $ol_cv_lib_fetch != no ; then
2231 LUTIL_LIBS="$LUTIL_LIBS $ol_link_fetch"
2232 ol_link_fetch=freebsd
2234 elif test $ol_with_fetch != auto ; then
2235 AC_MSG_ERROR(no suitable API for --with-fetch=$ol_with_fetch)
2239 dnl ----------------------------------------------------------------
2240 dnl FreeBSD (and others) have crypt(3) in -lcrypt
2241 if test $ol_enable_crypt != no ; then
2243 LIBS="$TLS_LIBS $LIBS"
2245 AC_CHECK_FUNC(crypt, [have_crypt=yes], [
2247 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
2248 have_crypt=yes], [have_crypt=no])])
2252 if test $have_crypt = yes ; then
2253 AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
2255 AC_MSG_WARN([could not find crypt])
2256 if test $ol_enable_crypt = yes ; then
2257 AC_MSG_ERROR([could not find crypt, select appropriate options or disable])
2260 AC_MSG_WARN([disabling crypt support])
2265 dnl ----------------------------------------------------------------
2266 dnl FreeBSD (and others) have setproctitle(3) in -lutil
2267 if test $ol_enable_proctitle != no ; then
2268 AC_CHECK_FUNC(setproctitle, [have_setproctitle=yes], [
2269 AC_CHECK_LIB(util, setproctitle,
2270 [have_setproctitle=yes
2271 LUTIL_LIBS="$LUTIL_LIBS -lutil"],
2272 [have_setproctitle=no
2273 AC_LIBOBJ(setproctitle)
2274 LIBSRCS="$LIBSRCS setproctitle.c"])])
2276 if test $have_setproctitle = yes ; then
2277 AC_DEFINE(HAVE_SETPROCTITLE,1,
2278 [define if setproctitle(3) is available])
2282 dnl ----------------------------------------------------------------
2283 dnl Check for SLPv2 Compliant API Library
2284 if test $ol_enable_slp != no ; then
2285 AC_CHECK_HEADERS( slp.h )
2287 if test $ac_cv_header_slp_h = yes ; then
2288 AC_CHECK_LIB(slp, SLPOpen, [have_slp=yes], [have_slp=no])
2289 if test $have_slp = yes ; then
2290 AC_DEFINE(HAVE_SLP, 1, [define if you have -lslp])
2291 SLAPD_SLP_LIBS=-lslp
2294 elif test $ol_enable_slp = yes ; then
2295 AC_MSG_ERROR([SLP not found])
2299 dnl ----------------------------------------------------------------
2300 dnl Check for multiple precision support
2301 if test "$ol_with_multiple_precision" != "no" ; then
2305 AC_CHECK_HEADERS(openssl/bn.h bn.h)
2306 AC_CHECK_HEADERS(openssl/crypto.h crypto.h)
2307 AC_CHECK_HEADERS( gmp.h )
2309 if test "$ol_with_tls" = "found" ; then
2313 if test "$ac_cv_header_openssl_bn_h" = "yes" \
2314 -o "$ac_cv_header_bn_h" = "yes" ; then
2318 if test "$ac_cv_header_openssl_crypto_h" = "yes" \
2319 -o "$ac_cv_header_crypto_h" = "yes" ; then
2320 ol_have_crypto_h=yes
2323 if test "$ol_have_bn_h" = "yes" \
2324 -a "$ol_have_crypto_h" = "yes" ; then
2329 if test $ac_cv_header_gmp_h = yes ; then
2330 AC_CHECK_LIB(gmp, __gmpz_add_ui, [have_gmp=yes], [have_gmp=no])
2331 if test $have_gmp = yes ; then
2336 AC_MSG_CHECKING([for multiple precision support])
2338 ol_mp_support="none"
2339 case "$ol_with_multiple_precision" in
2341 dnl preferred sequence:
2342 dnl - OpenSSL's BIGNUM (if libssl is already linked)
2345 if test "$ol_have_bignum" = "yes" ; then
2346 ol_mp_support="bignum"
2348 if test "$ol_have_gmp" = "yes" ; then
2354 if test "$ol_have_bignum" != "yes" ; then
2355 AC_MSG_ERROR([OpenSSL's BIGNUM not available])
2357 ol_mp_support="bignum"
2360 if test "$ol_have_gmp" != "yes" ; then
2361 AC_MSG_ERROR([GMP not available])
2366 if test "$ol_have_bignum" = "yes" ; then
2367 ol_mp_support="bignum"
2368 elif test "$ol_have_gmp" = "yes" ; then
2371 AC_MSG_ERROR([not available])
2376 case "$ol_mp_support" in
2378 AC_DEFINE(HAVE_BIGNUM, 1,
2379 [define if you have SSLeay or OpenSSL's BIGNUM])
2382 AC_DEFINE(HAVE_GMP, 1, [define if you have -lgmp])
2383 SLAPD_GMP_LIBS=-lgmp
2389 AC_MSG_RESULT($ol_mp_support)
2392 dnl ----------------------------------------------------------------
2393 dnl Checks for typedefs, structures, and compiler characteristics.
2395 AC_CHECK_TYPE(mode_t, int)
2396 AC_CHECK_TYPE(off_t, long)
2397 AC_CHECK_TYPE(pid_t, int)
2398 AC_CHECK_TYPE(ssize_t, [signed int])
2399 AC_CHECK_TYPE(caddr_t, [char *])
2400 AC_CHECK_TYPE(size_t, unsigned)
2402 AC_CHECK_TYPES([long long])
2403 AC_CHECK_TYPES([ptrdiff_t])
2405 AC_CHECK_TYPE([socklen_t],,
2406 [AC_DEFINE_UNQUOTED([socklen_t], [int],
2407 [Define to `int' if <sys/socket.h> does not define.])],
2408 [$ac_includes_default
2409 #ifdef HAVE_SYS_SOCKET_H
2410 #include <sys/socket.h>
2416 AC_CHECK_TYPE([sig_atomic_t],,
2417 [AC_DEFINE_UNQUOTED([sig_atomic_t], [int],
2418 [Define to `int' if <signal.h> does not define.])],
2419 [$ac_includes_default
2427 AC_CHECK_MEMBERS([struct stat.st_blksize])
2428 AC_CHECK_MEMBERS([struct passwd.pw_gecos],,,[$ac_includes_default
2430 AC_CHECK_MEMBERS([struct passwd.pw_passwd],,,[$ac_includes_default
2437 if test $cross_compiling = yes ; then
2438 AC_MSG_WARN([Crossing compiling... all bets are off!])
2439 AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
2444 AC_CHECK_SIZEOF(short)
2445 AC_CHECK_SIZEOF(int)
2446 AC_CHECK_SIZEOF(long)
2447 AC_CHECK_SIZEOF(wchar_t)
2449 if test "$ac_cv_sizeof_int" -lt 4 ; then
2450 AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
2452 AC_DEFINE(LBER_INT_T,long,[define to 32-bit or greater integer type])
2454 AC_DEFINE(LBER_INT_T,int,[define to 32-bit or greater integer type])
2457 AC_DEFINE(LBER_LEN_T,long,[define to large integer type])
2458 AC_DEFINE(LBER_SOCKET_T,int,[define to socket descriptor type])
2459 AC_DEFINE(LBER_TAG_T,long,[define to large integer type])
2461 dnl ----------------------------------------------------------------
2462 dnl Checks for library functions.
2465 if test $ac_cv_func_memcmp_working = no ; then
2466 AC_DEFINE(NEED_MEMCMP_REPLACEMENT,1,
2467 [define if memcmp is not 8-bit clean or is otherwise broken])
2474 dnl Check for NT specific routines
2475 AC_CHECK_FUNC(_spawnlp, AC_DEFINE(HAVE_SPAWNLP,1,[if you have spawnlp()]))
2477 AC_CHECK_FUNC(_snprintf, [ac_cv_func_snprintf=yes
2478 AC_DEFINE(snprintf, _snprintf, [define to snprintf routine])
2481 AC_CHECK_FUNC(_vsnprintf, [ac_cv_func_vsnprintf=yes
2482 AC_DEFINE(vsnprintf, _vsnprintf, [define to vsnprintf routine])
2487 if test $ac_cv_func_vprintf = yes ; then
2488 dnl check for vsnprintf
2489 AC_CHECK_FUNCS(snprintf vsnprintf)
2548 dnl We actually may need to replace more than this.
2549 AC_REPLACE_FUNCS(getopt getpeereid)
2551 if test "$ac_cv_func_getopt" != yes; then
2552 LIBSRCS="$LIBSRCS getopt.c"
2554 if test "$ac_cv_func_getpeereid" != yes; then
2555 AC_CHECK_MEMBERS([struct msghdr.msg_accrightslen],,,
2556 [$ac_includes_default
2557 #ifdef HAVE_SYS_SOCKET_H
2558 #include <sys/socket.h>
2560 if test "$ac_cv_member_struct_msghdr_msg_accrightslen" != yes; then
2561 AC_CHECK_MEMBERS([struct msghdr.msg_control],,,
2562 [$ac_includes_default
2563 #ifdef HAVE_SYS_SOCKET_H
2564 #include <sys/socket.h>
2567 LIBSRCS="$LIBSRCS getpeereid.c"
2569 if test "$ac_cv_func_snprintf" != yes -o "$ac_cv_func_vsnprintf" != yes; then
2570 if test "$ac_cv_func_snprintf" != yes; then
2571 AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
2573 if test "$ac_cv_func_vsnprintf" != yes; then
2574 AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine])
2578 dnl ----------------------------------------------------------------
2579 dnl Sort out defines
2581 if test "$ol_enable_slapi" != no ; then
2582 dnl This check is done also if --enable-modules is used;
2583 dnl it is duplicated here, 'cause it'd be cached anyway
2584 AC_CHECK_HEADERS(ltdl.h)
2586 if test $ac_cv_header_ltdl_h != yes ; then
2587 AC_MSG_ERROR([could not locate <ltdl.h>])
2589 AC_CHECK_LIB(ltdl, lt_dlinit, [
2592 LIBSLAPITOOLS=../libslapi.a
2593 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
2594 ],[AC_MSG_ERROR([could not locate libtool -lltdl])])
2596 AC_DEFINE(LDAP_SLAPI,1, [define this to add SLAPI code])
2599 if test "$ol_enable_debug" != no ; then
2600 AC_DEFINE(LDAP_DEBUG,1,
2601 [define this to add debugging code])
2603 if test "$ol_enable_syslog" = yes ; then
2604 AC_DEFINE(LDAP_SYSLOG,1,
2605 [define this to add syslog code])
2607 if test "$ol_link_kbind" != no ; then
2608 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND,LDAP_VENDOR_VERSION,
2609 [define to LDAP VENDOR VERSION])
2611 if test "$ol_enable_proctitle" != no ; then
2612 AC_DEFINE(LDAP_PROCTITLE,1,
2613 [define this for LDAP process title support])
2615 if test "$ol_enable_referrals" != no ; then
2616 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION,
2617 [define to LDAP VENDOR VERSION])
2619 if test "$ol_enable_local" != no; then
2620 AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
2622 if test "$ol_link_ipv6" != no; then
2623 AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
2625 if test "$ol_enable_cleartext" != no ; then
2626 AC_DEFINE(SLAPD_CLEARTEXT,1,[define to support cleartext passwords])
2628 if test "$ol_enable_crypt" != no ; then
2629 AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords])
2631 if test "$ol_link_spasswd" != no ; then
2632 AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
2634 if test "$ol_enable_multimaster" != no ; then
2635 AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
2637 if test "$ol_enable_rlookups" != no ; then
2638 AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
2640 if test "$ol_enable_aci" != no ; then
2641 AC_DEFINE(SLAPD_ACI_ENABLED,1,[define to support per-object ACIs])
2644 if test "$ol_link_modules" != no ; then
2645 AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
2647 SLAPD_MODULES_LDFLAGS="-dlopen self"
2650 AC_DEFINE(SLAPD_MOD_STATIC,1,[statically linked module])
2651 AC_DEFINE(SLAPD_MOD_DYNAMIC,2,[dynamically linked module])
2653 if test "$ol_enable_bdb" != no ; then
2655 BUILD_BDB=$ol_enable_bdb
2656 if test "$ol_enable_bdb" = mod ; then
2657 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
2658 MFLAG=SLAPD_MOD_DYNAMIC
2660 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
2661 MFLAG=SLAPD_MOD_STATIC
2663 AC_DEFINE_UNQUOTED(SLAPD_BDB,$MFLAG,[define to support BDB backend])
2666 if test "$ol_enable_dnssrv" != no ; then
2668 BUILD_DNSSRV=$ol_enable_dnssrv
2669 if test "$ol_enable_dnssrv" = mod ; then
2670 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
2671 MFLAG=SLAPD_MOD_DYNAMIC
2673 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
2674 MFLAG=SLAPD_MOD_STATIC
2676 AC_DEFINE_UNQUOTED(SLAPD_DNSSRV,$MFLAG,[define to support DNS SRV backend])
2679 if test "$ol_enable_hdb" != no ; then
2681 BUILD_HDB=$ol_enable_hdb
2682 if test "$ol_enable_hdb" = mod ; then
2683 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-hdb"
2684 MFLAG=SLAPD_MOD_DYNAMIC
2686 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb"
2687 MFLAG=SLAPD_MOD_STATIC
2689 AC_DEFINE_UNQUOTED(SLAPD_HDB,$MFLAG,[define to support HDB backend])
2692 if test "$ol_enable_ldap" != no ; then
2694 BUILD_LDAP=$ol_enable_ldap
2695 if test "$ol_enable_ldap" = mod ; then
2696 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
2697 MFLAG=SLAPD_MOD_DYNAMIC
2699 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
2700 MFLAG=SLAPD_MOD_STATIC
2702 AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
2705 if test "$ol_link_ldbm" != no -a $ol_enable_ldbm != no; then
2707 BUILD_LDBM=$ol_enable_ldbm
2708 if test "$ol_enable_ldbm" = mod ; then
2709 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldbm"
2710 MFLAG=SLAPD_MOD_DYNAMIC
2712 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldbm"
2713 MFLAG=SLAPD_MOD_STATIC
2715 AC_DEFINE_UNQUOTED(SLAPD_LDBM,$MFLAG,[define to support LDBM backend])
2718 if test "$ol_enable_meta" != no ; then
2720 BUILD_META=$ol_enable_meta
2722 if test "$ol_enable_meta" = mod ; then
2723 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
2724 MFLAG=SLAPD_MOD_DYNAMIC
2726 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
2727 MFLAG=SLAPD_MOD_STATIC
2729 AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
2732 if test "$ol_enable_monitor" != no ; then
2734 BUILD_MONITOR=$ol_enable_monitor
2735 if test "$ol_enable_monitor" = mod ; then
2736 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
2737 MFLAG=SLAPD_MOD_DYNAMIC
2739 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
2740 MFLAG=SLAPD_MOD_STATIC
2742 AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
2745 if test "$ol_enable_null" != no ; then
2747 BUILD_NULL=$ol_enable_null
2748 if test "$ol_enable_null" = mod ; then
2749 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
2750 MFLAG=SLAPD_MOD_DYNAMIC
2752 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
2753 MFLAG=SLAPD_MOD_STATIC
2755 AC_DEFINE_UNQUOTED(SLAPD_NULL,$MFLAG,[define to support NULL backend])
2758 if test "$ol_enable_passwd" != no ; then
2760 BUILD_PASSWD=$ol_enable_passwd
2761 if test "$ol_enable_passwd" = mod ; then
2762 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
2763 MFLAG=SLAPD_MOD_DYNAMIC
2765 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
2766 MFLAG=SLAPD_MOD_STATIC
2768 AC_DEFINE_UNQUOTED(SLAPD_PASSWD,$MFLAG,[define to support PASSWD backend])
2771 if test "$ol_link_perl" != no ; then
2773 BUILD_PERL=$ol_enable_perl
2774 if test "$ol_enable_perl" = mod ; then
2775 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
2776 MFLAG=SLAPD_MOD_DYNAMIC
2778 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
2779 MFLAG=SLAPD_MOD_STATIC
2781 AC_DEFINE_UNQUOTED(SLAPD_PERL,$MFLAG,[define to support PERL backend])
2784 if test "$ol_enable_relay" != no ; then
2786 BUILD_RELAY=$ol_enable_relay
2787 if test "$ol_enable_relay" = mod ; then
2788 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-relay"
2789 MFLAG=SLAPD_MOD_DYNAMIC
2791 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-relay"
2792 MFLAG=SLAPD_MOD_STATIC
2794 AC_DEFINE_UNQUOTED(SLAPD_RELAY,$MFLAG,[define to support relay backend])
2797 if test "$ol_enable_shell" != no ; then
2798 if test "$ol_link_thread" != no ; then
2799 AC_MSG_WARN([Use of --without-threads is recommended with back-shell])
2802 BUILD_SHELL=$ol_enable_shell
2803 if test "$ol_enable_shell" = mod ; then
2804 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
2805 MFLAG=SLAPD_MOD_DYNAMIC
2807 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
2808 MFLAG=SLAPD_MOD_STATIC
2810 AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend])
2813 if test "$ol_link_sql" != no ; then
2815 BUILD_SQL=$ol_enable_sql
2816 if test "$ol_enable_sql" = mod; then
2817 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
2818 MFLAG=SLAPD_MOD_DYNAMIC
2820 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
2821 MFLAG=SLAPD_MOD_STATIC
2823 AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend])
2826 if test "$ol_enable_accesslog" != no ; then
2827 BUILD_ACCESSLOG=$ol_enable_accesslog
2828 if test "$ol_enable_accesslog" = mod ; then
2829 MFLAG=SLAPD_MOD_DYNAMIC
2830 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS accesslog.la"
2832 MFLAG=SLAPD_MOD_STATIC
2833 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS accesslog.o"
2835 AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay])
2838 if test "$ol_enable_denyop" != no ; then
2839 BUILD_DENYOP=$ol_enable_denyop
2840 if test "$ol_enable_denyop" = mod ; then
2841 MFLAG=SLAPD_MOD_DYNAMIC
2842 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS denyop.la"
2844 MFLAG=SLAPD_MOD_STATIC
2845 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS denyop.o"
2847 AC_DEFINE_UNQUOTED(SLAPD_OVER_DENYOP,$MFLAG,[define for Dynamic Group overlay])
2850 if test "$ol_enable_dyngroup" != no ; then
2851 BUILD_DYNGROUP=$ol_enable_dyngroup
2852 if test "$ol_enable_dyngroup" = mod ; then
2853 MFLAG=SLAPD_MOD_DYNAMIC
2854 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dyngroup.la"
2856 MFLAG=SLAPD_MOD_STATIC
2857 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dyngroup.o"
2859 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay])
2862 if test "$ol_enable_dynlist" != no ; then
2863 BUILD_DYNLIST=$ol_enable_dynlist
2864 if test "$ol_enable_dynlist" = mod ; then
2865 MFLAG=SLAPD_MOD_DYNAMIC
2866 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dynlist.la"
2868 MFLAG=SLAPD_MOD_STATIC
2869 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dynlist.o"
2871 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNLIST,$MFLAG,[define for Dynamic List overlay])
2874 if test "$ol_enable_glue" != no ; then
2875 BUILD_GLUE=$ol_enable_glue
2876 if test "$ol_enable_glue" = mod ; then
2877 MFLAG=SLAPD_MOD_DYNAMIC
2878 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS glue.la"
2880 MFLAG=SLAPD_MOD_STATIC
2881 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS glue.o"
2883 AC_DEFINE_UNQUOTED(SLAPD_OVER_GLUE,$MFLAG,[define for Backend Glue overlay])
2886 if test "$ol_enable_lastmod" != no ; then
2887 BUILD_LASTMOD=$ol_enable_lastmod
2888 if test "$ol_enable_lastmod" = mod ; then
2889 MFLAG=SLAPD_MOD_DYNAMIC
2890 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS lastmod.la"
2892 MFLAG=SLAPD_MOD_STATIC
2893 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS lastmod.o"
2895 AC_DEFINE_UNQUOTED(SLAPD_OVER_LASTMOD,$MFLAG,[define for Last Modification overlay])
2898 if test "$ol_enable_ppolicy" != no ; then
2899 BUILD_PPOLICY=$ol_enable_ppolicy
2900 if test "$ol_enable_ppolicy" = mod ; then
2901 MFLAG=SLAPD_MOD_DYNAMIC
2902 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS ppolicy.la"
2904 MFLAG=SLAPD_MOD_STATIC
2905 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS ppolicy.o"
2907 AC_DEFINE_UNQUOTED(SLAPD_OVER_PPOLICY,$MFLAG,[define for Password Policy overlay])
2910 if test "$ol_enable_proxycache" != no ; then
2911 BUILD_PROXYCACHE=$ol_enable_proxycache
2912 if test "$ol_enable_proxycache" = mod ; then
2913 MFLAG=SLAPD_MOD_DYNAMIC
2914 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS pcache.la"
2916 MFLAG=SLAPD_MOD_STATIC
2917 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS pcache.o"
2919 AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay])
2922 if test "$ol_enable_refint" != no ; then
2923 BUILD_REFINT=$ol_enable_refint
2924 if test "$ol_enable_refint" = mod ; then
2925 MFLAG=SLAPD_MOD_DYNAMIC
2926 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la"
2928 MFLAG=SLAPD_MOD_STATIC
2929 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS refint.o"
2931 AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay])
2934 if test "$ol_enable_retcode" != no ; then
2935 BUILD_RETCODE=$ol_enable_retcode
2936 if test "$ol_enable_retcode" = mod ; then
2937 MFLAG=SLAPD_MOD_DYNAMIC
2938 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS retcode.la"
2940 MFLAG=SLAPD_MOD_STATIC
2941 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS retcode.o"
2943 AC_DEFINE_UNQUOTED(SLAPD_OVER_RETCODE,$MFLAG,[define for Referential Integrity overlay])
2946 if test "$ol_enable_rwm" != no ; then
2948 BUILD_RWM=$ol_enable_rwm
2949 if test "$ol_enable_rwm" = mod ; then
2950 MFLAG=SLAPD_MOD_DYNAMIC
2951 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS rwm.la"
2953 MFLAG=SLAPD_MOD_STATIC
2954 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS rwm_x.o"
2956 AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
2959 if test "$ol_enable_syncprov" != no ; then
2960 BUILD_SYNCPROV=$ol_enable_syncprov
2961 if test "$ol_enable_syncprov" = mod ; then
2962 MFLAG=SLAPD_MOD_DYNAMIC
2963 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS syncprov.la"
2965 MFLAG=SLAPD_MOD_STATIC
2966 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS syncprov.o"
2968 AC_DEFINE_UNQUOTED(SLAPD_OVER_SYNCPROV,$MFLAG,[define for Syncrepl Provider overlay])
2971 if test "$ol_enable_translucent" != no ; then
2972 BUILD_TRANSLUCENT=$ol_enable_translucent
2973 if test "$ol_enable_translucent" = mod ; then
2974 MFLAG=SLAPD_MOD_DYNAMIC
2975 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS translucent.la"
2977 MFLAG=SLAPD_MOD_STATIC
2978 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS translucent.o"
2980 AC_DEFINE_UNQUOTED(SLAPD_OVER_TRANSLUCENT,$MFLAG,[define for Translucent Proxy overlay])
2983 if test "$ol_enable_unique" != no ; then
2984 BUILD_UNIQUE=$ol_enable_unique
2985 if test "$ol_enable_unique" = mod ; then
2986 MFLAG=SLAPD_MOD_DYNAMIC
2987 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la"
2989 MFLAG=SLAPD_MOD_STATIC
2990 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS unique.o"
2992 AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay])
2995 if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \
2996 $BUILD_SLAPD = yes ; then
3000 if test "$ol_enable_rewrite" != no ; then
3001 AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta])
3005 if test "$ol_enable_slapi" != no ; then
3006 AC_DEFINE(ENABLE_SLAPI,1,[define to enable slapi library])
3008 SLAPD_SLAPI_DEPEND=libslapi.a
3011 dnl ----------------------------------------------------------------
3014 dnl For Windows build, we don't want to include -dlopen flags.
3015 dnl They hurt more than they help.
3018 if test "$ac_cv_mingw32" = yes ; then
3020 SLAPD_MODULES_LDFLAGS=
3029 AC_SUBST(WITH_MODULES_ENABLED)
3030 AC_SUBST(BUILD_LIBS_DYNAMIC)
3032 AC_SUBST(BUILD_SLAPD)
3034 AC_SUBST(BUILD_SLAPI)
3035 AC_SUBST(SLAPD_SLAPI_DEPEND)
3038 AC_SUBST(BUILD_DNSSRV)
3040 AC_SUBST(BUILD_LDAP)
3041 AC_SUBST(BUILD_LDBM)
3042 AC_SUBST(BUILD_META)
3043 AC_SUBST(BUILD_MONITOR)
3044 AC_SUBST(BUILD_NULL)
3045 AC_SUBST(BUILD_PASSWD)
3046 AC_SUBST(BUILD_RELAY)
3047 AC_SUBST(BUILD_PERL)
3048 AC_SUBST(BUILD_SHELL)
3051 AC_SUBST(BUILD_ACCESSLOG)
3052 AC_SUBST(BUILD_DENYOP)
3053 AC_SUBST(BUILD_DYNGROUP)
3054 AC_SUBST(BUILD_DYNLIST)
3055 AC_SUBST(BUILD_GLUE)
3056 AC_SUBST(BUILD_LASTMOD)
3057 AC_SUBST(BUILD_PPOLICY)
3058 AC_SUBST(BUILD_PROXYCACHE)
3059 AC_SUBST(BUILD_REFINT)
3060 AC_SUBST(BUILD_RETCODE)
3062 AC_SUBST(BUILD_SYNCPROV)
3063 AC_SUBST(BUILD_TRANSLUCENT)
3064 AC_SUBST(BUILD_UNIQUE)
3065 AC_SUBST(BUILD_SLURPD)
3068 AC_SUBST(SLAPD_LIBS)
3069 AC_SUBST(SLURPD_LIBS)
3071 AC_SUBST(LTHREAD_LIBS)
3072 AC_SUBST(LUTIL_LIBS)
3075 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
3076 AC_SUBST(SLAPD_MODULES_LDFLAGS)
3078 AC_SUBST(SLAPD_NO_STATIC)
3079 AC_SUBST(SLAPD_STATIC_BACKENDS)
3080 AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
3081 AC_SUBST(SLAPD_STATIC_OVERLAYS)
3082 AC_SUBST(SLAPD_DYNAMIC_OVERLAYS)
3084 AC_SUBST(PERL_CPPFLAGS)
3085 AC_SUBST(SLAPD_PERL_LDFLAGS)
3086 AC_SUBST(MOD_PERL_LDFLAGS)
3092 AC_SUBST(MODULES_LIBS)
3093 AC_SUBST(SLAPI_LIBS)
3095 AC_SUBST(LIBSLAPITOOLS)
3098 AC_SUBST(SLAPD_SLP_LIBS)
3099 AC_SUBST(SLAPD_GMP_LIBS)
3101 AC_SUBST(SLAPD_SQL_LDFLAGS)
3102 AC_SUBST(SLAPD_SQL_LIBS)
3103 AC_SUBST(SLAPD_SQL_INCLUDES)
3105 dnl ----------------------------------------------------------------
3106 dnl final help output
3107 AC_ARG_WITH(xxinstall,[
3108 See INSTALL file for further details.])
3110 dnl ----------------------------------------------------------------
3114 AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.mk]
3115 [doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk]
3116 [doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk]
3117 [doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk]
3118 [doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk]
3119 [doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk]
3120 [doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk]
3121 [clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk]
3122 [clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk]
3123 [include/Makefile:build/top.mk:include/Makefile.in]
3124 [libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk]
3125 [libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk]
3126 [libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk]
3127 [libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk]
3128 [libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk]
3129 [libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk]
3130 [libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-shared.mk]
3131 [servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk]
3132 [servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk]
3133 [servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk]
3134 [servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk]
3135 [servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk]
3136 [servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk]
3137 [servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/mod.mk]
3138 [servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk]
3139 [servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk]
3140 [servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk]
3141 [servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk]
3142 [servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk]
3143 [servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk]
3144 [servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk]
3145 [servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk]
3146 [servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk]
3147 [servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk]
3148 [servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk]
3149 [servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk]
3150 [servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk]
3151 [tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk]
3153 [tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk])
3155 AC_CONFIG_COMMANDS([default],[[
3158 BACKENDSC="servers/slapd/backends.c"
3159 echo "Making $BACKENDSC"
3161 cat > $BACKENDSC << ENDX
3162 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3164 * Copyright 1998-2005 The OpenLDAP Foundation.
3165 * All rights reserved.
3167 * Redistribution and use in source and binary forms, with or without
3168 * modification, are permitted only as authorized by the OpenLDAP
3171 * A copy of this license is available in the file LICENSE in the
3172 * top-level directory of the distribution or, alternatively, at
3173 * <http://www.OpenLDAP.org/license.html>.
3175 /* This file is automatically generated by configure; please do not edit. */
3177 #include "portable.h"
3181 if test "${STATIC_BACKENDS}"; then
3182 for b in config ${STATIC_BACKENDS}; do
3183 bb=`echo "${b}" | sed -e 's/back-//'`
3184 cat >> $BACKENDSC << ENDX
3185 extern BI_init ${bb}_back_initialize;
3189 cat >> $BACKENDSC << ENDX
3191 BackendInfo slap_binfo[] = {
3194 for b in config ${STATIC_BACKENDS}; do
3195 bb=`echo "${b}" | sed -e 's/back-//'`
3196 echo " Add ${bb} ..."
3197 cat >> $BACKENDSC << ENDX
3198 { "${bb}", ${bb}_back_initialize },
3202 cat >> $BACKENDSC << ENDX
3206 /* end of generated file */
3210 echo Please run \"make depend\" to build dependencies
3211 ]],[[STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"]])