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
1605 dnl case "$target" in
1607 dnl AC_CHECK_FUNCS(nanosleep)
1608 dnl ol_replace_broken_yield=yes
1612 if test $ol_replace_broken_yield = yes ; then
1613 AC_DEFINE([REPLACE_BROKEN_YIELD],1,
1614 [define if sched_yield yields the entire process])
1617 dnl Check if select causes an yield
1618 if test $ol_with_yielding_select = auto ; then
1619 AC_CACHE_CHECK([if select yields when using pthreads],
1620 ol_cv_pthread_select_yields,[
1621 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1622 #include <sys/types.h>
1623 #include <sys/time.h>
1625 #include <pthread.h>
1627 #define NULL (void*) 0
1630 static int fildes[2];
1632 static void *task(p)
1644 FD_SET(fildes[0], &rfds);
1646 /* we're not interested in any fds */
1647 i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
1654 exit(0); /* if we exit here, the select blocked the whole process */
1657 int main(argc, argv)
1663 /* create a pipe to select */
1664 if(pipe(&fildes[0])) {
1669 #ifdef HAVE_PTHREAD_SETCONCURRENCY
1670 (void) pthread_setconcurrency(2);
1672 #ifdef HAVE_THR_SETCONCURRENCY
1673 /* Set Solaris LWP concurrency to 2 */
1674 thr_setconcurrency(2);
1678 #if HAVE_PTHREADS < 6
1679 pthread_create(&t, pthread_attr_default, task, NULL);
1681 pthread_create(&t, NULL, task, NULL);
1684 /* make sure task runs first */
1687 #elif defined( HAVE_SCHED_YIELD )
1689 #elif defined( HAVE_PTHREAD_YIELD )
1694 }]])],[ol_cv_pthread_select_yields=no],[ol_cv_pthread_select_yields=yes],[ol_cv_pthread_select_yields=cross])])
1696 if test $ol_cv_pthread_select_yields = cross ; then
1697 AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])
1700 if test $ol_cv_pthread_select_yields = yes ; then
1701 ol_with_yielding_select=yes
1706 CPPFLAGS="$save_CPPFLAGS"
1709 AC_MSG_ERROR([could not locate usable POSIX Threads])
1713 if test $ol_with_threads = posix ; then
1714 AC_MSG_ERROR([could not locate POSIX Threads])
1719 case $ol_with_threads in auto | yes | mach)
1721 dnl check for Mach CThreads
1722 AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
1723 if test $ac_cv_header_mach_cthreads_h = yes ; then
1724 ol_with_threads=found
1726 dnl check for cthreads support in current $LIBS
1727 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1729 if test $ol_link_threads = no ; then
1731 dnl this test needs work
1732 AC_CACHE_CHECK([for cthread_fork with -all_load],
1733 [ol_cv_cthread_all_load], [
1736 LIBS="-all_load $LIBS"
1737 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <mach/cthreads.h>]], [[
1738 cthread_fork((void *)0, (void *)0);
1739 ]])],[ol_cv_cthread_all_load=yes],[ol_cv_cthread_all_load=no])
1740 dnl restore the LIBS
1744 if test $ol_cv_cthread_all_load = yes ; then
1745 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
1746 ol_link_threads=mach
1747 ol_with_threads=found
1751 elif test $ac_cv_header_cthreads_h = yes ; then
1752 dnl Hurd variant of Mach Cthreads
1753 dnl uses <cthreads.h> and -lthreads
1755 ol_with_threads=found
1759 LIBS="$LIBS -lthreads"
1760 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1763 if test $ol_link_threads = yes ; then
1764 LTHREAD_LIBS="-lthreads"
1765 ol_link_threads=mach
1766 ol_with_threads=found
1768 AC_MSG_ERROR([could not link with Mach CThreads])
1771 elif test $ol_with_threads = mach ; then
1772 AC_MSG_ERROR([could not locate Mach CThreads])
1775 if test $ol_link_threads = mach ; then
1776 AC_DEFINE(HAVE_MACH_CTHREADS,1,
1777 [define if you have Mach Cthreads])
1778 elif test $ol_with_threads = found ; then
1779 AC_MSG_ERROR([could not link with Mach CThreads])
1784 case $ol_with_threads in auto | yes | pth)
1786 AC_CHECK_HEADERS(pth.h)
1788 if test $ac_cv_header_pth_h = yes ; then
1789 AC_CHECK_LIB(pth, pth_version, [have_pth=yes], [have_pth=no])
1791 if test $have_pth = yes ; then
1792 AC_DEFINE(HAVE_GNU_PTH,1,[if you have GNU Pth])
1793 LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
1795 ol_with_threads=found
1797 if test $ol_with_yielding_select = auto ; then
1798 ol_with_yielding_select=yes
1805 case $ol_with_threads in auto | yes | lwp)
1807 dnl check for SunOS5 LWP
1808 AC_CHECK_HEADERS(thread.h synch.h)
1809 if test $ac_cv_header_thread_h = yes &&
1810 test $ac_cv_header_synch_h = yes ; then
1811 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
1813 if test $have_thr = yes ; then
1814 AC_DEFINE(HAVE_THR,1,
1815 [if you have Solaris LWP (thr) package])
1816 LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
1819 if test $ol_with_yielding_select = auto ; then
1820 ol_with_yielding_select=yes
1823 dnl Check for setconcurreny functions
1825 thr_setconcurrency \
1826 thr_getconcurrency \
1831 dnl check for SunOS4 LWP
1832 AC_CHECK_HEADERS(lwp/lwp.h)
1833 if test $ac_cv_header_lwp_lwp_h = yes ; then
1834 AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
1836 if test $have_lwp = yes ; then
1837 AC_DEFINE(HAVE_LWP,1,
1838 [if you have SunOS LWP package])
1839 LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
1842 if test $ol_with_yielding_select = auto ; then
1843 ol_with_yielding_select=no
1850 if test $ol_with_yielding_select = yes ; then
1851 AC_DEFINE(HAVE_YIELDING_SELECT,1,
1852 [define if select implicitly yields])
1855 if test $ol_with_threads = manual ; then
1856 dnl User thinks he can manually configure threads.
1859 AC_MSG_WARN([thread defines and link options must be set manually])
1861 AC_CHECK_HEADERS(pthread.h sched.h)
1862 AC_CHECK_FUNCS(sched_yield pthread_yield)
1863 OL_HEADER_LINUX_THREADS
1865 AC_CHECK_HEADERS(mach/cthreads.h)
1866 AC_CHECK_HEADERS(lwp/lwp.h)
1867 AC_CHECK_HEADERS(thread.h synch.h)
1870 if test $ol_link_threads != no && test $ol_link_threads != nt ; then
1871 dnl needed to get reentrant/threadsafe versions
1873 AC_DEFINE(REENTRANT,1)
1874 AC_DEFINE(_REENTRANT,1)
1875 AC_DEFINE(THREAD_SAFE,1)
1876 AC_DEFINE(_THREAD_SAFE,1)
1877 AC_DEFINE(THREADSAFE,1)
1878 AC_DEFINE(_THREADSAFE,1)
1879 AC_DEFINE(_SGI_MP_SOURCE,1)
1881 dnl The errno declaration may dependent upon _REENTRANT.
1882 dnl If it does, we must link with thread support.
1883 AC_CACHE_CHECK([for thread specific errno],
1884 [ol_cv_errno_thread_specific], [
1885 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <errno.h>]], [[errno = 0;]])],[ol_cv_errno_thread_specific=yes],[ol_cv_errno_thread_specific=no])
1888 dnl The h_errno declaration may dependent upon _REENTRANT.
1889 dnl If it does, we must link with thread support.
1890 AC_CACHE_CHECK([for thread specific h_errno],
1891 [ol_cv_h_errno_thread_specific], [
1892 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])
1895 if test $ol_cv_errno_thread_specific != yes ||
1896 test $ol_cv_h_errno_thread_specific != yes ; then
1897 LIBS="$LTHREAD_LIBS $LIBS"
1901 dnl When in thread environment, use
1902 dnl #if defined( HAVE_REENTRANT_FUNCTIONS ) || defined( HAVE_FUNC_R )
1905 dnl # if defined( HAVE_THREADS )
1909 dnl # if defined( HAVE_THREADS )
1914 dnl HAVE_REENTRANT_FUNCTIONS is derived from:
1915 dnl _POSIX_REENTRANT_FUNCTIONS
1916 dnl _POSIX_THREAD_SAFE_FUNCTIONS
1917 dnl _POSIX_THREADSAFE_FUNCTIONS
1919 dnl and is currently defined in <ldap_pvt_thread.h>
1921 dnl HAVE_THREADS is defined by <ldap_pvt_thread.h> iff -UNO_THREADS
1923 dnl libldap/*.c should only include <ldap_pvt_thread.h> iff
1924 dnl LDAP_R_COMPILE is defined. ie:
1925 dnl #ifdef LDAP_R_COMPILE
1926 dnl # include <ldap_pvt_thread.h>
1929 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
1930 dnl specifically for compiling the threadsafe version of
1931 dnl the ldap library (-lldap_r).
1933 dnl dnl check for reentrant/threadsafe functions
1935 dnl dnl note: these should only be used when linking
1936 dnl dnl with $LTHREAD_LIBS
1938 dnl save_CPPFLAGS="$CPPFLAGS"
1939 dnl save_LIBS="$LIBS"
1940 dnl LIBS="$LTHREAD_LIBS $LIBS"
1941 dnl AC_CHECK_FUNCS( \
1943 dnl gethostbyaddr_r gethostbyname_r \
1944 dnl feof_unlocked unlocked_feof \
1945 dnl putc_unlocked unlocked_putc \
1946 dnl flockfile ftrylockfile \
1948 dnl CPPFLAGS="$save_CPPFLAGS"
1949 dnl LIBS="$save_LIBS"
1952 if test $ol_link_threads = no ; then
1953 if test $ol_with_threads = yes ; then
1954 AC_MSG_ERROR([no suitable thread support])
1957 if test $ol_with_threads = auto ; then
1958 AC_MSG_WARN([no suitable thread support, disabling threads])
1962 AC_DEFINE(NO_THREADS,1,
1963 [define if you have (or want) no threads])
1970 if test $ol_link_threads != no ; then
1971 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1,
1972 [define to 1 if library is thread safe])
1975 dnl ----------------------------------------------------------------
1976 dnl Tests for reentrant functions necessary to build -lldap_r
1979 gethostbyname_r gethostbyaddr_r \
1982 if test "$ac_cv_func_ctime_r" = no ; then
1983 ol_cv_func_ctime_r_nargs=0
1985 OL_FUNC_CTIME_R_NARGS
1986 dnl OL_FUNC_CTIME_R_TYPE
1989 if test "$ac_cv_func_gethostbyname_r" = yes ; then
1990 OL_FUNC_GETHOSTBYNAME_R_NARGS
1992 ol_cv_func_gethostbyname_r_nargs=0
1995 if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
1996 OL_FUNC_GETHOSTBYADDR_R_NARGS
1998 ol_cv_func_gethostbyaddr_r_nargs=0
2001 dnl ----------------------------------------------------------------
2004 case $ol_enable_ldbm_api in auto | berkeley | bcompat)
2006 if test $ol_enable_ldbm_api = bcompat; then \
2007 OL_BERKELEY_COMPAT_DB
2012 if test $ol_cv_berkeley_db != no ; then
2013 AC_DEFINE(HAVE_BERKELEY_DB,1,
2014 [define this if Berkeley DB is available])
2016 ol_link_ldbm=berkeley
2017 ol_enable_ldbm_api=berkeley
2019 if test $ol_enable_ldbm_type = hash ; then
2020 AC_DEFINE(LDBM_USE_DBHASH,1,
2021 [define this to use DBHASH w/ LDBM backend])
2023 AC_DEFINE(LDBM_USE_DBBTREE,1,
2024 [define this to use DBBTREE w/ LDBM backend])
2027 dnl $ol_cv_lib_db should be yes or -ldb
2028 dnl (it could be no, but that would be an error
2029 if test $ol_cv_lib_db != yes ; then
2030 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
2036 if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
2037 if test $ol_link_ldbm != berkeley ; then
2038 AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
2042 if test $ol_cv_bdb_compat != yes ; then
2043 AC_MSG_ERROR([BDB/HDB: BerkeleyDB version incompatible])
2048 if test $ol_link_ldbm = no && test $ol_enable_ldbm_type = btree ; then
2049 AC_MSG_WARN([Could not find LDBM with BTREE support])
2050 ol_enable_ldbm_api=none
2053 if test $ol_enable_ldbm_api = auto || test $ol_enable_ldbm_api = mdbm ; then
2056 if test $ol_cv_mdbm = yes ; then
2058 ol_enable_ldbm_api=mdbm
2059 if test $ol_cv_lib_mdbm != yes ; then
2060 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_mdbm"
2065 if test $ol_enable_ldbm_api = auto || test $ol_enable_ldbm_api = gdbm ; then
2068 if test $ol_cv_gdbm = yes ; then
2070 ol_enable_ldbm_api=gdbm
2072 if test $ol_cv_lib_gdbm != yes ; then
2073 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
2078 if test $ol_enable_ldbm_api = ndbm ; then
2081 if test $ol_cv_ndbm = yes ; then
2083 ol_enable_ldbm_api=ndbm
2085 if test $ol_cv_lib_ndbm != yes ; then
2086 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
2091 if test $ol_link_ldbm = no && test $ol_enable_ldbm != no ; then
2092 AC_MSG_ERROR([could not find suitable LDBM backend])
2095 if test $ol_enable_bdb = yes ||
2096 test $ol_enable_hdb = yes ||
2097 test $ol_enable_ldbm = yes ; then
2098 SLAPD_LIBS="$SLAPD_LIBS \$(LDBM_LIBS)"
2101 dnl ----------------------------------------------------------------
2103 if test $ol_enable_dynamic = yes && test $enable_shared = yes ; then
2104 BUILD_LIBS_DYNAMIC=shared
2105 AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
2108 BUILD_LIBS_DYNAMIC=static
2111 AC_SUBST(LTSTATIC)dnl
2113 dnl ----------------------------------------------------------------
2114 if test $ol_enable_wrappers != no ; then
2115 AC_CHECK_HEADERS(tcpd.h,[
2116 AC_MSG_CHECKING([for TCP wrappers library])
2119 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
2121 int allow_severity = 0;
2122 int deny_severity = 0;
2124 struct request_info *req;
2127 ]])],[AC_MSG_RESULT([-lwrap])
2129 LIBS="$save_LIBS"],[
2134 int allow_severity = 0;
2135 int deny_severity = 0;
2137 struct request_info *req;
2140 ],[AC_MSG_RESULT([-lwrap -lnsl])
2142 LIBS="$save_LIBS -lnsl"],[
2145 LIBS=$save_LIBS])])],[have_wrappers=no])
2147 if test $have_wrappers = yes ; then
2148 AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
2150 elif test $ol_enable_wrappers = yes ; then
2151 AC_MSG_ERROR([could not find TCP wrappers, select apppropriate options or disable])
2153 AC_MSG_WARN([could not find TCP wrappers, support disabled])
2158 dnl ----------------------------------------------------------------
2159 if test $ol_enable_syslog != no ; then
2160 AC_CHECK_FUNC(openlog)
2161 if test $ac_cv_func_openlog = no && test $ol_enable_syslog = yes; then
2162 AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
2164 ol_enable_syslog=$ac_cv_func_openlog
2167 dnl ----------------------------------------------------------------
2170 if test $ol_enable_sql != no ; then
2171 AC_CHECK_HEADERS(sql.h sqlext.h,[],[
2172 AC_MSG_ERROR([could not locate SQL headers])
2176 LIBS="$LTHREAD_LIBS"
2178 AC_CHECK_LIB(iodbc,SQLDriverConnect,[have_iodbc=yes],[have_iodbc=no])
2179 if test $have_iodbc = yes ; then
2180 ol_link_sql="-liodbc"
2182 AC_CHECK_LIB(odbc,SQLDriverConnect,[have_odbc=yes],[have_odbc=no])
2183 if test $have_odbc = yes ; then
2184 ol_link_sql="-lodbc"
2190 if test $ol_link_sql != no ; then
2191 SLAPD_SQL_LIBS="$ol_link_sql"
2193 elif test $ol_enable_sql != auto ; then
2194 AC_MSG_ERROR([could not locate suitable ODBC library])
2198 dnl ----------------------------------------------------------------
2199 dnl International Components for Unicode
2201 if test "$ol_icu" = no ; then
2202 AC_MSG_WARN([ICU not available])
2206 dnl ----------------------------------------------------------------
2208 dnl Check for Cyrus SASL
2213 if test $ol_with_cyrus_sasl != no ; then
2214 AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
2216 if test $ac_cv_header_sasl_sasl_h = yes ||
2217 test $ac_cv_header_sasl_h = yes; then
2218 AC_CHECK_LIB(sasl2, sasl_client_init,
2219 [ol_link_sasl="-lsasl2"],
2220 [AC_CHECK_LIB(sasl, sasl_client_init,
2221 [ol_link_sasl="-lsasl"])])
2224 if test $ol_link_sasl = no ; then
2225 if test $ol_with_cyrus_sasl != auto ; then
2226 AC_MSG_ERROR([Could not locate Cyrus SASL])
2228 AC_MSG_WARN([Could not locate Cyrus SASL])
2229 AC_MSG_WARN([SASL authentication not supported!])
2230 if test $ol_link_tls = no ; then
2231 AC_MSG_WARN([Strong authentication not supported!])
2236 if test $ol_cv_sasl_compat = no ; then
2238 AC_MSG_ERROR([Cyrus SASL library located but is incompatible])
2241 AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
2242 SASL_LIBS="$ol_link_sasl"
2243 if test $ol_enable_spasswd != no ; then
2247 ac_save_LIBS="$LIBS"
2248 LIBS="$LIBS $ol_link_sasl"
2249 AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1,
2250 [define if your SASL library has sasl_version()])])
2251 LIBS="$ac_save_LIBS"
2257 AC_MSG_WARN([SASL authentication not supported!])
2258 if test $ol_link_tls = no ; then
2259 AC_MSG_WARN([Strong authentication not supported!])
2263 dnl ----------------------------------------------------------------
2264 dnl Check for entropy sources
2265 if test $cross_compiling != yes && test "$ac_cv_mingw32" != yes ; then
2267 if test -r /dev/urandom ; then
2269 elif test -r /idev/urandom ; then
2270 dev="/idev/urandom";
2271 elif test -r /dev/srandom ; then
2273 elif test -r /dev/random ; then
2275 elif test -r /idev/random ; then
2279 if test $dev != no ; then
2280 AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
2284 dnl ----------------------------------------------------------------
2286 dnl Check for fetch URL support
2287 dnl should be extended to support other fetch URL APIs
2290 if test $ol_with_fetch != no ; then
2293 if test $ol_cv_lib_fetch != no ; then
2294 LUTIL_LIBS="$LUTIL_LIBS $ol_link_fetch"
2295 ol_link_fetch=freebsd
2297 elif test $ol_with_fetch != auto ; then
2298 AC_MSG_ERROR(no suitable API for --with-fetch=$ol_with_fetch)
2302 dnl ----------------------------------------------------------------
2303 dnl FreeBSD (and others) have crypt(3) in -lcrypt
2304 if test $ol_enable_crypt != no ; then
2306 LIBS="$TLS_LIBS $LIBS"
2308 AC_CHECK_FUNC(crypt, [have_crypt=yes], [
2310 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
2311 have_crypt=yes], [have_crypt=no])])
2315 if test $have_crypt = yes ; then
2316 AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
2318 AC_MSG_WARN([could not find crypt])
2319 if test $ol_enable_crypt = yes ; then
2320 AC_MSG_ERROR([could not find crypt, select appropriate options or disable])
2323 AC_MSG_WARN([disabling crypt support])
2328 dnl ----------------------------------------------------------------
2329 dnl FreeBSD (and others) have setproctitle(3) in -lutil
2330 if test $ol_enable_proctitle != no ; then
2331 AC_CHECK_FUNC(setproctitle, [have_setproctitle=yes], [
2332 AC_CHECK_LIB(util, setproctitle,
2333 [have_setproctitle=yes
2334 LUTIL_LIBS="$LUTIL_LIBS -lutil"],
2335 [have_setproctitle=no
2336 AC_LIBOBJ(setproctitle)
2337 LIBSRCS="$LIBSRCS setproctitle.c"])])
2339 if test $have_setproctitle = yes ; then
2340 AC_DEFINE(HAVE_SETPROCTITLE,1,
2341 [define if setproctitle(3) is available])
2345 dnl ----------------------------------------------------------------
2346 dnl Check for SLPv2 Compliant API Library
2347 if test $ol_enable_slp != no ; then
2348 AC_CHECK_HEADERS( slp.h )
2350 if test $ac_cv_header_slp_h = yes ; then
2351 AC_CHECK_LIB(slp, SLPOpen, [have_slp=yes], [have_slp=no])
2352 if test $have_slp = yes ; then
2353 AC_DEFINE(HAVE_SLP, 1, [define if you have -lslp])
2354 SLAPD_SLP_LIBS=-lslp
2357 elif test $ol_enable_slp = yes ; then
2358 AC_MSG_ERROR([SLP not found])
2362 dnl ----------------------------------------------------------------
2363 dnl Check for multiple precision support
2364 if test "$ol_with_multiple_precision" != "no" ; then
2368 AC_CHECK_HEADERS(openssl/bn.h bn.h)
2369 AC_CHECK_HEADERS(openssl/crypto.h crypto.h)
2370 AC_CHECK_HEADERS( gmp.h )
2372 if test "$ol_with_tls" = "found" ; then
2376 if test "$ac_cv_header_openssl_bn_h" = "yes" ||
2377 test "$ac_cv_header_bn_h" = "yes" ; then
2381 if test "$ac_cv_header_openssl_crypto_h" = "yes" ||
2382 test "$ac_cv_header_crypto_h" = "yes" ; then
2383 ol_have_crypto_h=yes
2386 if test "$ol_have_bn_h" = "yes" &&
2387 test "$ol_have_crypto_h" = "yes" ; then
2392 if test $ac_cv_header_gmp_h = yes ; then
2393 AC_CHECK_LIB(gmp, __gmpz_add_ui, [have_gmp=yes], [have_gmp=no])
2394 if test $have_gmp = yes ; then
2399 AC_MSG_CHECKING([for multiple precision support])
2401 ol_mp_support="none"
2402 case "$ol_with_multiple_precision" in
2404 dnl preferred sequence:
2405 dnl - OpenSSL's BIGNUM (if libssl is already linked)
2408 if test "$ol_have_bignum" = "yes" ; then
2409 ol_mp_support="bignum"
2411 if test "$ol_have_gmp" = "yes" ; then
2417 if test "$ol_have_bignum" != "yes" ; then
2418 AC_MSG_ERROR([OpenSSL's BIGNUM not available])
2420 ol_mp_support="bignum"
2423 if test "$ol_have_gmp" != "yes" ; then
2424 AC_MSG_ERROR([GMP not available])
2429 if test "$ol_have_bignum" = "yes" ; then
2430 ol_mp_support="bignum"
2431 elif test "$ol_have_gmp" = "yes" ; then
2434 AC_MSG_ERROR([not available])
2439 case "$ol_mp_support" in
2441 AC_DEFINE(HAVE_BIGNUM, 1,
2442 [define if you have OpenSSL's BIGNUM])
2445 AC_DEFINE(HAVE_GMP, 1, [define if you have -lgmp])
2446 SLAPD_GMP_LIBS=-lgmp
2452 AC_MSG_RESULT($ol_mp_support)
2455 dnl ----------------------------------------------------------------
2456 dnl Checks for typedefs, structures, and compiler characteristics.
2458 AC_CHECK_TYPE(mode_t, int)
2459 AC_CHECK_TYPE(off_t, long)
2460 AC_CHECK_TYPE(pid_t, int)
2461 AC_CHECK_TYPE(ssize_t, [signed int])
2462 AC_CHECK_TYPE(caddr_t, [char *])
2463 AC_CHECK_TYPE(size_t, unsigned)
2465 AC_CHECK_TYPES([long long])
2466 AC_CHECK_TYPES([ptrdiff_t])
2468 AC_CHECK_TYPE([socklen_t],,
2469 [AC_DEFINE_UNQUOTED([socklen_t], [int],
2470 [Define to `int' if <sys/socket.h> does not define.])],
2471 [$ac_includes_default
2472 #ifdef HAVE_SYS_SOCKET_H
2473 #include <sys/socket.h>
2479 AC_CHECK_TYPE([sig_atomic_t],,
2480 [AC_DEFINE_UNQUOTED([sig_atomic_t], [int],
2481 [Define to `int' if <signal.h> does not define.])],
2482 [$ac_includes_default
2490 AC_CHECK_MEMBERS([struct stat.st_blksize])
2491 AC_CHECK_MEMBERS([struct passwd.pw_gecos],,,[$ac_includes_default
2493 AC_CHECK_MEMBERS([struct passwd.pw_passwd],,,[$ac_includes_default
2500 if test $cross_compiling = yes ; then
2501 AC_MSG_WARN([Crossing compiling... all bets are off!])
2502 AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
2507 AC_CHECK_SIZEOF(short)
2508 AC_CHECK_SIZEOF(int)
2509 AC_CHECK_SIZEOF(long)
2510 AC_CHECK_SIZEOF(wchar_t)
2512 if test "$ac_cv_sizeof_int" -lt 4 ; then
2513 AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
2515 AC_DEFINE(LBER_INT_T,long,[define to 32-bit or greater integer type])
2517 AC_DEFINE(LBER_INT_T,int,[define to 32-bit or greater integer type])
2520 AC_DEFINE(LBER_LEN_T,long,[define to large integer type])
2521 AC_DEFINE(LBER_SOCKET_T,int,[define to socket descriptor type])
2522 AC_DEFINE(LBER_TAG_T,long,[define to large integer type])
2524 dnl ----------------------------------------------------------------
2525 dnl Checks for library functions.
2528 if test $ac_cv_func_memcmp_working = no ; then
2529 AC_DEFINE(NEED_MEMCMP_REPLACEMENT,1,
2530 [define if memcmp is not 8-bit clean or is otherwise broken])
2537 dnl Check for NT specific routines
2538 AC_CHECK_FUNC(_spawnlp, AC_DEFINE(HAVE_SPAWNLP,1,[if you have spawnlp()]))
2540 AC_CHECK_FUNC(_snprintf, [ac_cv_func_snprintf=yes
2541 AC_DEFINE(snprintf, _snprintf, [define to snprintf routine])
2544 AC_CHECK_FUNC(_vsnprintf, [ac_cv_func_vsnprintf=yes
2545 AC_DEFINE(vsnprintf, _vsnprintf, [define to vsnprintf routine])
2550 if test $ac_cv_func_vprintf = yes ; then
2551 dnl check for vsnprintf
2552 AC_CHECK_FUNCS(snprintf vsnprintf)
2612 dnl We actually may need to replace more than this.
2613 AC_REPLACE_FUNCS(getopt getpeereid)
2615 if test "$ac_cv_func_getopt" != yes; then
2616 LIBSRCS="$LIBSRCS getopt.c"
2619 if test "$ac_cv_func_getpeereid" != yes; then
2620 AC_CHECK_FUNCS( getpeerucred )
2621 if test "$ac_cv_func_getpeerucred" != yes ; then
2622 AC_CHECK_MEMBERS([struct msghdr.msg_accrightslen],,,
2623 [$ac_includes_default
2624 #ifdef HAVE_SYS_SOCKET_H
2625 #include <sys/socket.h>
2627 if test "$ac_cv_member_struct_msghdr_msg_accrightslen" != yes; then
2628 AC_CHECK_MEMBERS([struct msghdr.msg_control],,,
2629 [$ac_includes_default
2630 #ifdef HAVE_SYS_SOCKET_H
2631 #include <sys/socket.h>
2635 LIBSRCS="$LIBSRCS getpeereid.c"
2638 if test "$ac_cv_func_snprintf" != yes ||
2639 test "$ac_cv_func_vsnprintf" != yes; then
2640 if test "$ac_cv_func_snprintf" != yes; then
2641 AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
2643 if test "$ac_cv_func_vsnprintf" != yes; then
2644 AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine])
2648 dnl ----------------------------------------------------------------
2649 dnl Sort out defines
2651 if test "$ol_enable_slapi" != no ; then
2652 dnl This check is done also if --enable-modules is used;
2653 dnl it is duplicated here, 'cause it'd be cached anyway
2654 AC_CHECK_HEADERS(ltdl.h)
2656 if test $ac_cv_header_ltdl_h != yes ; then
2657 AC_MSG_ERROR([could not locate <ltdl.h>])
2659 AC_CHECK_LIB(ltdl, lt_dlinit, [
2662 LIBSLAPITOOLS=../libslapi.a
2663 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
2664 ],[AC_MSG_ERROR([could not locate libtool -lltdl])])
2666 AC_DEFINE(LDAP_SLAPI,1, [define this to add SLAPI code])
2669 if test "$ol_enable_debug" != no ; then
2670 if test "$ol_enable_debug" = traditional; then
2671 AC_DEFINE(OLD_DEBUG,1,
2672 [define to use the original debug style])
2674 AC_DEFINE(LDAP_DEBUG,1,
2675 [define this to add debugging code])
2677 if test "$ol_enable_syslog" = yes ; then
2678 AC_DEFINE(LDAP_SYSLOG,1,
2679 [define this to add syslog code])
2681 if test "$ol_link_kbind" != no ; then
2682 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND,LDAP_VENDOR_VERSION,
2683 [define to LDAP VENDOR VERSION])
2685 if test "$ol_enable_proctitle" != no ; then
2686 AC_DEFINE(LDAP_PROCTITLE,1,
2687 [define this for LDAP process title support])
2689 if test "$ol_enable_referrals" != no ; then
2690 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION,
2691 [define to LDAP VENDOR VERSION])
2693 if test "$ol_enable_local" != no; then
2694 AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
2696 if test "$ol_link_ipv6" != no; then
2697 AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
2699 if test "$ol_enable_cleartext" != no ; then
2700 AC_DEFINE(SLAPD_CLEARTEXT,1,[define to support cleartext passwords])
2702 if test "$ol_enable_crypt" != no ; then
2703 AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords])
2705 if test "$ol_link_spasswd" != no ; then
2706 AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
2708 if test "$ol_enable_multimaster" != no ; then
2709 AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
2711 if test "$ol_enable_rlookups" != no ; then
2712 AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
2714 if test "$ol_enable_aci" != no ; then
2715 if test $ol_enable_dynacl = no ; then
2716 ol_enable_dynacl=yes
2717 AC_MSG_WARN([ACIs need dynacl])
2719 if test "$ol_enable_aci" = mod ; then
2720 MFLAG=SLAPD_MOD_DYNAMIC
2721 dnl remove this after moving servers/slapd/aci.c in contrib/slapd-modules/acl
2722 AC_MSG_ERROR([ACI build as dynamic module not supported (yet)])
2724 MFLAG=SLAPD_MOD_STATIC
2726 WITH_ACI_ENABLED=$ol_enable_aci
2727 AC_DEFINE_UNQUOTED(SLAPD_ACI_ENABLED,$MFLAG,[define to support per-object ACIs])
2731 if test "$ol_enable_dynacl" != no ; then
2732 AC_DEFINE(SLAP_DYNACL,1,[define to support run-time loadable ACL])
2735 if test "$ol_link_modules" != no ; then
2736 AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
2738 SLAPD_MODULES_LDFLAGS="-dlopen self"
2741 AC_DEFINE(SLAPD_MOD_STATIC,1,[statically linked module])
2742 AC_DEFINE(SLAPD_MOD_DYNAMIC,2,[dynamically linked module])
2744 if test "$ol_enable_bdb" != no ; then
2746 BUILD_BDB=$ol_enable_bdb
2747 if test "$ol_enable_bdb" = mod ; then
2748 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
2749 MFLAG=SLAPD_MOD_DYNAMIC
2751 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
2752 MFLAG=SLAPD_MOD_STATIC
2754 AC_DEFINE_UNQUOTED(SLAPD_BDB,$MFLAG,[define to support BDB backend])
2757 if test "$ol_enable_dnssrv" != no ; then
2759 BUILD_DNSSRV=$ol_enable_dnssrv
2760 if test "$ol_enable_dnssrv" = mod ; then
2761 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
2762 MFLAG=SLAPD_MOD_DYNAMIC
2764 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
2765 MFLAG=SLAPD_MOD_STATIC
2767 AC_DEFINE_UNQUOTED(SLAPD_DNSSRV,$MFLAG,[define to support DNS SRV backend])
2770 if test "$ol_enable_hdb" != no ; then
2772 BUILD_HDB=$ol_enable_hdb
2773 if test "$ol_enable_hdb" = mod ; then
2774 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-hdb"
2775 MFLAG=SLAPD_MOD_DYNAMIC
2777 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb"
2778 MFLAG=SLAPD_MOD_STATIC
2780 AC_DEFINE_UNQUOTED(SLAPD_HDB,$MFLAG,[define to support HDB backend])
2783 if test "$ol_enable_ldap" != no ; then
2785 BUILD_LDAP=$ol_enable_ldap
2786 if test "$ol_enable_ldap" = mod ; then
2787 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
2788 MFLAG=SLAPD_MOD_DYNAMIC
2790 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
2791 MFLAG=SLAPD_MOD_STATIC
2793 AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
2796 if test "$ol_link_ldbm" != no && test $ol_enable_ldbm != no; then
2798 BUILD_LDBM=$ol_enable_ldbm
2799 if test "$ol_enable_ldbm" = mod ; then
2800 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldbm"
2801 MFLAG=SLAPD_MOD_DYNAMIC
2803 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldbm"
2804 MFLAG=SLAPD_MOD_STATIC
2806 AC_DEFINE_UNQUOTED(SLAPD_LDBM,$MFLAG,[define to support LDBM backend])
2809 if test "$ol_enable_meta" != no ; then
2811 BUILD_META=$ol_enable_meta
2813 if test "$ol_enable_meta" = mod ; then
2814 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
2815 MFLAG=SLAPD_MOD_DYNAMIC
2817 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
2818 MFLAG=SLAPD_MOD_STATIC
2820 AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
2823 if test "$ol_enable_monitor" != no ; then
2825 BUILD_MONITOR=$ol_enable_monitor
2826 if test "$ol_enable_monitor" = mod ; then
2827 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
2828 MFLAG=SLAPD_MOD_DYNAMIC
2830 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
2831 MFLAG=SLAPD_MOD_STATIC
2833 AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
2836 if test "$ol_enable_null" != no ; then
2838 BUILD_NULL=$ol_enable_null
2839 if test "$ol_enable_null" = mod ; then
2840 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
2841 MFLAG=SLAPD_MOD_DYNAMIC
2843 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
2844 MFLAG=SLAPD_MOD_STATIC
2846 AC_DEFINE_UNQUOTED(SLAPD_NULL,$MFLAG,[define to support NULL backend])
2849 if test "$ol_enable_passwd" != no ; then
2851 BUILD_PASSWD=$ol_enable_passwd
2852 if test "$ol_enable_passwd" = mod ; then
2853 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
2854 MFLAG=SLAPD_MOD_DYNAMIC
2856 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
2857 MFLAG=SLAPD_MOD_STATIC
2859 AC_DEFINE_UNQUOTED(SLAPD_PASSWD,$MFLAG,[define to support PASSWD backend])
2862 if test "$ol_link_perl" != no ; then
2864 BUILD_PERL=$ol_enable_perl
2865 if test "$ol_enable_perl" = mod ; then
2866 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
2867 MFLAG=SLAPD_MOD_DYNAMIC
2869 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
2870 MFLAG=SLAPD_MOD_STATIC
2872 AC_DEFINE_UNQUOTED(SLAPD_PERL,$MFLAG,[define to support PERL backend])
2875 if test "$ol_enable_relay" != no ; then
2877 BUILD_RELAY=$ol_enable_relay
2878 if test "$ol_enable_relay" = mod ; then
2879 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-relay"
2880 MFLAG=SLAPD_MOD_DYNAMIC
2882 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-relay"
2883 MFLAG=SLAPD_MOD_STATIC
2885 AC_DEFINE_UNQUOTED(SLAPD_RELAY,$MFLAG,[define to support relay backend])
2888 if test "$ol_enable_shell" != no ; then
2889 if test "$ol_link_threads" != no ; then
2890 AC_MSG_WARN([Use of --without-threads is recommended with back-shell])
2893 BUILD_SHELL=$ol_enable_shell
2894 if test "$ol_enable_shell" = mod ; then
2895 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
2896 MFLAG=SLAPD_MOD_DYNAMIC
2898 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
2899 MFLAG=SLAPD_MOD_STATIC
2901 AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend])
2904 if test "$ol_link_sql" != no ; then
2906 BUILD_SQL=$ol_enable_sql
2907 if test "$ol_enable_sql" = mod; then
2908 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
2909 MFLAG=SLAPD_MOD_DYNAMIC
2911 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
2912 MFLAG=SLAPD_MOD_STATIC
2914 AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend])
2917 if test "$ol_enable_accesslog" != no ; then
2918 BUILD_ACCESSLOG=$ol_enable_accesslog
2919 if test "$ol_enable_accesslog" = mod ; then
2920 MFLAG=SLAPD_MOD_DYNAMIC
2921 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS accesslog.la"
2923 MFLAG=SLAPD_MOD_STATIC
2924 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS accesslog.o"
2926 AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay])
2929 if test "$ol_enable_dds" != no ; then
2930 BUILD_DDS=$ol_enable_dds
2931 if test "$ol_enable_dds" = mod ; then
2932 MFLAG=SLAPD_MOD_DYNAMIC
2933 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dds.la"
2935 MFLAG=SLAPD_MOD_STATIC
2936 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dds.o"
2938 AC_DEFINE_UNQUOTED(SLAPD_OVER_DDS,$MFLAG,[define for Dynamic Directory Services overlay])
2941 if test "$ol_enable_denyop" != no ; then
2942 BUILD_DENYOP=$ol_enable_denyop
2943 if test "$ol_enable_denyop" = mod ; then
2944 MFLAG=SLAPD_MOD_DYNAMIC
2945 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS denyop.la"
2947 MFLAG=SLAPD_MOD_STATIC
2948 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS denyop.o"
2950 AC_DEFINE_UNQUOTED(SLAPD_OVER_DENYOP,$MFLAG,[define for Deny Operation overlay])
2953 if test "$ol_enable_dyngroup" != no ; then
2954 BUILD_DYNGROUP=$ol_enable_dyngroup
2955 if test "$ol_enable_dyngroup" = mod ; then
2956 MFLAG=SLAPD_MOD_DYNAMIC
2957 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dyngroup.la"
2959 MFLAG=SLAPD_MOD_STATIC
2960 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dyngroup.o"
2962 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay])
2965 if test "$ol_enable_dynlist" != no ; then
2966 BUILD_DYNLIST=$ol_enable_dynlist
2967 if test "$ol_enable_dynlist" = mod ; then
2968 MFLAG=SLAPD_MOD_DYNAMIC
2969 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dynlist.la"
2971 MFLAG=SLAPD_MOD_STATIC
2972 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dynlist.o"
2974 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNLIST,$MFLAG,[define for Dynamic List overlay])
2977 if test "$ol_enable_lastmod" != no ; then
2978 BUILD_LASTMOD=$ol_enable_lastmod
2979 if test "$ol_enable_lastmod" = mod ; then
2980 MFLAG=SLAPD_MOD_DYNAMIC
2981 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS lastmod.la"
2983 MFLAG=SLAPD_MOD_STATIC
2984 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS lastmod.o"
2986 AC_DEFINE_UNQUOTED(SLAPD_OVER_LASTMOD,$MFLAG,[define for Last Modification overlay])
2989 if test "$ol_enable_ppolicy" != no ; then
2990 BUILD_PPOLICY=$ol_enable_ppolicy
2991 if test "$ol_enable_ppolicy" = mod ; then
2992 MFLAG=SLAPD_MOD_DYNAMIC
2993 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS ppolicy.la"
2995 MFLAG=SLAPD_MOD_STATIC
2996 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS ppolicy.o"
2998 AC_DEFINE_UNQUOTED(SLAPD_OVER_PPOLICY,$MFLAG,[define for Password Policy overlay])
3001 if test "$ol_enable_proxycache" != no ; then
3002 BUILD_PROXYCACHE=$ol_enable_proxycache
3003 if test "$ol_enable_proxycache" = mod ; then
3004 MFLAG=SLAPD_MOD_DYNAMIC
3005 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS pcache.la"
3007 MFLAG=SLAPD_MOD_STATIC
3008 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS pcache.o"
3010 AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay])
3013 if test "$ol_enable_refint" != no ; then
3014 BUILD_REFINT=$ol_enable_refint
3015 if test "$ol_enable_refint" = mod ; then
3016 MFLAG=SLAPD_MOD_DYNAMIC
3017 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la"
3019 MFLAG=SLAPD_MOD_STATIC
3020 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS refint.o"
3022 AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay])
3025 if test "$ol_enable_retcode" != no ; then
3026 BUILD_RETCODE=$ol_enable_retcode
3027 if test "$ol_enable_retcode" = mod ; then
3028 MFLAG=SLAPD_MOD_DYNAMIC
3029 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS retcode.la"
3031 MFLAG=SLAPD_MOD_STATIC
3032 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS retcode.o"
3034 AC_DEFINE_UNQUOTED(SLAPD_OVER_RETCODE,$MFLAG,[define for Referential Integrity overlay])
3037 if test "$ol_enable_rwm" != no ; then
3039 BUILD_RWM=$ol_enable_rwm
3040 if test "$ol_enable_rwm" = mod ; then
3041 MFLAG=SLAPD_MOD_DYNAMIC
3042 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS rwm.la"
3044 MFLAG=SLAPD_MOD_STATIC
3045 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS rwm_x.o"
3047 AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
3050 if test "$ol_enable_syncprov" != no ; then
3051 BUILD_SYNCPROV=$ol_enable_syncprov
3052 if test "$ol_enable_syncprov" = mod ; then
3053 MFLAG=SLAPD_MOD_DYNAMIC
3054 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS syncprov.la"
3056 MFLAG=SLAPD_MOD_STATIC
3057 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS syncprov.o"
3059 AC_DEFINE_UNQUOTED(SLAPD_OVER_SYNCPROV,$MFLAG,[define for Syncrepl Provider overlay])
3062 if test "$ol_enable_translucent" != no ; then
3063 BUILD_TRANSLUCENT=$ol_enable_translucent
3064 if test "$ol_enable_translucent" = mod ; then
3065 MFLAG=SLAPD_MOD_DYNAMIC
3066 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS translucent.la"
3068 MFLAG=SLAPD_MOD_STATIC
3069 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS translucent.o"
3071 AC_DEFINE_UNQUOTED(SLAPD_OVER_TRANSLUCENT,$MFLAG,[define for Translucent Proxy overlay])
3074 if test "$ol_enable_unique" != no ; then
3075 BUILD_UNIQUE=$ol_enable_unique
3076 if test "$ol_enable_unique" = mod ; then
3077 MFLAG=SLAPD_MOD_DYNAMIC
3078 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la"
3080 MFLAG=SLAPD_MOD_STATIC
3081 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS unique.o"
3083 AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay])
3086 if test "$ol_enable_valsort" != no ; then
3087 BUILD_VALSORT=$ol_enable_valsort
3088 if test "$ol_enable_valsort" = mod ; then
3089 MFLAG=SLAPD_MOD_DYNAMIC
3090 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS valsort.la"
3092 MFLAG=SLAPD_MOD_STATIC
3093 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS valsort.o"
3095 AC_DEFINE_UNQUOTED(SLAPD_OVER_VALSORT,$MFLAG,[define for Value Sorting overlay])
3098 if test "$ol_enable_slurpd" != no &&
3099 test "$ol_link_threads" != no &&
3100 test $BUILD_SLAPD = yes ; then
3104 if test "$ol_enable_rewrite" != no ; then
3105 AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta])
3109 if test "$ol_enable_slapi" != no ; then
3110 AC_DEFINE(ENABLE_SLAPI,1,[define to enable slapi library])
3112 SLAPD_SLAPI_DEPEND=libslapi.a
3115 dnl ----------------------------------------------------------------
3118 dnl For Windows build, we don't want to include -dlopen flags.
3119 dnl They hurt more than they help.
3122 if test "$ac_cv_mingw32" = yes ; then
3124 SLAPD_MODULES_LDFLAGS=
3133 AC_SUBST(WITH_MODULES_ENABLED)
3134 AC_SUBST(WITH_ACI_ENABLED)
3135 AC_SUBST(BUILD_THREAD)
3136 AC_SUBST(BUILD_LIBS_DYNAMIC)
3138 AC_SUBST(BUILD_SLAPD)
3140 AC_SUBST(BUILD_SLAPI)
3141 AC_SUBST(SLAPD_SLAPI_DEPEND)
3144 AC_SUBST(BUILD_DNSSRV)
3146 AC_SUBST(BUILD_LDAP)
3147 AC_SUBST(BUILD_LDBM)
3148 AC_SUBST(BUILD_META)
3149 AC_SUBST(BUILD_MONITOR)
3150 AC_SUBST(BUILD_NULL)
3151 AC_SUBST(BUILD_PASSWD)
3152 AC_SUBST(BUILD_RELAY)
3153 AC_SUBST(BUILD_PERL)
3154 AC_SUBST(BUILD_SHELL)
3157 AC_SUBST(BUILD_ACCESSLOG)
3159 AC_SUBST(BUILD_DENYOP)
3160 AC_SUBST(BUILD_DYNGROUP)
3161 AC_SUBST(BUILD_DYNLIST)
3162 AC_SUBST(BUILD_LASTMOD)
3163 AC_SUBST(BUILD_PPOLICY)
3164 AC_SUBST(BUILD_PROXYCACHE)
3165 AC_SUBST(BUILD_REFINT)
3166 AC_SUBST(BUILD_RETCODE)
3168 AC_SUBST(BUILD_SYNCPROV)
3169 AC_SUBST(BUILD_TRANSLUCENT)
3170 AC_SUBST(BUILD_UNIQUE)
3171 AC_SUBST(BUILD_VALSORT)
3172 AC_SUBST(BUILD_SLURPD)
3175 AC_SUBST(SLAPD_LIBS)
3176 AC_SUBST(SLURPD_LIBS)
3178 AC_SUBST(LTHREAD_LIBS)
3179 AC_SUBST(LUTIL_LIBS)
3182 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
3183 AC_SUBST(SLAPD_MODULES_LDFLAGS)
3185 AC_SUBST(SLAPD_NO_STATIC)
3186 AC_SUBST(SLAPD_STATIC_BACKENDS)
3187 AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
3188 AC_SUBST(SLAPD_STATIC_OVERLAYS)
3189 AC_SUBST(SLAPD_DYNAMIC_OVERLAYS)
3191 AC_SUBST(PERL_CPPFLAGS)
3192 AC_SUBST(SLAPD_PERL_LDFLAGS)
3193 AC_SUBST(MOD_PERL_LDFLAGS)
3199 AC_SUBST(MODULES_LIBS)
3200 AC_SUBST(SLAPI_LIBS)
3202 AC_SUBST(LIBSLAPITOOLS)
3206 AC_SUBST(SLAPD_SLP_LIBS)
3207 AC_SUBST(SLAPD_GMP_LIBS)
3209 AC_SUBST(SLAPD_SQL_LDFLAGS)
3210 AC_SUBST(SLAPD_SQL_LIBS)
3211 AC_SUBST(SLAPD_SQL_INCLUDES)
3213 dnl ----------------------------------------------------------------
3214 dnl final help output
3215 AC_ARG_WITH(xxinstall,[
3216 See INSTALL file for further details.])
3218 dnl ----------------------------------------------------------------
3222 AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.mk]
3223 [doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk]
3224 [doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk]
3225 [doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk]
3226 [doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk]
3227 [doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk]
3228 [doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk]
3229 [clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk]
3230 [clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk]
3231 [include/Makefile:build/top.mk:include/Makefile.in]
3232 [libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk]
3233 [libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk]
3234 [libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk]
3235 [libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk]
3236 [libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk]
3237 [libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk]
3238 [libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk]
3239 [servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk]
3240 [servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk]
3241 [servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk]
3242 [servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk]
3243 [servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk]
3244 [servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk]
3245 [servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/mod.mk]
3246 [servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk]
3247 [servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk]
3248 [servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk]
3249 [servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk]
3250 [servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk]
3251 [servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk]
3252 [servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk]
3253 [servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk]
3254 [servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk]
3255 [servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk]
3256 [servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk]
3257 [servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk]
3258 [servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk]
3259 [tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk]
3261 [tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk])
3263 AC_CONFIG_COMMANDS([default],[[
3266 BACKENDSC="servers/slapd/backends.c"
3267 echo "Making $BACKENDSC"
3269 cat > $BACKENDSC << ENDX
3270 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3272 * Copyright 1998-2006 The OpenLDAP Foundation.
3273 * All rights reserved.
3275 * Redistribution and use in source and binary forms, with or without
3276 * modification, are permitted only as authorized by the OpenLDAP
3279 * A copy of this license is available in the file LICENSE in the
3280 * top-level directory of the distribution or, alternatively, at
3281 * <http://www.OpenLDAP.org/license.html>.
3283 /* This file is automatically generated by configure; please do not edit. */
3285 #include "portable.h"
3289 if test "${STATIC_BACKENDS}"; then
3290 for b in config ${STATIC_BACKENDS}; do
3291 bb=`echo "${b}" | sed -e 's/back-//'`
3292 cat >> $BACKENDSC << ENDX
3293 extern BI_init ${bb}_back_initialize;
3297 cat >> $BACKENDSC << ENDX
3299 BackendInfo slap_binfo[] = {
3302 for b in config ${STATIC_BACKENDS}; do
3303 bb=`echo "${b}" | sed -e 's/back-//'`
3304 echo " Add ${bb} ..."
3305 cat >> $BACKENDSC << ENDX
3306 { "${bb}", ${bb}_back_initialize },
3310 cat >> $BACKENDSC << ENDX
3314 /* end of generated file */
3317 OVERLAYSC="servers/slapd/overlays/statover.c"
3318 echo "Making $OVERLAYSC"
3320 cat > $OVERLAYSC << ENDX
3321 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3323 * Copyright 1998-2006 The OpenLDAP Foundation.
3324 * All rights reserved.
3326 * Redistribution and use in source and binary forms, with or without
3327 * modification, are permitted only as authorized by the OpenLDAP
3330 * A copy of this license is available in the file LICENSE in the
3331 * top-level directory of the distribution or, alternatively, at
3332 * <http://www.OpenLDAP.org/license.html>.
3334 /* This file is automatically generated by configure; please do not edit. */
3336 #include "portable.h"
3340 if test "${STATIC_OVERLAYS}"; then
3341 for o in ${STATIC_OVERLAYS}; do
3342 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3343 cat >> $OVERLAYSC << ENDX
3344 extern OV_init ${oo}_initialize;
3349 cat >> $OVERLAYSC << ENDX
3351 OverlayInit slap_oinfo[] = {
3354 if test "${STATIC_OVERLAYS}"; then
3355 for o in ${STATIC_OVERLAYS}; do
3356 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3357 echo " Add ${oo} ..."
3358 cat >> $OVERLAYSC << ENDX
3359 { "${oo}", ${oo}_initialize },
3364 cat >> $OVERLAYSC << ENDX
3368 /* end of generated file */
3371 echo Please run \"make depend\" to build dependencies
3373 STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"
3374 STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS"