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 OL_ARG_ENABLE(debug,[ --enable-debug enable debugging], yes)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,
251 [ --with-yielding-select with implicitly yielding select],
252 auto, [auto yes no manual] )
254 [ --with-mp with multiple precision statistics auto|longlong|long|bignum|gmp],
255 auto, [auto longlong long 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(aci,[ --enable-aci enable per-object ACIs (experimental)], no)dnl
267 OL_ARG_ENABLE(cleartext,[ --enable-cleartext enable cleartext passwords], yes)dnl
268 OL_ARG_ENABLE(crypt,[ --enable-crypt enable crypt(3) passwords], no)dnl
269 OL_ARG_ENABLE(lmpasswd,[ --enable-lmpasswd enable LAN Manager passwords], no)dnl
270 OL_ARG_ENABLE(spasswd,[ --enable-spasswd enable (Cyrus) SASL password verification], no)dnl
271 OL_ARG_ENABLE(modules,[ --enable-modules enable dynamic module support], no)dnl
272 dnl OL_ARG_ENABLE(multimaster,[ --enable-multimaster enable multimaster replication], no)dnl
273 ol_enable_multimaster=${ol_enable_multimaster-no}
274 OL_ARG_ENABLE(rewrite,[ --enable-rewrite enable DN rewriting in back-ldap and rwm overlay], auto)dnl
275 OL_ARG_ENABLE(rlookups,[ --enable-rlookups enable reverse lookups of client hostnames], no)dnl
276 OL_ARG_ENABLE(slapi,[ --enable-slapi enable SLAPI support (experimental)], no)dnl
277 OL_ARG_ENABLE(slp,[ --enable-slp enable SLPv2 support], no)dnl
278 OL_ARG_ENABLE(wrappers,[ --enable-wrappers enable tcp wrapper support], no)dnl
280 dnl ----------------------------------------------------------------
281 dnl SLAPD Backend Options
296 AC_ARG_ENABLE(xxslapbackends,[
297 SLAPD Backend Options:])
299 OL_ARG_ENABLE(backends,[ --enable-backends enable all available backends],
301 OL_ARG_ENABLE(bdb,[ --enable-bdb enable Berkeley DB backend],
302 yes, [no yes mod], ol_enable_backends)dnl
303 OL_ARG_ENABLE(dnssrv,[ --enable-dnssrv enable dnssrv backend],
304 no, [no yes mod], ol_enable_backends)dnl
305 OL_ARG_ENABLE(hdb,[ --enable-hdb enable Hierarchical DB backend],
306 yes, [no yes mod], ol_enable_backends)dnl
307 OL_ARG_ENABLE(ldap,[ --enable-ldap enable ldap backend],
308 no, [no yes mod], ol_enable_backends)dnl
309 OL_ARG_ENABLE(ldbm,[ --enable-ldbm enable ldbm backend],
310 no, [no yes mod], ol_enable_backends)dnl
311 AC_ARG_WITH(ldbm_api,,[
312 AC_MSG_WARN([Please use --enable-ldbm-api instead of --with-ldbm-api])
313 enable_ldbm_api="$with_ldbm_api"])
314 OL_ARG_ENABLE(ldbm_api,[ --enable-ldbm-api use LDBM API],
315 auto, [auto berkeley bcompat mdbm gdbm])
316 AC_ARG_WITH(ldbm_type,,[
317 AC_MSG_WARN([Please use --enable-ldbm-type instead of --with-ldbm-type])
318 enable_ldbm_type="$with_ldbm_type"])
319 OL_ARG_ENABLE(ldbm_type,[ --enable-ldbm-type use LDBM type],
320 auto, [auto btree hash])
321 OL_ARG_ENABLE(meta,[ --enable-meta enable metadirectory backend],
322 no, [no yes mod], ol_enable_backends)dnl
323 OL_ARG_ENABLE(monitor,[ --enable-monitor enable monitor backend],
324 yes, [no yes mod], ol_enable_backends)dnl
325 OL_ARG_ENABLE(null,[ --enable-null enable null backend],
326 no, [no yes mod], ol_enable_backends)dnl
327 OL_ARG_ENABLE(passwd,[ --enable-passwd enable passwd backend],
328 no, [no yes mod], ol_enable_backends)dnl
329 OL_ARG_ENABLE(perl,[ --enable-perl enable perl backend],
330 no, [no yes mod], ol_enable_backends)dnl
331 OL_ARG_ENABLE(relay,[ --enable-relay enable relay backend],
332 yes, [no yes mod], ol_enable_backends)dnl
333 OL_ARG_ENABLE(shell,[ --enable-shell enable shell backend],
334 no, [no yes mod], ol_enable_backends)dnl
335 OL_ARG_ENABLE(sql,[ --enable-sql enable sql backend],
336 no, [no yes mod], ol_enable_backends)dnl
338 dnl ----------------------------------------------------------------
339 dnl SLAPD Overlay Options
340 Overlays="accesslog \
355 AC_ARG_ENABLE(xxslapoverlays,[
356 SLAPD Overlay Options:])
358 OL_ARG_ENABLE(overlays,[ --enable-overlays enable all available overlays],
360 OL_ARG_ENABLE(accesslog,[ --enable-accesslog In-Directory Access Logging overlay],
361 no, [no yes mod], ol_enable_overlays)
362 OL_ARG_ENABLE(denyop,[ --enable-denyop Deny Operation overlay],
363 no, [no yes mod], ol_enable_overlays)
364 OL_ARG_ENABLE(dyngroup,[ --enable-dyngroup Dynamic Group overlay],
365 no, [no yes mod], ol_enable_overlays)
366 OL_ARG_ENABLE(dynlist,[ --enable-dynlist Dynamic List overlay],
367 no, [no yes mod], ol_enable_overlays)
368 OL_ARG_ENABLE(lastmod,[ --enable-lastmod Last Modification overlay],
369 no, [no yes mod], ol_enable_overlays)
370 OL_ARG_ENABLE(ppolicy,[ --enable-ppolicy Password Policy overlay],
371 no, [no yes mod], ol_enable_overlays)
372 OL_ARG_ENABLE(proxycache,[ --enable-proxycache Proxy Cache overlay],
373 no, [no yes mod], ol_enable_overlays)
374 OL_ARG_ENABLE(refint,[ --enable-refint Referential Integrity overlay],
375 no, [no yes mod], ol_enable_overlays)
376 OL_ARG_ENABLE(retcode,[ --enable-retcode Return Code testing overlay],
377 no, [no yes mod], ol_enable_overlays)
378 OL_ARG_ENABLE(rwm,[ --enable-rwm Rewrite/Remap overlay],
379 no, [no yes mod], ol_enable_overlays)
380 OL_ARG_ENABLE(syncprov,[ --enable-syncprov Syncrepl Provider overlay],
381 yes, [no yes mod], ol_enable_overlays)
382 OL_ARG_ENABLE(translucent,[ --enable-translucent Translucent Proxy overlay],
383 no, [no yes mod], ol_enable_overlays)
384 OL_ARG_ENABLE(unique,[ --enable-unique Attribute Uniqueness overlay],
385 no, [no yes mod], ol_enable_overlays)
386 OL_ARG_ENABLE(valsort,[ --enable-valsort Value Sorting overlay],
387 no, [no yes mod], ol_enable_overlays)
389 dnl ----------------------------------------------------------------
391 AC_ARG_ENABLE(xxslurpdoptions,[
392 SLURPD (Replication Daemon) Options:])
393 OL_ARG_ENABLE(slurpd,[ --enable-slurpd enable building slurpd], auto)dnl
395 dnl ----------------------------------------------------------------
396 AC_ARG_ENABLE(xxliboptions,[
397 Library Generation & Linking Options])
401 dnl ----------------------------------------------------------------
404 if test $ol_enable_slapd = no ; then
405 dnl SLAPD was specificallly disabled
406 if test $ol_enable_slapi = yes ; then
407 AC_MSG_WARN([slapd disabled, ignoring --enable-slapi argument])
409 case "$ol_enable_backends" in yes | mod)
410 AC_MSG_WARN([slapd disabled, ignoring --enable-backends argument])
412 for i in $Backends; do
413 eval "ol_tmp=\$ol_enable_$i"
414 if test $ol_tmp != no ; then
415 AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
416 eval "ol_enable_$i=no"
419 if test $ol_enable_modules = yes ; then
420 AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
422 if test $ol_enable_multimaster = yes ; then
423 AC_MSG_WARN([slapd disabled, ignoring --enable-multimaster argument])
425 if test $ol_enable_wrappers = yes ; then
426 AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
428 if test $ol_enable_rlookups = yes ; then
429 AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
431 if test $ol_enable_aci = yes ; then
432 AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
434 if test $ol_enable_ldbm_api != auto ; then
435 AC_MSG_WARN([slapd disabled, ignoring --enable-ldbm-api argument])
437 if test $ol_enable_ldbm_type != auto ; then
438 AC_MSG_WARN([slapd disabled, ignoring --enable-ldbm-type argument])
440 if test $ol_enable_slurpd = yes ; then
441 AC_MSG_ERROR([slurpd requires slapd])
443 if test $ol_enable_rewrite = yes ; then
444 AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
447 case "$ol_enable_overlays" in yes | mod)
448 AC_MSG_WARN([slapd disabled, ignoring --enable-overlays argument])
450 for i in $Overlays; do
451 eval "ol_tmp=\$ol_enable_$i"
452 if test $ol_tmp != no ; then
453 AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
454 eval "ol_enable_$i=no"
458 # force settings to no
464 ol_enable_multimaster=no
465 ol_enable_rlookups=no
467 ol_enable_wrappers=no
469 ol_enable_ldbm_api=no
470 ol_enable_ldbm_type=no
476 elif test $ol_enable_ldbm = no ; then
477 dnl SLAPD without LDBM
479 if test $ol_enable_ldbm_api != auto ; then
480 AC_MSG_WARN([LDBM disabled, ignoring --enable-ldbm-api argument])
483 if test $ol_enable_ldbm_type != auto ; then
484 AC_MSG_WARN([LDBM disabled, ignoring --enable-ldbm-type argument])
487 if test $ol_enable_modules != yes &&
488 test $ol_enable_bdb = no &&
489 test $ol_enable_dnssrv = no &&
490 test $ol_enable_hdb = no &&
491 test $ol_enable_ldap = no &&
492 test $ol_enable_meta = no &&
493 test $ol_enable_monitor = no &&
494 test $ol_enable_null = no &&
495 test $ol_enable_passwd = no &&
496 test $ol_enable_perl = no &&
497 test $ol_enable_relay = no &&
498 test $ol_enable_shell = no &&
499 test $ol_enable_sql = no ; then
501 if test $ol_enable_slapd = yes ; then
502 AC_MSG_ERROR([slapd requires a backend])
504 AC_MSG_WARN([skipping slapd, no backend specified])
509 ol_enable_ldbm_api=no
510 ol_enable_ldbm_type=no
512 if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
513 ol_enable_ldbm_api=berkeley
518 if test $ol_enable_ldbm_api = gdbm &&
519 test $ol_enable_ldbm_type = btree ; then
520 AC_MSG_ERROR([GDBM only supports LDBM type hash])
522 if test $ol_enable_ldbm_api = mdbm &&
523 test $ol_enable_ldbm_type = btree ; then
524 AC_MSG_ERROR([MDBM only supports LDBM type hash])
526 if test $ol_enable_ldbm_api = ndbm &&
527 test $ol_enable_ldbm_type = btree ; then
528 AC_MSG_ERROR([NDBM only supports LDBM type hash])
531 if test $ol_enable_bdb/$ol_enable_hdb != no/no ; then
532 if test $ol_enable_ldbm_api = auto ; then
533 ol_enable_ldbm_api=berkeley
534 elif test $ol_enable_ldbm_api != berkeley ; then
535 AC_MSG_ERROR([LDBM API not compatible with BDB/HDB])
540 if test $ol_enable_meta/$ol_enable_ldap = yes/no ; then
541 AC_MSG_ERROR([--enable-meta requires --enable-ldap])
544 if test $ol_enable_slurpd = yes ; then
545 dnl SLURPD was specifically enabled
546 if test $ol_with_threads = no ; then
547 AC_MSG_ERROR([slurpd requires threads])
551 if test $ol_enable_lmpasswd = yes ; then
552 if test $ol_with_tls = no ; then
553 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
557 if test $ol_enable_kbind = yes ; then
558 if test $ol_with_kerberos = no ; then
559 AC_MSG_ERROR([options require --with-kerberos])
560 elif test $ol_with_kerberos = auto ; then
564 elif test $ol_enable_kbind = no ; then
565 if test $ol_with_kerberos = auto ; then
567 elif test $ol_with_kerberos != no ; then
568 AC_MSG_WARN([Kerberos detection enabled unnecessarily]);
573 if test $ol_enable_spasswd = yes ; then
574 if test $ol_with_cyrus_sasl = no ; then
575 AC_MSG_ERROR([options require --with-cyrus-sasl])
577 ol_with_cyrus_sasl=yes
582 dnl ----------------------------------------------------------------
629 SLAPD_STATIC_OVERLAYS=
630 SLAPD_DYNAMIC_OVERLAYS=
632 SLAPD_MODULES_LDFLAGS=
633 SLAPD_MODULES_CPPFLAGS=
635 SLAPD_STATIC_BACKENDS=back-ldif
636 SLAPD_DYNAMIC_BACKENDS=
659 dnl ================================================================
660 dnl Checks for programs
662 AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
664 dnl ----------------------------------------------------------------
666 dnl Determine which C translator to use
669 dnl AIX Thread requires we use cc_r or xlc_r.
670 dnl But only do this IF AIX and CC is not set
671 dnl and threads are auto|yes|posix.
673 dnl If we find cc_r|xlc_r, force pthreads and assume
674 dnl pthread_create is in $LIBS (ie: don't bring in
675 dnl any additional thread libraries)
676 dnl If we do not find cc_r|xlc_r, disable threads
680 *-*-aix*) dnl all AIX is not a good idea.
681 if test -z "$CC" ; then
682 case "$ol_with_threads" in
683 auto | yes | posix) ol_aix_threads=yes ;;
689 if test $ol_aix_threads = yes ; then
690 if test -z "${CC}" ; then
691 AC_CHECK_PROGS(CC,cc_r xlc_r cc)
693 if test "$CC" = cc ; then
694 dnl no CC! don't allow --with-threads
695 if test $ol_with_threads != auto ; then
696 AC_MSG_ERROR([--with-threads requires cc_r (or other suitable compiler) on AIX])
698 AC_MSG_WARN([disabling threads, no cc_r on AIX])
704 case ${CC} in cc_r | xlc_r)
705 ol_with_threads=posix
706 ol_cv_pthread_create=yes
711 if test -z "${CC}"; then
712 AC_CHECK_PROGS(CC,cc gcc,missing)
714 if test "${CC}" = "missing" ; then
715 AC_MSG_ERROR([Unable to locate cc(1) or suitable replacement. Check PATH or set CC.])
719 if test -z "${AR}"; then
720 AC_CHECK_PROGS(AR,ar gar,missing)
722 if test "${AR}" = "missing" ; then
723 AC_MSG_ERROR([Unable to locate ar(1) or suitable replacement. Check PATH or set AR.])
731 dnl ----------------------------------------------------------------
734 if test $ol_enable_perl != no ; then
735 AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)
737 if test "no$PERLBIN" = "no" ; then
738 if test $ol_enable_perl = yes ; then
739 AC_MSG_ERROR([could not locate perl])
743 PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
744 PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e 's/ -lc / /' -e 's/ -lc$//'`"
746 if test x"$ol_enable_perl" = "xyes" ; then
747 SLAPD_PERL_LDFLAGS="$PERL_LDFLAGS"
749 MOD_PERL_LDFLAGS="$PERL_LDFLAGS"
751 dnl should check perl version
758 dnl ----------------------------------------------------------------
759 dnl Checks for Windows NT
761 *mingw32* ) ac_cv_mingw32=yes ;;
762 *cygwin* ) ac_cv_cygwin=yes ;;
765 dnl ----------------------------------------------------------------
766 dnl Checks for file extensions
769 AC_DEFINE_UNQUOTED(EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
771 dnl ----------------------------------------------------------------
772 dnl BeOS requires -lbe -lroot -lnet
773 AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])
775 dnl ----------------------------------------------------------------
776 dnl OpenLDAP requires STDC features
778 if test "X${ac_cv_prog_cc_stdc}" = "Xno" ; then
779 AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
782 dnl ----------------------------------------------------------------
783 dnl Check cc depend flags
785 if test "${ol_cv_mkdep}" = no ; then
786 # this will soon become an error
787 AC_MSG_WARN([do not know how to generate dependencies])
790 dnl ----------------------------------------------------------------
791 dnl Check for AIX security library
792 AC_CHECK_LIB(s, afopen, [
794 AC_DEFINE(HAVE_AIX_SECURITY,1,[define if you have AIX security lib])
797 dnl ----------------------------------------------------------------
798 dnl Check for IBM OS/390
802 AC_DEFINE(BOTH_STRINGS_H,1,[define to use both <string.h> and <strings.h>])
806 dnl ----------------------------------------------------------------
807 dnl Check for module support
809 WITH_MODULES_ENABLED=no
810 if test $ol_enable_modules != no ; then
811 AC_CHECK_HEADERS(ltdl.h)
813 if test $ac_cv_header_ltdl_h = no ; then
814 AC_MSG_ERROR([could not locate libtool ltdl.h])
817 AC_CHECK_LIB(ltdl, lt_dlinit, [
819 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
822 if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then
823 AC_MSG_ERROR([could not locate libtool -lltdl])
826 WITH_MODULES_ENABLED=yes
829 for i in $Backends; do
830 eval "ol_tmp=\$ol_enable_$i"
831 if test $ol_tmp = mod ; then
832 AC_MSG_WARN([building static $i backend])
833 eval "ol_enable_$i=yes"
836 for i in $Overlays; do
837 eval "ol_tmp=\$ol_enable_$i"
838 if test $ol_tmp = mod ; then
839 AC_MSG_WARN([building static $i overlay])
840 eval "ol_enable_$i=yes"
845 dnl ----------------------------------------------------------------
846 dnl Checks for header files.
849 if test $ol_cv_header_stdc != yes; then
850 AC_MSG_WARN([could not locate Standard C compliant headers])
906 AC_CHECK_HEADERS( resolv.h, [], [],
907 [$ac_includes_default
908 #include <netinet/in.h>
911 AC_CHECK_HEADERS( netinet/tcp.h, [], [],
912 [$ac_includes_default
913 #include <netinet/in.h>
916 AC_CHECK_HEADERS( sys/ucred.h, [], [],
917 [$ac_includes_default
918 #ifdef HAVE_SYS_PARAM_H
919 #include <sys/param.h>
923 dnl ----------------------------------------------------------------
924 dnl Checks for libraries
926 AC_CHECK_FUNCS( sigaction sigset )
928 dnl HP-UX requires -lV3
929 dnl this is not needed on newer versions of HP-UX
930 if test $ac_cv_func_sigaction = no && test $ac_cv_func_sigaction = no ; then
931 AC_CHECK_LIB(V3, sigset)
934 dnl The following is INTENTIONALLY scripted out because shell does not
935 dnl support variable names with the '@' character, which is what
936 dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
938 dnl Skip Winsock tests on Cygwin
939 if test "$ac_cv_cygwin" != yes && test "$ac_cv_header_winsock_h" = yes; then
940 AC_CACHE_CHECK([for winsock], [ol_cv_winsock],
942 for curlib in ws2_32 wsock32; do
943 LIBS="$LIBS -l$curlib"
944 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <winsock.h>
947 select(0,NULL,NULL,NULL,NULL);
950 ]])],[ol_cv_winsock=yes],[ol_cv_winsock=no])
952 if test $ol_cv_winsock = yes; then
953 AC_DEFINE(HAVE_WINSOCK, 1, [define if you have winsock])
954 ac_cv_func_socket=yes
955 ac_cv_func_select=yes
956 ac_cv_func_closesocket=yes
957 ac_cv_func_gethostname=yes
958 if test $curlib = ws2_32; then
959 ol_cv_winsock=winsock2
960 AC_DEFINE(HAVE_WINSOCK2, 1,
961 [define if you have winsock2])
970 dnl Likely combinations:
971 dnl -lsocket [ -lnsl_s | -lnsl ]
974 AC_CHECK_FUNC(socket, :, [
975 dnl hopefully we won't include too many libraries
976 AC_CHECK_LIB(socket, main)
977 AC_CHECK_LIB(net, main)
978 AC_CHECK_LIB(nsl_s, main)
979 AC_CHECK_LIB(nsl, main)
980 AC_CHECK_LIB(inet, socket)
981 AC_CHECK_LIB(gen, main)
985 AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
987 if test "${ac_cv_header_winsock_h}" != yes; then
989 dnl (if this detection becomes permenent, it and the select() detection
990 dnl should be done before the yielding select test)
991 AC_FUNC_SELECT_ARGTYPES
994 dnl check to see if system call automatically restart
995 dnl AC_SYS_RESTARTABLE_SYSCALLS
997 dnl ----------------------------------------------------------------
998 AC_CHECK_FUNCS( poll )
999 AC_CHECK_HEADERS( poll.h )
1001 dnl ----------------------------------------------------------------
1002 AC_CHECK_HEADERS( sys/epoll.h )
1003 if test "${ac_cv_header_sys_epoll_h}" = yes; then
1004 AC_MSG_CHECKING(for epoll system call)
1005 AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char *argv)
1007 int epfd = epoll_create(256);
1008 exit (epfd == -1 ? 1 : 0);
1009 }]])],[AC_MSG_RESULT(yes)
1010 AC_DEFINE(HAVE_EPOLL,1, [define if your system supports epoll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
1013 dnl ----------------------------------------------------------------
1017 dnl ----------------------------------------------------------------
1018 dnl require POSIX regex
1019 AC_CHECK_HEADERS( regex.h )
1020 if test "$ac_cv_header_regex_h" != yes ; then
1021 AC_MSG_ERROR([POSIX regex.h required.])
1023 AC_SEARCH_LIBS(regfree, [regex gnuregex],
1024 :, AC_MSG_ERROR([POSIX regex required.]))
1027 if test "$ol_cv_c_posix_regex" = no ; then
1028 AC_MSG_ERROR([broken POSIX regex!])
1031 dnl ----------------------------------------------------------------
1035 AC_CHECK_HEADERS(sys/uuid.h)
1036 if test $ac_cv_header_sys_uuid_h = yes ; then
1038 AC_SEARCH_LIBS(uuid_to_str, uuid, [have_uuid=yes], :)
1041 if test have_uuid = yes ; then
1042 AC_DEFINE(HAVE_UUID_TO_STR,1,
1043 [define if you have uuid_to_str()])
1045 test "$ac_cv_search_uuid_to_str" = "none required" || \
1046 SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_to_str"
1050 dnl For windows, check for the need of RPCRT for UUID function support
1051 if test $have_uuid = no ; then
1052 AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
1054 LIBS="$LIBS -lrpcrt4"
1055 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1056 int __stdcall UuidCreate(void *);
1057 int __stdcall UuidToStringA(void *,void **);
1061 ]])],[need_rpcrt=yes],[need_rpcrt=no])
1062 if test $need_rpcrt = yes; then
1063 SLAPD_LIBS="$SLAPD_LIBS -lrpcrt4"
1066 AC_MSG_RESULT($need_rpcrt)
1069 dnl ----------------------------------------------------------------
1070 dnl Check for resolver routines
1074 if test "$ol_cv_lib_resolver" != no ; then
1075 AC_DEFINE(HAVE_RES_QUERY,1,
1076 [define if you have res_query()])
1078 if test "$ol_enable_dnssrv" != no ; then
1082 if test "$ol_cv_lib_resolver" != yes ; then
1083 LIBS="$ol_cv_lib_resolver $LIBS"
1087 if test "$ol_enable_dnssrv" = yes || test "$ol_enable_dnssrv" = mod ; then
1088 if test "$ol_link_dnssrv" = no ; then
1089 AC_MSG_ERROR([DNSSRV requires res_query()])
1095 AC_CHECK_FUNCS( hstrerror )
1097 dnl ----------------------------------------------------------------
1098 dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
1099 dnl PF_LOCAL may use getaddrinfo in available
1100 AC_CHECK_FUNCS( getaddrinfo getnameinfo gai_strerror inet_ntop )
1103 if test $ac_cv_func_getaddrinfo = no || test $ac_cv_func_inet_ntop = no ; then
1104 if test $ol_enable_ipv6 = yes ; then
1105 AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
1107 elif test $ol_enable_ipv6 != no ; then
1108 AC_CACHE_CHECK([INET6_ADDRSTRLEN],[ol_cv_inet6_addrstrlen],[
1109 AC_EGREP_CPP(__has_inet6_addrstrlen__,[
1110 # include <netinet/in.h>
1111 # ifdef INET6_ADDRSTRLEN
1112 __has_inet6_addrstrlen__;
1114 ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])])
1117 AC_CACHE_CHECK([struct sockaddr_storage],ol_cv_struct_sockaddr_storage,[
1118 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1119 #include <sys/types.h>
1120 #include <sys/socket.h>
1122 struct sockaddr_storage ss;
1123 ]])],[ol_cv_struct_sockaddr_storage=yes],[ol_cv_struct_sockaddr_storage=no])])
1125 if test $ol_cv_inet6_addrstrlen = yes &&
1126 test $ol_cv_struct_sockaddr_storage = yes ; then
1128 elif test $ol_enable_ipv6 = yes &&
1129 test $ol_cv_inet6_addrstrlen = no ; then
1130 AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
1131 elif test $ol_enable_ipv6 = yes &&
1132 test $ol_cv_struct_sockaddr_storage = no ; then
1133 AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage])
1137 if test $ol_enable_local != no ; then
1138 AC_CHECK_HEADERS( sys/un.h )
1140 if test $ol_enable_local = auto ; then
1141 ol_enable_local=$ac_cv_header_sys_un_h
1142 elif test $ac_cv_header_sys_un_h = no ; then
1143 AC_MSG_ERROR([AF_LOCAL domain support requires sys/un.h])
1147 dnl ----------------------------------------------------------------
1153 case $ol_with_kerberos in yes | auto | k5 | k5only | k425)
1155 AC_CHECK_HEADERS(krb5.h)
1157 if test $ac_cv_header_krb5_h = yes ; then
1158 dnl lazy check for Heimdal Kerberos
1159 AC_CHECK_HEADERS(heim_err.h)
1160 if test $ac_cv_header_heim_err_h = yes ; then
1166 if test $krb5_impl = mit; then
1167 AC_CHECK_LIB(k5crypto, main,
1168 [krb5crypto=k5crypto],
1169 [krb5crypto=crypto])
1171 AC_CHECK_LIB(krb5, main,
1173 KRB5_LIBS="-lkrb5 -l$krb5crypto -lcom_err"],
1175 [-l$krb5crypto -lcom_err])
1177 elif test $krb5_impl = heimdal; then
1178 AC_CHECK_LIB(des, main,
1180 [krb5crypto=crypto])
1182 AC_CHECK_LIB(krb5, main,
1184 KRB5_LIBS="-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err"],
1186 [-l$krb5crypto -lasn1 -lroken -lcom_err])
1188 AC_DEFINE(HAVE_HEIMDAL_KERBEROS, 1,
1189 [define if you have HEIMDAL Kerberos])
1193 AC_MSG_WARN([Unrecognized Kerberos5 Implementation])
1196 if test $have_krb5 = yes ; then
1199 AC_DEFINE(HAVE_KRB5, 1,
1200 [define if you have Kerberos V])
1202 if test $ol_with_kerberos = k5only ; then
1203 ol_with_kerberos=found
1206 elif test $ol_with_kerberos != auto ; then
1207 AC_MSG_ERROR([Required Kerberos 5 support not available])
1214 if test $ol_link_krb5 = yes &&
1215 { test $ol_with_kerberos = yes ||
1216 test $ol_with_kerberos = auto ||
1217 test $ol_with_kerberos = k425; }; then
1219 AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
1221 if test $ac_cv_header_kerberosIV_krb_h = yes ; then
1222 if test $krb5_impl = mit; then
1223 AC_CHECK_LIB(krb4, main, [have_k425=yes
1224 KRB4_LIBS="-lkrb4 -ldes425"], [have_k425=no],
1225 [-ldes425 -lkrb5 -l$krb5crypto -lcom_err])
1227 elif test $krb5_impl = heimdal; then
1228 AC_CHECK_LIB(krb4, main, [have_k425=yes
1229 KRB4_LIBS="-lkrb4"], [have_k425=no],
1230 [-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err])
1234 AC_MSG_WARN([Unrecongized Kerberos V Implementation])
1237 if test $have_k425 = yes ; then
1238 ol_with_kerberos=found
1241 AC_DEFINE(HAVE_KRB425, 1,
1242 [define if you have Kerberos V with IV support])
1243 AC_DEFINE(HAVE_KRB4, 1,
1244 [define if you have Kerberos IV])
1246 AC_CACHE_CHECK([for des_debug in Kerberos libraries],
1247 [ol_cv_var_des_debug], [
1250 LIBS="$KRB4_LIBS $KRB5_LIBS $LIBS"
1251 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1252 #include <kerberosIV/krb.h>
1253 #include <kerberosIV/des.h>
1254 extern int des_debug;
1257 ]])],[ol_cv_var_des_debug=yes],[ol_cv_var_des_debug=no])
1258 dnl restore the LIBS
1262 if test $ol_cv_var_des_debug = yes ; then
1263 AC_DEFINE(HAVE_DES_DEBUG,1,
1264 [define if you have Kerberos des_debug])
1272 if test $ol_link_krb5 = yes ; then
1273 ol_with_kerberos=found
1276 case $ol_with_kerberos in yes | auto | k4 | kth)
1278 AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
1280 if test $ac_cv_header_krb_h = yes ; then
1281 AC_CHECK_LIB(krb, main, [have_k4=yes], [have_k4=no], [-ldes])
1283 if test $have_k4 = yes ; then
1284 ol_with_kerberos=found
1287 AC_DEFINE(HAVE_KRB4, 1,
1288 [define if you have Kerberos IV])
1290 KRB4_LIBS="-lkrb -ldes"
1292 if test $ac_cv_header_krb_archaeology_h = yes ; then
1293 AC_DEFINE(HAVE_KTH_KERBEROS, 1,
1294 [define if you have Kth Kerberos])
1301 if test $ol_link_krb4 = yes && test $ol_enable_kbind != no ; then
1304 elif test $ol_enable_kbind = yes ; then
1305 AC_MSG_ERROR([Kerberos IV detection failed])
1308 if test $ol_link_krb4 = yes || test $ol_link_krb5 = yes ; then
1309 AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
1311 elif test $ol_with_kerberos != auto && test $ol_with_kerberos != no ; then
1312 AC_MSG_ERROR([Kerberos detection failed])
1315 dnl ----------------------------------------------------------------
1319 if test $ol_with_tls != no ; then
1320 AC_CHECK_HEADERS(openssl/ssl.h)
1322 if test $ac_cv_header_openssl_ssl_h = yes ; then
1323 AC_CHECK_LIB(ssl, SSL_library_init,
1325 need_rsaref=no], [have_openssl=no],
1328 if test $have_openssl = no ; then
1329 AC_CHECK_LIB(ssl, ssl3_accept,
1331 need_rsaref=yes], [have_openssl=no],
1332 [-lcrypto -lRSAglue -lrsaref])
1335 if test $have_openssl = yes ; then
1339 AC_DEFINE(HAVE_OPENSSL, 1,
1340 [define if you have OpenSSL])
1342 if test $need_rsaref = yes; then
1343 AC_DEFINE(HAVE_RSAREF, 1,
1344 [define if OpenSSL needs RSAref])
1346 TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
1348 TLS_LIBS="-lssl -lcrypto"
1352 if test $ol_cv_ssl_crl_compat = no ; then
1355 AC_DEFINE(HAVE_OPENSSL_CRL, 1,
1356 [define if you have OpenSSL with CRL checking capability])
1361 AC_MSG_WARN([TLS data protection not supported!])
1365 if test $ol_link_tls = yes ; then
1366 AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
1369 elif test $ol_with_tls = auto ; then
1370 AC_MSG_WARN([Could not locate TLS/SSL package])
1371 AC_MSG_WARN([TLS data protection not supported!])
1373 elif test $ol_with_tls != no ; then
1374 AC_MSG_ERROR([Could not locate TLS/SSL package])
1377 dnl ----------------------------------------------------------------
1378 dnl LAN Manger password checking requires DES from OpenSSL
1379 if test $ol_enable_lmpasswd != no; then
1380 if test $ol_link_tls != yes ; then
1381 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
1384 AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
1387 dnl ----------------------------------------------------------------
1391 case $ol_with_threads in auto | yes | nt)
1395 if test "$ol_cv_nt_threads" = yes ; then
1397 ol_with_threads=found
1398 ol_with_yielding_select=yes
1400 AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager])
1401 AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log])
1404 if test $ol_with_threads = nt ; then
1405 AC_MSG_ERROR([could not locate NT Threads])
1410 case $ol_with_threads in auto | yes | posix)
1412 AC_CHECK_HEADERS(pthread.h)
1414 if test $ac_cv_header_pthread_h = yes ; then
1415 OL_POSIX_THREAD_VERSION
1417 if test $ol_cv_pthread_version != 0 ; then
1418 AC_DEFINE_UNQUOTED(HAVE_PTHREADS,$ol_cv_pthread_version,
1419 [define to pthreads API spec revision])
1421 AC_MSG_ERROR([unknown pthread version])
1424 # consider threads found
1425 ol_with_threads=found
1427 OL_HEADER_LINUX_THREADS
1428 OL_HEADER_GNU_PTH_PTHREAD_H
1430 if test $ol_cv_header_gnu_pth_pthread_h = no ; then
1431 AC_CHECK_HEADERS(sched.h)
1434 dnl Now the hard part, how to link?
1436 dnl currently supported checks:
1438 dnl Check for no flags
1439 dnl pthread_create() in $LIBS
1441 dnl Check special pthread (final) flags
1442 dnl [skipped] pthread_create() with -mt (Solaris) [disabled]
1443 dnl pthread_create() with -kthread (FreeBSD)
1444 dnl pthread_create() with -pthread (FreeBSD/Digital Unix)
1445 dnl pthread_create() with -pthreads (?)
1446 dnl pthread_create() with -mthreads (AIX)
1447 dnl pthread_create() with -thread (?)
1449 dnl Check pthread (final) libraries
1450 dnl pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
1451 dnl pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
1452 dnl [skipped] pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
1453 dnl pthread_join() -Wl,-woff,85 -lpthread (IRIX)
1454 dnl pthread_create() in -lpthread (many)
1455 dnl pthread_create() in -lc_r (FreeBSD)
1457 dnl Check pthread (draft4) flags (depreciated)
1458 dnl pthread_create() with -threads (OSF/1)
1460 dnl Check pthread (draft4) libraries (depreciated)
1461 dnl pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
1462 dnl pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
1463 dnl pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
1464 dnl pthread_create() in -lpthreads (many)
1467 dnl pthread_create in $LIBS
1468 AC_CACHE_CHECK([for pthread_create in default libraries],
1469 ol_cv_pthread_create,[
1470 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1471 [ol_cv_pthread_create=yes],
1472 [ol_cv_pthread_create=no],
1473 [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION,
1474 [ol_cv_pthread_create=yes],
1475 [ol_cv_pthread_create=no])])])
1477 if test $ol_cv_pthread_create != no ; then
1478 ol_link_threads=posix
1482 dnl OL_PTHREAD_TRY([-mt], [ol_cv_pthread_mt])
1483 OL_PTHREAD_TRY([-kthread], [ol_cv_pthread_kthread])
1484 OL_PTHREAD_TRY([-pthread], [ol_cv_pthread_pthread])
1485 OL_PTHREAD_TRY([-pthreads], [ol_cv_pthread_pthreads])
1486 OL_PTHREAD_TRY([-mthreads], [ol_cv_pthread_mthreads])
1487 OL_PTHREAD_TRY([-thread], [ol_cv_pthread_thread])
1489 OL_PTHREAD_TRY([-lpthread -lmach -lexc -lc_r],
1490 [ol_cv_pthread_lpthread_lmach_lexc_lc_r])
1491 OL_PTHREAD_TRY([-lpthread -lmach -lexc],
1492 [ol_cv_pthread_lpthread_lmach_lexc])
1493 dnl OL_PTHREAD_TRY([-lpthread -lexc],
1494 dnl [ol_cv_pthread_lpthread_lexc])
1496 OL_PTHREAD_TRY([-lpthread -Wl,-woff,85],
1497 [ol_cv_pthread_lib_lpthread_woff])
1499 OL_PTHREAD_TRY([-lpthread], [ol_cv_pthread_lpthread])
1500 OL_PTHREAD_TRY([-lc_r], [ol_cv_pthread_lc_r])
1502 OL_PTHREAD_TRY([-threads], [ol_cv_pthread_threads])
1504 OL_PTHREAD_TRY([-lpthreads -lmach -lexc -lc_r],
1505 [ol_cv_pthread_lpthreads_lmach_lexc_lc_r])
1506 OL_PTHREAD_TRY([-lpthreads -lmach -lexc],
1507 [ol_cv_pthread_lpthreads_lmach_lexc])
1508 OL_PTHREAD_TRY([-lpthreads -lexc],
1509 [ol_cv_pthread_lpthreads_lexc])
1511 OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
1513 if test $ol_link_threads != no ; then
1514 LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
1517 save_CPPFLAGS="$CPPFLAGS"
1519 LIBS="$LTHREAD_LIBS $LIBS"
1521 dnl All POSIX Thread (final) implementations should have
1522 dnl sched_yield instead of pthread yield.
1523 dnl check for both, and thr_yield for Solaris
1524 AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
1526 if test $ac_cv_func_sched_yield = no &&
1527 test $ac_cv_func_pthread_yield = no &&
1528 test $ac_cv_func_thr_yield = no ; then
1529 dnl Digital UNIX has sched_yield() in -lrt
1530 AC_CHECK_LIB(rt, sched_yield,
1531 [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
1532 AC_DEFINE(HAVE_SCHED_YIELD,1,
1533 [Define if you have the sched_yield function.])
1534 ac_cv_func_sched_yield=yes],
1535 [ac_cv_func_sched_yield=no])
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 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
1543 dnl Check functions for compatibility
1544 AC_CHECK_FUNCS(pthread_kill pthread_rwlock_destroy)
1546 dnl Check for pthread_detach with <pthread.h> inclusion
1547 dnl as it's symbol may have been mangled.
1548 AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
1549 [ol_cv_func_pthread_detach], [
1551 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1552 #include <pthread.h>
1554 #define NULL (void*)0
1556 ]], [[pthread_detach(NULL);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
1559 if test $ol_cv_func_pthread_detach = no ; then
1560 AC_MSG_ERROR([could not locate pthread_detach()])
1563 AC_DEFINE(HAVE_PTHREAD_DETACH,1,
1564 [define if you have pthread_detach function])
1566 dnl Check for setconcurreny functions
1568 pthread_setconcurrency \
1569 pthread_getconcurrency \
1570 thr_setconcurrency \
1571 thr_getconcurrency \
1574 OL_SYS_LINUX_THREADS
1577 if test $ol_cv_linux_threads = error; then
1578 AC_MSG_ERROR([LinuxThreads header/library mismatch]);
1581 AC_CACHE_CHECK([if pthread_create() works],
1582 ol_cv_pthread_create_works,[
1583 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1584 [ol_cv_pthread_create_works=yes],
1585 [ol_cv_pthread_create_works=no],
1587 ol_cv_pthread_create_works=yes])])
1589 if test $ol_cv_pthread_create_works = no ; then
1590 AC_MSG_ERROR([pthread_create is not usable, check environment settings])
1593 ol_replace_broken_yield=no
1594 dnl case "$target" in
1596 dnl AC_CHECK_FUNCS(nanosleep)
1597 dnl ol_replace_broken_yield=yes
1601 if test $ol_replace_broken_yield = yes ; then
1602 AC_DEFINE([REPLACE_BROKEN_YIELD],1,
1603 [define if sched_yield yields the entire process])
1606 dnl Check if select causes an yield
1607 if test $ol_with_yielding_select = auto ; then
1608 AC_CACHE_CHECK([if select yields when using pthreads],
1609 ol_cv_pthread_select_yields,[
1610 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1611 #include <sys/types.h>
1612 #include <sys/time.h>
1614 #include <pthread.h>
1616 #define NULL (void*) 0
1619 static int fildes[2];
1621 static void *task(p)
1633 FD_SET(fildes[0], &rfds);
1635 /* we're not interested in any fds */
1636 i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
1643 exit(0); /* if we exit here, the select blocked the whole process */
1646 int main(argc, argv)
1652 /* create a pipe to select */
1653 if(pipe(&fildes[0])) {
1658 #ifdef HAVE_PTHREAD_SETCONCURRENCY
1659 (void) pthread_setconcurrency(2);
1661 #ifdef HAVE_THR_SETCONCURRENCY
1662 /* Set Solaris LWP concurrency to 2 */
1663 thr_setconcurrency(2);
1667 #if HAVE_PTHREADS < 6
1668 pthread_create(&t, pthread_attr_default, task, NULL);
1670 pthread_create(&t, NULL, task, NULL);
1673 /* make sure task runs first */
1676 #elif defined( HAVE_SCHED_YIELD )
1678 #elif defined( HAVE_PTHREAD_YIELD )
1683 }]])],[ol_cv_pthread_select_yields=no],[ol_cv_pthread_select_yields=yes],[ol_cv_pthread_select_yields=cross])])
1685 if test $ol_cv_pthread_select_yields = cross ; then
1686 AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])
1689 if test $ol_cv_pthread_select_yields = yes ; then
1690 ol_with_yielding_select=yes
1695 CPPFLAGS="$save_CPPFLAGS"
1698 AC_MSG_ERROR([could not locate usable POSIX Threads])
1702 if test $ol_with_threads = posix ; then
1703 AC_MSG_ERROR([could not locate POSIX Threads])
1708 case $ol_with_threads in auto | yes | mach)
1710 dnl check for Mach CThreads
1711 AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
1712 if test $ac_cv_header_mach_cthreads_h = yes ; then
1713 ol_with_threads=found
1715 dnl check for cthreads support in current $LIBS
1716 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1718 if test $ol_link_threads = no ; then
1720 dnl this test needs work
1721 AC_CACHE_CHECK([for cthread_fork with -all_load],
1722 [ol_cv_cthread_all_load], [
1725 LIBS="-all_load $LIBS"
1726 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <mach/cthreads.h>]], [[
1727 cthread_fork((void *)0, (void *)0);
1728 ]])],[ol_cv_cthread_all_load=yes],[ol_cv_cthread_all_load=no])
1729 dnl restore the LIBS
1733 if test $ol_cv_cthread_all_load = yes ; then
1734 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
1735 ol_link_threads=mach
1736 ol_with_threads=found
1740 elif test $ac_cv_header_cthreads_h = yes ; then
1741 dnl Hurd variant of Mach Cthreads
1742 dnl uses <cthreads.h> and -lthreads
1744 ol_with_threads=found
1748 LIBS="$LIBS -lthreads"
1749 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1752 if test $ol_link_threads = yes ; then
1753 LTHREAD_LIBS="-lthreads"
1754 ol_link_threads=mach
1755 ol_with_threads=found
1757 AC_MSG_ERROR([could not link with Mach CThreads])
1760 elif test $ol_with_threads = mach ; then
1761 AC_MSG_ERROR([could not locate Mach CThreads])
1764 if test $ol_link_threads = mach ; then
1765 AC_DEFINE(HAVE_MACH_CTHREADS,1,
1766 [define if you have Mach Cthreads])
1767 elif test $ol_with_threads = found ; then
1768 AC_MSG_ERROR([could not link with Mach CThreads])
1773 case $ol_with_threads in auto | yes | pth)
1775 AC_CHECK_HEADERS(pth.h)
1777 if test $ac_cv_header_pth_h = yes ; then
1778 AC_CHECK_LIB(pth, pth_version, [have_pth=yes], [have_pth=no])
1780 if test $have_pth = yes ; then
1781 AC_DEFINE(HAVE_GNU_PTH,1,[if you have GNU Pth])
1782 LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
1784 ol_with_threads=found
1786 if test $ol_with_yielding_select = auto ; then
1787 ol_with_yielding_select=yes
1794 case $ol_with_threads in auto | yes | lwp)
1796 dnl check for SunOS5 LWP
1797 AC_CHECK_HEADERS(thread.h synch.h)
1798 if test $ac_cv_header_thread_h = yes &&
1799 test $ac_cv_header_synch_h = yes ; then
1800 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
1802 if test $have_thr = yes ; then
1803 AC_DEFINE(HAVE_THR,1,
1804 [if you have Solaris LWP (thr) package])
1805 LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
1808 if test $ol_with_yielding_select = auto ; then
1809 ol_with_yielding_select=yes
1812 dnl Check for setconcurreny functions
1814 thr_setconcurrency \
1815 thr_getconcurrency \
1820 dnl check for SunOS4 LWP
1821 AC_CHECK_HEADERS(lwp/lwp.h)
1822 if test $ac_cv_header_lwp_lwp_h = yes ; then
1823 AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
1825 if test $have_lwp = yes ; then
1826 AC_DEFINE(HAVE_LWP,1,
1827 [if you have SunOS LWP package])
1828 LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
1831 if test $ol_with_yielding_select = auto ; then
1832 ol_with_yielding_select=no
1839 if test $ol_with_yielding_select = yes ; then
1840 AC_DEFINE(HAVE_YIELDING_SELECT,1,
1841 [define if select implicitly yields])
1844 if test $ol_with_threads = manual ; then
1845 dnl User thinks he can manually configure threads.
1848 AC_MSG_WARN([thread defines and link options must be set manually])
1850 AC_CHECK_HEADERS(pthread.h sched.h)
1851 AC_CHECK_FUNCS(sched_yield pthread_yield)
1852 OL_HEADER_LINUX_THREADS
1854 AC_CHECK_HEADERS(mach/cthreads.h)
1855 AC_CHECK_HEADERS(lwp/lwp.h)
1856 AC_CHECK_HEADERS(thread.h synch.h)
1859 if test $ol_link_threads != no && test $ol_link_threads != nt ; then
1860 dnl needed to get reentrant/threadsafe versions
1862 AC_DEFINE(REENTRANT,1)
1863 AC_DEFINE(_REENTRANT,1)
1864 AC_DEFINE(THREAD_SAFE,1)
1865 AC_DEFINE(_THREAD_SAFE,1)
1866 AC_DEFINE(THREADSAFE,1)
1867 AC_DEFINE(_THREADSAFE,1)
1868 AC_DEFINE(_SGI_MP_SOURCE,1)
1870 dnl The errno declaration may dependent upon _REENTRANT.
1871 dnl If it does, we must link with thread support.
1872 AC_CACHE_CHECK([for thread specific errno],
1873 [ol_cv_errno_thread_specific], [
1874 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <errno.h>]], [[errno = 0;]])],[ol_cv_errno_thread_specific=yes],[ol_cv_errno_thread_specific=no])
1877 dnl The h_errno declaration may dependent upon _REENTRANT.
1878 dnl If it does, we must link with thread support.
1879 AC_CACHE_CHECK([for thread specific h_errno],
1880 [ol_cv_h_errno_thread_specific], [
1881 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])
1884 if test $ol_cv_errno_thread_specific != yes ||
1885 test $ol_cv_h_errno_thread_specific != yes ; then
1886 LIBS="$LTHREAD_LIBS $LIBS"
1890 dnl When in thread environment, use
1891 dnl #if defined( HAVE_REENTRANT_FUNCTIONS ) || defined( HAVE_FUNC_R )
1894 dnl # if defined( HAVE_THREADS )
1898 dnl # if defined( HAVE_THREADS )
1903 dnl HAVE_REENTRANT_FUNCTIONS is derived from:
1904 dnl _POSIX_REENTRANT_FUNCTIONS
1905 dnl _POSIX_THREAD_SAFE_FUNCTIONS
1906 dnl _POSIX_THREADSAFE_FUNCTIONS
1908 dnl and is currently defined in <ldap_pvt_thread.h>
1910 dnl HAVE_THREADS is defined by <ldap_pvt_thread.h> iff -UNO_THREADS
1912 dnl libldap/*.c should only include <ldap_pvt_thread.h> iff
1913 dnl LDAP_R_COMPILE is defined. ie:
1914 dnl #ifdef LDAP_R_COMPILE
1915 dnl # include <ldap_pvt_thread.h>
1918 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
1919 dnl specifically for compiling the threadsafe version of
1920 dnl the ldap library (-lldap_r).
1922 dnl dnl check for reentrant/threadsafe functions
1924 dnl dnl note: these should only be used when linking
1925 dnl dnl with $LTHREAD_LIBS
1927 dnl save_CPPFLAGS="$CPPFLAGS"
1928 dnl save_LIBS="$LIBS"
1929 dnl LIBS="$LTHREAD_LIBS $LIBS"
1930 dnl AC_CHECK_FUNCS( \
1932 dnl gethostbyaddr_r gethostbyname_r \
1933 dnl feof_unlocked unlocked_feof \
1934 dnl putc_unlocked unlocked_putc \
1935 dnl flockfile ftrylockfile \
1937 dnl CPPFLAGS="$save_CPPFLAGS"
1938 dnl LIBS="$save_LIBS"
1941 if test $ol_link_threads = no ; then
1942 if test $ol_with_threads = yes ; then
1943 AC_MSG_ERROR([no suitable thread support])
1946 if test $ol_with_threads = auto ; then
1947 AC_MSG_WARN([no suitable thread support, disabling threads])
1951 AC_DEFINE(NO_THREADS,1,
1952 [define if you have (or want) no threads])
1959 if test $ol_link_threads != no ; then
1960 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1,
1961 [define to 1 if library is thread safe])
1964 dnl ----------------------------------------------------------------
1965 dnl Tests for reentrant functions necessary to build -lldap_r
1968 gethostbyname_r gethostbyaddr_r \
1971 if test "$ac_cv_func_ctime_r" = no ; then
1972 ol_cv_func_ctime_r_nargs=0
1974 OL_FUNC_CTIME_R_NARGS
1975 dnl OL_FUNC_CTIME_R_TYPE
1978 if test "$ac_cv_func_gethostbyname_r" = yes ; then
1979 OL_FUNC_GETHOSTBYNAME_R_NARGS
1981 ol_cv_func_gethostbyname_r_nargs=0
1984 if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
1985 OL_FUNC_GETHOSTBYADDR_R_NARGS
1987 ol_cv_func_gethostbyaddr_r_nargs=0
1990 dnl ----------------------------------------------------------------
1993 case $ol_enable_ldbm_api in auto | berkeley | bcompat)
1995 if test $ol_enable_ldbm_api = bcompat; then \
1996 OL_BERKELEY_COMPAT_DB
2001 if test $ol_cv_berkeley_db != no ; then
2002 AC_DEFINE(HAVE_BERKELEY_DB,1,
2003 [define this if Berkeley DB is available])
2005 ol_link_ldbm=berkeley
2006 ol_enable_ldbm_api=berkeley
2008 if test $ol_enable_ldbm_type = hash ; then
2009 AC_DEFINE(LDBM_USE_DBHASH,1,
2010 [define this to use DBHASH w/ LDBM backend])
2012 AC_DEFINE(LDBM_USE_DBBTREE,1,
2013 [define this to use DBBTREE w/ LDBM backend])
2016 dnl $ol_cv_lib_db should be yes or -ldb
2017 dnl (it could be no, but that would be an error
2018 if test $ol_cv_lib_db != yes ; then
2019 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
2025 if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
2026 if test $ol_link_ldbm != berkeley ; then
2027 AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
2031 if test $ol_cv_bdb_compat != yes ; then
2032 AC_MSG_ERROR([BDB/HDB: BerkeleyDB version incompatible])
2037 if test $ol_link_ldbm = no && test $ol_enable_ldbm_type = btree ; then
2038 AC_MSG_WARN([Could not find LDBM with BTREE support])
2039 ol_enable_ldbm_api=none
2042 if test $ol_enable_ldbm_api = auto || test $ol_enable_ldbm_api = mdbm ; then
2045 if test $ol_cv_mdbm = yes ; then
2047 ol_enable_ldbm_api=mdbm
2048 if test $ol_cv_lib_mdbm != yes ; then
2049 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_mdbm"
2054 if test $ol_enable_ldbm_api = auto || test $ol_enable_ldbm_api = gdbm ; then
2057 if test $ol_cv_gdbm = yes ; then
2059 ol_enable_ldbm_api=gdbm
2061 if test $ol_cv_lib_gdbm != yes ; then
2062 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
2067 if test $ol_enable_ldbm_api = ndbm ; then
2070 if test $ol_cv_ndbm = yes ; then
2072 ol_enable_ldbm_api=ndbm
2074 if test $ol_cv_lib_ndbm != yes ; then
2075 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
2080 if test $ol_link_ldbm = no && test $ol_enable_ldbm != no ; then
2081 AC_MSG_ERROR([could not find suitable LDBM backend])
2084 if test $ol_enable_bdb = yes ||
2085 test $ol_enable_hdb = yes ||
2086 test $ol_enable_ldbm = yes ; then
2087 SLAPD_LIBS="$SLAPD_LIBS \$(LDBM_LIBS)"
2090 dnl ----------------------------------------------------------------
2092 if test $ol_enable_dynamic = yes && test $enable_shared = yes ; then
2093 BUILD_LIBS_DYNAMIC=shared
2094 AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
2097 BUILD_LIBS_DYNAMIC=static
2100 AC_SUBST(LTSTATIC)dnl
2102 dnl ----------------------------------------------------------------
2103 if test $ol_enable_wrappers != no ; then
2104 AC_CHECK_HEADERS(tcpd.h,[
2105 AC_MSG_CHECKING([for TCP wrappers library])
2108 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
2110 int allow_severity = 0;
2111 int deny_severity = 0;
2113 struct request_info *req;
2116 ]])],[AC_MSG_RESULT([-lwrap])
2118 LIBS="$save_LIBS"],[
2123 int allow_severity = 0;
2124 int deny_severity = 0;
2126 struct request_info *req;
2129 ],[AC_MSG_RESULT([-lwrap -lnsl])
2131 LIBS="$save_LIBS -lnsl"],[
2134 LIBS=$save_LIBS])])],[have_wrappers=no])
2136 if test $have_wrappers = yes ; then
2137 AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
2139 elif test $ol_enable_wrappers = yes ; then
2140 AC_MSG_ERROR([could not find TCP wrappers, select apppropriate options or disable])
2142 AC_MSG_WARN([could not find TCP wrappers, support disabled])
2147 dnl ----------------------------------------------------------------
2148 if test $ol_enable_syslog != no ; then
2149 AC_CHECK_FUNC(openlog)
2150 if test $ac_cv_func_openlog = no && test $ol_enable_syslog = yes; then
2151 AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
2153 ol_enable_syslog=$ac_cv_func_openlog
2156 dnl ----------------------------------------------------------------
2159 if test $ol_enable_sql != no ; then
2160 AC_CHECK_HEADERS(sql.h sqlext.h,[],[
2161 AC_MSG_ERROR([could not locate SQL headers])
2165 LIBS="$LTHREAD_LIBS"
2167 AC_CHECK_LIB(iodbc,SQLDriverConnect,[have_iodbc=yes],[have_iodbc=no])
2168 if test $have_iodbc = yes ; then
2169 ol_link_sql="-liodbc"
2171 AC_CHECK_LIB(odbc,SQLDriverConnect,[have_odbc=yes],[have_odbc=no])
2172 if test $have_odbc = yes ; then
2173 ol_link_sql="-lodbc"
2179 if test $ol_link_sql != no ; then
2180 SLAPD_SQL_LIBS="$ol_link_sql"
2182 elif test $ol_enable_sql != auto ; then
2183 AC_MSG_ERROR([could not locate suitable ODBC library])
2187 dnl ----------------------------------------------------------------
2189 dnl Check for Cyrus SASL
2194 if test $ol_with_cyrus_sasl != no ; then
2195 AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
2197 if test $ac_cv_header_sasl_sasl_h = yes ||
2198 test $ac_cv_header_sasl_h = yes; then
2199 AC_CHECK_LIB(sasl2, sasl_client_init,
2200 [ol_link_sasl="-lsasl2"],
2201 [AC_CHECK_LIB(sasl, sasl_client_init,
2202 [ol_link_sasl="-lsasl"])])
2205 if test $ol_link_sasl = no ; then
2206 if test $ol_with_cyrus_sasl != auto ; then
2207 AC_MSG_ERROR([Could not locate Cyrus SASL])
2209 AC_MSG_WARN([Could not locate Cyrus SASL])
2210 AC_MSG_WARN([SASL authentication not supported!])
2211 if test $ol_link_tls = no ; then
2212 AC_MSG_WARN([Strong authentication not supported!])
2217 if test $ol_cv_sasl_compat = no ; then
2219 AC_MSG_ERROR([Cyrus SASL library located but is incompatible])
2222 AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
2223 SASL_LIBS="$ol_link_sasl"
2224 if test $ol_enable_spasswd != no ; then
2228 ac_save_LIBS="$LIBS"
2229 LIBS="$LIBS $ol_link_sasl"
2230 AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1,
2231 [define if your SASL library has sasl_version()])])
2232 LIBS="$ac_save_LIBS"
2238 AC_MSG_WARN([SASL authentication not supported!])
2239 if test $ol_link_tls = no ; then
2240 AC_MSG_WARN([Strong authentication not supported!])
2244 dnl ----------------------------------------------------------------
2245 dnl Check for entropy sources
2246 if test $cross_compiling != yes && test "$ac_cv_mingw32" != yes ; then
2248 if test -r /dev/urandom ; then
2250 elif test -r /idev/urandom ; then
2251 dev="/idev/urandom";
2252 elif test -r /dev/srandom ; then
2254 elif test -r /dev/random ; then
2256 elif test -r /idev/random ; then
2260 if test $dev != no ; then
2261 AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
2265 dnl ----------------------------------------------------------------
2267 dnl Check for fetch URL support
2268 dnl should be extended to support other fetch URL APIs
2271 if test $ol_with_fetch != no ; then
2274 if test $ol_cv_lib_fetch != no ; then
2275 LUTIL_LIBS="$LUTIL_LIBS $ol_link_fetch"
2276 ol_link_fetch=freebsd
2278 elif test $ol_with_fetch != auto ; then
2279 AC_MSG_ERROR(no suitable API for --with-fetch=$ol_with_fetch)
2283 dnl ----------------------------------------------------------------
2284 dnl FreeBSD (and others) have crypt(3) in -lcrypt
2285 if test $ol_enable_crypt != no ; then
2287 LIBS="$TLS_LIBS $LIBS"
2289 AC_CHECK_FUNC(crypt, [have_crypt=yes], [
2291 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
2292 have_crypt=yes], [have_crypt=no])])
2296 if test $have_crypt = yes ; then
2297 AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
2299 AC_MSG_WARN([could not find crypt])
2300 if test $ol_enable_crypt = yes ; then
2301 AC_MSG_ERROR([could not find crypt, select appropriate options or disable])
2304 AC_MSG_WARN([disabling crypt support])
2309 dnl ----------------------------------------------------------------
2310 dnl FreeBSD (and others) have setproctitle(3) in -lutil
2311 if test $ol_enable_proctitle != no ; then
2312 AC_CHECK_FUNC(setproctitle, [have_setproctitle=yes], [
2313 AC_CHECK_LIB(util, setproctitle,
2314 [have_setproctitle=yes
2315 LUTIL_LIBS="$LUTIL_LIBS -lutil"],
2316 [have_setproctitle=no
2317 AC_LIBOBJ(setproctitle)
2318 LIBSRCS="$LIBSRCS setproctitle.c"])])
2320 if test $have_setproctitle = yes ; then
2321 AC_DEFINE(HAVE_SETPROCTITLE,1,
2322 [define if setproctitle(3) is available])
2326 dnl ----------------------------------------------------------------
2327 if test $ol_enable_slp != no ; then
2328 AC_CHECK_HEADERS( slp.h )
2330 if test $ac_cv_header_slp_h = yes ; then
2331 AC_CHECK_LIB(slp, SLPOpen, [have_slp=yes], [have_slp=no])
2332 if test $have_slp = yes ; then
2333 AC_DEFINE(HAVE_SLP, 1, [define if you have -lslp])
2334 SLAPD_SLP_LIBS=-lslp
2337 elif test $ol_enable_slp = yes ; then
2338 AC_MSG_ERROR([SLP not found])
2342 dnl ----------------------------------------------------------------
2343 dnl Checks for typedefs, structures, and compiler characteristics.
2345 AC_CHECK_TYPE(mode_t, int)
2346 AC_CHECK_TYPE(off_t, long)
2347 AC_CHECK_TYPE(pid_t, int)
2348 AC_CHECK_TYPE(ssize_t, [signed int])
2349 AC_CHECK_TYPE(caddr_t, [char *])
2350 AC_CHECK_TYPE(size_t, unsigned)
2352 AC_CHECK_TYPES([long long])
2353 AC_CHECK_TYPES([ptrdiff_t])
2355 AC_CHECK_TYPE([socklen_t],,
2356 [AC_DEFINE_UNQUOTED([socklen_t], [int],
2357 [Define to `int' if <sys/socket.h> does not define.])],
2358 [$ac_includes_default
2359 #ifdef HAVE_SYS_SOCKET_H
2360 #include <sys/socket.h>
2366 AC_CHECK_TYPE([sig_atomic_t],,
2367 [AC_DEFINE_UNQUOTED([sig_atomic_t], [int],
2368 [Define to `int' if <signal.h> does not define.])],
2369 [$ac_includes_default
2377 AC_CHECK_MEMBERS([struct stat.st_blksize])
2378 AC_CHECK_MEMBERS([struct passwd.pw_gecos],,,[$ac_includes_default
2380 AC_CHECK_MEMBERS([struct passwd.pw_passwd],,,[$ac_includes_default
2387 if test $cross_compiling = yes ; then
2388 AC_MSG_WARN([Crossing compiling... all bets are off!])
2389 AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
2394 AC_CHECK_SIZEOF(short)
2395 AC_CHECK_SIZEOF(int)
2396 AC_CHECK_SIZEOF(long)
2397 AC_CHECK_SIZEOF(long long)
2398 AC_CHECK_SIZEOF(wchar_t)
2400 if test "$ac_cv_sizeof_int" -lt 4 ; then
2401 AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
2403 AC_DEFINE(LBER_INT_T,long,[define to 32-bit or greater integer type])
2405 AC_DEFINE(LBER_INT_T,int,[define to 32-bit or greater integer type])
2408 AC_DEFINE(LBER_LEN_T,long,[define to large integer type])
2409 AC_DEFINE(LBER_SOCKET_T,int,[define to socket descriptor type])
2410 AC_DEFINE(LBER_TAG_T,long,[define to large integer type])
2412 dnl ----------------------------------------------------------------
2413 dnl Check for multiple precision support
2414 if test $ol_with_mp = longlong || test $ol_with_mp = auto ; then
2415 if test $ac_cv_sizeof_long_long > 4 ; then
2417 AC_DEFINE(USE_MP_LONG_LONG,1,[define to use 'long long' for MP])
2418 elif test $ol_with_mp = longlong ; then
2419 AC_MSG_ERROR([long long unusable for multiple precision])
2422 if test $ol_with_mp = long || test $ol_with_mp = auto ; then
2423 if test $ac_cv_sizeof_long > 4 ; then
2425 AC_DEFINE(USE_MP_LONG,1,[define to use 'long' for MP])
2426 elif test $ol_with_mp = long ; then
2427 AC_MSG_ERROR([long unusable for multiple precision])
2430 if test $ol_with_mp = bignum || test $ol_with_mp = auto ; then
2431 AC_CHECK_HEADERS(openssl/bn.h)
2432 AC_CHECK_HEADERS(openssl/crypto.h)
2433 if test "$ac_cv_header_openssl_bn_h" = "yes" &&
2434 test "$ac_cv_header_openssl_crypto_h" = "yes" &&
2435 test "$ol_with_tls" = "found" ; then
2437 AC_DEFINE(USE_MP_BIGNUM,1,[define to use OpenSSL BIGNUM for MP])
2438 elif test $ol_with_mp = bignum ; then
2439 AC_MSG_ERROR([bignum not available])
2442 if test $ol_with_mp = gmp || test $ol_with_mp = auto ; then
2443 AC_CHECK_HEADERS(gmp.h)
2444 AC_CHECK_LIB(gmp, __gmpz_add_ui)
2445 if test $ac_cv_header_gmp_h = yes && test $ac_cv_lib_gmp = yes ; then
2446 AC_DEFINE(USE_MP_GMP,1,[define to use GMP for MP])
2448 elif test $ol_with_mp = gmp ; then
2449 AC_MSG_ERROR([gmp not available])
2452 if test $ol_with_mp = auto ; then
2456 dnl ----------------------------------------------------------------
2457 dnl Checks for library functions.
2460 if test $ac_cv_func_memcmp_working = no ; then
2461 AC_DEFINE(NEED_MEMCMP_REPLACEMENT,1,
2462 [define if memcmp is not 8-bit clean or is otherwise broken])
2469 dnl Check for NT specific routines
2470 AC_CHECK_FUNC(_spawnlp, AC_DEFINE(HAVE_SPAWNLP,1,[if you have spawnlp()]))
2472 AC_CHECK_FUNC(_snprintf, [ac_cv_func_snprintf=yes
2473 AC_DEFINE(snprintf, _snprintf, [define to snprintf routine])
2476 AC_CHECK_FUNC(_vsnprintf, [ac_cv_func_vsnprintf=yes
2477 AC_DEFINE(vsnprintf, _vsnprintf, [define to vsnprintf routine])
2482 if test $ac_cv_func_vprintf = yes ; then
2483 dnl check for vsnprintf
2484 AC_CHECK_FUNCS(snprintf vsnprintf)
2544 dnl We actually may need to replace more than this.
2545 AC_REPLACE_FUNCS(getopt getpeereid)
2547 if test "$ac_cv_func_getopt" != yes; then
2548 LIBSRCS="$LIBSRCS getopt.c"
2550 if test "$ac_cv_func_getpeereid" != yes; then
2551 AC_CHECK_MEMBERS([struct msghdr.msg_accrightslen],,,
2552 [$ac_includes_default
2553 #ifdef HAVE_SYS_SOCKET_H
2554 #include <sys/socket.h>
2556 if test "$ac_cv_member_struct_msghdr_msg_accrightslen" != yes; then
2557 AC_CHECK_MEMBERS([struct msghdr.msg_control],,,
2558 [$ac_includes_default
2559 #ifdef HAVE_SYS_SOCKET_H
2560 #include <sys/socket.h>
2563 LIBSRCS="$LIBSRCS getpeereid.c"
2565 if test "$ac_cv_func_snprintf" != yes ||
2566 test "$ac_cv_func_vsnprintf" != yes; then
2567 if test "$ac_cv_func_snprintf" != yes; then
2568 AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
2570 if test "$ac_cv_func_vsnprintf" != yes; then
2571 AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine])
2575 dnl ----------------------------------------------------------------
2576 dnl Sort out defines
2578 if test "$ol_enable_slapi" != no ; then
2579 dnl This check is done also if --enable-modules is used;
2580 dnl it is duplicated here, 'cause it'd be cached anyway
2581 AC_CHECK_HEADERS(ltdl.h)
2583 if test $ac_cv_header_ltdl_h != yes ; then
2584 AC_MSG_ERROR([could not locate <ltdl.h>])
2586 AC_CHECK_LIB(ltdl, lt_dlinit, [
2589 LIBSLAPITOOLS=../libslapi.a
2590 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
2591 ],[AC_MSG_ERROR([could not locate libtool -lltdl])])
2593 AC_DEFINE(LDAP_SLAPI,1, [define this to add SLAPI code])
2596 if test "$ol_enable_debug" != no ; then
2597 AC_DEFINE(LDAP_DEBUG,1,
2598 [define this to add debugging code])
2600 if test "$ol_enable_syslog" = yes ; then
2601 AC_DEFINE(LDAP_SYSLOG,1,
2602 [define this to add syslog code])
2604 if test "$ol_link_kbind" != no ; then
2605 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND,LDAP_VENDOR_VERSION,
2606 [define to LDAP VENDOR VERSION])
2608 if test "$ol_enable_proctitle" != no ; then
2609 AC_DEFINE(LDAP_PROCTITLE,1,
2610 [define this for LDAP process title support])
2612 if test "$ol_enable_referrals" != no ; then
2613 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION,
2614 [define to LDAP VENDOR VERSION])
2616 if test "$ol_enable_local" != no; then
2617 AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
2619 if test "$ol_link_ipv6" != no; then
2620 AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
2622 if test "$ol_enable_cleartext" != no ; then
2623 AC_DEFINE(SLAPD_CLEARTEXT,1,[define to support cleartext passwords])
2625 if test "$ol_enable_crypt" != no ; then
2626 AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords])
2628 if test "$ol_link_spasswd" != no ; then
2629 AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
2631 if test "$ol_enable_multimaster" != no ; then
2632 AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
2634 if test "$ol_enable_rlookups" != no ; then
2635 AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
2637 if test "$ol_enable_aci" != no ; then
2638 AC_DEFINE(SLAPD_ACI_ENABLED,1,[define to support per-object ACIs])
2639 WITH_ACI_ENABLED=yes
2644 if test "$ol_link_modules" != no ; then
2645 AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
2647 SLAPD_MODULES_LDFLAGS="-dlopen self"
2650 AC_DEFINE(SLAPD_MOD_STATIC,1,[statically linked module])
2651 AC_DEFINE(SLAPD_MOD_DYNAMIC,2,[dynamically linked module])
2653 if test "$ol_enable_bdb" != no ; then
2655 BUILD_BDB=$ol_enable_bdb
2656 if test "$ol_enable_bdb" = mod ; then
2657 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
2658 MFLAG=SLAPD_MOD_DYNAMIC
2660 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
2661 MFLAG=SLAPD_MOD_STATIC
2663 AC_DEFINE_UNQUOTED(SLAPD_BDB,$MFLAG,[define to support BDB backend])
2666 if test "$ol_enable_dnssrv" != no ; then
2668 BUILD_DNSSRV=$ol_enable_dnssrv
2669 if test "$ol_enable_dnssrv" = mod ; then
2670 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
2671 MFLAG=SLAPD_MOD_DYNAMIC
2673 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
2674 MFLAG=SLAPD_MOD_STATIC
2676 AC_DEFINE_UNQUOTED(SLAPD_DNSSRV,$MFLAG,[define to support DNS SRV backend])
2679 if test "$ol_enable_hdb" != no ; then
2681 BUILD_HDB=$ol_enable_hdb
2682 if test "$ol_enable_hdb" = mod ; then
2683 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-hdb"
2684 MFLAG=SLAPD_MOD_DYNAMIC
2686 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb"
2687 MFLAG=SLAPD_MOD_STATIC
2689 AC_DEFINE_UNQUOTED(SLAPD_HDB,$MFLAG,[define to support HDB backend])
2692 if test "$ol_enable_ldap" != no ; then
2694 BUILD_LDAP=$ol_enable_ldap
2695 if test "$ol_enable_ldap" = mod ; then
2696 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
2697 MFLAG=SLAPD_MOD_DYNAMIC
2699 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
2700 MFLAG=SLAPD_MOD_STATIC
2702 AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
2705 if test "$ol_link_ldbm" != no && test $ol_enable_ldbm != no; then
2707 BUILD_LDBM=$ol_enable_ldbm
2708 if test "$ol_enable_ldbm" = mod ; then
2709 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldbm"
2710 MFLAG=SLAPD_MOD_DYNAMIC
2712 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldbm"
2713 MFLAG=SLAPD_MOD_STATIC
2715 AC_DEFINE_UNQUOTED(SLAPD_LDBM,$MFLAG,[define to support LDBM backend])
2718 if test "$ol_enable_meta" != no ; then
2720 BUILD_META=$ol_enable_meta
2722 if test "$ol_enable_meta" = mod ; then
2723 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
2724 MFLAG=SLAPD_MOD_DYNAMIC
2726 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
2727 MFLAG=SLAPD_MOD_STATIC
2729 AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
2732 if test "$ol_enable_monitor" != no ; then
2734 BUILD_MONITOR=$ol_enable_monitor
2735 if test "$ol_enable_monitor" = mod ; then
2736 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
2737 MFLAG=SLAPD_MOD_DYNAMIC
2739 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
2740 MFLAG=SLAPD_MOD_STATIC
2742 AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
2745 if test "$ol_enable_null" != no ; then
2747 BUILD_NULL=$ol_enable_null
2748 if test "$ol_enable_null" = mod ; then
2749 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
2750 MFLAG=SLAPD_MOD_DYNAMIC
2752 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
2753 MFLAG=SLAPD_MOD_STATIC
2755 AC_DEFINE_UNQUOTED(SLAPD_NULL,$MFLAG,[define to support NULL backend])
2758 if test "$ol_enable_passwd" != no ; then
2760 BUILD_PASSWD=$ol_enable_passwd
2761 if test "$ol_enable_passwd" = mod ; then
2762 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
2763 MFLAG=SLAPD_MOD_DYNAMIC
2765 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
2766 MFLAG=SLAPD_MOD_STATIC
2768 AC_DEFINE_UNQUOTED(SLAPD_PASSWD,$MFLAG,[define to support PASSWD backend])
2771 if test "$ol_link_perl" != no ; then
2773 BUILD_PERL=$ol_enable_perl
2774 if test "$ol_enable_perl" = mod ; then
2775 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
2776 MFLAG=SLAPD_MOD_DYNAMIC
2778 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
2779 MFLAG=SLAPD_MOD_STATIC
2781 AC_DEFINE_UNQUOTED(SLAPD_PERL,$MFLAG,[define to support PERL backend])
2784 if test "$ol_enable_relay" != no ; then
2786 BUILD_RELAY=$ol_enable_relay
2787 if test "$ol_enable_relay" = mod ; then
2788 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-relay"
2789 MFLAG=SLAPD_MOD_DYNAMIC
2791 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-relay"
2792 MFLAG=SLAPD_MOD_STATIC
2794 AC_DEFINE_UNQUOTED(SLAPD_RELAY,$MFLAG,[define to support relay backend])
2797 if test "$ol_enable_shell" != no ; then
2798 if test "$ol_link_threads" != no ; then
2799 AC_MSG_WARN([Use of --without-threads is recommended with back-shell])
2802 BUILD_SHELL=$ol_enable_shell
2803 if test "$ol_enable_shell" = mod ; then
2804 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
2805 MFLAG=SLAPD_MOD_DYNAMIC
2807 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
2808 MFLAG=SLAPD_MOD_STATIC
2810 AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend])
2813 if test "$ol_link_sql" != no ; then
2815 BUILD_SQL=$ol_enable_sql
2816 if test "$ol_enable_sql" = mod; then
2817 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
2818 MFLAG=SLAPD_MOD_DYNAMIC
2820 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
2821 MFLAG=SLAPD_MOD_STATIC
2823 AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend])
2826 if test "$ol_enable_accesslog" != no ; then
2827 BUILD_ACCESSLOG=$ol_enable_accesslog
2828 if test "$ol_enable_accesslog" = mod ; then
2829 MFLAG=SLAPD_MOD_DYNAMIC
2830 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS accesslog.la"
2832 MFLAG=SLAPD_MOD_STATIC
2833 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS accesslog.o"
2835 AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay])
2838 if test "$ol_enable_denyop" != no ; then
2839 BUILD_DENYOP=$ol_enable_denyop
2840 if test "$ol_enable_denyop" = mod ; then
2841 MFLAG=SLAPD_MOD_DYNAMIC
2842 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS denyop.la"
2844 MFLAG=SLAPD_MOD_STATIC
2845 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS denyop.o"
2847 AC_DEFINE_UNQUOTED(SLAPD_OVER_DENYOP,$MFLAG,[define for Deny Operation overlay])
2850 if test "$ol_enable_dyngroup" != no ; then
2851 BUILD_DYNGROUP=$ol_enable_dyngroup
2852 if test "$ol_enable_dyngroup" = mod ; then
2853 MFLAG=SLAPD_MOD_DYNAMIC
2854 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dyngroup.la"
2856 MFLAG=SLAPD_MOD_STATIC
2857 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dyngroup.o"
2859 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay])
2862 if test "$ol_enable_dynlist" != no ; then
2863 BUILD_DYNLIST=$ol_enable_dynlist
2864 if test "$ol_enable_dynlist" = mod ; then
2865 MFLAG=SLAPD_MOD_DYNAMIC
2866 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dynlist.la"
2868 MFLAG=SLAPD_MOD_STATIC
2869 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dynlist.o"
2871 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNLIST,$MFLAG,[define for Dynamic List overlay])
2874 if test "$ol_enable_lastmod" != no ; then
2875 BUILD_LASTMOD=$ol_enable_lastmod
2876 if test "$ol_enable_lastmod" = mod ; then
2877 MFLAG=SLAPD_MOD_DYNAMIC
2878 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS lastmod.la"
2880 MFLAG=SLAPD_MOD_STATIC
2881 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS lastmod.o"
2883 AC_DEFINE_UNQUOTED(SLAPD_OVER_LASTMOD,$MFLAG,[define for Last Modification overlay])
2886 if test "$ol_enable_ppolicy" != no ; then
2887 BUILD_PPOLICY=$ol_enable_ppolicy
2888 if test "$ol_enable_ppolicy" = mod ; then
2889 MFLAG=SLAPD_MOD_DYNAMIC
2890 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS ppolicy.la"
2892 MFLAG=SLAPD_MOD_STATIC
2893 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS ppolicy.o"
2895 AC_DEFINE_UNQUOTED(SLAPD_OVER_PPOLICY,$MFLAG,[define for Password Policy overlay])
2898 if test "$ol_enable_proxycache" != no ; then
2899 BUILD_PROXYCACHE=$ol_enable_proxycache
2900 if test "$ol_enable_proxycache" = mod ; then
2901 MFLAG=SLAPD_MOD_DYNAMIC
2902 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS pcache.la"
2904 MFLAG=SLAPD_MOD_STATIC
2905 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS pcache.o"
2907 AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay])
2910 if test "$ol_enable_refint" != no ; then
2911 BUILD_REFINT=$ol_enable_refint
2912 if test "$ol_enable_refint" = mod ; then
2913 MFLAG=SLAPD_MOD_DYNAMIC
2914 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la"
2916 MFLAG=SLAPD_MOD_STATIC
2917 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS refint.o"
2919 AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay])
2922 if test "$ol_enable_retcode" != no ; then
2923 BUILD_RETCODE=$ol_enable_retcode
2924 if test "$ol_enable_retcode" = mod ; then
2925 MFLAG=SLAPD_MOD_DYNAMIC
2926 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS retcode.la"
2928 MFLAG=SLAPD_MOD_STATIC
2929 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS retcode.o"
2931 AC_DEFINE_UNQUOTED(SLAPD_OVER_RETCODE,$MFLAG,[define for Referential Integrity overlay])
2934 if test "$ol_enable_rwm" != no ; then
2936 BUILD_RWM=$ol_enable_rwm
2937 if test "$ol_enable_rwm" = mod ; then
2938 MFLAG=SLAPD_MOD_DYNAMIC
2939 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS rwm.la"
2941 MFLAG=SLAPD_MOD_STATIC
2942 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS rwm_x.o"
2944 AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
2947 if test "$ol_enable_syncprov" != no ; then
2948 BUILD_SYNCPROV=$ol_enable_syncprov
2949 if test "$ol_enable_syncprov" = mod ; then
2950 MFLAG=SLAPD_MOD_DYNAMIC
2951 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS syncprov.la"
2953 MFLAG=SLAPD_MOD_STATIC
2954 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS syncprov.o"
2956 AC_DEFINE_UNQUOTED(SLAPD_OVER_SYNCPROV,$MFLAG,[define for Syncrepl Provider overlay])
2959 if test "$ol_enable_translucent" != no ; then
2960 BUILD_TRANSLUCENT=$ol_enable_translucent
2961 if test "$ol_enable_translucent" = mod ; then
2962 MFLAG=SLAPD_MOD_DYNAMIC
2963 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS translucent.la"
2965 MFLAG=SLAPD_MOD_STATIC
2966 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS translucent.o"
2968 AC_DEFINE_UNQUOTED(SLAPD_OVER_TRANSLUCENT,$MFLAG,[define for Translucent Proxy overlay])
2971 if test "$ol_enable_unique" != no ; then
2972 BUILD_UNIQUE=$ol_enable_unique
2973 if test "$ol_enable_unique" = mod ; then
2974 MFLAG=SLAPD_MOD_DYNAMIC
2975 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la"
2977 MFLAG=SLAPD_MOD_STATIC
2978 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS unique.o"
2980 AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay])
2983 if test "$ol_enable_valsort" != no ; then
2984 BUILD_VALSORT=$ol_enable_valsort
2985 if test "$ol_enable_valsort" = mod ; then
2986 MFLAG=SLAPD_MOD_DYNAMIC
2987 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS valsort.la"
2989 MFLAG=SLAPD_MOD_STATIC
2990 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS valsort.o"
2992 AC_DEFINE_UNQUOTED(SLAPD_OVER_VALSORT,$MFLAG,[define for Value Sorting overlay])
2995 if test "$ol_enable_slurpd" != no &&
2996 test "$ol_link_threads" != no &&
2997 test $BUILD_SLAPD = yes ; then
3001 if test "$ol_enable_rewrite" != no ; then
3002 AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta])
3006 if test "$ol_enable_slapi" != no ; then
3007 AC_DEFINE(ENABLE_SLAPI,1,[define to enable slapi library])
3009 SLAPD_SLAPI_DEPEND=libslapi.a
3012 dnl ----------------------------------------------------------------
3015 dnl For Windows build, we don't want to include -dlopen flags.
3016 dnl They hurt more than they help.
3019 if test "$ac_cv_mingw32" = yes ; then
3021 SLAPD_MODULES_LDFLAGS=
3030 AC_SUBST(WITH_MODULES_ENABLED)
3031 AC_SUBST(WITH_ACI_ENABLED)
3032 AC_SUBST(BUILD_THREAD)
3033 AC_SUBST(BUILD_LIBS_DYNAMIC)
3035 AC_SUBST(BUILD_SLAPD)
3037 AC_SUBST(BUILD_SLAPI)
3038 AC_SUBST(SLAPD_SLAPI_DEPEND)
3041 AC_SUBST(BUILD_DNSSRV)
3043 AC_SUBST(BUILD_LDAP)
3044 AC_SUBST(BUILD_LDBM)
3045 AC_SUBST(BUILD_META)
3046 AC_SUBST(BUILD_MONITOR)
3047 AC_SUBST(BUILD_NULL)
3048 AC_SUBST(BUILD_PASSWD)
3049 AC_SUBST(BUILD_RELAY)
3050 AC_SUBST(BUILD_PERL)
3051 AC_SUBST(BUILD_SHELL)
3054 AC_SUBST(BUILD_ACCESSLOG)
3055 AC_SUBST(BUILD_DENYOP)
3056 AC_SUBST(BUILD_DYNGROUP)
3057 AC_SUBST(BUILD_DYNLIST)
3058 AC_SUBST(BUILD_LASTMOD)
3059 AC_SUBST(BUILD_PPOLICY)
3060 AC_SUBST(BUILD_PROXYCACHE)
3061 AC_SUBST(BUILD_REFINT)
3062 AC_SUBST(BUILD_RETCODE)
3064 AC_SUBST(BUILD_SYNCPROV)
3065 AC_SUBST(BUILD_TRANSLUCENT)
3066 AC_SUBST(BUILD_UNIQUE)
3067 AC_SUBST(BUILD_VALSORT)
3068 AC_SUBST(BUILD_SLURPD)
3071 AC_SUBST(SLAPD_LIBS)
3072 AC_SUBST(SLURPD_LIBS)
3074 AC_SUBST(LTHREAD_LIBS)
3075 AC_SUBST(LUTIL_LIBS)
3078 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
3079 AC_SUBST(SLAPD_MODULES_LDFLAGS)
3081 AC_SUBST(SLAPD_NO_STATIC)
3082 AC_SUBST(SLAPD_STATIC_BACKENDS)
3083 AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
3084 AC_SUBST(SLAPD_STATIC_OVERLAYS)
3085 AC_SUBST(SLAPD_DYNAMIC_OVERLAYS)
3087 AC_SUBST(PERL_CPPFLAGS)
3088 AC_SUBST(SLAPD_PERL_LDFLAGS)
3089 AC_SUBST(MOD_PERL_LDFLAGS)
3095 AC_SUBST(MODULES_LIBS)
3096 AC_SUBST(SLAPI_LIBS)
3098 AC_SUBST(LIBSLAPITOOLS)
3101 AC_SUBST(SLAPD_SLP_LIBS)
3102 AC_SUBST(SLAPD_GMP_LIBS)
3104 AC_SUBST(SLAPD_SQL_LDFLAGS)
3105 AC_SUBST(SLAPD_SQL_LIBS)
3106 AC_SUBST(SLAPD_SQL_INCLUDES)
3108 dnl ----------------------------------------------------------------
3109 dnl final help output
3110 AC_ARG_WITH(xxinstall,[
3111 See INSTALL file for further details.])
3113 dnl ----------------------------------------------------------------
3117 AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.mk]
3118 [doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk]
3119 [doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk]
3120 [doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk]
3121 [doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk]
3122 [doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk]
3123 [doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk]
3124 [clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk]
3125 [clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk]
3126 [include/Makefile:build/top.mk:include/Makefile.in]
3127 [libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk]
3128 [libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk]
3129 [libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk]
3130 [libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk]
3131 [libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk]
3132 [libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk]
3133 [libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk]
3134 [servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk]
3135 [servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk]
3136 [servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk]
3137 [servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk]
3138 [servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk]
3139 [servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk]
3140 [servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/mod.mk]
3141 [servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk]
3142 [servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk]
3143 [servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk]
3144 [servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk]
3145 [servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk]
3146 [servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk]
3147 [servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk]
3148 [servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk]
3149 [servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk]
3150 [servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk]
3151 [servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk]
3152 [servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk]
3153 [servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk]
3154 [tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk]
3156 [tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk])
3158 AC_CONFIG_COMMANDS([default],[[
3161 BACKENDSC="servers/slapd/backends.c"
3162 echo "Making $BACKENDSC"
3164 cat > $BACKENDSC << ENDX
3165 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3167 * Copyright 1998-2006 The OpenLDAP Foundation.
3168 * All rights reserved.
3170 * Redistribution and use in source and binary forms, with or without
3171 * modification, are permitted only as authorized by the OpenLDAP
3174 * A copy of this license is available in the file LICENSE in the
3175 * top-level directory of the distribution or, alternatively, at
3176 * <http://www.OpenLDAP.org/license.html>.
3178 /* This file is automatically generated by configure; please do not edit. */
3180 #include "portable.h"
3184 if test "${STATIC_BACKENDS}"; then
3185 for b in config ${STATIC_BACKENDS}; do
3186 bb=`echo "${b}" | sed -e 's/back-//'`
3187 cat >> $BACKENDSC << ENDX
3188 extern BI_init ${bb}_back_initialize;
3192 cat >> $BACKENDSC << ENDX
3194 BackendInfo slap_binfo[] = {
3197 for b in config ${STATIC_BACKENDS}; do
3198 bb=`echo "${b}" | sed -e 's/back-//'`
3199 echo " Add ${bb} ..."
3200 cat >> $BACKENDSC << ENDX
3201 { "${bb}", ${bb}_back_initialize },
3205 cat >> $BACKENDSC << ENDX
3209 /* end of generated file */
3212 OVERLAYSC="servers/slapd/overlays/statover.c"
3213 echo "Making $OVERLAYSC"
3215 cat > $OVERLAYSC << ENDX
3216 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3218 * Copyright 1998-2006 The OpenLDAP Foundation.
3219 * All rights reserved.
3221 * Redistribution and use in source and binary forms, with or without
3222 * modification, are permitted only as authorized by the OpenLDAP
3225 * A copy of this license is available in the file LICENSE in the
3226 * top-level directory of the distribution or, alternatively, at
3227 * <http://www.OpenLDAP.org/license.html>.
3229 /* This file is automatically generated by configure; please do not edit. */
3231 #include "portable.h"
3235 if test "${STATIC_OVERLAYS}"; then
3236 for o in ${STATIC_OVERLAYS}; do
3237 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3238 cat >> $OVERLAYSC << ENDX
3239 extern OV_init ${oo}_initialize;
3244 cat >> $OVERLAYSC << ENDX
3246 OverlayInit slap_oinfo[] = {
3249 if test "${STATIC_OVERLAYS}"; then
3250 for o in ${STATIC_OVERLAYS}; do
3251 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3252 echo " Add ${oo} ..."
3253 cat >> $OVERLAYSC << ENDX
3254 { "${oo}", ${oo}_initialize },
3259 cat >> $OVERLAYSC << ENDX
3263 /* end of generated file */
3266 echo Please run \"make depend\" to build dependencies
3268 STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"
3269 STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS"