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 AC_CONFIG_SRCDIR(build/version.sh)dnl
31 dnl ----------------------------------------------------------------
32 dnl OpenLDAP Autoconf Macros
33 builtin(include, build/openldap.m4)dnl
34 dnl ================================================================
36 AC_CONFIG_AUX_DIR(build)dnl
38 eval `$ac_aux_dir/version.sh`
39 if test -z "$OL_STRING"; then
40 AC_MSG_ERROR([could not determine version])
43 if test -f "$ac_aux_dir/shtool" && test ! -d $ac_aux_dir/shtool; then
44 ac_cv_shtool="$ac_aux_dir/shtool"
46 AC_MSG_ERROR([no shtool found in $ac_aux_dir])
49 SHTOOL="$ac_cv_shtool"
50 dnl AC_SUBST(SHTOOL)dnl
52 TB="`$SHTOOL echo -e '%B' 2>/dev/null`"
53 TN="`$SHTOOL echo -e '%b' 2>/dev/null`"
56 if test -d $ac_aux_dir/CVS; then
57 OPENLDAP_CVS="(from CVS sources) "
60 echo "Configuring ${TB}${OL_STRING}${TN} ${OPENLDAP_CVS}..."
62 dnl Determine host platform
63 dnl we try not to use this for much
64 AC_CANONICAL_TARGET([])
66 AM_INIT_AUTOMAKE([$OL_PACKAGE],[$OL_VERSION], [no defines])dnl
69 AC_DEFINE_UNQUOTED(OPENLDAP_PACKAGE,"$PACKAGE",Package)
70 AC_DEFINE_UNQUOTED(OPENLDAP_VERSION,"$VERSION",Version)
72 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION,$OL_API_INC,Version)
73 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MAJOR,$OL_MAJOR,Major)
74 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MINOR,$OL_MINOR,Minor)
75 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_PATCH,$OL_PATCH,Patch)
77 OPENLDAP_LIBRELEASE=$OL_API_LIB_RELEASE
78 AC_SUBST(OPENLDAP_LIBRELEASE)dnl
80 OPENLDAP_LIBVERSION=$OL_API_LIB_VERSION
81 AC_SUBST(OPENLDAP_LIBVERSION)dnl
83 OPENLDAP_RELEASE_DATE="$OL_RELEASE_DATE"
84 AC_SUBST(OPENLDAP_RELEASE_DATE)dnl
86 dnl We use autoconf features new to 2.59. Later versions like won't work.
87 dnl aclocal.m4 should be built using aclocal from automake 1.5
88 dnl libtool 1.5 should be installed.
89 AC_PREREQ(2.59)dnl Required Autoconf version
92 /* begin of portable.h.pre */
93 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
95 * Copyright 1998-2006 The OpenLDAP Foundation
96 * All rights reserved.
98 * Redistribution and use in source and binary forms, with or without
99 * modification, are permitted only as authorized by the OpenLDAP
102 * A copy of this license is available in the file LICENSE in the
103 * top-level directory of the distribution or, alternatively, at
104 * <http://www.OpenLDAP.org/license.html>.
107 #ifndef _LDAP_PORTABLE_H
108 #define _LDAP_PORTABLE_H
110 /* define this if needed to get reentrant functions */
118 /* define this if needed to get threadsafe functions */
132 #ifndef _SGI_MP_SOURCE
133 #undef _SGI_MP_SOURCE
136 /* end of portable.h.pre */
139 /* begin of portable.h.post */
142 /* don't suck in all of the win32 api */
143 # define WIN32_LEAN_AND_MEAN 1
146 #ifndef LDAP_NEEDS_PROTOTYPES
147 /* force LDAP_P to always include prototypes */
148 #define LDAP_NEEDS_PROTOTYPES 1
152 #if (LDAP_VENDOR_VERSION == 000000) && !defined(LDAP_DEVEL)
155 #if defined(LDAP_DEVEL) && !defined(LDAP_TEST)
165 /* ASCII/EBCDIC converting replacements for stdio funcs
166 * vsnprintf and snprintf are used too, but they are already
167 * checked by the configure script
169 #define fputs ber_pvt_fputs
170 #define fgets ber_pvt_fgets
171 #define printf ber_pvt_printf
172 #define fprintf ber_pvt_fprintf
173 #define vfprintf ber_pvt_vfprintf
174 #define vsprintf ber_pvt_vsprintf
177 #include "ac/fdset.h"
179 #include "ldap_cdefs.h"
180 #include "ldap_features.h"
182 #include "ac/assert.h"
183 #include "ac/localize.h"
185 #endif /* _LDAP_PORTABLE_H */
186 /* end of portable.h.post */
189 AC_CONFIG_HEADERS([include/portable.h:include/portable.hin])
190 AC_CONFIG_HEADERS([include/ldap_features.h:include/ldap_features.hin])
191 AC_CONFIG_HEADERS([include/lber_types.h:include/lber_types.hin])
193 dnl ================================================================
195 AC_MSG_CHECKING(configure arguments)
196 AC_PREFIX_DEFAULT(/usr/local)
199 AC_SUBST(top_builddir)dnl
201 dnl ----------------------------------------------------------------
203 ldap_subdir="/openldap"
206 [ --with-subdir=DIR change default subdirectory used for installs],
213 ldap_subdir="$withval"
216 ldap_subdir="/$withval"
221 AC_SUBST(ldap_subdir)dnl
223 dnl ----------------------------------------------------------------
224 dnl General "enable" options
225 dnl set default to traditional to enable the original debug style
226 OL_ARG_ENABLE(debug,[ --enable-debug enable debugging], yes, [no yes traditional])dnl
227 OL_ARG_ENABLE(dynamic,[ --enable-dynamic enable linking built binaries with dynamic libs], no)dnl
228 OL_ARG_ENABLE(syslog,[ --enable-syslog enable syslog support], auto)dnl
229 OL_ARG_ENABLE(proctitle,[ --enable-proctitle enable proctitle support], yes)dnl
230 dnl OL_ARG_ENABLE(referrals,[ --enable-referrals enable LDAPv2+ Referrals (experimental)], no)dnl
231 ol_enable_referrals=${ol_enable_referrals-no}
232 dnl OL_ARG_ENABLE(kbind,[ --enable-kbind enable LDAPv2+ Kerberos IV bind (deprecated)], no)dnl
233 ol_enable_kbind=${ol_enable_kbind-no}
234 OL_ARG_ENABLE(ipv6,[ --enable-ipv6 enable IPv6 support], auto)dnl
235 OL_ARG_ENABLE(local,[ --enable-local enable AF_LOCAL (AF_UNIX) socket support], auto)dnl
237 dnl ----------------------------------------------------------------
238 dnl General "with" options
239 OL_ARG_WITH(cyrus_sasl,[ --with-cyrus-sasl with Cyrus SASL support],
240 auto, [auto yes no] )
241 OL_ARG_WITH(fetch,[ --with-fetch with fetch(3) URL support],
242 auto, [auto yes no] )
243 dnl OL_ARG_WITH(kerberos,[ --with-kerberos with Kerberos support],
244 dnl auto, [auto k5 k5only k425 kth k4 afs yes no])
245 ol_with_kerberos=${ol_with_kerberos-auto}
246 OL_ARG_WITH(threads,[ --with-threads with threads],
247 auto, [auto nt posix mach pth lwp yes no manual] )
248 OL_ARG_WITH(tls,[ --with-tls with TLS/SSL support],
249 auto, [auto openssl yes no] )
250 OL_ARG_WITH(yielding_select,[ --with-yielding-select with implicitly yielding select],
251 auto, [auto yes no manual] )
252 OL_ARG_WITH(multiple_precision,[ --with-multiple-precision
253 multiple precision support for statistics
255 auto, [auto bignum gmp yes no] )
257 dnl ----------------------------------------------------------------
259 dnl ----------------------------------------------------------------
261 dnl ----------------------------------------------------------------
263 AC_ARG_ENABLE(xxslapdoptions,[
264 SLAPD (Standalone LDAP Daemon) Options:])
265 OL_ARG_ENABLE(slapd,[ --enable-slapd enable building slapd], yes)dnl
266 OL_ARG_ENABLE(dynacl,[ --enable-dynacl enable run-time loadable ACL support (experimental)], no)dnl
267 OL_ARG_ENABLE(aci,[ --enable-aci enable per-object ACIs (experimental)], no, [no yes mod])dnl
268 OL_ARG_ENABLE(cleartext,[ --enable-cleartext enable cleartext passwords], yes)dnl
269 OL_ARG_ENABLE(crypt,[ --enable-crypt enable crypt(3) passwords], no)dnl
270 OL_ARG_ENABLE(lmpasswd,[ --enable-lmpasswd enable LAN Manager passwords], no)dnl
271 OL_ARG_ENABLE(spasswd,[ --enable-spasswd enable (Cyrus) SASL password verification], no)dnl
272 OL_ARG_ENABLE(modules,[ --enable-modules enable dynamic module support], no)dnl
273 dnl OL_ARG_ENABLE(multimaster,[ --enable-multimaster enable multimaster replication], no)dnl
274 ol_enable_multimaster=${ol_enable_multimaster-no}
275 OL_ARG_ENABLE(rewrite,[ --enable-rewrite enable DN rewriting in back-ldap and rwm overlay], auto)dnl
276 OL_ARG_ENABLE(rlookups,[ --enable-rlookups enable reverse lookups of client hostnames], no)dnl
277 OL_ARG_ENABLE(slapi,[ --enable-slapi enable SLAPI support (experimental)], no)dnl
278 OL_ARG_ENABLE(slp,[ --enable-slp enable SLPv2 support], no)dnl
279 OL_ARG_ENABLE(wrappers,[ --enable-wrappers enable tcp wrapper support], no)dnl
281 dnl ----------------------------------------------------------------
282 dnl SLAPD Backend Options
297 AC_ARG_ENABLE(xxslapbackends,[
298 SLAPD Backend Options:])
300 OL_ARG_ENABLE(backends,[ --enable-backends enable all available backends],
302 OL_ARG_ENABLE(bdb,[ --enable-bdb enable Berkeley DB backend],
303 yes, [no yes mod], ol_enable_backends)dnl
304 OL_ARG_ENABLE(dnssrv,[ --enable-dnssrv enable dnssrv backend],
305 no, [no yes mod], ol_enable_backends)dnl
306 OL_ARG_ENABLE(hdb,[ --enable-hdb enable Hierarchical DB backend],
307 yes, [no yes mod], ol_enable_backends)dnl
308 OL_ARG_ENABLE(ldap,[ --enable-ldap enable ldap backend],
309 no, [no yes mod], ol_enable_backends)dnl
310 OL_ARG_ENABLE(ldbm,[ --enable-ldbm enable ldbm backend],
311 no, [no yes mod], ol_enable_backends)dnl
312 AC_ARG_WITH(ldbm_api,,[
313 AC_MSG_WARN([Please use --enable-ldbm-api instead of --with-ldbm-api])
314 enable_ldbm_api="$with_ldbm_api"])
315 OL_ARG_ENABLE(ldbm_api,[ --enable-ldbm-api use LDBM API],
316 auto, [auto berkeley bcompat mdbm gdbm])
317 AC_ARG_WITH(ldbm_type,,[
318 AC_MSG_WARN([Please use --enable-ldbm-type instead of --with-ldbm-type])
319 enable_ldbm_type="$with_ldbm_type"])
320 OL_ARG_ENABLE(ldbm_type,[ --enable-ldbm-type use LDBM type],
321 auto, [auto btree hash])
322 OL_ARG_ENABLE(meta,[ --enable-meta enable metadirectory backend],
323 no, [no yes mod], ol_enable_backends)dnl
324 OL_ARG_ENABLE(monitor,[ --enable-monitor enable monitor backend],
325 yes, [no yes mod], ol_enable_backends)dnl
326 OL_ARG_ENABLE(null,[ --enable-null enable null backend],
327 no, [no yes mod], ol_enable_backends)dnl
328 OL_ARG_ENABLE(passwd,[ --enable-passwd enable passwd backend],
329 no, [no yes mod], ol_enable_backends)dnl
330 OL_ARG_ENABLE(perl,[ --enable-perl enable perl backend],
331 no, [no yes mod], ol_enable_backends)dnl
332 OL_ARG_ENABLE(relay,[ --enable-relay enable relay backend],
333 yes, [no yes mod], ol_enable_backends)dnl
334 OL_ARG_ENABLE(shell,[ --enable-shell enable shell backend],
335 no, [no yes mod], ol_enable_backends)dnl
336 OL_ARG_ENABLE(sql,[ --enable-sql enable sql backend],
337 no, [no yes mod], ol_enable_backends)dnl
339 dnl ----------------------------------------------------------------
340 dnl SLAPD Overlay Options
341 Overlays="accesslog \
356 AC_ARG_ENABLE(xxslapoverlays,[
357 SLAPD Overlay Options:])
359 OL_ARG_ENABLE(overlays,[ --enable-overlays enable all available overlays],
361 OL_ARG_ENABLE(accesslog,[ --enable-accesslog In-Directory Access Logging overlay],
362 no, [no yes mod], ol_enable_overlays)
363 OL_ARG_ENABLE(denyop,[ --enable-denyop Deny Operation overlay],
364 no, [no yes mod], ol_enable_overlays)
365 OL_ARG_ENABLE(dyngroup,[ --enable-dyngroup Dynamic Group overlay],
366 no, [no yes mod], ol_enable_overlays)
367 OL_ARG_ENABLE(dynlist,[ --enable-dynlist Dynamic List overlay],
368 no, [no yes mod], ol_enable_overlays)
369 OL_ARG_ENABLE(lastmod,[ --enable-lastmod Last Modification overlay],
370 no, [no yes mod], ol_enable_overlays)
371 OL_ARG_ENABLE(ppolicy,[ --enable-ppolicy Password Policy overlay],
372 no, [no yes mod], ol_enable_overlays)
373 OL_ARG_ENABLE(proxycache,[ --enable-proxycache Proxy Cache overlay],
374 no, [no yes mod], ol_enable_overlays)
375 OL_ARG_ENABLE(refint,[ --enable-refint Referential Integrity overlay],
376 no, [no yes mod], ol_enable_overlays)
377 OL_ARG_ENABLE(retcode,[ --enable-retcode Return Code testing overlay],
378 no, [no yes mod], ol_enable_overlays)
379 OL_ARG_ENABLE(rwm,[ --enable-rwm Rewrite/Remap overlay],
380 no, [no yes mod], ol_enable_overlays)
381 OL_ARG_ENABLE(syncprov,[ --enable-syncprov Syncrepl Provider overlay],
382 yes, [no yes mod], ol_enable_overlays)
383 OL_ARG_ENABLE(translucent,[ --enable-translucent Translucent Proxy overlay],
384 no, [no yes mod], ol_enable_overlays)
385 OL_ARG_ENABLE(unique,[ --enable-unique Attribute Uniqueness overlay],
386 no, [no yes mod], ol_enable_overlays)
387 OL_ARG_ENABLE(valsort,[ --enable-valsort Value Sorting overlay],
388 no, [no yes mod], ol_enable_overlays)
390 dnl ----------------------------------------------------------------
392 AC_ARG_ENABLE(xxslurpdoptions,[
393 SLURPD (Replication Daemon) Options:])
394 OL_ARG_ENABLE(slurpd,[ --enable-slurpd enable building slurpd], auto)dnl
396 dnl ----------------------------------------------------------------
397 AC_ARG_ENABLE(xxliboptions,[
398 Library Generation & Linking Options])
402 dnl ----------------------------------------------------------------
405 if test $ol_enable_slapd = no ; then
406 dnl SLAPD was specificallly disabled
407 if test $ol_enable_slapi = yes ; then
408 AC_MSG_WARN([slapd disabled, ignoring --enable-slapi argument])
410 case "$ol_enable_backends" in yes | mod)
411 AC_MSG_WARN([slapd disabled, ignoring --enable-backends argument])
413 for i in $Backends; do
414 eval "ol_tmp=\$ol_enable_$i"
415 if test $ol_tmp != no ; then
416 AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
417 eval "ol_enable_$i=no"
420 if test $ol_enable_modules = yes ; then
421 AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
423 if test $ol_enable_multimaster = yes ; then
424 AC_MSG_WARN([slapd disabled, ignoring --enable-multimaster argument])
426 if test $ol_enable_wrappers = yes ; then
427 AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
429 if test $ol_enable_rlookups = yes ; then
430 AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
432 if test $ol_enable_aci = yes ; then
433 AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
435 if test $ol_enable_ldbm_api != auto ; then
436 AC_MSG_WARN([slapd disabled, ignoring --enable-ldbm-api argument])
438 if test $ol_enable_ldbm_type != auto ; then
439 AC_MSG_WARN([slapd disabled, ignoring --enable-ldbm-type argument])
441 if test $ol_enable_slurpd = yes ; then
442 AC_MSG_ERROR([slurpd requires slapd])
444 if test $ol_enable_rewrite = yes ; then
445 AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
448 case "$ol_enable_overlays" in yes | mod)
449 AC_MSG_WARN([slapd disabled, ignoring --enable-overlays argument])
451 for i in $Overlays; do
452 eval "ol_tmp=\$ol_enable_$i"
453 if test $ol_tmp != no ; then
454 AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
455 eval "ol_enable_$i=no"
459 # force settings to no
465 ol_enable_multimaster=no
466 ol_enable_rlookups=no
469 ol_enable_wrappers=no
471 ol_enable_ldbm_api=no
472 ol_enable_ldbm_type=no
478 elif test $ol_enable_ldbm = no ; then
479 dnl SLAPD without LDBM
481 if test $ol_enable_ldbm_api != auto ; then
482 AC_MSG_WARN([LDBM disabled, ignoring --enable-ldbm-api argument])
485 if test $ol_enable_ldbm_type != auto ; then
486 AC_MSG_WARN([LDBM disabled, ignoring --enable-ldbm-type argument])
489 if test $ol_enable_modules != yes &&
490 test $ol_enable_bdb = no &&
491 test $ol_enable_dnssrv = no &&
492 test $ol_enable_hdb = no &&
493 test $ol_enable_ldap = no &&
494 test $ol_enable_meta = no &&
495 test $ol_enable_monitor = no &&
496 test $ol_enable_null = no &&
497 test $ol_enable_passwd = no &&
498 test $ol_enable_perl = no &&
499 test $ol_enable_relay = no &&
500 test $ol_enable_shell = no &&
501 test $ol_enable_sql = no ; then
503 if test $ol_enable_slapd = yes ; then
504 AC_MSG_ERROR([slapd requires a backend])
506 AC_MSG_WARN([skipping slapd, no backend specified])
511 ol_enable_ldbm_api=no
512 ol_enable_ldbm_type=no
514 if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
515 ol_enable_ldbm_api=berkeley
520 if test $ol_enable_ldbm_api = gdbm &&
521 test $ol_enable_ldbm_type = btree ; then
522 AC_MSG_ERROR([GDBM only supports LDBM type hash])
524 if test $ol_enable_ldbm_api = mdbm &&
525 test $ol_enable_ldbm_type = btree ; then
526 AC_MSG_ERROR([MDBM only supports LDBM type hash])
528 if test $ol_enable_ldbm_api = ndbm &&
529 test $ol_enable_ldbm_type = btree ; then
530 AC_MSG_ERROR([NDBM only supports LDBM type hash])
533 if test $ol_enable_bdb/$ol_enable_hdb != no/no ; then
534 if test $ol_enable_ldbm_api = auto ; then
535 ol_enable_ldbm_api=berkeley
536 elif test $ol_enable_ldbm_api != berkeley ; then
537 AC_MSG_ERROR([LDBM API not compatible with BDB/HDB])
542 if test $ol_enable_meta/$ol_enable_ldap = yes/no ; then
543 AC_MSG_ERROR([--enable-meta requires --enable-ldap])
546 if test $ol_enable_slurpd = yes ; then
547 dnl SLURPD was specifically enabled
548 if test $ol_with_threads = no ; then
549 AC_MSG_ERROR([slurpd requires threads])
553 if test $ol_enable_lmpasswd = yes ; then
554 if test $ol_with_tls = no ; then
555 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
559 if test $ol_enable_kbind = yes ; then
560 if test $ol_with_kerberos = no ; then
561 AC_MSG_ERROR([options require --with-kerberos])
562 elif test $ol_with_kerberos = auto ; then
566 elif test $ol_enable_kbind = no ; then
567 if test $ol_with_kerberos = auto ; then
569 elif test $ol_with_kerberos != no ; then
570 AC_MSG_WARN([Kerberos detection enabled unnecessarily]);
575 if test $ol_enable_spasswd = yes ; then
576 if test $ol_with_cyrus_sasl = no ; then
577 AC_MSG_ERROR([options require --with-cyrus-sasl])
579 ol_with_cyrus_sasl=yes
584 dnl ----------------------------------------------------------------
631 SLAPD_STATIC_OVERLAYS=
632 SLAPD_DYNAMIC_OVERLAYS=
634 SLAPD_MODULES_LDFLAGS=
635 SLAPD_MODULES_CPPFLAGS=
637 SLAPD_STATIC_BACKENDS=back-ldif
638 SLAPD_DYNAMIC_BACKENDS=
662 dnl ================================================================
663 dnl Checks for programs
665 AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
667 dnl ----------------------------------------------------------------
669 dnl Determine which C translator to use
672 dnl AIX Thread requires we use cc_r or xlc_r.
673 dnl But only do this IF AIX and CC is not set
674 dnl and threads are auto|yes|posix.
676 dnl If we find cc_r|xlc_r, force pthreads and assume
677 dnl pthread_create is in $LIBS (ie: don't bring in
678 dnl any additional thread libraries)
679 dnl If we do not find cc_r|xlc_r, disable threads
683 *-*-aix*) dnl all AIX is not a good idea.
684 if test -z "$CC" ; then
685 case "$ol_with_threads" in
686 auto | yes | posix) ol_aix_threads=yes ;;
692 if test $ol_aix_threads = yes ; then
693 if test -z "${CC}" ; then
694 AC_CHECK_PROGS(CC,cc_r xlc_r cc)
696 if test "$CC" = cc ; then
697 dnl no CC! don't allow --with-threads
698 if test $ol_with_threads != auto ; then
699 AC_MSG_ERROR([--with-threads requires cc_r (or other suitable compiler) on AIX])
701 AC_MSG_WARN([disabling threads, no cc_r on AIX])
707 case ${CC} in cc_r | xlc_r)
708 ol_with_threads=posix
709 ol_cv_pthread_create=yes
714 if test -z "${CC}"; then
715 AC_CHECK_PROGS(CC,cc gcc,missing)
717 if test "${CC}" = "missing" ; then
718 AC_MSG_ERROR([Unable to locate cc(1) or suitable replacement. Check PATH or set CC.])
722 if test -z "${AR}"; then
723 AC_CHECK_PROGS(AR,ar gar,missing)
725 if test "${AR}" = "missing" ; then
726 AC_MSG_ERROR([Unable to locate ar(1) or suitable replacement. Check PATH or set AR.])
734 dnl ----------------------------------------------------------------
737 if test $ol_enable_perl != no ; then
738 AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)
740 if test "no$PERLBIN" = "no" ; then
741 if test $ol_enable_perl = yes ; then
742 AC_MSG_ERROR([could not locate perl])
746 PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
747 PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e 's/ -lc / /' -e 's/ -lc$//'`"
749 if test x"$ol_enable_perl" = "xyes" ; then
750 SLAPD_PERL_LDFLAGS="$PERL_LDFLAGS"
752 MOD_PERL_LDFLAGS="$PERL_LDFLAGS"
754 dnl should check perl version
761 dnl ----------------------------------------------------------------
762 dnl Checks for Windows NT
764 *mingw32* ) ac_cv_mingw32=yes ;;
765 *cygwin* ) ac_cv_cygwin=yes ;;
768 dnl ----------------------------------------------------------------
769 dnl Checks for file extensions
772 AC_DEFINE_UNQUOTED(EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
774 dnl ----------------------------------------------------------------
775 dnl BeOS requires -lbe -lroot -lnet
776 AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])
778 dnl ----------------------------------------------------------------
779 dnl OpenLDAP requires STDC features
781 if test "X${ac_cv_prog_cc_stdc}" = "Xno" ; then
782 AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
785 dnl ----------------------------------------------------------------
786 dnl Check cc depend flags
788 if test "${ol_cv_mkdep}" = no ; then
789 # this will soon become an error
790 AC_MSG_WARN([do not know how to generate dependencies])
793 dnl ----------------------------------------------------------------
794 dnl Check for AIX security library
795 AC_CHECK_LIB(s, afopen, [
797 AC_DEFINE(HAVE_AIX_SECURITY,1,[define if you have AIX security lib])
800 dnl ----------------------------------------------------------------
801 dnl Check for IBM OS/390
805 AC_DEFINE(BOTH_STRINGS_H,1,[define to use both <string.h> and <strings.h>])
809 dnl ----------------------------------------------------------------
810 dnl Check for module support
812 WITH_MODULES_ENABLED=no
813 if test $ol_enable_modules != no ; then
814 AC_CHECK_HEADERS(ltdl.h)
816 if test $ac_cv_header_ltdl_h = no ; then
817 AC_MSG_ERROR([could not locate libtool ltdl.h])
820 AC_CHECK_LIB(ltdl, lt_dlinit, [
822 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
825 if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then
826 AC_MSG_ERROR([could not locate libtool -lltdl])
829 WITH_MODULES_ENABLED=yes
832 for i in $Backends; do
833 eval "ol_tmp=\$ol_enable_$i"
834 if test $ol_tmp = mod ; then
835 AC_MSG_WARN([building static $i backend])
836 eval "ol_enable_$i=yes"
839 for i in $Overlays; do
840 eval "ol_tmp=\$ol_enable_$i"
841 if test $ol_tmp = mod ; then
842 AC_MSG_WARN([building static $i overlay])
843 eval "ol_enable_$i=yes"
848 dnl ----------------------------------------------------------------
849 dnl Checks for header files.
852 if test $ol_cv_header_stdc != yes; then
853 AC_MSG_WARN([could not locate Standard C compliant headers])
910 AC_CHECK_HEADERS( resolv.h, [], [],
911 [$ac_includes_default]
912 #include <netinet/in.h>
915 AC_CHECK_HEADERS(sys/ucred.h, [], [],
916 [$ac_includes_default
917 #ifdef HAVE_SYS_PARAM_H
918 #include <sys/param.h>
922 dnl ----------------------------------------------------------------
923 dnl Checks for libraries
925 AC_CHECK_FUNCS( sigaction sigset )
927 dnl HP-UX requires -lV3
928 dnl this is not needed on newer versions of HP-UX
929 if test $ac_cv_func_sigaction = no && test $ac_cv_func_sigaction = no ; then
930 AC_CHECK_LIB(V3, sigset)
933 dnl The following is INTENTIONALLY scripted out because shell does not
934 dnl support variable names with the '@' character, which is what
935 dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
937 dnl Skip Winsock tests on Cygwin
938 if test "$ac_cv_cygwin" != yes && test "$ac_cv_header_winsock_h" = yes; then
939 AC_CACHE_CHECK([for winsock], [ol_cv_winsock],
941 for curlib in ws2_32 wsock32; do
942 LIBS="$LIBS -l$curlib"
943 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <winsock.h>
946 select(0,NULL,NULL,NULL,NULL);
949 ]])],[ol_cv_winsock=yes],[ol_cv_winsock=no])
951 if test $ol_cv_winsock = yes; then
952 AC_DEFINE(HAVE_WINSOCK, 1, [define if you have winsock])
953 ac_cv_func_socket=yes
954 ac_cv_func_select=yes
955 ac_cv_func_closesocket=yes
956 ac_cv_func_gethostname=yes
957 if test $curlib = ws2_32; then
958 ol_cv_winsock=winsock2
959 AC_DEFINE(HAVE_WINSOCK2, 1,
960 [define if you have winsock2])
969 dnl Likely combinations:
970 dnl -lsocket [ -lnsl_s | -lnsl ]
973 AC_CHECK_FUNC(socket, :, [
974 dnl hopefully we won't include too many libraries
975 AC_CHECK_LIB(socket, main)
976 AC_CHECK_LIB(net, main)
977 AC_CHECK_LIB(nsl_s, main)
978 AC_CHECK_LIB(nsl, main)
979 AC_CHECK_LIB(inet, socket)
980 AC_CHECK_LIB(gen, main)
984 AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
986 if test "${ac_cv_header_winsock_h}" != yes; then
988 dnl (if this detection becomes permenent, it and the select() detection
989 dnl should be done before the yielding select test)
990 AC_FUNC_SELECT_ARGTYPES
993 dnl check to see if system call automatically restart
994 dnl AC_SYS_RESTARTABLE_SYSCALLS
996 dnl ----------------------------------------------------------------
997 AC_CHECK_FUNCS( poll )
998 AC_CHECK_HEADERS( poll.h )
1000 dnl ----------------------------------------------------------------
1001 AC_CHECK_HEADERS( sys/epoll.h )
1002 if test "${ac_cv_header_sys_epoll_h}" = yes; then
1003 AC_MSG_CHECKING(for epoll system call)
1004 AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char *argv)
1006 int epfd = epoll_create(256);
1007 exit (epfd == -1 ? 1 : 0);
1008 }]])],[AC_MSG_RESULT(yes)
1009 AC_DEFINE(HAVE_EPOLL,1, [define if your system supports epoll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
1012 dnl ----------------------------------------------------------------
1016 dnl ----------------------------------------------------------------
1017 dnl require POSIX regex
1018 AC_CHECK_HEADERS( regex.h )
1019 if test "$ac_cv_header_regex_h" != yes ; then
1020 AC_MSG_ERROR([POSIX regex.h required.])
1022 AC_SEARCH_LIBS(regfree, [regex gnuregex],
1023 :, AC_MSG_ERROR([POSIX regex required.]))
1026 if test "$ol_cv_c_posix_regex" = no ; then
1027 AC_MSG_ERROR([broken POSIX regex!])
1030 dnl ----------------------------------------------------------------
1034 AC_CHECK_HEADERS(sys/uuid.h)
1035 if test $ac_cv_header_sys_uuid_h = yes ; then
1037 AC_SEARCH_LIBS(uuid_to_str, uuid, [have_uuid=yes], :)
1040 if test have_uuid = yes ; then
1041 AC_DEFINE(HAVE_UUID_TO_STR,1,
1042 [define if you have uuid_to_str()])
1044 test "$ac_cv_search_uuid_to_str" = "none required" || \
1045 SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_to_str"
1049 dnl For windows, check for the need of RPCRT for UUID function support
1050 if test $have_uuid = no ; then
1051 AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
1053 LIBS="$LIBS -lrpcrt4"
1054 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1055 int __stdcall UuidCreate(void *);
1056 int __stdcall UuidToStringA(void *,void **);
1060 ]])],[need_rpcrt=yes],[need_rpcrt=no])
1061 if test $need_rpcrt = yes; then
1062 SLAPD_LIBS="$SLAPD_LIBS -lrpcrt4"
1065 AC_MSG_RESULT($need_rpcrt)
1068 dnl ----------------------------------------------------------------
1069 dnl Check for resolver routines
1073 if test "$ol_cv_lib_resolver" != no ; then
1074 AC_DEFINE(HAVE_RES_QUERY,1,
1075 [define if you have res_query()])
1077 if test "$ol_enable_dnssrv" != no ; then
1081 if test "$ol_cv_lib_resolver" != yes ; then
1082 LIBS="$ol_cv_lib_resolver $LIBS"
1086 if test "$ol_enable_dnssrv" = yes || test "$ol_enable_dnssrv" = mod ; then
1087 if test "$ol_link_dnssrv" = no ; then
1088 AC_MSG_ERROR([DNSSRV requires res_query()])
1094 AC_CHECK_FUNCS( hstrerror )
1096 dnl ----------------------------------------------------------------
1097 dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
1098 dnl PF_LOCAL may use getaddrinfo in available
1099 AC_CHECK_FUNCS( getaddrinfo getnameinfo gai_strerror inet_ntop )
1102 if test $ac_cv_func_getaddrinfo = no || test $ac_cv_func_inet_ntop = no ; then
1103 if test $ol_enable_ipv6 = yes ; then
1104 AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
1106 elif test $ol_enable_ipv6 != no ; then
1107 AC_CACHE_CHECK([INET6_ADDRSTRLEN],[ol_cv_inet6_addrstrlen],[
1108 AC_EGREP_CPP(__has_inet6_addrstrlen__,[
1109 # include <netinet/in.h>
1110 # ifdef INET6_ADDRSTRLEN
1111 __has_inet6_addrstrlen__;
1113 ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])])
1116 AC_CACHE_CHECK([struct sockaddr_storage],ol_cv_struct_sockaddr_storage,[
1117 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1118 #include <sys/types.h>
1119 #include <sys/socket.h>
1121 struct sockaddr_storage ss;
1122 ]])],[ol_cv_struct_sockaddr_storage=yes],[ol_cv_struct_sockaddr_storage=no])])
1124 if test $ol_cv_inet6_addrstrlen = yes &&
1125 test $ol_cv_struct_sockaddr_storage = yes ; then
1127 elif test $ol_enable_ipv6 = yes &&
1128 test $ol_cv_inet6_addrstrlen = no ; then
1129 AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
1130 elif test $ol_enable_ipv6 = yes &&
1131 test $ol_cv_struct_sockaddr_storage = no ; then
1132 AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage])
1136 if test $ol_enable_local != no ; then
1137 AC_CHECK_HEADERS( sys/un.h )
1139 if test $ol_enable_local = auto ; then
1140 ol_enable_local=$ac_cv_header_sys_un_h
1141 elif test $ac_cv_header_sys_un_h = no ; then
1142 AC_MSG_ERROR([AF_LOCAL domain support requires sys/un.h])
1146 dnl ----------------------------------------------------------------
1152 case $ol_with_kerberos in yes | auto | k5 | k5only | k425)
1154 AC_CHECK_HEADERS(krb5.h)
1156 if test $ac_cv_header_krb5_h = yes ; then
1157 dnl lazy check for Heimdal Kerberos
1158 AC_CHECK_HEADERS(heim_err.h)
1159 if test $ac_cv_header_heim_err_h = yes ; then
1165 if test $krb5_impl = mit; then
1166 AC_CHECK_LIB(k5crypto, main,
1167 [krb5crypto=k5crypto],
1168 [krb5crypto=crypto])
1170 AC_CHECK_LIB(krb5, main,
1172 KRB5_LIBS="-lkrb5 -l$krb5crypto -lcom_err"],
1174 [-l$krb5crypto -lcom_err])
1176 elif test $krb5_impl = heimdal; then
1177 AC_CHECK_LIB(des, main,
1179 [krb5crypto=crypto])
1181 AC_CHECK_LIB(krb5, main,
1183 KRB5_LIBS="-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err"],
1185 [-l$krb5crypto -lasn1 -lroken -lcom_err])
1187 AC_DEFINE(HAVE_HEIMDAL_KERBEROS, 1,
1188 [define if you have HEIMDAL Kerberos])
1192 AC_MSG_WARN([Unrecognized Kerberos5 Implementation])
1195 if test $have_krb5 = yes ; then
1198 AC_DEFINE(HAVE_KRB5, 1,
1199 [define if you have Kerberos V])
1201 if test $ol_with_kerberos = k5only ; then
1202 ol_with_kerberos=found
1205 elif test $ol_with_kerberos != auto ; then
1206 AC_MSG_ERROR([Required Kerberos 5 support not available])
1213 if test $ol_link_krb5 = yes &&
1214 { test $ol_with_kerberos = yes ||
1215 test $ol_with_kerberos = auto ||
1216 test $ol_with_kerberos = k425; }; then
1218 AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
1220 if test $ac_cv_header_kerberosIV_krb_h = yes ; then
1221 if test $krb5_impl = mit; then
1222 AC_CHECK_LIB(krb4, main, [have_k425=yes
1223 KRB4_LIBS="-lkrb4 -ldes425"], [have_k425=no],
1224 [-ldes425 -lkrb5 -l$krb5crypto -lcom_err])
1226 elif test $krb5_impl = heimdal; then
1227 AC_CHECK_LIB(krb4, main, [have_k425=yes
1228 KRB4_LIBS="-lkrb4"], [have_k425=no],
1229 [-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err])
1233 AC_MSG_WARN([Unrecongized Kerberos V Implementation])
1236 if test $have_k425 = yes ; then
1237 ol_with_kerberos=found
1240 AC_DEFINE(HAVE_KRB425, 1,
1241 [define if you have Kerberos V with IV support])
1242 AC_DEFINE(HAVE_KRB4, 1,
1243 [define if you have Kerberos IV])
1245 AC_CACHE_CHECK([for des_debug in Kerberos libraries],
1246 [ol_cv_var_des_debug], [
1249 LIBS="$KRB4_LIBS $KRB5_LIBS $LIBS"
1250 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1251 #include <kerberosIV/krb.h>
1252 #include <kerberosIV/des.h>
1253 extern int des_debug;
1256 ]])],[ol_cv_var_des_debug=yes],[ol_cv_var_des_debug=no])
1257 dnl restore the LIBS
1261 if test $ol_cv_var_des_debug = yes ; then
1262 AC_DEFINE(HAVE_DES_DEBUG,1,
1263 [define if you have Kerberos des_debug])
1271 if test $ol_link_krb5 = yes ; then
1272 ol_with_kerberos=found
1275 case $ol_with_kerberos in yes | auto | k4 | kth)
1277 AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
1279 if test $ac_cv_header_krb_h = yes ; then
1280 AC_CHECK_LIB(krb, main, [have_k4=yes], [have_k4=no], [-ldes])
1282 if test $have_k4 = yes ; then
1283 ol_with_kerberos=found
1286 AC_DEFINE(HAVE_KRB4, 1,
1287 [define if you have Kerberos IV])
1289 KRB4_LIBS="-lkrb -ldes"
1291 if test $ac_cv_header_krb_archaeology_h = yes ; then
1292 AC_DEFINE(HAVE_KTH_KERBEROS, 1,
1293 [define if you have Kth Kerberos])
1300 if test $ol_link_krb4 = yes && test $ol_enable_kbind != no ; then
1303 elif test $ol_enable_kbind = yes ; then
1304 AC_MSG_ERROR([Kerberos IV detection failed])
1307 if test $ol_link_krb4 = yes || test $ol_link_krb5 = yes ; then
1308 AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
1310 elif test $ol_with_kerberos != auto && test $ol_with_kerberos != no ; then
1311 AC_MSG_ERROR([Kerberos detection failed])
1314 dnl ----------------------------------------------------------------
1318 if test $ol_with_tls != no ; then
1319 AC_CHECK_HEADERS(openssl/ssl.h)
1321 if test $ac_cv_header_openssl_ssl_h = yes ; then
1322 AC_CHECK_LIB(ssl, SSL_library_init,
1324 need_rsaref=no], [have_openssl=no],
1327 if test $have_openssl = no ; then
1328 AC_CHECK_LIB(ssl, ssl3_accept,
1330 need_rsaref=yes], [have_openssl=no],
1331 [-lcrypto -lRSAglue -lrsaref])
1334 if test $have_openssl = yes ; then
1338 AC_DEFINE(HAVE_OPENSSL, 1,
1339 [define if you have OpenSSL])
1341 if test $need_rsaref = yes; then
1342 AC_DEFINE(HAVE_RSAREF, 1,
1343 [define if OpenSSL needs RSAref])
1345 TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
1347 TLS_LIBS="-lssl -lcrypto"
1351 if test $ol_cv_ssl_crl_compat = no ; then
1354 AC_DEFINE(HAVE_OPENSSL_CRL, 1,
1355 [define if you have OpenSSL with CRL checking capability])
1360 AC_MSG_WARN([TLS data protection not supported!])
1364 if test $ol_link_tls = yes ; then
1365 AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
1368 elif test $ol_with_tls = auto ; then
1369 AC_MSG_WARN([Could not locate TLS/SSL package])
1370 AC_MSG_WARN([TLS data protection not supported!])
1372 elif test $ol_with_tls != no ; then
1373 AC_MSG_ERROR([Could not locate TLS/SSL package])
1376 dnl ----------------------------------------------------------------
1377 dnl LAN Manger password checking requires DES from OpenSSL
1378 if test $ol_enable_lmpasswd != no; then
1379 if test $ol_link_tls != yes ; then
1380 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
1383 AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
1386 dnl ----------------------------------------------------------------
1390 case $ol_with_threads in auto | yes | nt)
1394 if test "$ol_cv_nt_threads" = yes ; then
1396 ol_with_threads=found
1397 ol_with_yielding_select=yes
1399 AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager])
1400 AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log])
1403 if test $ol_with_threads = nt ; then
1404 AC_MSG_ERROR([could not locate NT Threads])
1409 case $ol_with_threads in auto | yes | posix)
1411 AC_CHECK_HEADERS(pthread.h)
1413 if test $ac_cv_header_pthread_h = yes ; then
1414 OL_POSIX_THREAD_VERSION
1416 if test $ol_cv_pthread_version != 0 ; then
1417 AC_DEFINE_UNQUOTED(HAVE_PTHREADS,$ol_cv_pthread_version,
1418 [define to pthreads API spec revision])
1420 AC_MSG_ERROR([unknown pthread version])
1423 # consider threads found
1424 ol_with_threads=found
1426 OL_HEADER_LINUX_THREADS
1427 OL_HEADER_GNU_PTH_PTHREAD_H
1429 if test $ol_cv_header_gnu_pth_pthread_h = no ; then
1430 AC_CHECK_HEADERS(sched.h)
1433 dnl Now the hard part, how to link?
1435 dnl currently supported checks:
1437 dnl Check for no flags
1438 dnl pthread_create() in $LIBS
1440 dnl Check special pthread (final) flags
1441 dnl [skipped] pthread_create() with -mt (Solaris) [disabled]
1442 dnl pthread_create() with -kthread (FreeBSD)
1443 dnl pthread_create() with -pthread (FreeBSD/Digital Unix)
1444 dnl pthread_create() with -pthreads (?)
1445 dnl pthread_create() with -mthreads (AIX)
1446 dnl pthread_create() with -thread (?)
1448 dnl Check pthread (final) libraries
1449 dnl pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
1450 dnl pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
1451 dnl [skipped] pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
1452 dnl pthread_join() -Wl,-woff,85 -lpthread (IRIX)
1453 dnl pthread_create() in -lpthread (many)
1454 dnl pthread_create() in -lc_r (FreeBSD)
1456 dnl Check pthread (draft4) flags (depreciated)
1457 dnl pthread_create() with -threads (OSF/1)
1459 dnl Check pthread (draft4) libraries (depreciated)
1460 dnl pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
1461 dnl pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
1462 dnl pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
1463 dnl pthread_create() in -lpthreads (many)
1466 dnl pthread_create in $LIBS
1467 AC_CACHE_CHECK([for pthread_create in default libraries],
1468 ol_cv_pthread_create,[
1469 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1470 [ol_cv_pthread_create=yes],
1471 [ol_cv_pthread_create=no],
1472 [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION,
1473 [ol_cv_pthread_create=yes],
1474 [ol_cv_pthread_create=no])])])
1476 if test $ol_cv_pthread_create != no ; then
1477 ol_link_threads=posix
1481 dnl OL_PTHREAD_TRY([-mt], [ol_cv_pthread_mt])
1482 OL_PTHREAD_TRY([-kthread], [ol_cv_pthread_kthread])
1483 OL_PTHREAD_TRY([-pthread], [ol_cv_pthread_pthread])
1484 OL_PTHREAD_TRY([-pthreads], [ol_cv_pthread_pthreads])
1485 OL_PTHREAD_TRY([-mthreads], [ol_cv_pthread_mthreads])
1486 OL_PTHREAD_TRY([-thread], [ol_cv_pthread_thread])
1488 OL_PTHREAD_TRY([-lpthread -lmach -lexc -lc_r],
1489 [ol_cv_pthread_lpthread_lmach_lexc_lc_r])
1490 OL_PTHREAD_TRY([-lpthread -lmach -lexc],
1491 [ol_cv_pthread_lpthread_lmach_lexc])
1492 dnl OL_PTHREAD_TRY([-lpthread -lexc],
1493 dnl [ol_cv_pthread_lpthread_lexc])
1495 OL_PTHREAD_TRY([-lpthread -Wl,-woff,85],
1496 [ol_cv_pthread_lib_lpthread_woff])
1498 OL_PTHREAD_TRY([-lpthread], [ol_cv_pthread_lpthread])
1499 OL_PTHREAD_TRY([-lc_r], [ol_cv_pthread_lc_r])
1501 OL_PTHREAD_TRY([-threads], [ol_cv_pthread_threads])
1503 OL_PTHREAD_TRY([-lpthreads -lmach -lexc -lc_r],
1504 [ol_cv_pthread_lpthreads_lmach_lexc_lc_r])
1505 OL_PTHREAD_TRY([-lpthreads -lmach -lexc],
1506 [ol_cv_pthread_lpthreads_lmach_lexc])
1507 OL_PTHREAD_TRY([-lpthreads -lexc],
1508 [ol_cv_pthread_lpthreads_lexc])
1510 OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
1512 if test $ol_link_threads != no ; then
1513 LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
1516 save_CPPFLAGS="$CPPFLAGS"
1518 LIBS="$LTHREAD_LIBS $LIBS"
1520 dnl All POSIX Thread (final) implementations should have
1521 dnl sched_yield instead of pthread yield.
1522 dnl check for both, and thr_yield for Solaris
1523 AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
1525 if test $ac_cv_func_sched_yield = no &&
1526 test $ac_cv_func_pthread_yield = no &&
1527 test $ac_cv_func_thr_yield = no ; then
1528 dnl Digital UNIX has sched_yield() in -lrt
1529 AC_CHECK_LIB(rt, sched_yield,
1530 [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
1531 AC_DEFINE(HAVE_SCHED_YIELD,1,
1532 [Define if you have the sched_yield function.])
1533 ac_cv_func_sched_yield=yes],
1534 [ac_cv_func_sched_yield=no])
1536 if test $ac_cv_func_sched_yield = no &&
1537 test $ac_cv_func_pthread_yield = no &&
1538 test "$ac_cv_func_thr_yield" = no ; then
1539 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
1542 dnl Check functions for compatibility
1543 AC_CHECK_FUNCS(pthread_kill pthread_rwlock_destroy)
1545 dnl Check for pthread_detach with <pthread.h> inclusion
1546 dnl as it's symbol may have been mangled.
1547 AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
1548 [ol_cv_func_pthread_detach], [
1550 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1551 #include <pthread.h>
1553 #define NULL (void*)0
1555 ]], [[pthread_detach(NULL);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
1558 if test $ol_cv_func_pthread_detach = no ; then
1559 AC_MSG_ERROR([could not locate pthread_detach()])
1562 AC_DEFINE(HAVE_PTHREAD_DETACH,1,
1563 [define if you have pthread_detach function])
1565 dnl Check for setconcurreny functions
1567 pthread_setconcurrency \
1568 pthread_getconcurrency \
1569 thr_setconcurrency \
1570 thr_getconcurrency \
1573 OL_SYS_LINUX_THREADS
1576 if test $ol_cv_linux_threads = error; then
1577 AC_MSG_ERROR([LinuxThreads header/library mismatch]);
1580 AC_CACHE_CHECK([if pthread_create() works],
1581 ol_cv_pthread_create_works,[
1582 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1583 [ol_cv_pthread_create_works=yes],
1584 [ol_cv_pthread_create_works=no],
1586 ol_cv_pthread_create_works=yes])])
1588 if test $ol_cv_pthread_create_works = no ; then
1589 AC_MSG_ERROR([pthread_create is not usable, check environment settings])
1592 ol_replace_broken_yield=no
1595 ol_replace_broken_yield=yes
1599 if test $ol_replace_broken_yield = yes ; then
1600 AC_DEFINE([REPLACE_BROKEN_YIELD],1,
1601 [define if sched_yield yields the entire process])
1604 dnl Check if select causes an yield
1605 if test $ol_with_yielding_select = auto ; then
1606 AC_CACHE_CHECK([if select yields when using pthreads],
1607 ol_cv_pthread_select_yields,[
1608 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1609 #include <sys/types.h>
1610 #include <sys/time.h>
1612 #include <pthread.h>
1614 #define NULL (void*) 0
1617 static int fildes[2];
1619 static void *task(p)
1631 FD_SET(fildes[0], &rfds);
1633 /* we're not interested in any fds */
1634 i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
1641 exit(0); /* if we exit here, the select blocked the whole process */
1644 int main(argc, argv)
1650 /* create a pipe to select */
1651 if(pipe(&fildes[0])) {
1656 #ifdef HAVE_PTHREAD_SETCONCURRENCY
1657 (void) pthread_setconcurrency(2);
1659 #ifdef HAVE_THR_SETCONCURRENCY
1660 /* Set Solaris LWP concurrency to 2 */
1661 thr_setconcurrency(2);
1665 #if HAVE_PTHREADS < 6
1666 pthread_create(&t, pthread_attr_default, task, NULL);
1668 pthread_create(&t, NULL, task, NULL);
1671 /* make sure task runs first */
1674 #elif defined( HAVE_SCHED_YIELD )
1676 #elif defined( HAVE_PTHREAD_YIELD )
1681 }]])],[ol_cv_pthread_select_yields=no],[ol_cv_pthread_select_yields=yes],[ol_cv_pthread_select_yields=cross])])
1683 if test $ol_cv_pthread_select_yields = cross ; then
1684 AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])
1687 if test $ol_cv_pthread_select_yields = yes ; then
1688 ol_with_yielding_select=yes
1693 CPPFLAGS="$save_CPPFLAGS"
1696 AC_MSG_ERROR([could not locate usable POSIX Threads])
1700 if test $ol_with_threads = posix ; then
1701 AC_MSG_ERROR([could not locate POSIX Threads])
1706 case $ol_with_threads in auto | yes | mach)
1708 dnl check for Mach CThreads
1709 AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
1710 if test $ac_cv_header_mach_cthreads_h = yes ; then
1711 ol_with_threads=found
1713 dnl check for cthreads support in current $LIBS
1714 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1716 if test $ol_link_threads = no ; then
1718 dnl this test needs work
1719 AC_CACHE_CHECK([for cthread_fork with -all_load],
1720 [ol_cv_cthread_all_load], [
1723 LIBS="-all_load $LIBS"
1724 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <mach/cthreads.h>]], [[
1725 cthread_fork((void *)0, (void *)0);
1726 ]])],[ol_cv_cthread_all_load=yes],[ol_cv_cthread_all_load=no])
1727 dnl restore the LIBS
1731 if test $ol_cv_cthread_all_load = yes ; then
1732 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
1733 ol_link_threads=mach
1734 ol_with_threads=found
1738 elif test $ac_cv_header_cthreads_h = yes ; then
1739 dnl Hurd variant of Mach Cthreads
1740 dnl uses <cthreads.h> and -lthreads
1742 ol_with_threads=found
1746 LIBS="$LIBS -lthreads"
1747 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1750 if test $ol_link_threads = yes ; then
1751 LTHREAD_LIBS="-lthreads"
1752 ol_link_threads=mach
1753 ol_with_threads=found
1755 AC_MSG_ERROR([could not link with Mach CThreads])
1758 elif test $ol_with_threads = mach ; then
1759 AC_MSG_ERROR([could not locate Mach CThreads])
1762 if test $ol_link_threads = mach ; then
1763 AC_DEFINE(HAVE_MACH_CTHREADS,1,
1764 [define if you have Mach Cthreads])
1765 elif test $ol_with_threads = found ; then
1766 AC_MSG_ERROR([could not link with Mach CThreads])
1771 case $ol_with_threads in auto | yes | pth)
1773 AC_CHECK_HEADERS(pth.h)
1775 if test $ac_cv_header_pth_h = yes ; then
1776 AC_CHECK_LIB(pth, pth_version, [have_pth=yes], [have_pth=no])
1778 if test $have_pth = yes ; then
1779 AC_DEFINE(HAVE_GNU_PTH,1,[if you have GNU Pth])
1780 LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
1782 ol_with_threads=found
1784 if test $ol_with_yielding_select = auto ; then
1785 ol_with_yielding_select=yes
1792 case $ol_with_threads in auto | yes | lwp)
1794 dnl check for SunOS5 LWP
1795 AC_CHECK_HEADERS(thread.h synch.h)
1796 if test $ac_cv_header_thread_h = yes &&
1797 test $ac_cv_header_synch_h = yes ; then
1798 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
1800 if test $have_thr = yes ; then
1801 AC_DEFINE(HAVE_THR,1,
1802 [if you have Solaris LWP (thr) package])
1803 LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
1806 if test $ol_with_yielding_select = auto ; then
1807 ol_with_yielding_select=yes
1810 dnl Check for setconcurreny functions
1812 thr_setconcurrency \
1813 thr_getconcurrency \
1818 dnl check for SunOS4 LWP
1819 AC_CHECK_HEADERS(lwp/lwp.h)
1820 if test $ac_cv_header_lwp_lwp_h = yes ; then
1821 AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
1823 if test $have_lwp = yes ; then
1824 AC_DEFINE(HAVE_LWP,1,
1825 [if you have SunOS LWP package])
1826 LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
1829 if test $ol_with_yielding_select = auto ; then
1830 ol_with_yielding_select=no
1837 if test $ol_with_yielding_select = yes ; then
1838 AC_DEFINE(HAVE_YIELDING_SELECT,1,
1839 [define if select implicitly yields])
1842 if test $ol_with_threads = manual ; then
1843 dnl User thinks he can manually configure threads.
1846 AC_MSG_WARN([thread defines and link options must be set manually])
1848 AC_CHECK_HEADERS(pthread.h sched.h)
1849 AC_CHECK_FUNCS(sched_yield pthread_yield)
1850 OL_HEADER_LINUX_THREADS
1852 AC_CHECK_HEADERS(mach/cthreads.h)
1853 AC_CHECK_HEADERS(lwp/lwp.h)
1854 AC_CHECK_HEADERS(thread.h synch.h)
1857 if test $ol_link_threads != no && test $ol_link_threads != nt ; then
1858 dnl needed to get reentrant/threadsafe versions
1860 AC_DEFINE(REENTRANT,1)
1861 AC_DEFINE(_REENTRANT,1)
1862 AC_DEFINE(THREAD_SAFE,1)
1863 AC_DEFINE(_THREAD_SAFE,1)
1864 AC_DEFINE(THREADSAFE,1)
1865 AC_DEFINE(_THREADSAFE,1)
1866 AC_DEFINE(_SGI_MP_SOURCE,1)
1868 dnl The errno declaration may dependent upon _REENTRANT.
1869 dnl If it does, we must link with thread support.
1870 AC_CACHE_CHECK([for thread specific errno],
1871 [ol_cv_errno_thread_specific], [
1872 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <errno.h>]], [[errno = 0;]])],[ol_cv_errno_thread_specific=yes],[ol_cv_errno_thread_specific=no])
1875 dnl The h_errno declaration may dependent upon _REENTRANT.
1876 dnl If it does, we must link with thread support.
1877 AC_CACHE_CHECK([for thread specific h_errno],
1878 [ol_cv_h_errno_thread_specific], [
1879 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])
1882 if test $ol_cv_errno_thread_specific != yes ||
1883 test $ol_cv_h_errno_thread_specific != yes ; then
1884 LIBS="$LTHREAD_LIBS $LIBS"
1888 dnl When in thread environment, use
1889 dnl #if defined( HAVE_REENTRANT_FUNCTIONS ) || defined( HAVE_FUNC_R )
1892 dnl # if defined( HAVE_THREADS )
1896 dnl # if defined( HAVE_THREADS )
1901 dnl HAVE_REENTRANT_FUNCTIONS is derived from:
1902 dnl _POSIX_REENTRANT_FUNCTIONS
1903 dnl _POSIX_THREAD_SAFE_FUNCTIONS
1904 dnl _POSIX_THREADSAFE_FUNCTIONS
1906 dnl and is currently defined in <ldap_pvt_thread.h>
1908 dnl HAVE_THREADS is defined by <ldap_pvt_thread.h> iff -UNO_THREADS
1910 dnl libldap/*.c should only include <ldap_pvt_thread.h> iff
1911 dnl LDAP_R_COMPILE is defined. ie:
1912 dnl #ifdef LDAP_R_COMPILE
1913 dnl # include <ldap_pvt_thread.h>
1916 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
1917 dnl specifically for compiling the threadsafe version of
1918 dnl the ldap library (-lldap_r).
1920 dnl dnl check for reentrant/threadsafe functions
1922 dnl dnl note: these should only be used when linking
1923 dnl dnl with $LTHREAD_LIBS
1925 dnl save_CPPFLAGS="$CPPFLAGS"
1926 dnl save_LIBS="$LIBS"
1927 dnl LIBS="$LTHREAD_LIBS $LIBS"
1928 dnl AC_CHECK_FUNCS( \
1930 dnl gethostbyaddr_r gethostbyname_r \
1931 dnl feof_unlocked unlocked_feof \
1932 dnl putc_unlocked unlocked_putc \
1933 dnl flockfile ftrylockfile \
1935 dnl CPPFLAGS="$save_CPPFLAGS"
1936 dnl LIBS="$save_LIBS"
1939 if test $ol_link_threads = no ; then
1940 if test $ol_with_threads = yes ; then
1941 AC_MSG_ERROR([no suitable thread support])
1944 if test $ol_with_threads = auto ; then
1945 AC_MSG_WARN([no suitable thread support, disabling threads])
1949 AC_DEFINE(NO_THREADS,1,
1950 [define if you have (or want) no threads])
1957 if test $ol_link_threads != no ; then
1958 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1,
1959 [define to 1 if library is thread safe])
1962 dnl ----------------------------------------------------------------
1963 dnl Tests for reentrant functions necessary to build -lldap_r
1966 gethostbyname_r gethostbyaddr_r \
1969 if test "$ac_cv_func_ctime_r" = no ; then
1970 ol_cv_func_ctime_r_nargs=0
1972 OL_FUNC_CTIME_R_NARGS
1973 dnl OL_FUNC_CTIME_R_TYPE
1976 if test "$ac_cv_func_gethostbyname_r" = yes ; then
1977 OL_FUNC_GETHOSTBYNAME_R_NARGS
1979 ol_cv_func_gethostbyname_r_nargs=0
1982 if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
1983 OL_FUNC_GETHOSTBYADDR_R_NARGS
1985 ol_cv_func_gethostbyaddr_r_nargs=0
1988 dnl ----------------------------------------------------------------
1991 case $ol_enable_ldbm_api in auto | berkeley | bcompat)
1993 if test $ol_enable_ldbm_api = bcompat; then \
1994 OL_BERKELEY_COMPAT_DB
1999 if test $ol_cv_berkeley_db != no ; then
2000 AC_DEFINE(HAVE_BERKELEY_DB,1,
2001 [define this if Berkeley DB is available])
2003 ol_link_ldbm=berkeley
2004 ol_enable_ldbm_api=berkeley
2006 if test $ol_enable_ldbm_type = hash ; then
2007 AC_DEFINE(LDBM_USE_DBHASH,1,
2008 [define this to use DBHASH w/ LDBM backend])
2010 AC_DEFINE(LDBM_USE_DBBTREE,1,
2011 [define this to use DBBTREE w/ LDBM backend])
2014 dnl $ol_cv_lib_db should be yes or -ldb
2015 dnl (it could be no, but that would be an error
2016 if test $ol_cv_lib_db != yes ; then
2017 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
2023 if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
2024 if test $ol_link_ldbm != berkeley ; then
2025 AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
2029 if test $ol_cv_bdb_compat != yes ; then
2030 AC_MSG_ERROR([BDB/HDB: BerkeleyDB version incompatible])
2035 if test $ol_link_ldbm = no && test $ol_enable_ldbm_type = btree ; then
2036 AC_MSG_WARN([Could not find LDBM with BTREE support])
2037 ol_enable_ldbm_api=none
2040 if test $ol_enable_ldbm_api = auto || test $ol_enable_ldbm_api = mdbm ; then
2043 if test $ol_cv_mdbm = yes ; then
2045 ol_enable_ldbm_api=mdbm
2046 if test $ol_cv_lib_mdbm != yes ; then
2047 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_mdbm"
2052 if test $ol_enable_ldbm_api = auto || test $ol_enable_ldbm_api = gdbm ; then
2055 if test $ol_cv_gdbm = yes ; then
2057 ol_enable_ldbm_api=gdbm
2059 if test $ol_cv_lib_gdbm != yes ; then
2060 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
2065 if test $ol_enable_ldbm_api = ndbm ; then
2068 if test $ol_cv_ndbm = yes ; then
2070 ol_enable_ldbm_api=ndbm
2072 if test $ol_cv_lib_ndbm != yes ; then
2073 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
2078 if test $ol_link_ldbm = no && test $ol_enable_ldbm != no ; then
2079 AC_MSG_ERROR([could not find suitable LDBM backend])
2082 if test $ol_enable_bdb = yes ||
2083 test $ol_enable_hdb = yes ||
2084 test $ol_enable_ldbm = yes ; then
2085 SLAPD_LIBS="$SLAPD_LIBS \$(LDBM_LIBS)"
2088 dnl ----------------------------------------------------------------
2090 if test $ol_enable_dynamic = yes && test $enable_shared = yes ; then
2091 BUILD_LIBS_DYNAMIC=shared
2092 AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
2095 BUILD_LIBS_DYNAMIC=static
2098 AC_SUBST(LTSTATIC)dnl
2100 dnl ----------------------------------------------------------------
2101 if test $ol_enable_wrappers != no ; then
2102 AC_CHECK_HEADERS(tcpd.h,[
2103 AC_MSG_CHECKING([for TCP wrappers library])
2106 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
2108 int allow_severity = 0;
2109 int deny_severity = 0;
2111 struct request_info *req;
2114 ]])],[AC_MSG_RESULT([-lwrap])
2116 LIBS="$save_LIBS"],[
2121 int allow_severity = 0;
2122 int deny_severity = 0;
2124 struct request_info *req;
2127 ],[AC_MSG_RESULT([-lwrap -lnsl])
2129 LIBS="$save_LIBS -lnsl"],[
2132 LIBS=$save_LIBS])])],[have_wrappers=no])
2134 if test $have_wrappers = yes ; then
2135 AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
2137 elif test $ol_enable_wrappers = yes ; then
2138 AC_MSG_ERROR([could not find TCP wrappers, select apppropriate options or disable])
2140 AC_MSG_WARN([could not find TCP wrappers, support disabled])
2145 dnl ----------------------------------------------------------------
2146 if test $ol_enable_syslog != no ; then
2147 AC_CHECK_FUNC(openlog)
2148 if test $ac_cv_func_openlog = no && test $ol_enable_syslog = yes; then
2149 AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
2151 ol_enable_syslog=$ac_cv_func_openlog
2154 dnl ----------------------------------------------------------------
2157 if test $ol_enable_sql != no ; then
2158 AC_CHECK_HEADERS(sql.h sqlext.h,[],[
2159 AC_MSG_ERROR([could not locate SQL headers])
2163 LIBS="$LTHREAD_LIBS"
2165 AC_CHECK_LIB(iodbc,SQLDriverConnect,[have_iodbc=yes],[have_iodbc=no])
2166 if test $have_iodbc = yes ; then
2167 ol_link_sql="-liodbc"
2169 AC_CHECK_LIB(odbc,SQLDriverConnect,[have_odbc=yes],[have_odbc=no])
2170 if test $have_odbc = yes ; then
2171 ol_link_sql="-lodbc"
2177 if test $ol_link_sql != no ; then
2178 SLAPD_SQL_LIBS="$ol_link_sql"
2180 elif test $ol_enable_sql != auto ; then
2181 AC_MSG_ERROR([could not locate suitable ODBC library])
2185 dnl ----------------------------------------------------------------
2186 dnl International Components for Unicode
2188 if test "$ol_icu" = no ; then
2189 AC_MSG_WARN([ICU not available])
2193 dnl ----------------------------------------------------------------
2195 dnl Check for Cyrus SASL
2200 if test $ol_with_cyrus_sasl != no ; then
2201 AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
2203 if test $ac_cv_header_sasl_sasl_h = yes ||
2204 test $ac_cv_header_sasl_h = yes; then
2205 AC_CHECK_LIB(sasl2, sasl_client_init,
2206 [ol_link_sasl="-lsasl2"],
2207 [AC_CHECK_LIB(sasl, sasl_client_init,
2208 [ol_link_sasl="-lsasl"])])
2211 if test $ol_link_sasl = no ; then
2212 if test $ol_with_cyrus_sasl != auto ; then
2213 AC_MSG_ERROR([Could not locate Cyrus SASL])
2215 AC_MSG_WARN([Could not locate Cyrus SASL])
2216 AC_MSG_WARN([SASL authentication not supported!])
2217 if test $ol_link_tls = no ; then
2218 AC_MSG_WARN([Strong authentication not supported!])
2223 if test $ol_cv_sasl_compat = no ; then
2225 AC_MSG_ERROR([Cyrus SASL library located but is incompatible])
2228 AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
2229 SASL_LIBS="$ol_link_sasl"
2230 if test $ol_enable_spasswd != no ; then
2234 ac_save_LIBS="$LIBS"
2235 LIBS="$LIBS $ol_link_sasl"
2236 AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1,
2237 [define if your SASL library has sasl_version()])])
2238 LIBS="$ac_save_LIBS"
2244 AC_MSG_WARN([SASL authentication not supported!])
2245 if test $ol_link_tls = no ; then
2246 AC_MSG_WARN([Strong authentication not supported!])
2250 dnl ----------------------------------------------------------------
2251 dnl Check for entropy sources
2252 if test $cross_compiling != yes && test "$ac_cv_mingw32" != yes ; then
2254 if test -r /dev/urandom ; then
2256 elif test -r /idev/urandom ; then
2257 dev="/idev/urandom";
2258 elif test -r /dev/srandom ; then
2260 elif test -r /dev/random ; then
2262 elif test -r /idev/random ; then
2266 if test $dev != no ; then
2267 AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
2271 dnl ----------------------------------------------------------------
2273 dnl Check for fetch URL support
2274 dnl should be extended to support other fetch URL APIs
2277 if test $ol_with_fetch != no ; then
2280 if test $ol_cv_lib_fetch != no ; then
2281 LUTIL_LIBS="$LUTIL_LIBS $ol_link_fetch"
2282 ol_link_fetch=freebsd
2284 elif test $ol_with_fetch != auto ; then
2285 AC_MSG_ERROR(no suitable API for --with-fetch=$ol_with_fetch)
2289 dnl ----------------------------------------------------------------
2290 dnl FreeBSD (and others) have crypt(3) in -lcrypt
2291 if test $ol_enable_crypt != no ; then
2293 LIBS="$TLS_LIBS $LIBS"
2295 AC_CHECK_FUNC(crypt, [have_crypt=yes], [
2297 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
2298 have_crypt=yes], [have_crypt=no])])
2302 if test $have_crypt = yes ; then
2303 AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
2305 AC_MSG_WARN([could not find crypt])
2306 if test $ol_enable_crypt = yes ; then
2307 AC_MSG_ERROR([could not find crypt, select appropriate options or disable])
2310 AC_MSG_WARN([disabling crypt support])
2315 dnl ----------------------------------------------------------------
2316 dnl FreeBSD (and others) have setproctitle(3) in -lutil
2317 if test $ol_enable_proctitle != no ; then
2318 AC_CHECK_FUNC(setproctitle, [have_setproctitle=yes], [
2319 AC_CHECK_LIB(util, setproctitle,
2320 [have_setproctitle=yes
2321 LUTIL_LIBS="$LUTIL_LIBS -lutil"],
2322 [have_setproctitle=no
2323 AC_LIBOBJ(setproctitle)
2324 LIBSRCS="$LIBSRCS setproctitle.c"])])
2326 if test $have_setproctitle = yes ; then
2327 AC_DEFINE(HAVE_SETPROCTITLE,1,
2328 [define if setproctitle(3) is available])
2332 dnl ----------------------------------------------------------------
2333 dnl Check for SLPv2 Compliant API Library
2334 if test $ol_enable_slp != no ; then
2335 AC_CHECK_HEADERS( slp.h )
2337 if test $ac_cv_header_slp_h = yes ; then
2338 AC_CHECK_LIB(slp, SLPOpen, [have_slp=yes], [have_slp=no])
2339 if test $have_slp = yes ; then
2340 AC_DEFINE(HAVE_SLP, 1, [define if you have -lslp])
2341 SLAPD_SLP_LIBS=-lslp
2344 elif test $ol_enable_slp = yes ; then
2345 AC_MSG_ERROR([SLP not found])
2349 dnl ----------------------------------------------------------------
2350 dnl Check for multiple precision support
2351 if test "$ol_with_multiple_precision" != "no" ; then
2355 AC_CHECK_HEADERS(openssl/bn.h bn.h)
2356 AC_CHECK_HEADERS(openssl/crypto.h crypto.h)
2357 AC_CHECK_HEADERS( gmp.h )
2359 if test "$ol_with_tls" = "found" ; then
2363 if test "$ac_cv_header_openssl_bn_h" = "yes" ||
2364 test "$ac_cv_header_bn_h" = "yes" ; then
2368 if test "$ac_cv_header_openssl_crypto_h" = "yes" ||
2369 test "$ac_cv_header_crypto_h" = "yes" ; then
2370 ol_have_crypto_h=yes
2373 if test "$ol_have_bn_h" = "yes" &&
2374 test "$ol_have_crypto_h" = "yes" ; then
2379 if test $ac_cv_header_gmp_h = yes ; then
2380 AC_CHECK_LIB(gmp, __gmpz_add_ui, [have_gmp=yes], [have_gmp=no])
2381 if test $have_gmp = yes ; then
2386 AC_MSG_CHECKING([for multiple precision support])
2388 ol_mp_support="none"
2389 case "$ol_with_multiple_precision" in
2391 dnl preferred sequence:
2392 dnl - OpenSSL's BIGNUM (if libssl is already linked)
2395 if test "$ol_have_bignum" = "yes" ; then
2396 ol_mp_support="bignum"
2398 if test "$ol_have_gmp" = "yes" ; then
2404 if test "$ol_have_bignum" != "yes" ; then
2405 AC_MSG_ERROR([OpenSSL's BIGNUM not available])
2407 ol_mp_support="bignum"
2410 if test "$ol_have_gmp" != "yes" ; then
2411 AC_MSG_ERROR([GMP not available])
2416 if test "$ol_have_bignum" = "yes" ; then
2417 ol_mp_support="bignum"
2418 elif test "$ol_have_gmp" = "yes" ; then
2421 AC_MSG_ERROR([not available])
2426 case "$ol_mp_support" in
2428 AC_DEFINE(HAVE_BIGNUM, 1,
2429 [define if you have OpenSSL's BIGNUM])
2432 AC_DEFINE(HAVE_GMP, 1, [define if you have -lgmp])
2433 SLAPD_GMP_LIBS=-lgmp
2439 AC_MSG_RESULT($ol_mp_support)
2442 dnl ----------------------------------------------------------------
2443 dnl Checks for typedefs, structures, and compiler characteristics.
2445 AC_CHECK_TYPE(mode_t, int)
2446 AC_CHECK_TYPE(off_t, long)
2447 AC_CHECK_TYPE(pid_t, int)
2448 AC_CHECK_TYPE(ssize_t, [signed int])
2449 AC_CHECK_TYPE(caddr_t, [char *])
2450 AC_CHECK_TYPE(size_t, unsigned)
2452 AC_CHECK_TYPES([long long])
2453 AC_CHECK_TYPES([ptrdiff_t])
2455 AC_CHECK_TYPE([socklen_t],,
2456 [AC_DEFINE_UNQUOTED([socklen_t], [int],
2457 [Define to `int' if <sys/socket.h> does not define.])],
2458 [$ac_includes_default
2459 #ifdef HAVE_SYS_SOCKET_H
2460 #include <sys/socket.h>
2466 AC_CHECK_TYPE([sig_atomic_t],,
2467 [AC_DEFINE_UNQUOTED([sig_atomic_t], [int],
2468 [Define to `int' if <signal.h> does not define.])],
2469 [$ac_includes_default
2477 AC_CHECK_MEMBERS([struct stat.st_blksize])
2478 AC_CHECK_MEMBERS([struct passwd.pw_gecos],,,[$ac_includes_default
2480 AC_CHECK_MEMBERS([struct passwd.pw_passwd],,,[$ac_includes_default
2487 if test $cross_compiling = yes ; then
2488 AC_MSG_WARN([Crossing compiling... all bets are off!])
2489 AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
2494 AC_CHECK_SIZEOF(short)
2495 AC_CHECK_SIZEOF(int)
2496 AC_CHECK_SIZEOF(long)
2497 AC_CHECK_SIZEOF(wchar_t)
2499 if test "$ac_cv_sizeof_int" -lt 4 ; then
2500 AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
2502 AC_DEFINE(LBER_INT_T,long,[define to 32-bit or greater integer type])
2504 AC_DEFINE(LBER_INT_T,int,[define to 32-bit or greater integer type])
2507 AC_DEFINE(LBER_LEN_T,long,[define to large integer type])
2508 AC_DEFINE(LBER_SOCKET_T,int,[define to socket descriptor type])
2509 AC_DEFINE(LBER_TAG_T,long,[define to large integer type])
2511 dnl ----------------------------------------------------------------
2512 dnl Checks for library functions.
2515 if test $ac_cv_func_memcmp_working = no ; then
2516 AC_DEFINE(NEED_MEMCMP_REPLACEMENT,1,
2517 [define if memcmp is not 8-bit clean or is otherwise broken])
2524 dnl Check for NT specific routines
2525 AC_CHECK_FUNC(_spawnlp, AC_DEFINE(HAVE_SPAWNLP,1,[if you have spawnlp()]))
2527 AC_CHECK_FUNC(_snprintf, [ac_cv_func_snprintf=yes
2528 AC_DEFINE(snprintf, _snprintf, [define to snprintf routine])
2531 AC_CHECK_FUNC(_vsnprintf, [ac_cv_func_vsnprintf=yes
2532 AC_DEFINE(vsnprintf, _vsnprintf, [define to vsnprintf routine])
2537 if test $ac_cv_func_vprintf = yes ; then
2538 dnl check for vsnprintf
2539 AC_CHECK_FUNCS(snprintf vsnprintf)
2599 dnl We actually may need to replace more than this.
2600 AC_REPLACE_FUNCS(getopt getpeereid)
2602 if test "$ac_cv_func_getopt" != yes; then
2603 LIBSRCS="$LIBSRCS getopt.c"
2606 if test "$ac_cv_func_getpeereid" != yes; then
2607 AC_CHECK_FUNCS( getpeerucred )
2608 if test "$ac_cv_func_getpeerucred" != yes ; then
2609 AC_CHECK_MEMBERS([struct msghdr.msg_accrightslen],,,
2610 [$ac_includes_default
2611 #ifdef HAVE_SYS_SOCKET_H
2612 #include <sys/socket.h>
2614 if test "$ac_cv_member_struct_msghdr_msg_accrightslen" != yes; then
2615 AC_CHECK_MEMBERS([struct msghdr.msg_control],,,
2616 [$ac_includes_default
2617 #ifdef HAVE_SYS_SOCKET_H
2618 #include <sys/socket.h>
2622 LIBSRCS="$LIBSRCS getpeereid.c"
2625 if test "$ac_cv_func_snprintf" != yes ||
2626 test "$ac_cv_func_vsnprintf" != yes; then
2627 if test "$ac_cv_func_snprintf" != yes; then
2628 AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
2630 if test "$ac_cv_func_vsnprintf" != yes; then
2631 AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine])
2635 dnl ----------------------------------------------------------------
2636 dnl Sort out defines
2638 if test "$ol_enable_slapi" != no ; then
2639 dnl This check is done also if --enable-modules is used;
2640 dnl it is duplicated here, 'cause it'd be cached anyway
2641 AC_CHECK_HEADERS(ltdl.h)
2643 if test $ac_cv_header_ltdl_h != yes ; then
2644 AC_MSG_ERROR([could not locate <ltdl.h>])
2646 AC_CHECK_LIB(ltdl, lt_dlinit, [
2649 LIBSLAPITOOLS=../libslapi.a
2650 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
2651 ],[AC_MSG_ERROR([could not locate libtool -lltdl])])
2653 AC_DEFINE(LDAP_SLAPI,1, [define this to add SLAPI code])
2656 if test "$ol_enable_debug" != no ; then
2657 if test "$ol_enable_debug" = traditional; then
2658 AC_DEFINE(OLD_DEBUG,1,
2659 [define to use the original debug style])
2661 AC_DEFINE(LDAP_DEBUG,1,
2662 [define this to add debugging code])
2664 if test "$ol_enable_syslog" = yes ; then
2665 AC_DEFINE(LDAP_SYSLOG,1,
2666 [define this to add syslog code])
2668 if test "$ol_link_kbind" != no ; then
2669 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND,LDAP_VENDOR_VERSION,
2670 [define to LDAP VENDOR VERSION])
2672 if test "$ol_enable_proctitle" != no ; then
2673 AC_DEFINE(LDAP_PROCTITLE,1,
2674 [define this for LDAP process title support])
2676 if test "$ol_enable_referrals" != no ; then
2677 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION,
2678 [define to LDAP VENDOR VERSION])
2680 if test "$ol_enable_local" != no; then
2681 AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
2683 if test "$ol_link_ipv6" != no; then
2684 AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
2686 if test "$ol_enable_cleartext" != no ; then
2687 AC_DEFINE(SLAPD_CLEARTEXT,1,[define to support cleartext passwords])
2689 if test "$ol_enable_crypt" != no ; then
2690 AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords])
2692 if test "$ol_link_spasswd" != no ; then
2693 AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
2695 if test "$ol_enable_multimaster" != no ; then
2696 AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
2698 if test "$ol_enable_rlookups" != no ; then
2699 AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
2701 if test "$ol_enable_aci" != no ; then
2702 if test $ol_enable_dynacl = no ; then
2703 ol_enable_dynacl=yes
2704 AC_MSG_WARN([ACIs need dynacl])
2706 if test "$ol_enable_aci" = mod ; then
2707 MFLAG=SLAPD_MOD_DYNAMIC
2708 dnl remove this after moving servers/slapd/aci.c in contrib/slapd-modules/acl
2709 AC_MSG_ERROR([ACI build as dynamic module not supported (yet)])
2711 MFLAG=SLAPD_MOD_STATIC
2713 WITH_ACI_ENABLED=$ol_enable_aci
2714 AC_DEFINE_UNQUOTED(SLAPD_ACI_ENABLED,$MFLAG,[define to support per-object ACIs])
2718 if test "$ol_enable_dynacl" != no ; then
2719 AC_DEFINE(SLAP_DYNACL,1,[define to support run-time loadable ACL])
2722 if test "$ol_link_modules" != no ; then
2723 AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
2725 SLAPD_MODULES_LDFLAGS="-dlopen self"
2728 AC_DEFINE(SLAPD_MOD_STATIC,1,[statically linked module])
2729 AC_DEFINE(SLAPD_MOD_DYNAMIC,2,[dynamically linked module])
2731 if test "$ol_enable_bdb" != no ; then
2733 BUILD_BDB=$ol_enable_bdb
2734 if test "$ol_enable_bdb" = mod ; then
2735 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
2736 MFLAG=SLAPD_MOD_DYNAMIC
2738 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
2739 MFLAG=SLAPD_MOD_STATIC
2741 AC_DEFINE_UNQUOTED(SLAPD_BDB,$MFLAG,[define to support BDB backend])
2744 if test "$ol_enable_dnssrv" != no ; then
2746 BUILD_DNSSRV=$ol_enable_dnssrv
2747 if test "$ol_enable_dnssrv" = mod ; then
2748 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
2749 MFLAG=SLAPD_MOD_DYNAMIC
2751 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
2752 MFLAG=SLAPD_MOD_STATIC
2754 AC_DEFINE_UNQUOTED(SLAPD_DNSSRV,$MFLAG,[define to support DNS SRV backend])
2757 if test "$ol_enable_hdb" != no ; then
2759 BUILD_HDB=$ol_enable_hdb
2760 if test "$ol_enable_hdb" = mod ; then
2761 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-hdb"
2762 MFLAG=SLAPD_MOD_DYNAMIC
2764 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb"
2765 MFLAG=SLAPD_MOD_STATIC
2767 AC_DEFINE_UNQUOTED(SLAPD_HDB,$MFLAG,[define to support HDB backend])
2770 if test "$ol_enable_ldap" != no ; then
2772 BUILD_LDAP=$ol_enable_ldap
2773 if test "$ol_enable_ldap" = mod ; then
2774 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
2775 MFLAG=SLAPD_MOD_DYNAMIC
2777 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
2778 MFLAG=SLAPD_MOD_STATIC
2780 AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
2783 if test "$ol_link_ldbm" != no && test $ol_enable_ldbm != no; then
2785 BUILD_LDBM=$ol_enable_ldbm
2786 if test "$ol_enable_ldbm" = mod ; then
2787 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldbm"
2788 MFLAG=SLAPD_MOD_DYNAMIC
2790 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldbm"
2791 MFLAG=SLAPD_MOD_STATIC
2793 AC_DEFINE_UNQUOTED(SLAPD_LDBM,$MFLAG,[define to support LDBM backend])
2796 if test "$ol_enable_meta" != no ; then
2798 BUILD_META=$ol_enable_meta
2800 if test "$ol_enable_meta" = mod ; then
2801 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
2802 MFLAG=SLAPD_MOD_DYNAMIC
2804 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
2805 MFLAG=SLAPD_MOD_STATIC
2807 AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
2810 if test "$ol_enable_monitor" != no ; then
2812 BUILD_MONITOR=$ol_enable_monitor
2813 if test "$ol_enable_monitor" = mod ; then
2814 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
2815 MFLAG=SLAPD_MOD_DYNAMIC
2817 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
2818 MFLAG=SLAPD_MOD_STATIC
2820 AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
2823 if test "$ol_enable_null" != no ; then
2825 BUILD_NULL=$ol_enable_null
2826 if test "$ol_enable_null" = mod ; then
2827 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
2828 MFLAG=SLAPD_MOD_DYNAMIC
2830 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
2831 MFLAG=SLAPD_MOD_STATIC
2833 AC_DEFINE_UNQUOTED(SLAPD_NULL,$MFLAG,[define to support NULL backend])
2836 if test "$ol_enable_passwd" != no ; then
2838 BUILD_PASSWD=$ol_enable_passwd
2839 if test "$ol_enable_passwd" = mod ; then
2840 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
2841 MFLAG=SLAPD_MOD_DYNAMIC
2843 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
2844 MFLAG=SLAPD_MOD_STATIC
2846 AC_DEFINE_UNQUOTED(SLAPD_PASSWD,$MFLAG,[define to support PASSWD backend])
2849 if test "$ol_link_perl" != no ; then
2851 BUILD_PERL=$ol_enable_perl
2852 if test "$ol_enable_perl" = mod ; then
2853 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
2854 MFLAG=SLAPD_MOD_DYNAMIC
2856 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
2857 MFLAG=SLAPD_MOD_STATIC
2859 AC_DEFINE_UNQUOTED(SLAPD_PERL,$MFLAG,[define to support PERL backend])
2862 if test "$ol_enable_relay" != no ; then
2864 BUILD_RELAY=$ol_enable_relay
2865 if test "$ol_enable_relay" = mod ; then
2866 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-relay"
2867 MFLAG=SLAPD_MOD_DYNAMIC
2869 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-relay"
2870 MFLAG=SLAPD_MOD_STATIC
2872 AC_DEFINE_UNQUOTED(SLAPD_RELAY,$MFLAG,[define to support relay backend])
2875 if test "$ol_enable_shell" != no ; then
2876 if test "$ol_link_threads" != no ; then
2877 AC_MSG_WARN([Use of --without-threads is recommended with back-shell])
2880 BUILD_SHELL=$ol_enable_shell
2881 if test "$ol_enable_shell" = mod ; then
2882 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
2883 MFLAG=SLAPD_MOD_DYNAMIC
2885 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
2886 MFLAG=SLAPD_MOD_STATIC
2888 AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend])
2891 if test "$ol_link_sql" != no ; then
2893 BUILD_SQL=$ol_enable_sql
2894 if test "$ol_enable_sql" = mod; then
2895 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
2896 MFLAG=SLAPD_MOD_DYNAMIC
2898 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
2899 MFLAG=SLAPD_MOD_STATIC
2901 AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend])
2904 if test "$ol_enable_accesslog" != no ; then
2905 BUILD_ACCESSLOG=$ol_enable_accesslog
2906 if test "$ol_enable_accesslog" = mod ; then
2907 MFLAG=SLAPD_MOD_DYNAMIC
2908 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS accesslog.la"
2910 MFLAG=SLAPD_MOD_STATIC
2911 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS accesslog.o"
2913 AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay])
2916 if test "$ol_enable_denyop" != no ; then
2917 BUILD_DENYOP=$ol_enable_denyop
2918 if test "$ol_enable_denyop" = mod ; then
2919 MFLAG=SLAPD_MOD_DYNAMIC
2920 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS denyop.la"
2922 MFLAG=SLAPD_MOD_STATIC
2923 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS denyop.o"
2925 AC_DEFINE_UNQUOTED(SLAPD_OVER_DENYOP,$MFLAG,[define for Deny Operation overlay])
2928 if test "$ol_enable_dyngroup" != no ; then
2929 BUILD_DYNGROUP=$ol_enable_dyngroup
2930 if test "$ol_enable_dyngroup" = mod ; then
2931 MFLAG=SLAPD_MOD_DYNAMIC
2932 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dyngroup.la"
2934 MFLAG=SLAPD_MOD_STATIC
2935 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dyngroup.o"
2937 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay])
2940 if test "$ol_enable_dynlist" != no ; then
2941 BUILD_DYNLIST=$ol_enable_dynlist
2942 if test "$ol_enable_dynlist" = mod ; then
2943 MFLAG=SLAPD_MOD_DYNAMIC
2944 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dynlist.la"
2946 MFLAG=SLAPD_MOD_STATIC
2947 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dynlist.o"
2949 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNLIST,$MFLAG,[define for Dynamic List overlay])
2952 if test "$ol_enable_lastmod" != no ; then
2953 BUILD_LASTMOD=$ol_enable_lastmod
2954 if test "$ol_enable_lastmod" = mod ; then
2955 MFLAG=SLAPD_MOD_DYNAMIC
2956 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS lastmod.la"
2958 MFLAG=SLAPD_MOD_STATIC
2959 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS lastmod.o"
2961 AC_DEFINE_UNQUOTED(SLAPD_OVER_LASTMOD,$MFLAG,[define for Last Modification overlay])
2964 if test "$ol_enable_ppolicy" != no ; then
2965 BUILD_PPOLICY=$ol_enable_ppolicy
2966 if test "$ol_enable_ppolicy" = mod ; then
2967 MFLAG=SLAPD_MOD_DYNAMIC
2968 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS ppolicy.la"
2970 MFLAG=SLAPD_MOD_STATIC
2971 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS ppolicy.o"
2973 AC_DEFINE_UNQUOTED(SLAPD_OVER_PPOLICY,$MFLAG,[define for Password Policy overlay])
2976 if test "$ol_enable_proxycache" != no ; then
2977 BUILD_PROXYCACHE=$ol_enable_proxycache
2978 if test "$ol_enable_proxycache" = mod ; then
2979 MFLAG=SLAPD_MOD_DYNAMIC
2980 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS pcache.la"
2982 MFLAG=SLAPD_MOD_STATIC
2983 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS pcache.o"
2985 AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay])
2988 if test "$ol_enable_refint" != no ; then
2989 BUILD_REFINT=$ol_enable_refint
2990 if test "$ol_enable_refint" = mod ; then
2991 MFLAG=SLAPD_MOD_DYNAMIC
2992 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la"
2994 MFLAG=SLAPD_MOD_STATIC
2995 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS refint.o"
2997 AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay])
3000 if test "$ol_enable_retcode" != no ; then
3001 BUILD_RETCODE=$ol_enable_retcode
3002 if test "$ol_enable_retcode" = mod ; then
3003 MFLAG=SLAPD_MOD_DYNAMIC
3004 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS retcode.la"
3006 MFLAG=SLAPD_MOD_STATIC
3007 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS retcode.o"
3009 AC_DEFINE_UNQUOTED(SLAPD_OVER_RETCODE,$MFLAG,[define for Referential Integrity overlay])
3012 if test "$ol_enable_rwm" != no ; then
3014 BUILD_RWM=$ol_enable_rwm
3015 if test "$ol_enable_rwm" = mod ; then
3016 MFLAG=SLAPD_MOD_DYNAMIC
3017 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS rwm.la"
3019 MFLAG=SLAPD_MOD_STATIC
3020 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS rwm_x.o"
3022 AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
3025 if test "$ol_enable_syncprov" != no ; then
3026 BUILD_SYNCPROV=$ol_enable_syncprov
3027 if test "$ol_enable_syncprov" = mod ; then
3028 MFLAG=SLAPD_MOD_DYNAMIC
3029 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS syncprov.la"
3031 MFLAG=SLAPD_MOD_STATIC
3032 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS syncprov.o"
3034 AC_DEFINE_UNQUOTED(SLAPD_OVER_SYNCPROV,$MFLAG,[define for Syncrepl Provider overlay])
3037 if test "$ol_enable_translucent" != no ; then
3038 BUILD_TRANSLUCENT=$ol_enable_translucent
3039 if test "$ol_enable_translucent" = mod ; then
3040 MFLAG=SLAPD_MOD_DYNAMIC
3041 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS translucent.la"
3043 MFLAG=SLAPD_MOD_STATIC
3044 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS translucent.o"
3046 AC_DEFINE_UNQUOTED(SLAPD_OVER_TRANSLUCENT,$MFLAG,[define for Translucent Proxy overlay])
3049 if test "$ol_enable_unique" != no ; then
3050 BUILD_UNIQUE=$ol_enable_unique
3051 if test "$ol_enable_unique" = mod ; then
3052 MFLAG=SLAPD_MOD_DYNAMIC
3053 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la"
3055 MFLAG=SLAPD_MOD_STATIC
3056 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS unique.o"
3058 AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay])
3061 if test "$ol_enable_valsort" != no ; then
3062 BUILD_VALSORT=$ol_enable_valsort
3063 if test "$ol_enable_valsort" = mod ; then
3064 MFLAG=SLAPD_MOD_DYNAMIC
3065 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS valsort.la"
3067 MFLAG=SLAPD_MOD_STATIC
3068 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS valsort.o"
3070 AC_DEFINE_UNQUOTED(SLAPD_OVER_VALSORT,$MFLAG,[define for Value Sorting overlay])
3073 if test "$ol_enable_slurpd" != no &&
3074 test "$ol_link_threads" != no &&
3075 test $BUILD_SLAPD = yes ; then
3079 if test "$ol_enable_rewrite" != no ; then
3080 AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta])
3084 if test "$ol_enable_slapi" != no ; then
3085 AC_DEFINE(ENABLE_SLAPI,1,[define to enable slapi library])
3087 SLAPD_SLAPI_DEPEND=libslapi.a
3090 dnl ----------------------------------------------------------------
3093 dnl For Windows build, we don't want to include -dlopen flags.
3094 dnl They hurt more than they help.
3097 if test "$ac_cv_mingw32" = yes ; then
3099 SLAPD_MODULES_LDFLAGS=
3108 AC_SUBST(WITH_MODULES_ENABLED)
3109 AC_SUBST(WITH_ACI_ENABLED)
3110 AC_SUBST(BUILD_THREAD)
3111 AC_SUBST(BUILD_LIBS_DYNAMIC)
3113 AC_SUBST(BUILD_SLAPD)
3115 AC_SUBST(BUILD_SLAPI)
3116 AC_SUBST(SLAPD_SLAPI_DEPEND)
3119 AC_SUBST(BUILD_DNSSRV)
3121 AC_SUBST(BUILD_LDAP)
3122 AC_SUBST(BUILD_LDBM)
3123 AC_SUBST(BUILD_META)
3124 AC_SUBST(BUILD_MONITOR)
3125 AC_SUBST(BUILD_NULL)
3126 AC_SUBST(BUILD_PASSWD)
3127 AC_SUBST(BUILD_RELAY)
3128 AC_SUBST(BUILD_PERL)
3129 AC_SUBST(BUILD_SHELL)
3132 AC_SUBST(BUILD_ACCESSLOG)
3133 AC_SUBST(BUILD_DENYOP)
3134 AC_SUBST(BUILD_DYNGROUP)
3135 AC_SUBST(BUILD_DYNLIST)
3136 AC_SUBST(BUILD_LASTMOD)
3137 AC_SUBST(BUILD_PPOLICY)
3138 AC_SUBST(BUILD_PROXYCACHE)
3139 AC_SUBST(BUILD_REFINT)
3140 AC_SUBST(BUILD_RETCODE)
3142 AC_SUBST(BUILD_SYNCPROV)
3143 AC_SUBST(BUILD_TRANSLUCENT)
3144 AC_SUBST(BUILD_UNIQUE)
3145 AC_SUBST(BUILD_VALSORT)
3146 AC_SUBST(BUILD_SLURPD)
3149 AC_SUBST(SLAPD_LIBS)
3150 AC_SUBST(SLURPD_LIBS)
3152 AC_SUBST(LTHREAD_LIBS)
3153 AC_SUBST(LUTIL_LIBS)
3156 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
3157 AC_SUBST(SLAPD_MODULES_LDFLAGS)
3159 AC_SUBST(SLAPD_NO_STATIC)
3160 AC_SUBST(SLAPD_STATIC_BACKENDS)
3161 AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
3162 AC_SUBST(SLAPD_STATIC_OVERLAYS)
3163 AC_SUBST(SLAPD_DYNAMIC_OVERLAYS)
3165 AC_SUBST(PERL_CPPFLAGS)
3166 AC_SUBST(SLAPD_PERL_LDFLAGS)
3167 AC_SUBST(MOD_PERL_LDFLAGS)
3173 AC_SUBST(MODULES_LIBS)
3174 AC_SUBST(SLAPI_LIBS)
3176 AC_SUBST(LIBSLAPITOOLS)
3180 AC_SUBST(SLAPD_SLP_LIBS)
3181 AC_SUBST(SLAPD_GMP_LIBS)
3183 AC_SUBST(SLAPD_SQL_LDFLAGS)
3184 AC_SUBST(SLAPD_SQL_LIBS)
3185 AC_SUBST(SLAPD_SQL_INCLUDES)
3187 dnl ----------------------------------------------------------------
3188 dnl final help output
3189 AC_ARG_WITH(xxinstall,[
3190 See INSTALL file for further details.])
3192 dnl ----------------------------------------------------------------
3196 AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.mk]
3197 [doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk]
3198 [doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk]
3199 [doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk]
3200 [doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk]
3201 [doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk]
3202 [doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk]
3203 [clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk]
3204 [clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk]
3205 [include/Makefile:build/top.mk:include/Makefile.in]
3206 [libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk]
3207 [libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk]
3208 [libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk]
3209 [libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk]
3210 [libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk]
3211 [libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk]
3212 [libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk]
3213 [servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk]
3214 [servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk]
3215 [servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk]
3216 [servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk]
3217 [servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk]
3218 [servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk]
3219 [servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/mod.mk]
3220 [servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk]
3221 [servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk]
3222 [servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk]
3223 [servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk]
3224 [servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk]
3225 [servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk]
3226 [servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk]
3227 [servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk]
3228 [servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk]
3229 [servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk]
3230 [servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk]
3231 [servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk]
3232 [servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk]
3233 [tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk]
3235 [tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk])
3237 AC_CONFIG_COMMANDS([default],[[
3240 BACKENDSC="servers/slapd/backends.c"
3241 echo "Making $BACKENDSC"
3243 cat > $BACKENDSC << ENDX
3244 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3246 * Copyright 1998-2006 The OpenLDAP Foundation.
3247 * All rights reserved.
3249 * Redistribution and use in source and binary forms, with or without
3250 * modification, are permitted only as authorized by the OpenLDAP
3253 * A copy of this license is available in the file LICENSE in the
3254 * top-level directory of the distribution or, alternatively, at
3255 * <http://www.OpenLDAP.org/license.html>.
3257 /* This file is automatically generated by configure; please do not edit. */
3259 #include "portable.h"
3263 if test "${STATIC_BACKENDS}"; then
3264 for b in config ${STATIC_BACKENDS}; do
3265 bb=`echo "${b}" | sed -e 's/back-//'`
3266 cat >> $BACKENDSC << ENDX
3267 extern BI_init ${bb}_back_initialize;
3271 cat >> $BACKENDSC << ENDX
3273 BackendInfo slap_binfo[] = {
3276 for b in config ${STATIC_BACKENDS}; do
3277 bb=`echo "${b}" | sed -e 's/back-//'`
3278 echo " Add ${bb} ..."
3279 cat >> $BACKENDSC << ENDX
3280 { "${bb}", ${bb}_back_initialize },
3284 cat >> $BACKENDSC << ENDX
3288 /* end of generated file */
3291 OVERLAYSC="servers/slapd/overlays/statover.c"
3292 echo "Making $OVERLAYSC"
3294 cat > $OVERLAYSC << ENDX
3295 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3297 * Copyright 1998-2006 The OpenLDAP Foundation.
3298 * All rights reserved.
3300 * Redistribution and use in source and binary forms, with or without
3301 * modification, are permitted only as authorized by the OpenLDAP
3304 * A copy of this license is available in the file LICENSE in the
3305 * top-level directory of the distribution or, alternatively, at
3306 * <http://www.OpenLDAP.org/license.html>.
3308 /* This file is automatically generated by configure; please do not edit. */
3310 #include "portable.h"
3314 if test "${STATIC_OVERLAYS}"; then
3315 for o in ${STATIC_OVERLAYS}; do
3316 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3317 cat >> $OVERLAYSC << ENDX
3318 extern OV_init ${oo}_initialize;
3323 cat >> $OVERLAYSC << ENDX
3325 OverlayInit slap_oinfo[] = {
3328 if test "${STATIC_OVERLAYS}"; then
3329 for o in ${STATIC_OVERLAYS}; do
3330 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3331 echo " Add ${oo} ..."
3332 cat >> $OVERLAYSC << ENDX
3333 { "${oo}", ${oo}_initialize },
3338 cat >> $OVERLAYSC << ENDX
3342 /* end of generated file */
3345 echo Please run \"make depend\" to build dependencies
3347 STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"
3348 STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS"