2 dnl This work is part of OpenLDAP Software <http://www.openldap.org/>.
4 dnl Copyright 1998-2006 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 Disable libtool 1.5 support for languages we don't use
21 define([AC_LIBTOOL_LANG_CXX_CONFIG], [:])dnl
22 define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
23 define([AC_LIBTOOL_LANG_GCJ_CONFIG], [:])dnl
24 dnl ================================================================
25 dnl Configure.in for OpenLDAP
26 AC_COPYRIGHT([[Copyright 1998-2006 The OpenLDAP Foundation. All rights reserved.
27 Restrictions apply, see COPYRIGHT and LICENSE files.]])
28 AC_REVISION([$OpenLDAP$])
29 AC_INIT([OpenLDAP],,[http://www.openldap.org/its/])
30 m4_define([AC_PACKAGE_BUGREPORT],[<http://www.openldap.org/its/>])
31 AC_CONFIG_SRCDIR(build/version.sh)dnl
32 dnl ----------------------------------------------------------------
33 dnl OpenLDAP Autoconf Macros
34 builtin(include, build/openldap.m4)dnl
35 dnl ================================================================
37 AC_CONFIG_AUX_DIR(build)dnl
39 eval `$ac_aux_dir/version.sh`
40 if test -z "$OL_STRING"; then
41 AC_MSG_ERROR([could not determine version])
44 if test -f "$ac_aux_dir/shtool" && test ! -d $ac_aux_dir/shtool; then
45 ac_cv_shtool="$ac_aux_dir/shtool"
47 AC_MSG_ERROR([no shtool found in $ac_aux_dir])
50 SHTOOL="$ac_cv_shtool"
51 dnl AC_SUBST(SHTOOL)dnl
53 TB="`$SHTOOL echo -e '%B' 2>/dev/null`"
54 TN="`$SHTOOL echo -e '%b' 2>/dev/null`"
57 if test -d $ac_aux_dir/CVS; then
58 OPENLDAP_CVS="(from CVS sources) "
61 echo "Configuring ${TB}${OL_STRING}${TN} ${OPENLDAP_CVS}..."
63 dnl Determine host platform
64 dnl we try not to use this for much
65 AC_CANONICAL_TARGET([])
67 AM_INIT_AUTOMAKE([$OL_PACKAGE],[$OL_VERSION], [no defines])dnl
70 AC_DEFINE_UNQUOTED(OPENLDAP_PACKAGE,"$PACKAGE",Package)
71 AC_DEFINE_UNQUOTED(OPENLDAP_VERSION,"$VERSION",Version)
73 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION,$OL_API_INC,Version)
74 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MAJOR,$OL_MAJOR,Major)
75 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MINOR,$OL_MINOR,Minor)
76 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_PATCH,$OL_PATCH,Patch)
78 OPENLDAP_LIBRELEASE=$OL_API_LIB_RELEASE
79 AC_SUBST(OPENLDAP_LIBRELEASE)dnl
81 OPENLDAP_LIBVERSION=$OL_API_LIB_VERSION
82 AC_SUBST(OPENLDAP_LIBVERSION)dnl
84 OPENLDAP_RELEASE_DATE="$OL_RELEASE_DATE"
85 AC_SUBST(OPENLDAP_RELEASE_DATE)dnl
87 dnl We use autoconf features new to 2.59. Later versions like won't work.
88 dnl aclocal.m4 should be built using aclocal from automake 1.5
89 dnl libtool 1.5 should be installed.
90 AC_PREREQ(2.59)dnl Required Autoconf version
93 /* begin of portable.h.pre */
94 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
96 * Copyright 1998-2006 The OpenLDAP Foundation
97 * All rights reserved.
99 * Redistribution and use in source and binary forms, with or without
100 * modification, are permitted only as authorized by the OpenLDAP
103 * A copy of this license is available in the file LICENSE in the
104 * top-level directory of the distribution or, alternatively, at
105 * <http://www.OpenLDAP.org/license.html>.
108 #ifndef _LDAP_PORTABLE_H
109 #define _LDAP_PORTABLE_H
111 /* define this if needed to get reentrant functions */
119 /* define this if needed to get threadsafe functions */
133 #ifndef _SGI_MP_SOURCE
134 #undef _SGI_MP_SOURCE
137 /* end of portable.h.pre */
140 /* begin of portable.h.post */
143 /* don't suck in all of the win32 api */
144 # define WIN32_LEAN_AND_MEAN 1
147 #ifndef LDAP_NEEDS_PROTOTYPES
148 /* force LDAP_P to always include prototypes */
149 #define LDAP_NEEDS_PROTOTYPES 1
153 #if (LDAP_VENDOR_VERSION == 000000) && !defined(LDAP_DEVEL)
156 #if defined(LDAP_DEVEL) && !defined(LDAP_TEST)
166 /* ASCII/EBCDIC converting replacements for stdio funcs
167 * vsnprintf and snprintf are used too, but they are already
168 * checked by the configure script
170 #define fputs ber_pvt_fputs
171 #define fgets ber_pvt_fgets
172 #define printf ber_pvt_printf
173 #define fprintf ber_pvt_fprintf
174 #define vfprintf ber_pvt_vfprintf
175 #define vsprintf ber_pvt_vsprintf
178 #include "ac/fdset.h"
180 #include "ldap_cdefs.h"
181 #include "ldap_features.h"
183 #include "ac/assert.h"
184 #include "ac/localize.h"
186 #endif /* _LDAP_PORTABLE_H */
187 /* end of portable.h.post */
190 AC_CONFIG_HEADERS([include/portable.h:include/portable.hin])
191 AC_CONFIG_HEADERS([include/ldap_features.h:include/ldap_features.hin])
192 AC_CONFIG_HEADERS([include/lber_types.h:include/lber_types.hin])
194 dnl ================================================================
196 AC_MSG_CHECKING(configure arguments)
197 AC_PREFIX_DEFAULT(/usr/local)
200 AC_SUBST(top_builddir)dnl
202 dnl ----------------------------------------------------------------
204 ldap_subdir="/openldap"
207 [ --with-subdir=DIR change default subdirectory used for installs],
214 ldap_subdir="$withval"
217 ldap_subdir="/$withval"
222 AC_SUBST(ldap_subdir)dnl
224 dnl ----------------------------------------------------------------
225 dnl General "enable" options
226 dnl set default to traditional to enable the original debug style
227 OL_ARG_ENABLE(debug,[ --enable-debug enable debugging], yes, [no yes traditional])dnl
228 OL_ARG_ENABLE(dynamic,[ --enable-dynamic enable linking built binaries with dynamic libs], no)dnl
229 OL_ARG_ENABLE(syslog,[ --enable-syslog enable syslog support], auto)dnl
230 OL_ARG_ENABLE(proctitle,[ --enable-proctitle enable proctitle support], yes)dnl
231 dnl OL_ARG_ENABLE(referrals,[ --enable-referrals enable LDAPv2+ Referrals (experimental)], no)dnl
232 ol_enable_referrals=${ol_enable_referrals-no}
233 dnl OL_ARG_ENABLE(kbind,[ --enable-kbind enable LDAPv2+ Kerberos IV bind (deprecated)], no)dnl
234 ol_enable_kbind=${ol_enable_kbind-no}
235 OL_ARG_ENABLE(ipv6,[ --enable-ipv6 enable IPv6 support], auto)dnl
236 OL_ARG_ENABLE(local,[ --enable-local enable AF_LOCAL (AF_UNIX) socket support], auto)dnl
238 dnl ----------------------------------------------------------------
239 dnl General "with" options
240 OL_ARG_WITH(cyrus_sasl,[ --with-cyrus-sasl with Cyrus SASL support],
241 auto, [auto yes no] )
242 OL_ARG_WITH(fetch,[ --with-fetch with fetch(3) URL support],
243 auto, [auto yes no] )
244 dnl OL_ARG_WITH(kerberos,[ --with-kerberos with Kerberos support],
245 dnl auto, [auto k5 k5only k425 kth k4 afs yes no])
246 ol_with_kerberos=${ol_with_kerberos-auto}
247 OL_ARG_WITH(threads,[ --with-threads with threads],
248 auto, [auto nt posix mach pth lwp yes no manual] )
249 OL_ARG_WITH(tls,[ --with-tls with TLS/SSL support],
250 auto, [auto openssl yes no] )
251 OL_ARG_WITH(yielding_select,[ --with-yielding-select with implicitly yielding select],
252 auto, [auto yes no manual] )
253 OL_ARG_WITH(multiple_precision,[ --with-multiple-precision
254 multiple precision support for statistics
256 auto, [auto bignum gmp yes no] )
258 dnl ----------------------------------------------------------------
260 dnl ----------------------------------------------------------------
262 dnl ----------------------------------------------------------------
264 AC_ARG_ENABLE(xxslapdoptions,[
265 SLAPD (Standalone LDAP Daemon) Options:])
266 OL_ARG_ENABLE(slapd,[ --enable-slapd enable building slapd], yes)dnl
267 OL_ARG_ENABLE(dynacl,[ --enable-dynacl enable run-time loadable ACL support (experimental)], no)dnl
268 OL_ARG_ENABLE(aci,[ --enable-aci enable per-object ACIs (experimental)], no, [no yes mod])dnl
269 OL_ARG_ENABLE(cleartext,[ --enable-cleartext enable cleartext passwords], yes)dnl
270 OL_ARG_ENABLE(crypt,[ --enable-crypt enable crypt(3) passwords], no)dnl
271 OL_ARG_ENABLE(lmpasswd,[ --enable-lmpasswd enable LAN Manager passwords], no)dnl
272 OL_ARG_ENABLE(spasswd,[ --enable-spasswd enable (Cyrus) SASL password verification], no)dnl
273 OL_ARG_ENABLE(modules,[ --enable-modules enable dynamic module support], no)dnl
274 dnl OL_ARG_ENABLE(multimaster,[ --enable-multimaster enable multimaster replication], no)dnl
275 ol_enable_multimaster=${ol_enable_multimaster-no}
276 OL_ARG_ENABLE(rewrite,[ --enable-rewrite enable DN rewriting in back-ldap and rwm overlay], auto)dnl
277 OL_ARG_ENABLE(rlookups,[ --enable-rlookups enable reverse lookups of client hostnames], no)dnl
278 OL_ARG_ENABLE(slapi,[ --enable-slapi enable SLAPI support (experimental)], no)dnl
279 OL_ARG_ENABLE(slp,[ --enable-slp enable SLPv2 support], no)dnl
280 OL_ARG_ENABLE(wrappers,[ --enable-wrappers enable tcp wrapper support], no)dnl
282 dnl ----------------------------------------------------------------
283 dnl SLAPD Backend Options
298 AC_ARG_ENABLE(xxslapbackends,[
299 SLAPD Backend Options:])
301 OL_ARG_ENABLE(backends,[ --enable-backends enable all available backends],
303 OL_ARG_ENABLE(bdb,[ --enable-bdb enable Berkeley DB backend],
304 yes, [no yes mod], ol_enable_backends)dnl
305 OL_ARG_ENABLE(dnssrv,[ --enable-dnssrv enable dnssrv backend],
306 no, [no yes mod], ol_enable_backends)dnl
307 OL_ARG_ENABLE(hdb,[ --enable-hdb enable Hierarchical DB backend],
308 yes, [no yes mod], ol_enable_backends)dnl
309 OL_ARG_ENABLE(ldap,[ --enable-ldap enable ldap backend],
310 no, [no yes mod], ol_enable_backends)dnl
311 OL_ARG_ENABLE(ldbm,[ --enable-ldbm enable ldbm backend],
312 no, [no yes mod], ol_enable_backends)dnl
313 AC_ARG_WITH(ldbm_api,,[
314 AC_MSG_WARN([Please use --enable-ldbm-api instead of --with-ldbm-api])
315 enable_ldbm_api="$with_ldbm_api"])
316 OL_ARG_ENABLE(ldbm_api,[ --enable-ldbm-api use LDBM API],
317 auto, [auto berkeley bcompat mdbm gdbm])
318 AC_ARG_WITH(ldbm_type,,[
319 AC_MSG_WARN([Please use --enable-ldbm-type instead of --with-ldbm-type])
320 enable_ldbm_type="$with_ldbm_type"])
321 OL_ARG_ENABLE(ldbm_type,[ --enable-ldbm-type use LDBM type],
322 auto, [auto btree hash])
323 OL_ARG_ENABLE(meta,[ --enable-meta enable metadirectory backend],
324 no, [no yes mod], ol_enable_backends)dnl
325 OL_ARG_ENABLE(monitor,[ --enable-monitor enable monitor backend],
326 yes, [no yes mod], ol_enable_backends)dnl
327 OL_ARG_ENABLE(null,[ --enable-null enable null backend],
328 no, [no yes mod], ol_enable_backends)dnl
329 OL_ARG_ENABLE(passwd,[ --enable-passwd enable passwd backend],
330 no, [no yes mod], ol_enable_backends)dnl
331 OL_ARG_ENABLE(perl,[ --enable-perl enable perl backend],
332 no, [no yes mod], ol_enable_backends)dnl
333 OL_ARG_ENABLE(relay,[ --enable-relay enable relay backend],
334 yes, [no yes mod], ol_enable_backends)dnl
335 OL_ARG_ENABLE(shell,[ --enable-shell enable shell backend],
336 no, [no yes mod], ol_enable_backends)dnl
337 OL_ARG_ENABLE(sql,[ --enable-sql enable sql backend],
338 no, [no yes mod], ol_enable_backends)dnl
340 dnl ----------------------------------------------------------------
341 dnl SLAPD Overlay Options
342 Overlays="accesslog \
358 AC_ARG_ENABLE(xxslapoverlays,[
359 SLAPD Overlay Options:])
361 OL_ARG_ENABLE(overlays,[ --enable-overlays enable all available overlays],
363 OL_ARG_ENABLE(accesslog,[ --enable-accesslog In-Directory Access Logging overlay],
364 no, [no yes mod], ol_enable_overlays)
365 OL_ARG_ENABLE(dds,[ --enable-dds Dynamic Directory Services overlay],
366 no, [no yes mod], ol_enable_overlays)
367 OL_ARG_ENABLE(denyop,[ --enable-denyop Deny Operation overlay],
368 no, [no yes mod], ol_enable_overlays)
369 OL_ARG_ENABLE(dyngroup,[ --enable-dyngroup Dynamic Group overlay],
370 no, [no yes mod], ol_enable_overlays)
371 OL_ARG_ENABLE(dynlist,[ --enable-dynlist Dynamic List overlay],
372 no, [no yes mod], ol_enable_overlays)
373 OL_ARG_ENABLE(lastmod,[ --enable-lastmod Last Modification overlay],
374 no, [no yes mod], ol_enable_overlays)
375 OL_ARG_ENABLE(ppolicy,[ --enable-ppolicy Password Policy overlay],
376 no, [no yes mod], ol_enable_overlays)
377 OL_ARG_ENABLE(proxycache,[ --enable-proxycache Proxy Cache overlay],
378 no, [no yes mod], ol_enable_overlays)
379 OL_ARG_ENABLE(refint,[ --enable-refint Referential Integrity overlay],
380 no, [no yes mod], ol_enable_overlays)
381 OL_ARG_ENABLE(retcode,[ --enable-retcode Return Code testing overlay],
382 no, [no yes mod], ol_enable_overlays)
383 OL_ARG_ENABLE(rwm,[ --enable-rwm Rewrite/Remap overlay],
384 no, [no yes mod], ol_enable_overlays)
385 OL_ARG_ENABLE(syncprov,[ --enable-syncprov Syncrepl Provider overlay],
386 yes, [no yes mod], ol_enable_overlays)
387 OL_ARG_ENABLE(translucent,[ --enable-translucent Translucent Proxy overlay],
388 no, [no yes mod], ol_enable_overlays)
389 OL_ARG_ENABLE(unique,[ --enable-unique Attribute Uniqueness overlay],
390 no, [no yes mod], ol_enable_overlays)
391 OL_ARG_ENABLE(valsort,[ --enable-valsort Value Sorting overlay],
392 no, [no yes mod], ol_enable_overlays)
394 dnl ----------------------------------------------------------------
396 AC_ARG_ENABLE(xxslurpdoptions,[
397 SLURPD (Replication Daemon) Options:])
398 OL_ARG_ENABLE(slurpd,[ --enable-slurpd enable building slurpd], auto)dnl
400 dnl ----------------------------------------------------------------
401 AC_ARG_ENABLE(xxliboptions,[
402 Library Generation & Linking Options])
406 dnl ----------------------------------------------------------------
409 if test $ol_enable_slapd = no ; then
410 dnl SLAPD was specificallly disabled
411 if test $ol_enable_slapi = yes ; then
412 AC_MSG_WARN([slapd disabled, ignoring --enable-slapi argument])
414 case "$ol_enable_backends" in yes | mod)
415 AC_MSG_WARN([slapd disabled, ignoring --enable-backends argument])
417 for i in $Backends; do
418 eval "ol_tmp=\$ol_enable_$i"
419 if test $ol_tmp != no ; then
420 AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
421 eval "ol_enable_$i=no"
424 if test $ol_enable_modules = yes ; then
425 AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
427 if test $ol_enable_multimaster = yes ; then
428 AC_MSG_WARN([slapd disabled, ignoring --enable-multimaster argument])
430 if test $ol_enable_wrappers = yes ; then
431 AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
433 if test $ol_enable_rlookups = yes ; then
434 AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
436 if test $ol_enable_dynacl = yes ; then
437 AC_MSG_WARN([slapd disabled, ignoring --enable-dynacl argument])
439 if test $ol_enable_aci != no ; then
440 AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
442 if test $ol_enable_ldbm_api != auto ; then
443 AC_MSG_WARN([slapd disabled, ignoring --enable-ldbm-api argument])
445 if test $ol_enable_ldbm_type != auto ; then
446 AC_MSG_WARN([slapd disabled, ignoring --enable-ldbm-type argument])
448 if test $ol_enable_slurpd = yes ; then
449 AC_MSG_ERROR([slurpd requires slapd])
451 if test $ol_enable_rewrite = yes ; then
452 AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
455 case "$ol_enable_overlays" in yes | mod)
456 AC_MSG_WARN([slapd disabled, ignoring --enable-overlays argument])
458 for i in $Overlays; do
459 eval "ol_tmp=\$ol_enable_$i"
460 if test $ol_tmp != no ; then
461 AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
462 eval "ol_enable_$i=no"
466 # force settings to no
472 ol_enable_multimaster=no
473 ol_enable_rlookups=no
476 ol_enable_wrappers=no
478 ol_enable_ldbm_api=no
479 ol_enable_ldbm_type=no
485 elif test $ol_enable_ldbm = no ; then
486 dnl SLAPD without LDBM
488 if test $ol_enable_ldbm_api != auto ; then
489 AC_MSG_WARN([LDBM disabled, ignoring --enable-ldbm-api argument])
492 if test $ol_enable_ldbm_type != auto ; then
493 AC_MSG_WARN([LDBM disabled, ignoring --enable-ldbm-type argument])
496 if test $ol_enable_modules != yes &&
497 test $ol_enable_bdb = no &&
498 test $ol_enable_dnssrv = no &&
499 test $ol_enable_hdb = no &&
500 test $ol_enable_ldap = no &&
501 test $ol_enable_meta = no &&
502 test $ol_enable_monitor = no &&
503 test $ol_enable_null = no &&
504 test $ol_enable_passwd = no &&
505 test $ol_enable_perl = no &&
506 test $ol_enable_relay = no &&
507 test $ol_enable_shell = no &&
508 test $ol_enable_sql = no ; then
510 if test $ol_enable_slapd = yes ; then
511 AC_MSG_ERROR([slapd requires a backend])
513 AC_MSG_WARN([skipping slapd, no backend specified])
518 ol_enable_ldbm_api=no
519 ol_enable_ldbm_type=no
521 if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
522 ol_enable_ldbm_api=berkeley
527 if test $ol_enable_ldbm_api = gdbm &&
528 test $ol_enable_ldbm_type = btree ; then
529 AC_MSG_ERROR([GDBM only supports LDBM type hash])
531 if test $ol_enable_ldbm_api = mdbm &&
532 test $ol_enable_ldbm_type = btree ; then
533 AC_MSG_ERROR([MDBM only supports LDBM type hash])
535 if test $ol_enable_ldbm_api = ndbm &&
536 test $ol_enable_ldbm_type = btree ; then
537 AC_MSG_ERROR([NDBM only supports LDBM type hash])
540 if test $ol_enable_bdb/$ol_enable_hdb != no/no ; then
541 if test $ol_enable_ldbm_api = auto ; then
542 ol_enable_ldbm_api=berkeley
543 elif test $ol_enable_ldbm_api != berkeley ; then
544 AC_MSG_ERROR([LDBM API not compatible with BDB/HDB])
549 if test $ol_enable_meta/$ol_enable_ldap = yes/no ; then
550 AC_MSG_ERROR([--enable-meta requires --enable-ldap])
553 if test $ol_enable_slurpd = yes ; then
554 dnl SLURPD was specifically enabled
555 if test $ol_with_threads = no ; then
556 AC_MSG_ERROR([slurpd requires threads])
560 if test $ol_enable_lmpasswd = yes ; then
561 if test $ol_with_tls = no ; then
562 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
566 if test $ol_enable_kbind = yes ; then
567 if test $ol_with_kerberos = no ; then
568 AC_MSG_ERROR([options require --with-kerberos])
569 elif test $ol_with_kerberos = auto ; then
573 elif test $ol_enable_kbind = no ; then
574 if test $ol_with_kerberos = auto ; then
576 elif test $ol_with_kerberos != no ; then
577 AC_MSG_WARN([Kerberos detection enabled unnecessarily]);
582 if test $ol_enable_spasswd = yes ; then
583 if test $ol_with_cyrus_sasl = no ; then
584 AC_MSG_ERROR([options require --with-cyrus-sasl])
586 ol_with_cyrus_sasl=yes
591 dnl ----------------------------------------------------------------
639 SLAPD_STATIC_OVERLAYS=
640 SLAPD_DYNAMIC_OVERLAYS=
642 SLAPD_MODULES_LDFLAGS=
643 SLAPD_MODULES_CPPFLAGS=
645 SLAPD_STATIC_BACKENDS=back-ldif
646 SLAPD_DYNAMIC_BACKENDS=
670 dnl ================================================================
671 dnl Checks for programs
673 AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
675 dnl ----------------------------------------------------------------
677 dnl Determine which C translator to use
680 dnl AIX Thread requires we use cc_r or xlc_r.
681 dnl But only do this IF AIX and CC is not set
682 dnl and threads are auto|yes|posix.
684 dnl If we find cc_r|xlc_r, force pthreads and assume
685 dnl pthread_create is in $LIBS (ie: don't bring in
686 dnl any additional thread libraries)
687 dnl If we do not find cc_r|xlc_r, disable threads
691 *-*-aix*) dnl all AIX is not a good idea.
692 if test -z "$CC" ; then
693 case "$ol_with_threads" in
694 auto | yes | posix) ol_aix_threads=yes ;;
700 if test $ol_aix_threads = yes ; then
701 if test -z "${CC}" ; then
702 AC_CHECK_PROGS(CC,cc_r xlc_r cc)
704 if test "$CC" = cc ; then
705 dnl no CC! don't allow --with-threads
706 if test $ol_with_threads != auto ; then
707 AC_MSG_ERROR([--with-threads requires cc_r (or other suitable compiler) on AIX])
709 AC_MSG_WARN([disabling threads, no cc_r on AIX])
715 case ${CC} in cc_r | xlc_r)
716 ol_with_threads=posix
717 ol_cv_pthread_create=yes
722 if test -z "${CC}"; then
723 AC_CHECK_PROGS(CC,cc gcc,missing)
725 if test "${CC}" = "missing" ; then
726 AC_MSG_ERROR([Unable to locate cc(1) or suitable replacement. Check PATH or set CC.])
730 if test -z "${AR}"; then
731 AC_CHECK_PROGS(AR,ar gar,missing)
733 if test "${AR}" = "missing" ; then
734 AC_MSG_ERROR([Unable to locate ar(1) or suitable replacement. Check PATH or set AR.])
742 dnl ----------------------------------------------------------------
745 if test $ol_enable_perl != no ; then
746 AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)
748 if test "no$PERLBIN" = "no" ; then
749 if test $ol_enable_perl = yes ; then
750 AC_MSG_ERROR([could not locate perl])
754 PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
755 PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e 's/ -lc / /' -e 's/ -lc$//'`"
757 if test x"$ol_enable_perl" = "xyes" ; then
758 SLAPD_PERL_LDFLAGS="$PERL_LDFLAGS"
760 MOD_PERL_LDFLAGS="$PERL_LDFLAGS"
762 dnl should check perl version
769 dnl ----------------------------------------------------------------
770 dnl Checks for Windows NT
772 *mingw32* ) ac_cv_mingw32=yes ;;
773 *cygwin* ) ac_cv_cygwin=yes ;;
776 dnl ----------------------------------------------------------------
777 dnl Checks for file extensions
780 AC_DEFINE_UNQUOTED(EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
782 dnl ----------------------------------------------------------------
783 dnl BeOS requires -lbe -lroot -lnet
784 AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])
786 dnl ----------------------------------------------------------------
787 dnl OpenLDAP requires STDC features
789 if test "X${ac_cv_prog_cc_stdc}" = "Xno" ; then
790 AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
793 dnl ----------------------------------------------------------------
794 dnl Check cc depend flags
796 if test "${ol_cv_mkdep}" = no ; then
797 # this will soon become an error
798 AC_MSG_WARN([do not know how to generate dependencies])
801 dnl ----------------------------------------------------------------
802 dnl Check for AIX security library
803 AC_CHECK_LIB(s, afopen, [
805 AC_DEFINE(HAVE_AIX_SECURITY,1,[define if you have AIX security lib])
808 dnl ----------------------------------------------------------------
809 dnl Check for IBM OS/390
813 AC_DEFINE(BOTH_STRINGS_H,1,[define to use both <string.h> and <strings.h>])
817 dnl ----------------------------------------------------------------
818 dnl Check for module support
820 WITH_MODULES_ENABLED=no
821 if test $ol_enable_modules != no ; then
822 AC_CHECK_HEADERS(ltdl.h)
824 if test $ac_cv_header_ltdl_h = no ; then
825 AC_MSG_ERROR([could not locate libtool ltdl.h])
828 AC_CHECK_LIB(ltdl, lt_dlinit, [
830 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
833 if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then
834 AC_MSG_ERROR([could not locate libtool -lltdl])
837 WITH_MODULES_ENABLED=yes
840 for i in $Backends; do
841 eval "ol_tmp=\$ol_enable_$i"
842 if test $ol_tmp = mod ; then
843 AC_MSG_WARN([building static $i backend])
844 eval "ol_enable_$i=yes"
847 for i in $Overlays; do
848 eval "ol_tmp=\$ol_enable_$i"
849 if test $ol_tmp = mod ; then
850 AC_MSG_WARN([building static $i overlay])
851 eval "ol_enable_$i=yes"
856 dnl ----------------------------------------------------------------
857 dnl Checks for header files.
860 if test $ol_cv_header_stdc != yes; then
861 AC_MSG_WARN([could not locate Standard C compliant headers])
917 AC_CHECK_HEADERS( resolv.h, [], [],
918 [$ac_includes_default
919 #include <netinet/in.h>
922 AC_CHECK_HEADERS( netinet/tcp.h, [], [],
923 [$ac_includes_default
924 #include <netinet/in.h>
927 AC_CHECK_HEADERS( sys/ucred.h, [], [],
928 [$ac_includes_default
929 #ifdef HAVE_SYS_PARAM_H
930 #include <sys/param.h>
934 dnl ----------------------------------------------------------------
935 dnl Checks for libraries
937 AC_CHECK_FUNCS( sigaction sigset )
939 dnl HP-UX requires -lV3
940 dnl this is not needed on newer versions of HP-UX
941 if test $ac_cv_func_sigaction = no && test $ac_cv_func_sigaction = no ; then
942 AC_CHECK_LIB(V3, sigset)
945 dnl The following is INTENTIONALLY scripted out because shell does not
946 dnl support variable names with the '@' character, which is what
947 dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
949 dnl Skip Winsock tests on Cygwin
950 if test "$ac_cv_cygwin" != yes && test "$ac_cv_header_winsock_h" = yes; then
951 AC_CACHE_CHECK([for winsock], [ol_cv_winsock],
953 for curlib in ws2_32 wsock32; do
954 LIBS="$LIBS -l$curlib"
955 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <winsock.h>
958 select(0,NULL,NULL,NULL,NULL);
961 ]])],[ol_cv_winsock=yes],[ol_cv_winsock=no])
963 if test $ol_cv_winsock = yes; then
964 AC_DEFINE(HAVE_WINSOCK, 1, [define if you have winsock])
965 ac_cv_func_socket=yes
966 ac_cv_func_select=yes
967 ac_cv_func_closesocket=yes
968 ac_cv_func_gethostname=yes
969 if test $curlib = ws2_32; then
970 ol_cv_winsock=winsock2
971 AC_DEFINE(HAVE_WINSOCK2, 1,
972 [define if you have winsock2])
981 dnl Likely combinations:
982 dnl -lsocket [ -lnsl_s | -lnsl ]
985 AC_CHECK_FUNC(socket, :, [
986 dnl hopefully we won't include too many libraries
987 AC_CHECK_LIB(socket, main)
988 AC_CHECK_LIB(net, main)
989 AC_CHECK_LIB(nsl_s, main)
990 AC_CHECK_LIB(nsl, main)
991 AC_CHECK_LIB(inet, socket)
992 AC_CHECK_LIB(gen, main)
996 AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
998 if test "${ac_cv_header_winsock_h}" != yes; then
1000 dnl (if this detection becomes permenent, it and the select() detection
1001 dnl should be done before the yielding select test)
1002 AC_FUNC_SELECT_ARGTYPES
1005 dnl check to see if system call automatically restart
1006 dnl AC_SYS_RESTARTABLE_SYSCALLS
1008 dnl ----------------------------------------------------------------
1009 AC_CHECK_FUNCS( poll )
1010 AC_CHECK_HEADERS( poll.h )
1012 dnl ----------------------------------------------------------------
1013 AC_CHECK_HEADERS( sys/epoll.h )
1014 if test "${ac_cv_header_sys_epoll_h}" = yes; then
1015 AC_MSG_CHECKING(for epoll system call)
1016 AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char *argv)
1018 int epfd = epoll_create(256);
1019 exit (epfd == -1 ? 1 : 0);
1020 }]])],[AC_MSG_RESULT(yes)
1021 AC_DEFINE(HAVE_EPOLL,1, [define if your system supports epoll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
1024 dnl ----------------------------------------------------------------
1028 dnl ----------------------------------------------------------------
1029 dnl require POSIX regex
1030 AC_CHECK_HEADERS( regex.h )
1031 if test "$ac_cv_header_regex_h" != yes ; then
1032 AC_MSG_ERROR([POSIX regex.h required.])
1034 AC_SEARCH_LIBS(regfree, [regex gnuregex],
1035 :, AC_MSG_ERROR([POSIX regex required.]))
1038 if test "$ol_cv_c_posix_regex" = no ; then
1039 AC_MSG_ERROR([broken POSIX regex!])
1042 dnl ----------------------------------------------------------------
1046 AC_CHECK_HEADERS(sys/uuid.h)
1047 if test $ac_cv_header_sys_uuid_h = yes ; then
1049 AC_SEARCH_LIBS(uuid_to_str, uuid, [have_uuid=yes], :)
1052 if test have_uuid = yes ; then
1053 AC_DEFINE(HAVE_UUID_TO_STR,1,
1054 [define if you have uuid_to_str()])
1056 test "$ac_cv_search_uuid_to_str" = "none required" || \
1057 SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_to_str"
1061 dnl For windows, check for the need of RPCRT for UUID function support
1062 if test $have_uuid = no ; then
1063 AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
1065 LIBS="$LIBS -lrpcrt4"
1066 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1067 int __stdcall UuidCreate(void *);
1068 int __stdcall UuidToStringA(void *,void **);
1072 ]])],[need_rpcrt=yes],[need_rpcrt=no])
1073 if test $need_rpcrt = yes; then
1074 SLAPD_LIBS="$SLAPD_LIBS -lrpcrt4"
1077 AC_MSG_RESULT($need_rpcrt)
1080 dnl ----------------------------------------------------------------
1081 dnl Check for resolver routines
1085 if test "$ol_cv_lib_resolver" != no ; then
1086 AC_DEFINE(HAVE_RES_QUERY,1,
1087 [define if you have res_query()])
1089 if test "$ol_enable_dnssrv" != no ; then
1093 if test "$ol_cv_lib_resolver" != yes ; then
1094 LIBS="$ol_cv_lib_resolver $LIBS"
1098 if test "$ol_enable_dnssrv" = yes || test "$ol_enable_dnssrv" = mod ; then
1099 if test "$ol_link_dnssrv" = no ; then
1100 AC_MSG_ERROR([DNSSRV requires res_query()])
1106 AC_CHECK_FUNCS( hstrerror )
1108 dnl ----------------------------------------------------------------
1109 dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
1110 dnl PF_LOCAL may use getaddrinfo in available
1111 AC_CHECK_FUNCS( getaddrinfo getnameinfo gai_strerror inet_ntop )
1114 if test $ac_cv_func_getaddrinfo = no || test $ac_cv_func_inet_ntop = no ; then
1115 if test $ol_enable_ipv6 = yes ; then
1116 AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
1118 elif test $ol_enable_ipv6 != no ; then
1119 AC_CACHE_CHECK([INET6_ADDRSTRLEN],[ol_cv_inet6_addrstrlen],[
1120 AC_EGREP_CPP(__has_inet6_addrstrlen__,[
1121 # include <netinet/in.h>
1122 # ifdef INET6_ADDRSTRLEN
1123 __has_inet6_addrstrlen__;
1125 ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])])
1128 AC_CACHE_CHECK([struct sockaddr_storage],ol_cv_struct_sockaddr_storage,[
1129 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1130 #include <sys/types.h>
1131 #include <sys/socket.h>
1133 struct sockaddr_storage ss;
1134 ]])],[ol_cv_struct_sockaddr_storage=yes],[ol_cv_struct_sockaddr_storage=no])])
1136 if test $ol_cv_inet6_addrstrlen = yes &&
1137 test $ol_cv_struct_sockaddr_storage = yes ; then
1139 elif test $ol_enable_ipv6 = yes &&
1140 test $ol_cv_inet6_addrstrlen = no ; then
1141 AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
1142 elif test $ol_enable_ipv6 = yes &&
1143 test $ol_cv_struct_sockaddr_storage = no ; then
1144 AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage])
1148 if test $ol_enable_local != no ; then
1149 AC_CHECK_HEADERS( sys/un.h )
1151 if test $ol_enable_local = auto ; then
1152 ol_enable_local=$ac_cv_header_sys_un_h
1153 elif test $ac_cv_header_sys_un_h = no ; then
1154 AC_MSG_ERROR([AF_LOCAL domain support requires sys/un.h])
1158 dnl ----------------------------------------------------------------
1164 case $ol_with_kerberos in yes | auto | k5 | k5only | k425)
1166 AC_CHECK_HEADERS(krb5.h)
1168 if test $ac_cv_header_krb5_h = yes ; then
1169 dnl lazy check for Heimdal Kerberos
1170 AC_CHECK_HEADERS(heim_err.h)
1171 if test $ac_cv_header_heim_err_h = yes ; then
1177 if test $krb5_impl = mit; then
1178 AC_CHECK_LIB(k5crypto, main,
1179 [krb5crypto=k5crypto],
1180 [krb5crypto=crypto])
1182 AC_CHECK_LIB(krb5, main,
1184 KRB5_LIBS="-lkrb5 -l$krb5crypto -lcom_err"],
1186 [-l$krb5crypto -lcom_err])
1188 elif test $krb5_impl = heimdal; then
1189 AC_CHECK_LIB(des, main,
1191 [krb5crypto=crypto])
1193 AC_CHECK_LIB(krb5, main,
1195 KRB5_LIBS="-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err"],
1197 [-l$krb5crypto -lasn1 -lroken -lcom_err])
1199 AC_DEFINE(HAVE_HEIMDAL_KERBEROS, 1,
1200 [define if you have HEIMDAL Kerberos])
1204 AC_MSG_WARN([Unrecognized Kerberos5 Implementation])
1207 if test $have_krb5 = yes ; then
1210 AC_DEFINE(HAVE_KRB5, 1,
1211 [define if you have Kerberos V])
1213 if test $ol_with_kerberos = k5only ; then
1214 ol_with_kerberos=found
1217 elif test $ol_with_kerberos != auto ; then
1218 AC_MSG_ERROR([Required Kerberos 5 support not available])
1225 if test $ol_link_krb5 = yes &&
1226 { test $ol_with_kerberos = yes ||
1227 test $ol_with_kerberos = auto ||
1228 test $ol_with_kerberos = k425; }; then
1230 AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
1232 if test $ac_cv_header_kerberosIV_krb_h = yes ; then
1233 if test $krb5_impl = mit; then
1234 AC_CHECK_LIB(krb4, main, [have_k425=yes
1235 KRB4_LIBS="-lkrb4 -ldes425"], [have_k425=no],
1236 [-ldes425 -lkrb5 -l$krb5crypto -lcom_err])
1238 elif test $krb5_impl = heimdal; then
1239 AC_CHECK_LIB(krb4, main, [have_k425=yes
1240 KRB4_LIBS="-lkrb4"], [have_k425=no],
1241 [-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err])
1245 AC_MSG_WARN([Unrecongized Kerberos V Implementation])
1248 if test $have_k425 = yes ; then
1249 ol_with_kerberos=found
1252 AC_DEFINE(HAVE_KRB425, 1,
1253 [define if you have Kerberos V with IV support])
1254 AC_DEFINE(HAVE_KRB4, 1,
1255 [define if you have Kerberos IV])
1257 AC_CACHE_CHECK([for des_debug in Kerberos libraries],
1258 [ol_cv_var_des_debug], [
1261 LIBS="$KRB4_LIBS $KRB5_LIBS $LIBS"
1262 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1263 #include <kerberosIV/krb.h>
1264 #include <kerberosIV/des.h>
1265 extern int des_debug;
1268 ]])],[ol_cv_var_des_debug=yes],[ol_cv_var_des_debug=no])
1269 dnl restore the LIBS
1273 if test $ol_cv_var_des_debug = yes ; then
1274 AC_DEFINE(HAVE_DES_DEBUG,1,
1275 [define if you have Kerberos des_debug])
1283 if test $ol_link_krb5 = yes ; then
1284 ol_with_kerberos=found
1287 case $ol_with_kerberos in yes | auto | k4 | kth)
1289 AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
1291 if test $ac_cv_header_krb_h = yes ; then
1292 AC_CHECK_LIB(krb, main, [have_k4=yes], [have_k4=no], [-ldes])
1294 if test $have_k4 = yes ; then
1295 ol_with_kerberos=found
1298 AC_DEFINE(HAVE_KRB4, 1,
1299 [define if you have Kerberos IV])
1301 KRB4_LIBS="-lkrb -ldes"
1303 if test $ac_cv_header_krb_archaeology_h = yes ; then
1304 AC_DEFINE(HAVE_KTH_KERBEROS, 1,
1305 [define if you have Kth Kerberos])
1312 if test $ol_link_krb4 = yes && test $ol_enable_kbind != no ; then
1315 elif test $ol_enable_kbind = yes ; then
1316 AC_MSG_ERROR([Kerberos IV detection failed])
1319 if test $ol_link_krb4 = yes || test $ol_link_krb5 = yes ; then
1320 AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
1322 elif test $ol_with_kerberos != auto && test $ol_with_kerberos != no ; then
1323 AC_MSG_ERROR([Kerberos detection failed])
1326 dnl ----------------------------------------------------------------
1330 if test $ol_with_tls != no ; then
1331 AC_CHECK_HEADERS(openssl/ssl.h)
1333 if test $ac_cv_header_openssl_ssl_h = yes ; then
1334 AC_CHECK_LIB(ssl, SSL_library_init,
1336 need_rsaref=no], [have_openssl=no],
1339 if test $have_openssl = no ; then
1340 AC_CHECK_LIB(ssl, ssl3_accept,
1342 need_rsaref=yes], [have_openssl=no],
1343 [-lcrypto -lRSAglue -lrsaref])
1346 if test $have_openssl = yes ; then
1350 AC_DEFINE(HAVE_OPENSSL, 1,
1351 [define if you have OpenSSL])
1353 if test $need_rsaref = yes; then
1354 AC_DEFINE(HAVE_RSAREF, 1,
1355 [define if OpenSSL needs RSAref])
1357 TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
1359 TLS_LIBS="-lssl -lcrypto"
1363 if test $ol_cv_ssl_crl_compat = no ; then
1366 AC_DEFINE(HAVE_OPENSSL_CRL, 1,
1367 [define if you have OpenSSL with CRL checking capability])
1372 AC_MSG_WARN([TLS data protection not supported!])
1376 if test $ol_link_tls = yes ; then
1377 AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
1380 elif test $ol_with_tls = auto ; then
1381 AC_MSG_WARN([Could not locate TLS/SSL package])
1382 AC_MSG_WARN([TLS data protection not supported!])
1384 elif test $ol_with_tls != no ; then
1385 AC_MSG_ERROR([Could not locate TLS/SSL package])
1388 dnl ----------------------------------------------------------------
1389 dnl LAN Manger password checking requires DES from OpenSSL
1390 if test $ol_enable_lmpasswd != no; then
1391 if test $ol_link_tls != yes ; then
1392 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
1395 AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
1398 dnl ----------------------------------------------------------------
1402 case $ol_with_threads in auto | yes | nt)
1406 if test "$ol_cv_nt_threads" = yes ; then
1408 ol_with_threads=found
1409 ol_with_yielding_select=yes
1411 AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager])
1412 AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log])
1415 if test $ol_with_threads = nt ; then
1416 AC_MSG_ERROR([could not locate NT Threads])
1421 case $ol_with_threads in auto | yes | posix)
1423 AC_CHECK_HEADERS(pthread.h)
1425 if test $ac_cv_header_pthread_h = yes ; then
1426 OL_POSIX_THREAD_VERSION
1428 if test $ol_cv_pthread_version != 0 ; then
1429 AC_DEFINE_UNQUOTED(HAVE_PTHREADS,$ol_cv_pthread_version,
1430 [define to pthreads API spec revision])
1432 AC_MSG_ERROR([unknown pthread version])
1435 # consider threads found
1436 ol_with_threads=found
1438 OL_HEADER_LINUX_THREADS
1439 OL_HEADER_GNU_PTH_PTHREAD_H
1441 if test $ol_cv_header_gnu_pth_pthread_h = no ; then
1442 AC_CHECK_HEADERS(sched.h)
1445 dnl Now the hard part, how to link?
1447 dnl currently supported checks:
1449 dnl Check for no flags
1450 dnl pthread_create() in $LIBS
1452 dnl Check special pthread (final) flags
1453 dnl [skipped] pthread_create() with -mt (Solaris) [disabled]
1454 dnl pthread_create() with -kthread (FreeBSD)
1455 dnl pthread_create() with -pthread (FreeBSD/Digital Unix)
1456 dnl pthread_create() with -pthreads (?)
1457 dnl pthread_create() with -mthreads (AIX)
1458 dnl pthread_create() with -thread (?)
1460 dnl Check pthread (final) libraries
1461 dnl pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
1462 dnl pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
1463 dnl [skipped] pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
1464 dnl pthread_join() -Wl,-woff,85 -lpthread (IRIX)
1465 dnl pthread_create() in -lpthread (many)
1466 dnl pthread_create() in -lc_r (FreeBSD)
1468 dnl Check pthread (draft4) flags (depreciated)
1469 dnl pthread_create() with -threads (OSF/1)
1471 dnl Check pthread (draft4) libraries (depreciated)
1472 dnl pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
1473 dnl pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
1474 dnl pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
1475 dnl pthread_create() in -lpthreads (many)
1478 dnl pthread_create in $LIBS
1479 AC_CACHE_CHECK([for pthread_create in default libraries],
1480 ol_cv_pthread_create,[
1481 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1482 [ol_cv_pthread_create=yes],
1483 [ol_cv_pthread_create=no],
1484 [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION,
1485 [ol_cv_pthread_create=yes],
1486 [ol_cv_pthread_create=no])])])
1488 if test $ol_cv_pthread_create != no ; then
1489 ol_link_threads=posix
1493 dnl OL_PTHREAD_TRY([-mt], [ol_cv_pthread_mt])
1494 OL_PTHREAD_TRY([-kthread], [ol_cv_pthread_kthread])
1495 OL_PTHREAD_TRY([-pthread], [ol_cv_pthread_pthread])
1496 OL_PTHREAD_TRY([-pthreads], [ol_cv_pthread_pthreads])
1497 OL_PTHREAD_TRY([-mthreads], [ol_cv_pthread_mthreads])
1498 OL_PTHREAD_TRY([-thread], [ol_cv_pthread_thread])
1500 OL_PTHREAD_TRY([-lpthread -lmach -lexc -lc_r],
1501 [ol_cv_pthread_lpthread_lmach_lexc_lc_r])
1502 OL_PTHREAD_TRY([-lpthread -lmach -lexc],
1503 [ol_cv_pthread_lpthread_lmach_lexc])
1504 dnl OL_PTHREAD_TRY([-lpthread -lexc],
1505 dnl [ol_cv_pthread_lpthread_lexc])
1507 OL_PTHREAD_TRY([-lpthread -Wl,-woff,85],
1508 [ol_cv_pthread_lib_lpthread_woff])
1510 OL_PTHREAD_TRY([-lpthread], [ol_cv_pthread_lpthread])
1511 OL_PTHREAD_TRY([-lc_r], [ol_cv_pthread_lc_r])
1513 OL_PTHREAD_TRY([-threads], [ol_cv_pthread_threads])
1515 OL_PTHREAD_TRY([-lpthreads -lmach -lexc -lc_r],
1516 [ol_cv_pthread_lpthreads_lmach_lexc_lc_r])
1517 OL_PTHREAD_TRY([-lpthreads -lmach -lexc],
1518 [ol_cv_pthread_lpthreads_lmach_lexc])
1519 OL_PTHREAD_TRY([-lpthreads -lexc],
1520 [ol_cv_pthread_lpthreads_lexc])
1522 OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
1524 if test $ol_link_threads != no ; then
1525 LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
1528 save_CPPFLAGS="$CPPFLAGS"
1530 LIBS="$LTHREAD_LIBS $LIBS"
1532 dnl All POSIX Thread (final) implementations should have
1533 dnl sched_yield instead of pthread yield.
1534 dnl check for both, and thr_yield for Solaris
1535 AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
1537 if test $ac_cv_func_sched_yield = no &&
1538 test $ac_cv_func_pthread_yield = no &&
1539 test $ac_cv_func_thr_yield = no ; then
1540 dnl Digital UNIX has sched_yield() in -lrt
1541 AC_CHECK_LIB(rt, sched_yield,
1542 [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
1543 AC_DEFINE(HAVE_SCHED_YIELD,1,
1544 [Define if you have the sched_yield function.])
1545 ac_cv_func_sched_yield=yes],
1546 [ac_cv_func_sched_yield=no])
1548 if test $ac_cv_func_sched_yield = no &&
1549 test $ac_cv_func_pthread_yield = no &&
1550 test "$ac_cv_func_thr_yield" = no ; then
1551 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
1554 dnl Check functions for compatibility
1555 AC_CHECK_FUNCS(pthread_kill pthread_rwlock_destroy)
1557 dnl Check for pthread_detach with <pthread.h> inclusion
1558 dnl as it's symbol may have been mangled.
1559 AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
1560 [ol_cv_func_pthread_detach], [
1562 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1563 #include <pthread.h>
1565 #define NULL (void*)0
1567 ]], [[pthread_detach(NULL);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
1570 if test $ol_cv_func_pthread_detach = no ; then
1571 AC_MSG_ERROR([could not locate pthread_detach()])
1574 AC_DEFINE(HAVE_PTHREAD_DETACH,1,
1575 [define if you have pthread_detach function])
1577 dnl Check for setconcurreny functions
1579 pthread_setconcurrency \
1580 pthread_getconcurrency \
1581 thr_setconcurrency \
1582 thr_getconcurrency \
1585 OL_SYS_LINUX_THREADS
1588 if test $ol_cv_linux_threads = error; then
1589 AC_MSG_ERROR([LinuxThreads header/library mismatch]);
1592 AC_CACHE_CHECK([if pthread_create() works],
1593 ol_cv_pthread_create_works,[
1594 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1595 [ol_cv_pthread_create_works=yes],
1596 [ol_cv_pthread_create_works=no],
1598 ol_cv_pthread_create_works=yes])])
1600 if test $ol_cv_pthread_create_works = no ; then
1601 AC_MSG_ERROR([pthread_create is not usable, check environment settings])
1604 ol_replace_broken_yield=no
1607 ol_replace_broken_yield=yes
1611 if test $ol_replace_broken_yield = yes ; then
1612 AC_DEFINE([REPLACE_BROKEN_YIELD],1,
1613 [define if sched_yield yields the entire process])
1616 dnl Check if select causes an yield
1617 if test $ol_with_yielding_select = auto ; then
1618 AC_CACHE_CHECK([if select yields when using pthreads],
1619 ol_cv_pthread_select_yields,[
1620 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1621 #include <sys/types.h>
1622 #include <sys/time.h>
1624 #include <pthread.h>
1626 #define NULL (void*) 0
1629 static int fildes[2];
1631 static void *task(p)
1643 FD_SET(fildes[0], &rfds);
1645 /* we're not interested in any fds */
1646 i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
1653 exit(0); /* if we exit here, the select blocked the whole process */
1656 int main(argc, argv)
1662 /* create a pipe to select */
1663 if(pipe(&fildes[0])) {
1668 #ifdef HAVE_PTHREAD_SETCONCURRENCY
1669 (void) pthread_setconcurrency(2);
1671 #ifdef HAVE_THR_SETCONCURRENCY
1672 /* Set Solaris LWP concurrency to 2 */
1673 thr_setconcurrency(2);
1677 #if HAVE_PTHREADS < 6
1678 pthread_create(&t, pthread_attr_default, task, NULL);
1680 pthread_create(&t, NULL, task, NULL);
1683 /* make sure task runs first */
1686 #elif defined( HAVE_SCHED_YIELD )
1688 #elif defined( HAVE_PTHREAD_YIELD )
1693 }]])],[ol_cv_pthread_select_yields=no],[ol_cv_pthread_select_yields=yes],[ol_cv_pthread_select_yields=cross])])
1695 if test $ol_cv_pthread_select_yields = cross ; then
1696 AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])
1699 if test $ol_cv_pthread_select_yields = yes ; then
1700 ol_with_yielding_select=yes
1705 CPPFLAGS="$save_CPPFLAGS"
1708 AC_MSG_ERROR([could not locate usable POSIX Threads])
1712 if test $ol_with_threads = posix ; then
1713 AC_MSG_ERROR([could not locate POSIX Threads])
1718 case $ol_with_threads in auto | yes | mach)
1720 dnl check for Mach CThreads
1721 AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
1722 if test $ac_cv_header_mach_cthreads_h = yes ; then
1723 ol_with_threads=found
1725 dnl check for cthreads support in current $LIBS
1726 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1728 if test $ol_link_threads = no ; then
1730 dnl this test needs work
1731 AC_CACHE_CHECK([for cthread_fork with -all_load],
1732 [ol_cv_cthread_all_load], [
1735 LIBS="-all_load $LIBS"
1736 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <mach/cthreads.h>]], [[
1737 cthread_fork((void *)0, (void *)0);
1738 ]])],[ol_cv_cthread_all_load=yes],[ol_cv_cthread_all_load=no])
1739 dnl restore the LIBS
1743 if test $ol_cv_cthread_all_load = yes ; then
1744 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
1745 ol_link_threads=mach
1746 ol_with_threads=found
1750 elif test $ac_cv_header_cthreads_h = yes ; then
1751 dnl Hurd variant of Mach Cthreads
1752 dnl uses <cthreads.h> and -lthreads
1754 ol_with_threads=found
1758 LIBS="$LIBS -lthreads"
1759 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1762 if test $ol_link_threads = yes ; then
1763 LTHREAD_LIBS="-lthreads"
1764 ol_link_threads=mach
1765 ol_with_threads=found
1767 AC_MSG_ERROR([could not link with Mach CThreads])
1770 elif test $ol_with_threads = mach ; then
1771 AC_MSG_ERROR([could not locate Mach CThreads])
1774 if test $ol_link_threads = mach ; then
1775 AC_DEFINE(HAVE_MACH_CTHREADS,1,
1776 [define if you have Mach Cthreads])
1777 elif test $ol_with_threads = found ; then
1778 AC_MSG_ERROR([could not link with Mach CThreads])
1783 case $ol_with_threads in auto | yes | pth)
1785 AC_CHECK_HEADERS(pth.h)
1787 if test $ac_cv_header_pth_h = yes ; then
1788 AC_CHECK_LIB(pth, pth_version, [have_pth=yes], [have_pth=no])
1790 if test $have_pth = yes ; then
1791 AC_DEFINE(HAVE_GNU_PTH,1,[if you have GNU Pth])
1792 LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
1794 ol_with_threads=found
1796 if test $ol_with_yielding_select = auto ; then
1797 ol_with_yielding_select=yes
1804 case $ol_with_threads in auto | yes | lwp)
1806 dnl check for SunOS5 LWP
1807 AC_CHECK_HEADERS(thread.h synch.h)
1808 if test $ac_cv_header_thread_h = yes &&
1809 test $ac_cv_header_synch_h = yes ; then
1810 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
1812 if test $have_thr = yes ; then
1813 AC_DEFINE(HAVE_THR,1,
1814 [if you have Solaris LWP (thr) package])
1815 LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
1818 if test $ol_with_yielding_select = auto ; then
1819 ol_with_yielding_select=yes
1822 dnl Check for setconcurreny functions
1824 thr_setconcurrency \
1825 thr_getconcurrency \
1830 dnl check for SunOS4 LWP
1831 AC_CHECK_HEADERS(lwp/lwp.h)
1832 if test $ac_cv_header_lwp_lwp_h = yes ; then
1833 AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
1835 if test $have_lwp = yes ; then
1836 AC_DEFINE(HAVE_LWP,1,
1837 [if you have SunOS LWP package])
1838 LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
1841 if test $ol_with_yielding_select = auto ; then
1842 ol_with_yielding_select=no
1849 if test $ol_with_yielding_select = yes ; then
1850 AC_DEFINE(HAVE_YIELDING_SELECT,1,
1851 [define if select implicitly yields])
1854 if test $ol_with_threads = manual ; then
1855 dnl User thinks he can manually configure threads.
1858 AC_MSG_WARN([thread defines and link options must be set manually])
1860 AC_CHECK_HEADERS(pthread.h sched.h)
1861 AC_CHECK_FUNCS(sched_yield pthread_yield)
1862 OL_HEADER_LINUX_THREADS
1864 AC_CHECK_HEADERS(mach/cthreads.h)
1865 AC_CHECK_HEADERS(lwp/lwp.h)
1866 AC_CHECK_HEADERS(thread.h synch.h)
1869 if test $ol_link_threads != no && test $ol_link_threads != nt ; then
1870 dnl needed to get reentrant/threadsafe versions
1872 AC_DEFINE(REENTRANT,1)
1873 AC_DEFINE(_REENTRANT,1)
1874 AC_DEFINE(THREAD_SAFE,1)
1875 AC_DEFINE(_THREAD_SAFE,1)
1876 AC_DEFINE(THREADSAFE,1)
1877 AC_DEFINE(_THREADSAFE,1)
1878 AC_DEFINE(_SGI_MP_SOURCE,1)
1880 dnl The errno declaration may dependent upon _REENTRANT.
1881 dnl If it does, we must link with thread support.
1882 AC_CACHE_CHECK([for thread specific errno],
1883 [ol_cv_errno_thread_specific], [
1884 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <errno.h>]], [[errno = 0;]])],[ol_cv_errno_thread_specific=yes],[ol_cv_errno_thread_specific=no])
1887 dnl The h_errno declaration may dependent upon _REENTRANT.
1888 dnl If it does, we must link with thread support.
1889 AC_CACHE_CHECK([for thread specific h_errno],
1890 [ol_cv_h_errno_thread_specific], [
1891 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])
1894 if test $ol_cv_errno_thread_specific != yes ||
1895 test $ol_cv_h_errno_thread_specific != yes ; then
1896 LIBS="$LTHREAD_LIBS $LIBS"
1900 dnl When in thread environment, use
1901 dnl #if defined( HAVE_REENTRANT_FUNCTIONS ) || defined( HAVE_FUNC_R )
1904 dnl # if defined( HAVE_THREADS )
1908 dnl # if defined( HAVE_THREADS )
1913 dnl HAVE_REENTRANT_FUNCTIONS is derived from:
1914 dnl _POSIX_REENTRANT_FUNCTIONS
1915 dnl _POSIX_THREAD_SAFE_FUNCTIONS
1916 dnl _POSIX_THREADSAFE_FUNCTIONS
1918 dnl and is currently defined in <ldap_pvt_thread.h>
1920 dnl HAVE_THREADS is defined by <ldap_pvt_thread.h> iff -UNO_THREADS
1922 dnl libldap/*.c should only include <ldap_pvt_thread.h> iff
1923 dnl LDAP_R_COMPILE is defined. ie:
1924 dnl #ifdef LDAP_R_COMPILE
1925 dnl # include <ldap_pvt_thread.h>
1928 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
1929 dnl specifically for compiling the threadsafe version of
1930 dnl the ldap library (-lldap_r).
1932 dnl dnl check for reentrant/threadsafe functions
1934 dnl dnl note: these should only be used when linking
1935 dnl dnl with $LTHREAD_LIBS
1937 dnl save_CPPFLAGS="$CPPFLAGS"
1938 dnl save_LIBS="$LIBS"
1939 dnl LIBS="$LTHREAD_LIBS $LIBS"
1940 dnl AC_CHECK_FUNCS( \
1942 dnl gethostbyaddr_r gethostbyname_r \
1943 dnl feof_unlocked unlocked_feof \
1944 dnl putc_unlocked unlocked_putc \
1945 dnl flockfile ftrylockfile \
1947 dnl CPPFLAGS="$save_CPPFLAGS"
1948 dnl LIBS="$save_LIBS"
1951 if test $ol_link_threads = no ; then
1952 if test $ol_with_threads = yes ; then
1953 AC_MSG_ERROR([no suitable thread support])
1956 if test $ol_with_threads = auto ; then
1957 AC_MSG_WARN([no suitable thread support, disabling threads])
1961 AC_DEFINE(NO_THREADS,1,
1962 [define if you have (or want) no threads])
1969 if test $ol_link_threads != no ; then
1970 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1,
1971 [define to 1 if library is thread safe])
1974 dnl ----------------------------------------------------------------
1975 dnl Tests for reentrant functions necessary to build -lldap_r
1978 gethostbyname_r gethostbyaddr_r \
1981 if test "$ac_cv_func_ctime_r" = no ; then
1982 ol_cv_func_ctime_r_nargs=0
1984 OL_FUNC_CTIME_R_NARGS
1985 dnl OL_FUNC_CTIME_R_TYPE
1988 if test "$ac_cv_func_gethostbyname_r" = yes ; then
1989 OL_FUNC_GETHOSTBYNAME_R_NARGS
1991 ol_cv_func_gethostbyname_r_nargs=0
1994 if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
1995 OL_FUNC_GETHOSTBYADDR_R_NARGS
1997 ol_cv_func_gethostbyaddr_r_nargs=0
2000 dnl ----------------------------------------------------------------
2003 case $ol_enable_ldbm_api in auto | berkeley | bcompat)
2005 if test $ol_enable_ldbm_api = bcompat; then \
2006 OL_BERKELEY_COMPAT_DB
2011 if test $ol_cv_berkeley_db != no ; then
2012 AC_DEFINE(HAVE_BERKELEY_DB,1,
2013 [define this if Berkeley DB is available])
2015 ol_link_ldbm=berkeley
2016 ol_enable_ldbm_api=berkeley
2018 if test $ol_enable_ldbm_type = hash ; then
2019 AC_DEFINE(LDBM_USE_DBHASH,1,
2020 [define this to use DBHASH w/ LDBM backend])
2022 AC_DEFINE(LDBM_USE_DBBTREE,1,
2023 [define this to use DBBTREE w/ LDBM backend])
2026 dnl $ol_cv_lib_db should be yes or -ldb
2027 dnl (it could be no, but that would be an error
2028 if test $ol_cv_lib_db != yes ; then
2029 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
2035 if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
2036 if test $ol_link_ldbm != berkeley ; then
2037 AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
2041 if test $ol_cv_bdb_compat != yes ; then
2042 AC_MSG_ERROR([BDB/HDB: BerkeleyDB version incompatible])
2047 if test $ol_link_ldbm = no && test $ol_enable_ldbm_type = btree ; then
2048 AC_MSG_WARN([Could not find LDBM with BTREE support])
2049 ol_enable_ldbm_api=none
2052 if test $ol_enable_ldbm_api = auto || test $ol_enable_ldbm_api = mdbm ; then
2055 if test $ol_cv_mdbm = yes ; then
2057 ol_enable_ldbm_api=mdbm
2058 if test $ol_cv_lib_mdbm != yes ; then
2059 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_mdbm"
2064 if test $ol_enable_ldbm_api = auto || test $ol_enable_ldbm_api = gdbm ; then
2067 if test $ol_cv_gdbm = yes ; then
2069 ol_enable_ldbm_api=gdbm
2071 if test $ol_cv_lib_gdbm != yes ; then
2072 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
2077 if test $ol_enable_ldbm_api = ndbm ; then
2080 if test $ol_cv_ndbm = yes ; then
2082 ol_enable_ldbm_api=ndbm
2084 if test $ol_cv_lib_ndbm != yes ; then
2085 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
2090 if test $ol_link_ldbm = no && test $ol_enable_ldbm != no ; then
2091 AC_MSG_ERROR([could not find suitable LDBM backend])
2094 if test $ol_enable_bdb = yes ||
2095 test $ol_enable_hdb = yes ||
2096 test $ol_enable_ldbm = yes ; then
2097 SLAPD_LIBS="$SLAPD_LIBS \$(LDBM_LIBS)"
2100 dnl ----------------------------------------------------------------
2102 if test $ol_enable_dynamic = yes && test $enable_shared = yes ; then
2103 BUILD_LIBS_DYNAMIC=shared
2104 AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
2107 BUILD_LIBS_DYNAMIC=static
2110 AC_SUBST(LTSTATIC)dnl
2112 dnl ----------------------------------------------------------------
2113 if test $ol_enable_wrappers != no ; then
2114 AC_CHECK_HEADERS(tcpd.h,[
2115 AC_MSG_CHECKING([for TCP wrappers library])
2118 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
2120 int allow_severity = 0;
2121 int deny_severity = 0;
2123 struct request_info *req;
2126 ]])],[AC_MSG_RESULT([-lwrap])
2128 LIBS="$save_LIBS"],[
2133 int allow_severity = 0;
2134 int deny_severity = 0;
2136 struct request_info *req;
2139 ],[AC_MSG_RESULT([-lwrap -lnsl])
2141 LIBS="$save_LIBS -lnsl"],[
2144 LIBS=$save_LIBS])])],[have_wrappers=no])
2146 if test $have_wrappers = yes ; then
2147 AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
2149 elif test $ol_enable_wrappers = yes ; then
2150 AC_MSG_ERROR([could not find TCP wrappers, select apppropriate options or disable])
2152 AC_MSG_WARN([could not find TCP wrappers, support disabled])
2157 dnl ----------------------------------------------------------------
2158 if test $ol_enable_syslog != no ; then
2159 AC_CHECK_FUNC(openlog)
2160 if test $ac_cv_func_openlog = no && test $ol_enable_syslog = yes; then
2161 AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
2163 ol_enable_syslog=$ac_cv_func_openlog
2166 dnl ----------------------------------------------------------------
2169 if test $ol_enable_sql != no ; then
2170 AC_CHECK_HEADERS(sql.h sqlext.h,[],[
2171 AC_MSG_ERROR([could not locate SQL headers])
2175 LIBS="$LTHREAD_LIBS"
2177 AC_CHECK_LIB(iodbc,SQLDriverConnect,[have_iodbc=yes],[have_iodbc=no])
2178 if test $have_iodbc = yes ; then
2179 ol_link_sql="-liodbc"
2181 AC_CHECK_LIB(odbc,SQLDriverConnect,[have_odbc=yes],[have_odbc=no])
2182 if test $have_odbc = yes ; then
2183 ol_link_sql="-lodbc"
2189 if test $ol_link_sql != no ; then
2190 SLAPD_SQL_LIBS="$ol_link_sql"
2192 elif test $ol_enable_sql != auto ; then
2193 AC_MSG_ERROR([could not locate suitable ODBC library])
2197 dnl ----------------------------------------------------------------
2198 dnl International Components for Unicode
2200 if test "$ol_icu" = no ; then
2201 AC_MSG_WARN([ICU not available])
2205 dnl ----------------------------------------------------------------
2207 dnl Check for Cyrus SASL
2212 if test $ol_with_cyrus_sasl != no ; then
2213 AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
2215 if test $ac_cv_header_sasl_sasl_h = yes ||
2216 test $ac_cv_header_sasl_h = yes; then
2217 AC_CHECK_LIB(sasl2, sasl_client_init,
2218 [ol_link_sasl="-lsasl2"],
2219 [AC_CHECK_LIB(sasl, sasl_client_init,
2220 [ol_link_sasl="-lsasl"])])
2223 if test $ol_link_sasl = no ; then
2224 if test $ol_with_cyrus_sasl != auto ; then
2225 AC_MSG_ERROR([Could not locate Cyrus SASL])
2227 AC_MSG_WARN([Could not locate Cyrus SASL])
2228 AC_MSG_WARN([SASL authentication not supported!])
2229 if test $ol_link_tls = no ; then
2230 AC_MSG_WARN([Strong authentication not supported!])
2235 if test $ol_cv_sasl_compat = no ; then
2237 AC_MSG_ERROR([Cyrus SASL library located but is incompatible])
2240 AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
2241 SASL_LIBS="$ol_link_sasl"
2242 if test $ol_enable_spasswd != no ; then
2246 ac_save_LIBS="$LIBS"
2247 LIBS="$LIBS $ol_link_sasl"
2248 AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1,
2249 [define if your SASL library has sasl_version()])])
2250 LIBS="$ac_save_LIBS"
2256 AC_MSG_WARN([SASL authentication not supported!])
2257 if test $ol_link_tls = no ; then
2258 AC_MSG_WARN([Strong authentication not supported!])
2262 dnl ----------------------------------------------------------------
2263 dnl Check for entropy sources
2264 if test $cross_compiling != yes && test "$ac_cv_mingw32" != yes ; then
2266 if test -r /dev/urandom ; then
2268 elif test -r /idev/urandom ; then
2269 dev="/idev/urandom";
2270 elif test -r /dev/srandom ; then
2272 elif test -r /dev/random ; then
2274 elif test -r /idev/random ; then
2278 if test $dev != no ; then
2279 AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
2283 dnl ----------------------------------------------------------------
2285 dnl Check for fetch URL support
2286 dnl should be extended to support other fetch URL APIs
2289 if test $ol_with_fetch != no ; then
2292 if test $ol_cv_lib_fetch != no ; then
2293 LUTIL_LIBS="$LUTIL_LIBS $ol_link_fetch"
2294 ol_link_fetch=freebsd
2296 elif test $ol_with_fetch != auto ; then
2297 AC_MSG_ERROR(no suitable API for --with-fetch=$ol_with_fetch)
2301 dnl ----------------------------------------------------------------
2302 dnl FreeBSD (and others) have crypt(3) in -lcrypt
2303 if test $ol_enable_crypt != no ; then
2305 LIBS="$TLS_LIBS $LIBS"
2307 AC_CHECK_FUNC(crypt, [have_crypt=yes], [
2309 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
2310 have_crypt=yes], [have_crypt=no])])
2314 if test $have_crypt = yes ; then
2315 AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
2317 AC_MSG_WARN([could not find crypt])
2318 if test $ol_enable_crypt = yes ; then
2319 AC_MSG_ERROR([could not find crypt, select appropriate options or disable])
2322 AC_MSG_WARN([disabling crypt support])
2327 dnl ----------------------------------------------------------------
2328 dnl FreeBSD (and others) have setproctitle(3) in -lutil
2329 if test $ol_enable_proctitle != no ; then
2330 AC_CHECK_FUNC(setproctitle, [have_setproctitle=yes], [
2331 AC_CHECK_LIB(util, setproctitle,
2332 [have_setproctitle=yes
2333 LUTIL_LIBS="$LUTIL_LIBS -lutil"],
2334 [have_setproctitle=no
2335 AC_LIBOBJ(setproctitle)
2336 LIBSRCS="$LIBSRCS setproctitle.c"])])
2338 if test $have_setproctitle = yes ; then
2339 AC_DEFINE(HAVE_SETPROCTITLE,1,
2340 [define if setproctitle(3) is available])
2344 dnl ----------------------------------------------------------------
2345 dnl Check for SLPv2 Compliant API Library
2346 if test $ol_enable_slp != no ; then
2347 AC_CHECK_HEADERS( slp.h )
2349 if test $ac_cv_header_slp_h = yes ; then
2350 AC_CHECK_LIB(slp, SLPOpen, [have_slp=yes], [have_slp=no])
2351 if test $have_slp = yes ; then
2352 AC_DEFINE(HAVE_SLP, 1, [define if you have -lslp])
2353 SLAPD_SLP_LIBS=-lslp
2356 elif test $ol_enable_slp = yes ; then
2357 AC_MSG_ERROR([SLP not found])
2361 dnl ----------------------------------------------------------------
2362 dnl Check for multiple precision support
2363 if test "$ol_with_multiple_precision" != "no" ; then
2367 AC_CHECK_HEADERS(openssl/bn.h bn.h)
2368 AC_CHECK_HEADERS(openssl/crypto.h crypto.h)
2369 AC_CHECK_HEADERS( gmp.h )
2371 if test "$ol_with_tls" = "found" ; then
2375 if test "$ac_cv_header_openssl_bn_h" = "yes" ||
2376 test "$ac_cv_header_bn_h" = "yes" ; then
2380 if test "$ac_cv_header_openssl_crypto_h" = "yes" ||
2381 test "$ac_cv_header_crypto_h" = "yes" ; then
2382 ol_have_crypto_h=yes
2385 if test "$ol_have_bn_h" = "yes" &&
2386 test "$ol_have_crypto_h" = "yes" ; then
2391 if test $ac_cv_header_gmp_h = yes ; then
2392 AC_CHECK_LIB(gmp, __gmpz_add_ui, [have_gmp=yes], [have_gmp=no])
2393 if test $have_gmp = yes ; then
2398 AC_MSG_CHECKING([for multiple precision support])
2400 ol_mp_support="none"
2401 case "$ol_with_multiple_precision" in
2403 dnl preferred sequence:
2404 dnl - OpenSSL's BIGNUM (if libssl is already linked)
2407 if test "$ol_have_bignum" = "yes" ; then
2408 ol_mp_support="bignum"
2410 if test "$ol_have_gmp" = "yes" ; then
2416 if test "$ol_have_bignum" != "yes" ; then
2417 AC_MSG_ERROR([OpenSSL's BIGNUM not available])
2419 ol_mp_support="bignum"
2422 if test "$ol_have_gmp" != "yes" ; then
2423 AC_MSG_ERROR([GMP not available])
2428 if test "$ol_have_bignum" = "yes" ; then
2429 ol_mp_support="bignum"
2430 elif test "$ol_have_gmp" = "yes" ; then
2433 AC_MSG_ERROR([not available])
2438 case "$ol_mp_support" in
2440 AC_DEFINE(HAVE_BIGNUM, 1,
2441 [define if you have OpenSSL's BIGNUM])
2444 AC_DEFINE(HAVE_GMP, 1, [define if you have -lgmp])
2445 SLAPD_GMP_LIBS=-lgmp
2451 AC_MSG_RESULT($ol_mp_support)
2454 dnl ----------------------------------------------------------------
2455 dnl Checks for typedefs, structures, and compiler characteristics.
2457 AC_CHECK_TYPE(mode_t, int)
2458 AC_CHECK_TYPE(off_t, long)
2459 AC_CHECK_TYPE(pid_t, int)
2460 AC_CHECK_TYPE(ssize_t, [signed int])
2461 AC_CHECK_TYPE(caddr_t, [char *])
2462 AC_CHECK_TYPE(size_t, unsigned)
2464 AC_CHECK_TYPES([long long])
2465 AC_CHECK_TYPES([ptrdiff_t])
2467 AC_CHECK_TYPE([socklen_t],,
2468 [AC_DEFINE_UNQUOTED([socklen_t], [int],
2469 [Define to `int' if <sys/socket.h> does not define.])],
2470 [$ac_includes_default
2471 #ifdef HAVE_SYS_SOCKET_H
2472 #include <sys/socket.h>
2478 AC_CHECK_TYPE([sig_atomic_t],,
2479 [AC_DEFINE_UNQUOTED([sig_atomic_t], [int],
2480 [Define to `int' if <signal.h> does not define.])],
2481 [$ac_includes_default
2489 AC_CHECK_MEMBERS([struct stat.st_blksize])
2490 AC_CHECK_MEMBERS([struct passwd.pw_gecos],,,[$ac_includes_default
2492 AC_CHECK_MEMBERS([struct passwd.pw_passwd],,,[$ac_includes_default
2499 if test $cross_compiling = yes ; then
2500 AC_MSG_WARN([Crossing compiling... all bets are off!])
2501 AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
2506 AC_CHECK_SIZEOF(short)
2507 AC_CHECK_SIZEOF(int)
2508 AC_CHECK_SIZEOF(long)
2509 AC_CHECK_SIZEOF(wchar_t)
2511 if test "$ac_cv_sizeof_int" -lt 4 ; then
2512 AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
2514 AC_DEFINE(LBER_INT_T,long,[define to 32-bit or greater integer type])
2516 AC_DEFINE(LBER_INT_T,int,[define to 32-bit or greater integer type])
2519 AC_DEFINE(LBER_LEN_T,long,[define to large integer type])
2520 AC_DEFINE(LBER_SOCKET_T,int,[define to socket descriptor type])
2521 AC_DEFINE(LBER_TAG_T,long,[define to large integer type])
2523 dnl ----------------------------------------------------------------
2524 dnl Checks for library functions.
2527 if test $ac_cv_func_memcmp_working = no ; then
2528 AC_DEFINE(NEED_MEMCMP_REPLACEMENT,1,
2529 [define if memcmp is not 8-bit clean or is otherwise broken])
2536 dnl Check for NT specific routines
2537 AC_CHECK_FUNC(_spawnlp, AC_DEFINE(HAVE_SPAWNLP,1,[if you have spawnlp()]))
2539 AC_CHECK_FUNC(_snprintf, [ac_cv_func_snprintf=yes
2540 AC_DEFINE(snprintf, _snprintf, [define to snprintf routine])
2543 AC_CHECK_FUNC(_vsnprintf, [ac_cv_func_vsnprintf=yes
2544 AC_DEFINE(vsnprintf, _vsnprintf, [define to vsnprintf routine])
2549 if test $ac_cv_func_vprintf = yes ; then
2550 dnl check for vsnprintf
2551 AC_CHECK_FUNCS(snprintf vsnprintf)
2611 dnl We actually may need to replace more than this.
2612 AC_REPLACE_FUNCS(getopt getpeereid)
2614 if test "$ac_cv_func_getopt" != yes; then
2615 LIBSRCS="$LIBSRCS getopt.c"
2618 if test "$ac_cv_func_getpeereid" != yes; then
2619 AC_CHECK_FUNCS( getpeerucred )
2620 if test "$ac_cv_func_getpeerucred" != yes ; then
2621 AC_CHECK_MEMBERS([struct msghdr.msg_accrightslen],,,
2622 [$ac_includes_default
2623 #ifdef HAVE_SYS_SOCKET_H
2624 #include <sys/socket.h>
2626 if test "$ac_cv_member_struct_msghdr_msg_accrightslen" != yes; then
2627 AC_CHECK_MEMBERS([struct msghdr.msg_control],,,
2628 [$ac_includes_default
2629 #ifdef HAVE_SYS_SOCKET_H
2630 #include <sys/socket.h>
2634 LIBSRCS="$LIBSRCS getpeereid.c"
2637 if test "$ac_cv_func_snprintf" != yes ||
2638 test "$ac_cv_func_vsnprintf" != yes; then
2639 if test "$ac_cv_func_snprintf" != yes; then
2640 AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
2642 if test "$ac_cv_func_vsnprintf" != yes; then
2643 AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine])
2647 dnl ----------------------------------------------------------------
2648 dnl Sort out defines
2650 if test "$ol_enable_slapi" != no ; then
2651 dnl This check is done also if --enable-modules is used;
2652 dnl it is duplicated here, 'cause it'd be cached anyway
2653 AC_CHECK_HEADERS(ltdl.h)
2655 if test $ac_cv_header_ltdl_h != yes ; then
2656 AC_MSG_ERROR([could not locate <ltdl.h>])
2658 AC_CHECK_LIB(ltdl, lt_dlinit, [
2661 LIBSLAPITOOLS=../libslapi.a
2662 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
2663 ],[AC_MSG_ERROR([could not locate libtool -lltdl])])
2665 AC_DEFINE(LDAP_SLAPI,1, [define this to add SLAPI code])
2668 if test "$ol_enable_debug" != no ; then
2669 if test "$ol_enable_debug" = traditional; then
2670 AC_DEFINE(OLD_DEBUG,1,
2671 [define to use the original debug style])
2673 AC_DEFINE(LDAP_DEBUG,1,
2674 [define this to add debugging code])
2676 if test "$ol_enable_syslog" = yes ; then
2677 AC_DEFINE(LDAP_SYSLOG,1,
2678 [define this to add syslog code])
2680 if test "$ol_link_kbind" != no ; then
2681 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND,LDAP_VENDOR_VERSION,
2682 [define to LDAP VENDOR VERSION])
2684 if test "$ol_enable_proctitle" != no ; then
2685 AC_DEFINE(LDAP_PROCTITLE,1,
2686 [define this for LDAP process title support])
2688 if test "$ol_enable_referrals" != no ; then
2689 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION,
2690 [define to LDAP VENDOR VERSION])
2692 if test "$ol_enable_local" != no; then
2693 AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
2695 if test "$ol_link_ipv6" != no; then
2696 AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
2698 if test "$ol_enable_cleartext" != no ; then
2699 AC_DEFINE(SLAPD_CLEARTEXT,1,[define to support cleartext passwords])
2701 if test "$ol_enable_crypt" != no ; then
2702 AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords])
2704 if test "$ol_link_spasswd" != no ; then
2705 AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
2707 if test "$ol_enable_multimaster" != no ; then
2708 AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
2710 if test "$ol_enable_rlookups" != no ; then
2711 AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
2713 if test "$ol_enable_aci" != no ; then
2714 if test $ol_enable_dynacl = no ; then
2715 ol_enable_dynacl=yes
2716 AC_MSG_WARN([ACIs need dynacl])
2718 if test "$ol_enable_aci" = mod ; then
2719 MFLAG=SLAPD_MOD_DYNAMIC
2720 dnl remove this after moving servers/slapd/aci.c in contrib/slapd-modules/acl
2721 AC_MSG_ERROR([ACI build as dynamic module not supported (yet)])
2723 MFLAG=SLAPD_MOD_STATIC
2725 WITH_ACI_ENABLED=$ol_enable_aci
2726 AC_DEFINE_UNQUOTED(SLAPD_ACI_ENABLED,$MFLAG,[define to support per-object ACIs])
2730 if test "$ol_enable_dynacl" != no ; then
2731 AC_DEFINE(SLAP_DYNACL,1,[define to support run-time loadable ACL])
2734 if test "$ol_link_modules" != no ; then
2735 AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
2737 SLAPD_MODULES_LDFLAGS="-dlopen self"
2740 AC_DEFINE(SLAPD_MOD_STATIC,1,[statically linked module])
2741 AC_DEFINE(SLAPD_MOD_DYNAMIC,2,[dynamically linked module])
2743 if test "$ol_enable_bdb" != no ; then
2745 BUILD_BDB=$ol_enable_bdb
2746 if test "$ol_enable_bdb" = mod ; then
2747 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
2748 MFLAG=SLAPD_MOD_DYNAMIC
2750 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
2751 MFLAG=SLAPD_MOD_STATIC
2753 AC_DEFINE_UNQUOTED(SLAPD_BDB,$MFLAG,[define to support BDB backend])
2756 if test "$ol_enable_dnssrv" != no ; then
2758 BUILD_DNSSRV=$ol_enable_dnssrv
2759 if test "$ol_enable_dnssrv" = mod ; then
2760 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
2761 MFLAG=SLAPD_MOD_DYNAMIC
2763 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
2764 MFLAG=SLAPD_MOD_STATIC
2766 AC_DEFINE_UNQUOTED(SLAPD_DNSSRV,$MFLAG,[define to support DNS SRV backend])
2769 if test "$ol_enable_hdb" != no ; then
2771 BUILD_HDB=$ol_enable_hdb
2772 if test "$ol_enable_hdb" = mod ; then
2773 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-hdb"
2774 MFLAG=SLAPD_MOD_DYNAMIC
2776 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb"
2777 MFLAG=SLAPD_MOD_STATIC
2779 AC_DEFINE_UNQUOTED(SLAPD_HDB,$MFLAG,[define to support HDB backend])
2782 if test "$ol_enable_ldap" != no ; then
2784 BUILD_LDAP=$ol_enable_ldap
2785 if test "$ol_enable_ldap" = mod ; then
2786 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
2787 MFLAG=SLAPD_MOD_DYNAMIC
2789 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
2790 MFLAG=SLAPD_MOD_STATIC
2792 AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
2795 if test "$ol_link_ldbm" != no && test $ol_enable_ldbm != no; then
2797 BUILD_LDBM=$ol_enable_ldbm
2798 if test "$ol_enable_ldbm" = mod ; then
2799 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldbm"
2800 MFLAG=SLAPD_MOD_DYNAMIC
2802 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldbm"
2803 MFLAG=SLAPD_MOD_STATIC
2805 AC_DEFINE_UNQUOTED(SLAPD_LDBM,$MFLAG,[define to support LDBM backend])
2808 if test "$ol_enable_meta" != no ; then
2810 BUILD_META=$ol_enable_meta
2812 if test "$ol_enable_meta" = mod ; then
2813 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
2814 MFLAG=SLAPD_MOD_DYNAMIC
2816 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
2817 MFLAG=SLAPD_MOD_STATIC
2819 AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
2822 if test "$ol_enable_monitor" != no ; then
2824 BUILD_MONITOR=$ol_enable_monitor
2825 if test "$ol_enable_monitor" = mod ; then
2826 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
2827 MFLAG=SLAPD_MOD_DYNAMIC
2829 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
2830 MFLAG=SLAPD_MOD_STATIC
2832 AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
2835 if test "$ol_enable_null" != no ; then
2837 BUILD_NULL=$ol_enable_null
2838 if test "$ol_enable_null" = mod ; then
2839 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
2840 MFLAG=SLAPD_MOD_DYNAMIC
2842 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
2843 MFLAG=SLAPD_MOD_STATIC
2845 AC_DEFINE_UNQUOTED(SLAPD_NULL,$MFLAG,[define to support NULL backend])
2848 if test "$ol_enable_passwd" != no ; then
2850 BUILD_PASSWD=$ol_enable_passwd
2851 if test "$ol_enable_passwd" = mod ; then
2852 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
2853 MFLAG=SLAPD_MOD_DYNAMIC
2855 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
2856 MFLAG=SLAPD_MOD_STATIC
2858 AC_DEFINE_UNQUOTED(SLAPD_PASSWD,$MFLAG,[define to support PASSWD backend])
2861 if test "$ol_link_perl" != no ; then
2863 BUILD_PERL=$ol_enable_perl
2864 if test "$ol_enable_perl" = mod ; then
2865 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
2866 MFLAG=SLAPD_MOD_DYNAMIC
2868 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
2869 MFLAG=SLAPD_MOD_STATIC
2871 AC_DEFINE_UNQUOTED(SLAPD_PERL,$MFLAG,[define to support PERL backend])
2874 if test "$ol_enable_relay" != no ; then
2876 BUILD_RELAY=$ol_enable_relay
2877 if test "$ol_enable_relay" = mod ; then
2878 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-relay"
2879 MFLAG=SLAPD_MOD_DYNAMIC
2881 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-relay"
2882 MFLAG=SLAPD_MOD_STATIC
2884 AC_DEFINE_UNQUOTED(SLAPD_RELAY,$MFLAG,[define to support relay backend])
2887 if test "$ol_enable_shell" != no ; then
2888 if test "$ol_link_threads" != no ; then
2889 AC_MSG_WARN([Use of --without-threads is recommended with back-shell])
2892 BUILD_SHELL=$ol_enable_shell
2893 if test "$ol_enable_shell" = mod ; then
2894 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
2895 MFLAG=SLAPD_MOD_DYNAMIC
2897 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
2898 MFLAG=SLAPD_MOD_STATIC
2900 AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend])
2903 if test "$ol_link_sql" != no ; then
2905 BUILD_SQL=$ol_enable_sql
2906 if test "$ol_enable_sql" = mod; then
2907 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
2908 MFLAG=SLAPD_MOD_DYNAMIC
2910 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
2911 MFLAG=SLAPD_MOD_STATIC
2913 AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend])
2916 if test "$ol_enable_accesslog" != no ; then
2917 BUILD_ACCESSLOG=$ol_enable_accesslog
2918 if test "$ol_enable_accesslog" = mod ; then
2919 MFLAG=SLAPD_MOD_DYNAMIC
2920 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS accesslog.la"
2922 MFLAG=SLAPD_MOD_STATIC
2923 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS accesslog.o"
2925 AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay])
2928 if test "$ol_enable_dds" != no ; then
2929 BUILD_DDS=$ol_enable_dds
2930 if test "$ol_enable_dds" = mod ; then
2931 MFLAG=SLAPD_MOD_DYNAMIC
2932 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dds.la"
2934 MFLAG=SLAPD_MOD_STATIC
2935 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dds.o"
2937 AC_DEFINE_UNQUOTED(SLAPD_OVER_DDS,$MFLAG,[define for Dynamic Directory Services overlay])
2940 if test "$ol_enable_denyop" != no ; then
2941 BUILD_DENYOP=$ol_enable_denyop
2942 if test "$ol_enable_denyop" = mod ; then
2943 MFLAG=SLAPD_MOD_DYNAMIC
2944 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS denyop.la"
2946 MFLAG=SLAPD_MOD_STATIC
2947 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS denyop.o"
2949 AC_DEFINE_UNQUOTED(SLAPD_OVER_DENYOP,$MFLAG,[define for Deny Operation overlay])
2952 if test "$ol_enable_dyngroup" != no ; then
2953 BUILD_DYNGROUP=$ol_enable_dyngroup
2954 if test "$ol_enable_dyngroup" = mod ; then
2955 MFLAG=SLAPD_MOD_DYNAMIC
2956 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dyngroup.la"
2958 MFLAG=SLAPD_MOD_STATIC
2959 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dyngroup.o"
2961 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay])
2964 if test "$ol_enable_dynlist" != no ; then
2965 BUILD_DYNLIST=$ol_enable_dynlist
2966 if test "$ol_enable_dynlist" = mod ; then
2967 MFLAG=SLAPD_MOD_DYNAMIC
2968 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dynlist.la"
2970 MFLAG=SLAPD_MOD_STATIC
2971 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dynlist.o"
2973 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNLIST,$MFLAG,[define for Dynamic List overlay])
2976 if test "$ol_enable_lastmod" != no ; then
2977 BUILD_LASTMOD=$ol_enable_lastmod
2978 if test "$ol_enable_lastmod" = mod ; then
2979 MFLAG=SLAPD_MOD_DYNAMIC
2980 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS lastmod.la"
2982 MFLAG=SLAPD_MOD_STATIC
2983 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS lastmod.o"
2985 AC_DEFINE_UNQUOTED(SLAPD_OVER_LASTMOD,$MFLAG,[define for Last Modification overlay])
2988 if test "$ol_enable_ppolicy" != no ; then
2989 BUILD_PPOLICY=$ol_enable_ppolicy
2990 if test "$ol_enable_ppolicy" = mod ; then
2991 MFLAG=SLAPD_MOD_DYNAMIC
2992 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS ppolicy.la"
2994 MFLAG=SLAPD_MOD_STATIC
2995 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS ppolicy.o"
2997 AC_DEFINE_UNQUOTED(SLAPD_OVER_PPOLICY,$MFLAG,[define for Password Policy overlay])
3000 if test "$ol_enable_proxycache" != no ; then
3001 BUILD_PROXYCACHE=$ol_enable_proxycache
3002 if test "$ol_enable_proxycache" = mod ; then
3003 MFLAG=SLAPD_MOD_DYNAMIC
3004 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS pcache.la"
3006 MFLAG=SLAPD_MOD_STATIC
3007 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS pcache.o"
3009 AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay])
3012 if test "$ol_enable_refint" != no ; then
3013 BUILD_REFINT=$ol_enable_refint
3014 if test "$ol_enable_refint" = mod ; then
3015 MFLAG=SLAPD_MOD_DYNAMIC
3016 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la"
3018 MFLAG=SLAPD_MOD_STATIC
3019 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS refint.o"
3021 AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay])
3024 if test "$ol_enable_retcode" != no ; then
3025 BUILD_RETCODE=$ol_enable_retcode
3026 if test "$ol_enable_retcode" = mod ; then
3027 MFLAG=SLAPD_MOD_DYNAMIC
3028 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS retcode.la"
3030 MFLAG=SLAPD_MOD_STATIC
3031 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS retcode.o"
3033 AC_DEFINE_UNQUOTED(SLAPD_OVER_RETCODE,$MFLAG,[define for Referential Integrity overlay])
3036 if test "$ol_enable_rwm" != no ; then
3038 BUILD_RWM=$ol_enable_rwm
3039 if test "$ol_enable_rwm" = mod ; then
3040 MFLAG=SLAPD_MOD_DYNAMIC
3041 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS rwm.la"
3043 MFLAG=SLAPD_MOD_STATIC
3044 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS rwm_x.o"
3046 AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
3049 if test "$ol_enable_syncprov" != no ; then
3050 BUILD_SYNCPROV=$ol_enable_syncprov
3051 if test "$ol_enable_syncprov" = mod ; then
3052 MFLAG=SLAPD_MOD_DYNAMIC
3053 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS syncprov.la"
3055 MFLAG=SLAPD_MOD_STATIC
3056 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS syncprov.o"
3058 AC_DEFINE_UNQUOTED(SLAPD_OVER_SYNCPROV,$MFLAG,[define for Syncrepl Provider overlay])
3061 if test "$ol_enable_translucent" != no ; then
3062 BUILD_TRANSLUCENT=$ol_enable_translucent
3063 if test "$ol_enable_translucent" = mod ; then
3064 MFLAG=SLAPD_MOD_DYNAMIC
3065 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS translucent.la"
3067 MFLAG=SLAPD_MOD_STATIC
3068 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS translucent.o"
3070 AC_DEFINE_UNQUOTED(SLAPD_OVER_TRANSLUCENT,$MFLAG,[define for Translucent Proxy overlay])
3073 if test "$ol_enable_unique" != no ; then
3074 BUILD_UNIQUE=$ol_enable_unique
3075 if test "$ol_enable_unique" = mod ; then
3076 MFLAG=SLAPD_MOD_DYNAMIC
3077 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la"
3079 MFLAG=SLAPD_MOD_STATIC
3080 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS unique.o"
3082 AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay])
3085 if test "$ol_enable_valsort" != no ; then
3086 BUILD_VALSORT=$ol_enable_valsort
3087 if test "$ol_enable_valsort" = mod ; then
3088 MFLAG=SLAPD_MOD_DYNAMIC
3089 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS valsort.la"
3091 MFLAG=SLAPD_MOD_STATIC
3092 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS valsort.o"
3094 AC_DEFINE_UNQUOTED(SLAPD_OVER_VALSORT,$MFLAG,[define for Value Sorting overlay])
3097 if test "$ol_enable_slurpd" != no &&
3098 test "$ol_link_threads" != no &&
3099 test $BUILD_SLAPD = yes ; then
3103 if test "$ol_enable_rewrite" != no ; then
3104 AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta])
3108 if test "$ol_enable_slapi" != no ; then
3109 AC_DEFINE(ENABLE_SLAPI,1,[define to enable slapi library])
3111 SLAPD_SLAPI_DEPEND=libslapi.a
3114 dnl ----------------------------------------------------------------
3117 dnl For Windows build, we don't want to include -dlopen flags.
3118 dnl They hurt more than they help.
3121 if test "$ac_cv_mingw32" = yes ; then
3123 SLAPD_MODULES_LDFLAGS=
3132 AC_SUBST(WITH_MODULES_ENABLED)
3133 AC_SUBST(WITH_ACI_ENABLED)
3134 AC_SUBST(BUILD_THREAD)
3135 AC_SUBST(BUILD_LIBS_DYNAMIC)
3137 AC_SUBST(BUILD_SLAPD)
3139 AC_SUBST(BUILD_SLAPI)
3140 AC_SUBST(SLAPD_SLAPI_DEPEND)
3143 AC_SUBST(BUILD_DNSSRV)
3145 AC_SUBST(BUILD_LDAP)
3146 AC_SUBST(BUILD_LDBM)
3147 AC_SUBST(BUILD_META)
3148 AC_SUBST(BUILD_MONITOR)
3149 AC_SUBST(BUILD_NULL)
3150 AC_SUBST(BUILD_PASSWD)
3151 AC_SUBST(BUILD_RELAY)
3152 AC_SUBST(BUILD_PERL)
3153 AC_SUBST(BUILD_SHELL)
3156 AC_SUBST(BUILD_ACCESSLOG)
3158 AC_SUBST(BUILD_DENYOP)
3159 AC_SUBST(BUILD_DYNGROUP)
3160 AC_SUBST(BUILD_DYNLIST)
3161 AC_SUBST(BUILD_LASTMOD)
3162 AC_SUBST(BUILD_PPOLICY)
3163 AC_SUBST(BUILD_PROXYCACHE)
3164 AC_SUBST(BUILD_REFINT)
3165 AC_SUBST(BUILD_RETCODE)
3167 AC_SUBST(BUILD_SYNCPROV)
3168 AC_SUBST(BUILD_TRANSLUCENT)
3169 AC_SUBST(BUILD_UNIQUE)
3170 AC_SUBST(BUILD_VALSORT)
3171 AC_SUBST(BUILD_SLURPD)
3174 AC_SUBST(SLAPD_LIBS)
3175 AC_SUBST(SLURPD_LIBS)
3177 AC_SUBST(LTHREAD_LIBS)
3178 AC_SUBST(LUTIL_LIBS)
3181 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
3182 AC_SUBST(SLAPD_MODULES_LDFLAGS)
3184 AC_SUBST(SLAPD_NO_STATIC)
3185 AC_SUBST(SLAPD_STATIC_BACKENDS)
3186 AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
3187 AC_SUBST(SLAPD_STATIC_OVERLAYS)
3188 AC_SUBST(SLAPD_DYNAMIC_OVERLAYS)
3190 AC_SUBST(PERL_CPPFLAGS)
3191 AC_SUBST(SLAPD_PERL_LDFLAGS)
3192 AC_SUBST(MOD_PERL_LDFLAGS)
3198 AC_SUBST(MODULES_LIBS)
3199 AC_SUBST(SLAPI_LIBS)
3201 AC_SUBST(LIBSLAPITOOLS)
3205 AC_SUBST(SLAPD_SLP_LIBS)
3206 AC_SUBST(SLAPD_GMP_LIBS)
3208 AC_SUBST(SLAPD_SQL_LDFLAGS)
3209 AC_SUBST(SLAPD_SQL_LIBS)
3210 AC_SUBST(SLAPD_SQL_INCLUDES)
3212 dnl ----------------------------------------------------------------
3213 dnl final help output
3214 AC_ARG_WITH(xxinstall,[
3215 See INSTALL file for further details.])
3217 dnl ----------------------------------------------------------------
3221 AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.mk]
3222 [doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk]
3223 [doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk]
3224 [doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk]
3225 [doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk]
3226 [doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk]
3227 [doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk]
3228 [clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk]
3229 [clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk]
3230 [include/Makefile:build/top.mk:include/Makefile.in]
3231 [libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk]
3232 [libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk]
3233 [libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk]
3234 [libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk]
3235 [libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk]
3236 [libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk]
3237 [libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk]
3238 [servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk]
3239 [servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk]
3240 [servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk]
3241 [servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk]
3242 [servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk]
3243 [servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk]
3244 [servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/mod.mk]
3245 [servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk]
3246 [servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk]
3247 [servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk]
3248 [servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk]
3249 [servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk]
3250 [servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk]
3251 [servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk]
3252 [servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk]
3253 [servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk]
3254 [servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk]
3255 [servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk]
3256 [servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk]
3257 [servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk]
3258 [tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk]
3260 [tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk])
3262 AC_CONFIG_COMMANDS([default],[[
3265 BACKENDSC="servers/slapd/backends.c"
3266 echo "Making $BACKENDSC"
3268 cat > $BACKENDSC << ENDX
3269 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3271 * Copyright 1998-2006 The OpenLDAP Foundation.
3272 * All rights reserved.
3274 * Redistribution and use in source and binary forms, with or without
3275 * modification, are permitted only as authorized by the OpenLDAP
3278 * A copy of this license is available in the file LICENSE in the
3279 * top-level directory of the distribution or, alternatively, at
3280 * <http://www.OpenLDAP.org/license.html>.
3282 /* This file is automatically generated by configure; please do not edit. */
3284 #include "portable.h"
3288 if test "${STATIC_BACKENDS}"; then
3289 for b in config ${STATIC_BACKENDS}; do
3290 bb=`echo "${b}" | sed -e 's/back-//'`
3291 cat >> $BACKENDSC << ENDX
3292 extern BI_init ${bb}_back_initialize;
3296 cat >> $BACKENDSC << ENDX
3298 BackendInfo slap_binfo[] = {
3301 for b in config ${STATIC_BACKENDS}; do
3302 bb=`echo "${b}" | sed -e 's/back-//'`
3303 echo " Add ${bb} ..."
3304 cat >> $BACKENDSC << ENDX
3305 { "${bb}", ${bb}_back_initialize },
3309 cat >> $BACKENDSC << ENDX
3313 /* end of generated file */
3316 OVERLAYSC="servers/slapd/overlays/statover.c"
3317 echo "Making $OVERLAYSC"
3319 cat > $OVERLAYSC << ENDX
3320 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3322 * Copyright 1998-2006 The OpenLDAP Foundation.
3323 * All rights reserved.
3325 * Redistribution and use in source and binary forms, with or without
3326 * modification, are permitted only as authorized by the OpenLDAP
3329 * A copy of this license is available in the file LICENSE in the
3330 * top-level directory of the distribution or, alternatively, at
3331 * <http://www.OpenLDAP.org/license.html>.
3333 /* This file is automatically generated by configure; please do not edit. */
3335 #include "portable.h"
3339 if test "${STATIC_OVERLAYS}"; then
3340 for o in ${STATIC_OVERLAYS}; do
3341 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3342 cat >> $OVERLAYSC << ENDX
3343 extern OV_init ${oo}_initialize;
3348 cat >> $OVERLAYSC << ENDX
3350 OverlayInit slap_oinfo[] = {
3353 if test "${STATIC_OVERLAYS}"; then
3354 for o in ${STATIC_OVERLAYS}; do
3355 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3356 echo " Add ${oo} ..."
3357 cat >> $OVERLAYSC << ENDX
3358 { "${oo}", ${oo}_initialize },
3363 cat >> $OVERLAYSC << ENDX
3367 /* end of generated file */
3370 echo Please run \"make depend\" to build dependencies
3372 STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"
3373 STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS"