2 dnl This work is part of OpenLDAP Software <http://www.openldap.org/>.
4 dnl Copyright 1998-2005 The OpenLDAP Foundation.
5 dnl All rights reserved.
7 dnl Redistribution and use in source and binary forms, with or without
8 dnl modification, are permitted only as authorized by the OpenLDAP
11 dnl A copy of this license is available in the file LICENSE in the
12 dnl top-level directory of the distribution or, alternatively, at
13 dnl <http://www.OpenLDAP.org/license.html>.
15 dnl ----------------------------------------------------------------
16 dnl Disable config.cache!
17 define([AC_CACHE_LOAD], )dnl
18 define([AC_CACHE_SAVE], )dnl
19 dnl ----------------------------------------------------------------
20 dnl 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-2005 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-2005 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(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=
660 dnl ================================================================
661 dnl Checks for programs
663 AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
665 dnl ----------------------------------------------------------------
667 dnl Determine which C translator to use
670 dnl AIX Thread requires we use cc_r or xlc_r.
671 dnl But only do this IF AIX and CC is not set
672 dnl and threads are auto|yes|posix.
674 dnl If we find cc_r|xlc_r, force pthreads and assume
675 dnl pthread_create is in $LIBS (ie: don't bring in
676 dnl any additional thread libraries)
677 dnl If we do not find cc_r|xlc_r, disable threads
681 *-*-aix*) dnl all AIX is not a good idea.
682 if test -z "$CC" ; then
683 case "$ol_with_threads" in
684 auto | yes | posix) ol_aix_threads=yes ;;
690 if test $ol_aix_threads = yes ; then
691 if test -z "${CC}" ; then
692 AC_CHECK_PROGS(CC,cc_r xlc_r cc)
694 if test "$CC" = cc ; then
695 dnl no CC! don't allow --with-threads
696 if test $ol_with_threads != auto ; then
697 AC_MSG_ERROR([--with-threads requires cc_r (or other suitable compiler) on AIX])
699 AC_MSG_WARN([disabling threads, no cc_r on AIX])
705 case ${CC} in cc_r | xlc_r)
706 ol_with_threads=posix
707 ol_cv_pthread_create=yes
712 if test -z "${CC}"; then
713 AC_CHECK_PROGS(CC,cc gcc,missing)
715 if test "${CC}" = "missing" ; then
716 AC_MSG_ERROR([Unable to locate cc(1) or suitable replacement. Check PATH or set CC.])
720 if test -z "${AR}"; then
721 AC_CHECK_PROGS(AR,ar gar,missing)
723 if test "${AR}" = "missing" ; then
724 AC_MSG_ERROR([Unable to locate ar(1) or suitable replacement. Check PATH or set AR.])
732 dnl ----------------------------------------------------------------
735 if test $ol_enable_perl != no ; then
736 AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)
738 if test "no$PERLBIN" = "no" ; then
739 if test $ol_enable_perl = yes ; then
740 AC_MSG_ERROR([could not locate perl])
744 PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
745 PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e 's/ -lc / /' -e 's/ -lc$//'`"
747 if test x"$ol_enable_perl" = "xyes" ; then
748 SLAPD_PERL_LDFLAGS="$PERL_LDFLAGS"
750 MOD_PERL_LDFLAGS="$PERL_LDFLAGS"
752 dnl should check perl version
759 dnl ----------------------------------------------------------------
760 dnl Checks for Windows NT
762 *mingw32* ) ac_cv_mingw32=yes ;;
763 *cygwin* ) ac_cv_cygwin=yes ;;
766 dnl ----------------------------------------------------------------
767 dnl Checks for file extensions
770 AC_DEFINE_UNQUOTED(EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
772 dnl ----------------------------------------------------------------
773 dnl BeOS requires -lbe -lroot -lnet
774 AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])
776 dnl ----------------------------------------------------------------
777 dnl OpenLDAP requires STDC features
779 if test "X${ac_cv_prog_cc_stdc}" = "Xno" ; then
780 AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
783 dnl ----------------------------------------------------------------
784 dnl Check cc depend flags
786 if test "${ol_cv_mkdep}" = no ; then
787 # this will soon become an error
788 AC_MSG_WARN([do not know how to generate dependencies])
791 dnl ----------------------------------------------------------------
792 dnl Check for AIX security library
793 AC_CHECK_LIB(s, afopen, [
795 AC_DEFINE(HAVE_AIX_SECURITY,1,[define if you have AIX security lib])
798 dnl ----------------------------------------------------------------
799 dnl Check for IBM OS/390
803 AC_DEFINE(BOTH_STRINGS_H,1,[define to use both <string.h> and <strings.h>])
807 dnl ----------------------------------------------------------------
808 dnl Check for module support
810 WITH_MODULES_ENABLED=no
811 if test $ol_enable_modules != no ; then
812 AC_CHECK_HEADERS(ltdl.h)
814 if test $ac_cv_header_ltdl_h = no ; then
815 AC_MSG_ERROR([could not locate libtool ltdl.h])
818 AC_CHECK_LIB(ltdl, lt_dlinit, [
820 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
823 if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then
824 AC_MSG_ERROR([could not locate libtool -lltdl])
827 WITH_MODULES_ENABLED=yes
830 for i in $Backends; do
831 eval "ol_tmp=\$ol_enable_$i"
832 if test $ol_tmp = mod ; then
833 AC_MSG_WARN([building static $i backend])
834 eval "ol_enable_$i=yes"
837 for i in $Overlays; do
838 eval "ol_tmp=\$ol_enable_$i"
839 if test $ol_tmp = mod ; then
840 AC_MSG_WARN([building static $i overlay])
841 eval "ol_enable_$i=yes"
846 dnl ----------------------------------------------------------------
847 dnl Checks for header files.
850 if test $ol_cv_header_stdc != yes; then
851 AC_MSG_WARN([could not locate Standard C compliant headers])
908 AC_CHECK_HEADERS( resolv.h, [], [],
909 [$ac_includes_default]
910 #include <netinet/in.h>
913 AC_CHECK_HEADERS(sys/ucred.h, [], [],
914 [$ac_includes_default
915 #ifdef HAVE_SYS_PARAM_H
916 #include <sys/param.h>
920 dnl ----------------------------------------------------------------
921 dnl Checks for libraries
923 AC_CHECK_FUNCS( sigaction sigset )
925 dnl HP-UX requires -lV3
926 dnl this is not needed on newer versions of HP-UX
927 if test $ac_cv_func_sigaction = no && test $ac_cv_func_sigaction = no ; then
928 AC_CHECK_LIB(V3, sigset)
931 dnl The following is INTENTIONALLY scripted out because shell does not
932 dnl support variable names with the '@' character, which is what
933 dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
935 dnl Skip Winsock tests on Cygwin
936 if test "$ac_cv_cygwin" != yes && test "$ac_cv_header_winsock_h" = yes; then
937 AC_CACHE_CHECK([for winsock], [ol_cv_winsock],
939 for curlib in ws2_32 wsock32; do
940 LIBS="$LIBS -l$curlib"
941 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <winsock.h>
944 select(0,NULL,NULL,NULL,NULL);
947 ]])],[ol_cv_winsock=yes],[ol_cv_winsock=no])
949 if test $ol_cv_winsock = yes; then
950 AC_DEFINE(HAVE_WINSOCK, 1, [define if you have winsock])
951 ac_cv_func_socket=yes
952 ac_cv_func_select=yes
953 ac_cv_func_closesocket=yes
954 ac_cv_func_gethostname=yes
955 if test $curlib = ws2_32; then
956 ol_cv_winsock=winsock2
957 AC_DEFINE(HAVE_WINSOCK2, 1,
958 [define if you have winsock2])
967 dnl Likely combinations:
968 dnl -lsocket [ -lnsl_s | -lnsl ]
971 AC_CHECK_FUNC(socket, :, [
972 dnl hopefully we won't include too many libraries
973 AC_CHECK_LIB(socket, main)
974 AC_CHECK_LIB(net, main)
975 AC_CHECK_LIB(nsl_s, main)
976 AC_CHECK_LIB(nsl, main)
977 AC_CHECK_LIB(inet, socket)
978 AC_CHECK_LIB(gen, main)
982 AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
984 if test "${ac_cv_header_winsock_h}" != yes; then
986 dnl (if this detection becomes permenent, it and the select() detection
987 dnl should be done before the yielding select test)
988 AC_FUNC_SELECT_ARGTYPES
991 dnl check to see if system call automatically restart
992 dnl AC_SYS_RESTARTABLE_SYSCALLS
994 dnl ----------------------------------------------------------------
995 AC_CHECK_FUNCS( poll )
996 AC_CHECK_HEADERS( poll.h )
998 dnl ----------------------------------------------------------------
999 AC_CHECK_HEADERS( sys/epoll.h )
1000 if test "${ac_cv_header_sys_epoll_h}" = yes; then
1001 AC_MSG_CHECKING(for epoll system call)
1002 AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char *argv)
1004 int epfd = epoll_create(256);
1005 exit (epfd == -1 ? 1 : 0);
1006 }]])],[AC_MSG_RESULT(yes)
1007 AC_DEFINE(HAVE_EPOLL,1, [define if your system supports epoll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
1010 dnl ----------------------------------------------------------------
1014 dnl ----------------------------------------------------------------
1015 dnl require POSIX regex
1016 AC_CHECK_HEADERS( regex.h )
1017 if test "$ac_cv_header_regex_h" != yes ; then
1018 AC_MSG_ERROR([POSIX regex.h required.])
1020 AC_SEARCH_LIBS(regfree, [regex gnuregex],
1021 :, AC_MSG_ERROR([POSIX regex required.]))
1024 if test "$ol_cv_c_posix_regex" = no ; then
1025 AC_MSG_ERROR([broken POSIX regex!])
1028 dnl ----------------------------------------------------------------
1032 AC_CHECK_HEADERS(sys/uuid.h)
1033 if test $ac_cv_header_sys_uuid_h = yes ; then
1035 AC_SEARCH_LIBS(uuid_to_str, uuid, [have_uuid=yes], :)
1038 if test have_uuid = yes ; then
1039 AC_DEFINE(HAVE_UUID_TO_STR,1,
1040 [define if you have uuid_to_str()])
1042 test "$ac_cv_search_uuid_to_str" = "none required" || \
1043 SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_to_str"
1047 dnl For windows, check for the need of RPCRT for UUID function support
1048 if test $have_uuid = no ; then
1049 AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
1051 LIBS="$LIBS -lrpcrt4"
1052 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1053 int __stdcall UuidCreate(void *);
1054 int __stdcall UuidToStringA(void *,void **);
1058 ]])],[need_rpcrt=yes],[need_rpcrt=no])
1059 if test $need_rpcrt = yes; then
1060 SLAPD_LIBS="$SLAPD_LIBS -lrpcrt4"
1063 AC_MSG_RESULT($need_rpcrt)
1066 dnl ----------------------------------------------------------------
1067 dnl Check for resolver routines
1071 if test "$ol_cv_lib_resolver" != no ; then
1072 AC_DEFINE(HAVE_RES_QUERY,1,
1073 [define if you have res_query()])
1075 if test "$ol_enable_dnssrv" != no ; then
1079 if test "$ol_cv_lib_resolver" != yes ; then
1080 LIBS="$ol_cv_lib_resolver $LIBS"
1084 if test "$ol_enable_dnssrv" = yes || test "$ol_enable_dnssrv" = mod ; then
1085 if test "$ol_link_dnssrv" = no ; then
1086 AC_MSG_ERROR([DNSSRV requires res_query()])
1092 AC_CHECK_FUNCS( hstrerror )
1094 dnl ----------------------------------------------------------------
1095 dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
1096 dnl PF_LOCAL may use getaddrinfo in available
1097 AC_CHECK_FUNCS( getaddrinfo getnameinfo gai_strerror inet_ntop )
1100 if test $ac_cv_func_getaddrinfo = no || test $ac_cv_func_inet_ntop = no ; then
1101 if test $ol_enable_ipv6 = yes ; then
1102 AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
1104 elif test $ol_enable_ipv6 != no ; then
1105 AC_CACHE_CHECK([INET6_ADDRSTRLEN],[ol_cv_inet6_addrstrlen],[
1106 AC_EGREP_CPP(__has_inet6_addrstrlen__,[
1107 # include <netinet/in.h>
1108 # ifdef INET6_ADDRSTRLEN
1109 __has_inet6_addrstrlen__;
1111 ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])])
1114 AC_CACHE_CHECK([struct sockaddr_storage],ol_cv_struct_sockaddr_storage,[
1115 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1116 #include <sys/types.h>
1117 #include <sys/socket.h>
1119 struct sockaddr_storage ss;
1120 ]])],[ol_cv_struct_sockaddr_storage=yes],[ol_cv_struct_sockaddr_storage=no])])
1122 if test $ol_cv_inet6_addrstrlen = yes &&
1123 test $ol_cv_struct_sockaddr_storage = yes ; then
1125 elif test $ol_enable_ipv6 = yes &&
1126 test $ol_cv_inet6_addrstrlen = no ; then
1127 AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
1128 elif test $ol_enable_ipv6 = yes &&
1129 test $ol_cv_struct_sockaddr_storage = no ; then
1130 AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage])
1134 if test $ol_enable_local != no ; then
1135 AC_CHECK_HEADERS( sys/un.h )
1137 if test $ol_enable_local = auto ; then
1138 ol_enable_local=$ac_cv_header_sys_un_h
1139 elif test $ac_cv_header_sys_un_h = no ; then
1140 AC_MSG_ERROR([AF_LOCAL domain support requires sys/un.h])
1144 dnl ----------------------------------------------------------------
1150 case $ol_with_kerberos in yes | auto | k5 | k5only | k425)
1152 AC_CHECK_HEADERS(krb5.h)
1154 if test $ac_cv_header_krb5_h = yes ; then
1155 dnl lazy check for Heimdal Kerberos
1156 AC_CHECK_HEADERS(heim_err.h)
1157 if test $ac_cv_header_heim_err_h = yes ; then
1163 if test $krb5_impl = mit; then
1164 AC_CHECK_LIB(k5crypto, main,
1165 [krb5crypto=k5crypto],
1166 [krb5crypto=crypto])
1168 AC_CHECK_LIB(krb5, main,
1170 KRB5_LIBS="-lkrb5 -l$krb5crypto -lcom_err"],
1172 [-l$krb5crypto -lcom_err])
1174 elif test $krb5_impl = heimdal; then
1175 AC_CHECK_LIB(des, main,
1177 [krb5crypto=crypto])
1179 AC_CHECK_LIB(krb5, main,
1181 KRB5_LIBS="-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err"],
1183 [-l$krb5crypto -lasn1 -lroken -lcom_err])
1185 AC_DEFINE(HAVE_HEIMDAL_KERBEROS, 1,
1186 [define if you have HEIMDAL Kerberos])
1190 AC_MSG_WARN([Unrecognized Kerberos5 Implementation])
1193 if test $have_krb5 = yes ; then
1196 AC_DEFINE(HAVE_KRB5, 1,
1197 [define if you have Kerberos V])
1199 if test $ol_with_kerberos = k5only ; then
1200 ol_with_kerberos=found
1203 elif test $ol_with_kerberos != auto ; then
1204 AC_MSG_ERROR([Required Kerberos 5 support not available])
1211 if test $ol_link_krb5 = yes &&
1212 { test $ol_with_kerberos = yes ||
1213 test $ol_with_kerberos = auto ||
1214 test $ol_with_kerberos = k425; }; then
1216 AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
1218 if test $ac_cv_header_kerberosIV_krb_h = yes ; then
1219 if test $krb5_impl = mit; then
1220 AC_CHECK_LIB(krb4, main, [have_k425=yes
1221 KRB4_LIBS="-lkrb4 -ldes425"], [have_k425=no],
1222 [-ldes425 -lkrb5 -l$krb5crypto -lcom_err])
1224 elif test $krb5_impl = heimdal; then
1225 AC_CHECK_LIB(krb4, main, [have_k425=yes
1226 KRB4_LIBS="-lkrb4"], [have_k425=no],
1227 [-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err])
1231 AC_MSG_WARN([Unrecongized Kerberos V Implementation])
1234 if test $have_k425 = yes ; then
1235 ol_with_kerberos=found
1238 AC_DEFINE(HAVE_KRB425, 1,
1239 [define if you have Kerberos V with IV support])
1240 AC_DEFINE(HAVE_KRB4, 1,
1241 [define if you have Kerberos IV])
1243 AC_CACHE_CHECK([for des_debug in Kerberos libraries],
1244 [ol_cv_var_des_debug], [
1247 LIBS="$KRB4_LIBS $KRB5_LIBS $LIBS"
1248 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1249 #include <kerberosIV/krb.h>
1250 #include <kerberosIV/des.h>
1251 extern int des_debug;
1254 ]])],[ol_cv_var_des_debug=yes],[ol_cv_var_des_debug=no])
1255 dnl restore the LIBS
1259 if test $ol_cv_var_des_debug = yes ; then
1260 AC_DEFINE(HAVE_DES_DEBUG,1,
1261 [define if you have Kerberos des_debug])
1269 if test $ol_link_krb5 = yes ; then
1270 ol_with_kerberos=found
1273 case $ol_with_kerberos in yes | auto | k4 | kth)
1275 AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
1277 if test $ac_cv_header_krb_h = yes ; then
1278 AC_CHECK_LIB(krb, main, [have_k4=yes], [have_k4=no], [-ldes])
1280 if test $have_k4 = yes ; then
1281 ol_with_kerberos=found
1284 AC_DEFINE(HAVE_KRB4, 1,
1285 [define if you have Kerberos IV])
1287 KRB4_LIBS="-lkrb -ldes"
1289 if test $ac_cv_header_krb_archaeology_h = yes ; then
1290 AC_DEFINE(HAVE_KTH_KERBEROS, 1,
1291 [define if you have Kth Kerberos])
1298 if test $ol_link_krb4 = yes && test $ol_enable_kbind != no ; then
1301 elif test $ol_enable_kbind = yes ; then
1302 AC_MSG_ERROR([Kerberos IV detection failed])
1305 if test $ol_link_krb4 = yes || test $ol_link_krb5 = yes ; then
1306 AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
1308 elif test $ol_with_kerberos != auto && test $ol_with_kerberos != no ; then
1309 AC_MSG_ERROR([Kerberos detection failed])
1312 dnl ----------------------------------------------------------------
1316 if test $ol_with_tls != no ; then
1317 AC_CHECK_HEADERS(openssl/ssl.h)
1319 if test $ac_cv_header_openssl_ssl_h = yes ; then
1320 AC_CHECK_LIB(ssl, SSL_library_init,
1322 need_rsaref=no], [have_openssl=no],
1325 if test $have_openssl = no ; then
1326 AC_CHECK_LIB(ssl, ssl3_accept,
1328 need_rsaref=yes], [have_openssl=no],
1329 [-lcrypto -lRSAglue -lrsaref])
1332 if test $have_openssl = yes ; then
1336 AC_DEFINE(HAVE_OPENSSL, 1,
1337 [define if you have OpenSSL])
1339 if test $need_rsaref = yes; then
1340 AC_DEFINE(HAVE_RSAREF, 1,
1341 [define if OpenSSL needs RSAref])
1343 TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
1345 TLS_LIBS="-lssl -lcrypto"
1349 if test $ol_cv_ssl_crl_compat = no ; then
1352 AC_DEFINE(HAVE_OPENSSL_CRL, 1,
1353 [define if you have OpenSSL with CRL checking capability])
1358 AC_MSG_WARN([TLS data protection not supported!])
1362 if test $ol_link_tls = yes ; then
1363 AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
1366 elif test $ol_with_tls = auto ; then
1367 AC_MSG_WARN([Could not locate TLS/SSL package])
1368 AC_MSG_WARN([TLS data protection not supported!])
1370 elif test $ol_with_tls != no ; then
1371 AC_MSG_ERROR([Could not locate TLS/SSL package])
1374 dnl ----------------------------------------------------------------
1375 dnl LAN Manger password checking requires DES from OpenSSL
1376 if test $ol_enable_lmpasswd != no; then
1377 if test $ol_link_tls != yes ; then
1378 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
1381 AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
1384 dnl ----------------------------------------------------------------
1388 case $ol_with_threads in auto | yes | nt)
1392 if test "$ol_cv_nt_threads" = yes ; then
1394 ol_with_threads=found
1395 ol_with_yielding_select=yes
1397 AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager])
1398 AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log])
1401 if test $ol_with_threads = nt ; then
1402 AC_MSG_ERROR([could not locate NT Threads])
1407 case $ol_with_threads in auto | yes | posix)
1409 AC_CHECK_HEADERS(pthread.h)
1411 if test $ac_cv_header_pthread_h = yes ; then
1412 OL_POSIX_THREAD_VERSION
1414 if test $ol_cv_pthread_version != 0 ; then
1415 AC_DEFINE_UNQUOTED(HAVE_PTHREADS,$ol_cv_pthread_version,
1416 [define to pthreads API spec revision])
1418 AC_MSG_ERROR([unknown pthread version])
1421 # consider threads found
1422 ol_with_threads=found
1424 OL_HEADER_LINUX_THREADS
1425 OL_HEADER_GNU_PTH_PTHREAD_H
1427 if test $ol_cv_header_gnu_pth_pthread_h = no ; then
1428 AC_CHECK_HEADERS(sched.h)
1431 dnl Now the hard part, how to link?
1433 dnl currently supported checks:
1435 dnl Check for no flags
1436 dnl pthread_create() in $LIBS
1438 dnl Check special pthread (final) flags
1439 dnl [skipped] pthread_create() with -mt (Solaris) [disabled]
1440 dnl pthread_create() with -kthread (FreeBSD)
1441 dnl pthread_create() with -pthread (FreeBSD/Digital Unix)
1442 dnl pthread_create() with -pthreads (?)
1443 dnl pthread_create() with -mthreads (AIX)
1444 dnl pthread_create() with -thread (?)
1446 dnl Check pthread (final) libraries
1447 dnl pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
1448 dnl pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
1449 dnl [skipped] pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
1450 dnl pthread_join() -Wl,-woff,85 -lpthread (IRIX)
1451 dnl pthread_create() in -lpthread (many)
1452 dnl pthread_create() in -lc_r (FreeBSD)
1454 dnl Check pthread (draft4) flags (depreciated)
1455 dnl pthread_create() with -threads (OSF/1)
1457 dnl Check pthread (draft4) libraries (depreciated)
1458 dnl pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
1459 dnl pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
1460 dnl pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
1461 dnl pthread_create() in -lpthreads (many)
1464 dnl pthread_create in $LIBS
1465 AC_CACHE_CHECK([for pthread_create in default libraries],
1466 ol_cv_pthread_create,[
1467 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1468 [ol_cv_pthread_create=yes],
1469 [ol_cv_pthread_create=no],
1470 [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION,
1471 [ol_cv_pthread_create=yes],
1472 [ol_cv_pthread_create=no])])])
1474 if test $ol_cv_pthread_create != no ; then
1475 ol_link_threads=posix
1479 dnl OL_PTHREAD_TRY([-mt], [ol_cv_pthread_mt])
1480 OL_PTHREAD_TRY([-kthread], [ol_cv_pthread_kthread])
1481 OL_PTHREAD_TRY([-pthread], [ol_cv_pthread_pthread])
1482 OL_PTHREAD_TRY([-pthreads], [ol_cv_pthread_pthreads])
1483 OL_PTHREAD_TRY([-mthreads], [ol_cv_pthread_mthreads])
1484 OL_PTHREAD_TRY([-thread], [ol_cv_pthread_thread])
1486 OL_PTHREAD_TRY([-lpthread -lmach -lexc -lc_r],
1487 [ol_cv_pthread_lpthread_lmach_lexc_lc_r])
1488 OL_PTHREAD_TRY([-lpthread -lmach -lexc],
1489 [ol_cv_pthread_lpthread_lmach_lexc])
1490 dnl OL_PTHREAD_TRY([-lpthread -lexc],
1491 dnl [ol_cv_pthread_lpthread_lexc])
1493 OL_PTHREAD_TRY([-lpthread -Wl,-woff,85],
1494 [ol_cv_pthread_lib_lpthread_woff])
1496 OL_PTHREAD_TRY([-lpthread], [ol_cv_pthread_lpthread])
1497 OL_PTHREAD_TRY([-lc_r], [ol_cv_pthread_lc_r])
1499 OL_PTHREAD_TRY([-threads], [ol_cv_pthread_threads])
1501 OL_PTHREAD_TRY([-lpthreads -lmach -lexc -lc_r],
1502 [ol_cv_pthread_lpthreads_lmach_lexc_lc_r])
1503 OL_PTHREAD_TRY([-lpthreads -lmach -lexc],
1504 [ol_cv_pthread_lpthreads_lmach_lexc])
1505 OL_PTHREAD_TRY([-lpthreads -lexc],
1506 [ol_cv_pthread_lpthreads_lexc])
1508 OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
1510 if test $ol_link_threads != no ; then
1511 LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
1514 save_CPPFLAGS="$CPPFLAGS"
1516 LIBS="$LTHREAD_LIBS $LIBS"
1518 dnl All POSIX Thread (final) implementations should have
1519 dnl sched_yield instead of pthread yield.
1520 dnl check for both, and thr_yield for Solaris
1521 AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
1523 if test $ac_cv_func_sched_yield = no &&
1524 test $ac_cv_func_pthread_yield = no &&
1525 test $ac_cv_func_thr_yield = no ; then
1526 dnl Digital UNIX has sched_yield() in -lrt
1527 AC_CHECK_LIB(rt, sched_yield,
1528 [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
1529 AC_DEFINE(HAVE_SCHED_YIELD,1,
1530 [Define if you have the sched_yield function.])
1531 ac_cv_func_sched_yield=yes],
1532 [ac_cv_func_sched_yield=no])
1534 if test $ac_cv_func_sched_yield = no &&
1535 test $ac_cv_func_pthread_yield = no &&
1536 test "$ac_cv_func_thr_yield" = no ; then
1537 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
1540 dnl Check functions for compatibility
1541 AC_CHECK_FUNCS(pthread_kill pthread_rwlock_destroy)
1543 dnl Check for pthread_detach with <pthread.h> inclusion
1544 dnl as it's symbol may have been mangled.
1545 AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
1546 [ol_cv_func_pthread_detach], [
1548 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1549 #include <pthread.h>
1551 #define NULL (void*)0
1553 ]], [[pthread_detach(NULL);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
1556 if test $ol_cv_func_pthread_detach = no ; then
1557 AC_MSG_ERROR([could not locate pthread_detach()])
1560 AC_DEFINE(HAVE_PTHREAD_DETACH,1,
1561 [define if you have pthread_detach function])
1563 dnl Check for setconcurreny functions
1565 pthread_setconcurrency \
1566 pthread_getconcurrency \
1567 thr_setconcurrency \
1568 thr_getconcurrency \
1571 OL_SYS_LINUX_THREADS
1574 if test $ol_cv_linux_threads = error; then
1575 AC_MSG_ERROR([LinuxThreads header/library mismatch]);
1578 AC_CACHE_CHECK([if pthread_create() works],
1579 ol_cv_pthread_create_works,[
1580 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1581 [ol_cv_pthread_create_works=yes],
1582 [ol_cv_pthread_create_works=no],
1584 ol_cv_pthread_create_works=yes])])
1586 if test $ol_cv_pthread_create_works = no ; then
1587 AC_MSG_ERROR([pthread_create is not usable, check environment settings])
1590 dnl Check if select causes an yield
1591 if test $ol_with_yielding_select = auto ; then
1592 AC_CACHE_CHECK([if select yields when using pthreads],
1593 ol_cv_pthread_select_yields,[
1594 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1595 #include <sys/types.h>
1596 #include <sys/time.h>
1598 #include <pthread.h>
1600 #define NULL (void*) 0
1603 static int fildes[2];
1605 static void *task(p)
1617 FD_SET(fildes[0], &rfds);
1619 /* we're not interested in any fds */
1620 i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
1627 exit(0); /* if we exit here, the select blocked the whole process */
1630 int main(argc, argv)
1636 /* create a pipe to select */
1637 if(pipe(&fildes[0])) {
1642 #ifdef HAVE_PTHREAD_SETCONCURRENCY
1643 (void) pthread_setconcurrency(2);
1645 #ifdef HAVE_THR_SETCONCURRENCY
1646 /* Set Solaris LWP concurrency to 2 */
1647 thr_setconcurrency(2);
1651 #if HAVE_PTHREADS < 6
1652 pthread_create(&t, pthread_attr_default, task, NULL);
1654 pthread_create(&t, NULL, task, NULL);
1657 /* make sure task runs first */
1660 #elif defined( HAVE_SCHED_YIELD )
1662 #elif defined( HAVE_PTHREAD_YIELD )
1667 }]])],[ol_cv_pthread_select_yields=no],[ol_cv_pthread_select_yields=yes],[ol_cv_pthread_select_yields=cross])])
1669 if test $ol_cv_pthread_select_yields = cross ; then
1670 AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])
1673 if test $ol_cv_pthread_select_yields = yes ; then
1674 ol_with_yielding_select=yes
1679 CPPFLAGS="$save_CPPFLAGS"
1682 AC_MSG_ERROR([could not locate usable POSIX Threads])
1686 if test $ol_with_threads = posix ; then
1687 AC_MSG_ERROR([could not locate POSIX Threads])
1692 case $ol_with_threads in auto | yes | mach)
1694 dnl check for Mach CThreads
1695 AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
1696 if test $ac_cv_header_mach_cthreads_h = yes ; then
1697 ol_with_threads=found
1699 dnl check for cthreads support in current $LIBS
1700 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1702 if test $ol_link_threads = no ; then
1704 dnl this test needs work
1705 AC_CACHE_CHECK([for cthread_fork with -all_load],
1706 [ol_cv_cthread_all_load], [
1709 LIBS="-all_load $LIBS"
1710 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <mach/cthreads.h>]], [[
1711 cthread_fork((void *)0, (void *)0);
1712 ]])],[ol_cv_cthread_all_load=yes],[ol_cv_cthread_all_load=no])
1713 dnl restore the LIBS
1717 if test $ol_cv_cthread_all_load = yes ; then
1718 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
1719 ol_link_threads=mach
1720 ol_with_threads=found
1724 elif test $ac_cv_header_cthreads_h = yes ; then
1725 dnl Hurd variant of Mach Cthreads
1726 dnl uses <cthreads.h> and -lthreads
1728 ol_with_threads=found
1732 LIBS="$LIBS -lthreads"
1733 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1736 if test $ol_link_threads = yes ; then
1737 LTHREAD_LIBS="-lthreads"
1738 ol_link_threads=mach
1739 ol_with_threads=found
1741 AC_MSG_ERROR([could not link with Mach CThreads])
1744 elif test $ol_with_threads = mach ; then
1745 AC_MSG_ERROR([could not locate Mach CThreads])
1748 if test $ol_link_threads = mach ; then
1749 AC_DEFINE(HAVE_MACH_CTHREADS,1,
1750 [define if you have Mach Cthreads])
1751 elif test $ol_with_threads = found ; then
1752 AC_MSG_ERROR([could not link with Mach CThreads])
1757 case $ol_with_threads in auto | yes | pth)
1759 AC_CHECK_HEADERS(pth.h)
1761 if test $ac_cv_header_pth_h = yes ; then
1762 AC_CHECK_LIB(pth, pth_version, [have_pth=yes], [have_pth=no])
1764 if test $have_pth = yes ; then
1765 AC_DEFINE(HAVE_GNU_PTH,1,[if you have GNU Pth])
1766 LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
1768 ol_with_threads=found
1770 if test $ol_with_yielding_select = auto ; then
1771 ol_with_yielding_select=yes
1778 case $ol_with_threads in auto | yes | lwp)
1780 dnl check for SunOS5 LWP
1781 AC_CHECK_HEADERS(thread.h synch.h)
1782 if test $ac_cv_header_thread_h = yes &&
1783 test $ac_cv_header_synch_h = yes ; then
1784 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
1786 if test $have_thr = yes ; then
1787 AC_DEFINE(HAVE_THR,1,
1788 [if you have Solaris LWP (thr) package])
1789 LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
1792 if test $ol_with_yielding_select = auto ; then
1793 ol_with_yielding_select=yes
1796 dnl Check for setconcurreny functions
1798 thr_setconcurrency \
1799 thr_getconcurrency \
1804 dnl check for SunOS4 LWP
1805 AC_CHECK_HEADERS(lwp/lwp.h)
1806 if test $ac_cv_header_lwp_lwp_h = yes ; then
1807 AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
1809 if test $have_lwp = yes ; then
1810 AC_DEFINE(HAVE_LWP,1,
1811 [if you have SunOS LWP package])
1812 LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
1815 if test $ol_with_yielding_select = auto ; then
1816 ol_with_yielding_select=no
1823 if test $ol_with_yielding_select = yes ; then
1824 AC_DEFINE(HAVE_YIELDING_SELECT,1,
1825 [define if select implicitly yields])
1828 if test $ol_with_threads = manual ; then
1829 dnl User thinks he can manually configure threads.
1832 AC_MSG_WARN([thread defines and link options must be set manually])
1834 AC_CHECK_HEADERS(pthread.h sched.h)
1835 AC_CHECK_FUNCS(sched_yield pthread_yield)
1836 OL_HEADER_LINUX_THREADS
1838 AC_CHECK_HEADERS(mach/cthreads.h)
1839 AC_CHECK_HEADERS(lwp/lwp.h)
1840 AC_CHECK_HEADERS(thread.h synch.h)
1843 if test $ol_link_threads != no && test $ol_link_threads != nt ; then
1844 dnl needed to get reentrant/threadsafe versions
1846 AC_DEFINE(REENTRANT,1)
1847 AC_DEFINE(_REENTRANT,1)
1848 AC_DEFINE(THREAD_SAFE,1)
1849 AC_DEFINE(_THREAD_SAFE,1)
1850 AC_DEFINE(THREADSAFE,1)
1851 AC_DEFINE(_THREADSAFE,1)
1852 AC_DEFINE(_SGI_MP_SOURCE,1)
1854 dnl The errno declaration may dependent upon _REENTRANT.
1855 dnl If it does, we must link with thread support.
1856 AC_CACHE_CHECK([for thread specific errno],
1857 [ol_cv_errno_thread_specific], [
1858 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <errno.h>]], [[errno = 0;]])],[ol_cv_errno_thread_specific=yes],[ol_cv_errno_thread_specific=no])
1861 dnl The h_errno declaration may dependent upon _REENTRANT.
1862 dnl If it does, we must link with thread support.
1863 AC_CACHE_CHECK([for thread specific h_errno],
1864 [ol_cv_h_errno_thread_specific], [
1865 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])
1868 if test $ol_cv_errno_thread_specific != yes ||
1869 test $ol_cv_h_errno_thread_specific != yes ; then
1870 LIBS="$LTHREAD_LIBS $LIBS"
1874 dnl When in thread environment, use
1875 dnl #if defined( HAVE_REENTRANT_FUNCTIONS ) || defined( HAVE_FUNC_R )
1878 dnl # if defined( HAVE_THREADS )
1882 dnl # if defined( HAVE_THREADS )
1887 dnl HAVE_REENTRANT_FUNCTIONS is derived from:
1888 dnl _POSIX_REENTRANT_FUNCTIONS
1889 dnl _POSIX_THREAD_SAFE_FUNCTIONS
1890 dnl _POSIX_THREADSAFE_FUNCTIONS
1892 dnl and is currently defined in <ldap_pvt_thread.h>
1894 dnl HAVE_THREADS is defined by <ldap_pvt_thread.h> iff -UNO_THREADS
1896 dnl libldap/*.c should only include <ldap_pvt_thread.h> iff
1897 dnl LDAP_R_COMPILE is defined. ie:
1898 dnl #ifdef LDAP_R_COMPILE
1899 dnl # include <ldap_pvt_thread.h>
1902 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
1903 dnl specifically for compiling the threadsafe version of
1904 dnl the ldap library (-lldap_r).
1906 dnl dnl check for reentrant/threadsafe functions
1908 dnl dnl note: these should only be used when linking
1909 dnl dnl with $LTHREAD_LIBS
1911 dnl save_CPPFLAGS="$CPPFLAGS"
1912 dnl save_LIBS="$LIBS"
1913 dnl LIBS="$LTHREAD_LIBS $LIBS"
1914 dnl AC_CHECK_FUNCS( \
1916 dnl gethostbyaddr_r gethostbyname_r \
1917 dnl feof_unlocked unlocked_feof \
1918 dnl putc_unlocked unlocked_putc \
1919 dnl flockfile ftrylockfile \
1921 dnl CPPFLAGS="$save_CPPFLAGS"
1922 dnl LIBS="$save_LIBS"
1925 if test $ol_link_threads = no ; then
1926 if test $ol_with_threads = yes ; then
1927 AC_MSG_ERROR([no suitable thread support])
1930 if test $ol_with_threads = auto ; then
1931 AC_MSG_WARN([no suitable thread support, disabling threads])
1935 AC_DEFINE(NO_THREADS,1,
1936 [define if you have (or want) no threads])
1943 if test $ol_link_threads != no ; then
1944 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1,
1945 [define to 1 if library is thread safe])
1948 dnl ----------------------------------------------------------------
1949 dnl Tests for reentrant functions necessary to build -lldap_r
1952 gethostbyname_r gethostbyaddr_r \
1955 if test "$ac_cv_func_ctime_r" = no ; then
1956 ol_cv_func_ctime_r_nargs=0
1958 OL_FUNC_CTIME_R_NARGS
1959 dnl OL_FUNC_CTIME_R_TYPE
1962 if test "$ac_cv_func_gethostbyname_r" = yes ; then
1963 OL_FUNC_GETHOSTBYNAME_R_NARGS
1965 ol_cv_func_gethostbyname_r_nargs=0
1968 if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
1969 OL_FUNC_GETHOSTBYADDR_R_NARGS
1971 ol_cv_func_gethostbyaddr_r_nargs=0
1974 dnl ----------------------------------------------------------------
1977 case $ol_enable_ldbm_api in auto | berkeley | bcompat)
1979 if test $ol_enable_ldbm_api = bcompat; then \
1980 OL_BERKELEY_COMPAT_DB
1985 if test $ol_cv_berkeley_db != no ; then
1986 AC_DEFINE(HAVE_BERKELEY_DB,1,
1987 [define this if Berkeley DB is available])
1989 ol_link_ldbm=berkeley
1990 ol_enable_ldbm_api=berkeley
1992 if test $ol_enable_ldbm_type = hash ; then
1993 AC_DEFINE(LDBM_USE_DBHASH,1,
1994 [define this to use DBHASH w/ LDBM backend])
1996 AC_DEFINE(LDBM_USE_DBBTREE,1,
1997 [define this to use DBBTREE w/ LDBM backend])
2000 dnl $ol_cv_lib_db should be yes or -ldb
2001 dnl (it could be no, but that would be an error
2002 if test $ol_cv_lib_db != yes ; then
2003 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
2009 if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
2010 if test $ol_link_ldbm != berkeley ; then
2011 AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
2015 if test $ol_cv_bdb_compat != yes ; then
2016 AC_MSG_ERROR([BDB/HDB: BerkeleyDB version incompatible])
2021 if test $ol_link_ldbm = no && test $ol_enable_ldbm_type = btree ; then
2022 AC_MSG_WARN([Could not find LDBM with BTREE support])
2023 ol_enable_ldbm_api=none
2026 if test $ol_enable_ldbm_api = auto || test $ol_enable_ldbm_api = mdbm ; then
2029 if test $ol_cv_mdbm = yes ; then
2031 ol_enable_ldbm_api=mdbm
2032 if test $ol_cv_lib_mdbm != yes ; then
2033 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_mdbm"
2038 if test $ol_enable_ldbm_api = auto || test $ol_enable_ldbm_api = gdbm ; then
2041 if test $ol_cv_gdbm = yes ; then
2043 ol_enable_ldbm_api=gdbm
2045 if test $ol_cv_lib_gdbm != yes ; then
2046 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
2051 if test $ol_enable_ldbm_api = ndbm ; then
2054 if test $ol_cv_ndbm = yes ; then
2056 ol_enable_ldbm_api=ndbm
2058 if test $ol_cv_lib_ndbm != yes ; then
2059 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
2064 if test $ol_link_ldbm = no && test $ol_enable_ldbm != no ; then
2065 AC_MSG_ERROR([could not find suitable LDBM backend])
2068 if test $ol_enable_bdb = yes ||
2069 test $ol_enable_hdb = yes ||
2070 test $ol_enable_ldbm = yes ; then
2071 SLAPD_LIBS="$SLAPD_LIBS \$(LDBM_LIBS)"
2074 dnl ----------------------------------------------------------------
2076 if test $ol_enable_dynamic = yes && test $enable_shared = yes ; then
2077 BUILD_LIBS_DYNAMIC=shared
2078 AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
2081 BUILD_LIBS_DYNAMIC=static
2084 AC_SUBST(LTSTATIC)dnl
2086 dnl ----------------------------------------------------------------
2087 if test $ol_enable_wrappers != no ; then
2088 AC_CHECK_HEADERS(tcpd.h,[
2089 AC_MSG_CHECKING([for TCP wrappers library])
2092 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
2094 int allow_severity = 0;
2095 int deny_severity = 0;
2097 struct request_info *req;
2100 ]])],[AC_MSG_RESULT([-lwrap])
2102 LIBS="$save_LIBS"],[
2107 int allow_severity = 0;
2108 int deny_severity = 0;
2110 struct request_info *req;
2113 ],[AC_MSG_RESULT([-lwrap -lnsl])
2115 LIBS="$save_LIBS -lnsl"],[
2118 LIBS=$save_LIBS])])],[have_wrappers=no])
2120 if test $have_wrappers = yes ; then
2121 AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
2123 elif test $ol_enable_wrappers = yes ; then
2124 AC_MSG_ERROR([could not find TCP wrappers, select apppropriate options or disable])
2126 AC_MSG_WARN([could not find TCP wrappers, support disabled])
2131 dnl ----------------------------------------------------------------
2132 if test $ol_enable_syslog != no ; then
2133 AC_CHECK_FUNC(openlog)
2134 if test $ac_cv_func_openlog = no && test $ol_enable_syslog = yes; then
2135 AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
2137 ol_enable_syslog=$ac_cv_func_openlog
2140 dnl ----------------------------------------------------------------
2143 if test $ol_enable_sql != no ; then
2144 AC_CHECK_HEADERS(sql.h sqlext.h,[],[
2145 AC_MSG_ERROR([could not locate SQL headers])
2149 LIBS="$LTHREAD_LIBS"
2151 AC_CHECK_LIB(iodbc,SQLDriverConnect,[have_iodbc=yes],[have_iodbc=no])
2152 if test $have_iodbc = yes ; then
2153 ol_link_sql="-liodbc"
2155 AC_CHECK_LIB(odbc,SQLDriverConnect,[have_odbc=yes],[have_odbc=no])
2156 if test $have_odbc = yes ; then
2157 ol_link_sql="-lodbc"
2163 if test $ol_link_sql != no ; then
2164 SLAPD_SQL_LIBS="$ol_link_sql"
2166 elif test $ol_enable_sql != auto ; then
2167 AC_MSG_ERROR([could not locate suitable ODBC library])
2171 dnl ----------------------------------------------------------------
2172 dnl International Components for Unicode
2174 if test "$ol_icu" = no ; then
2175 AC_MSG_WARN([ICU not available])
2179 dnl ----------------------------------------------------------------
2181 dnl Check for Cyrus SASL
2186 if test $ol_with_cyrus_sasl != no ; then
2187 AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
2189 if test $ac_cv_header_sasl_sasl_h = yes ||
2190 test $ac_cv_header_sasl_h = yes; then
2191 AC_CHECK_LIB(sasl2, sasl_client_init,
2192 [ol_link_sasl="-lsasl2"],
2193 [AC_CHECK_LIB(sasl, sasl_client_init,
2194 [ol_link_sasl="-lsasl"])])
2197 if test $ol_link_sasl = no ; then
2198 if test $ol_with_cyrus_sasl != auto ; then
2199 AC_MSG_ERROR([Could not locate Cyrus SASL])
2201 AC_MSG_WARN([Could not locate Cyrus SASL])
2202 AC_MSG_WARN([SASL authentication not supported!])
2203 if test $ol_link_tls = no ; then
2204 AC_MSG_WARN([Strong authentication not supported!])
2209 if test $ol_cv_sasl_compat = no ; then
2211 AC_MSG_ERROR([Cyrus SASL library located but is incompatible])
2214 AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
2215 SASL_LIBS="$ol_link_sasl"
2216 if test $ol_enable_spasswd != no ; then
2220 ac_save_LIBS="$LIBS"
2221 LIBS="$LIBS $ol_link_sasl"
2222 AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1,
2223 [define if your SASL library has sasl_version()])])
2224 LIBS="$ac_save_LIBS"
2230 AC_MSG_WARN([SASL authentication not supported!])
2231 if test $ol_link_tls = no ; then
2232 AC_MSG_WARN([Strong authentication not supported!])
2236 dnl ----------------------------------------------------------------
2237 dnl Check for entropy sources
2238 if test $cross_compiling != yes && test "$ac_cv_mingw32" != yes ; then
2240 if test -r /dev/urandom ; then
2242 elif test -r /idev/urandom ; then
2243 dev="/idev/urandom";
2244 elif test -r /dev/srandom ; then
2246 elif test -r /dev/random ; then
2248 elif test -r /idev/random ; then
2252 if test $dev != no ; then
2253 AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
2257 dnl ----------------------------------------------------------------
2259 dnl Check for fetch URL support
2260 dnl should be extended to support other fetch URL APIs
2263 if test $ol_with_fetch != no ; then
2266 if test $ol_cv_lib_fetch != no ; then
2267 LUTIL_LIBS="$LUTIL_LIBS $ol_link_fetch"
2268 ol_link_fetch=freebsd
2270 elif test $ol_with_fetch != auto ; then
2271 AC_MSG_ERROR(no suitable API for --with-fetch=$ol_with_fetch)
2275 dnl ----------------------------------------------------------------
2276 dnl FreeBSD (and others) have crypt(3) in -lcrypt
2277 if test $ol_enable_crypt != no ; then
2279 LIBS="$TLS_LIBS $LIBS"
2281 AC_CHECK_FUNC(crypt, [have_crypt=yes], [
2283 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
2284 have_crypt=yes], [have_crypt=no])])
2288 if test $have_crypt = yes ; then
2289 AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
2291 AC_MSG_WARN([could not find crypt])
2292 if test $ol_enable_crypt = yes ; then
2293 AC_MSG_ERROR([could not find crypt, select appropriate options or disable])
2296 AC_MSG_WARN([disabling crypt support])
2301 dnl ----------------------------------------------------------------
2302 dnl FreeBSD (and others) have setproctitle(3) in -lutil
2303 if test $ol_enable_proctitle != no ; then
2304 AC_CHECK_FUNC(setproctitle, [have_setproctitle=yes], [
2305 AC_CHECK_LIB(util, setproctitle,
2306 [have_setproctitle=yes
2307 LUTIL_LIBS="$LUTIL_LIBS -lutil"],
2308 [have_setproctitle=no
2309 AC_LIBOBJ(setproctitle)
2310 LIBSRCS="$LIBSRCS setproctitle.c"])])
2312 if test $have_setproctitle = yes ; then
2313 AC_DEFINE(HAVE_SETPROCTITLE,1,
2314 [define if setproctitle(3) is available])
2318 dnl ----------------------------------------------------------------
2319 dnl Check for SLPv2 Compliant API Library
2320 if test $ol_enable_slp != no ; then
2321 AC_CHECK_HEADERS( slp.h )
2323 if test $ac_cv_header_slp_h = yes ; then
2324 AC_CHECK_LIB(slp, SLPOpen, [have_slp=yes], [have_slp=no])
2325 if test $have_slp = yes ; then
2326 AC_DEFINE(HAVE_SLP, 1, [define if you have -lslp])
2327 SLAPD_SLP_LIBS=-lslp
2330 elif test $ol_enable_slp = yes ; then
2331 AC_MSG_ERROR([SLP not found])
2335 dnl ----------------------------------------------------------------
2336 dnl Check for multiple precision support
2337 if test "$ol_with_multiple_precision" != "no" ; then
2341 AC_CHECK_HEADERS(openssl/bn.h bn.h)
2342 AC_CHECK_HEADERS(openssl/crypto.h crypto.h)
2343 AC_CHECK_HEADERS( gmp.h )
2345 if test "$ol_with_tls" = "found" ; then
2349 if test "$ac_cv_header_openssl_bn_h" = "yes" ||
2350 test "$ac_cv_header_bn_h" = "yes" ; then
2354 if test "$ac_cv_header_openssl_crypto_h" = "yes" ||
2355 test "$ac_cv_header_crypto_h" = "yes" ; then
2356 ol_have_crypto_h=yes
2359 if test "$ol_have_bn_h" = "yes" &&
2360 test "$ol_have_crypto_h" = "yes" ; then
2365 if test $ac_cv_header_gmp_h = yes ; then
2366 AC_CHECK_LIB(gmp, __gmpz_add_ui, [have_gmp=yes], [have_gmp=no])
2367 if test $have_gmp = yes ; then
2372 AC_MSG_CHECKING([for multiple precision support])
2374 ol_mp_support="none"
2375 case "$ol_with_multiple_precision" in
2377 dnl preferred sequence:
2378 dnl - OpenSSL's BIGNUM (if libssl is already linked)
2381 if test "$ol_have_bignum" = "yes" ; then
2382 ol_mp_support="bignum"
2384 if test "$ol_have_gmp" = "yes" ; then
2390 if test "$ol_have_bignum" != "yes" ; then
2391 AC_MSG_ERROR([OpenSSL's BIGNUM not available])
2393 ol_mp_support="bignum"
2396 if test "$ol_have_gmp" != "yes" ; then
2397 AC_MSG_ERROR([GMP not available])
2402 if test "$ol_have_bignum" = "yes" ; then
2403 ol_mp_support="bignum"
2404 elif test "$ol_have_gmp" = "yes" ; then
2407 AC_MSG_ERROR([not available])
2412 case "$ol_mp_support" in
2414 AC_DEFINE(HAVE_BIGNUM, 1,
2415 [define if you have OpenSSL's BIGNUM])
2418 AC_DEFINE(HAVE_GMP, 1, [define if you have -lgmp])
2419 SLAPD_GMP_LIBS=-lgmp
2425 AC_MSG_RESULT($ol_mp_support)
2428 dnl ----------------------------------------------------------------
2429 dnl Checks for typedefs, structures, and compiler characteristics.
2431 AC_CHECK_TYPE(mode_t, int)
2432 AC_CHECK_TYPE(off_t, long)
2433 AC_CHECK_TYPE(pid_t, int)
2434 AC_CHECK_TYPE(ssize_t, [signed int])
2435 AC_CHECK_TYPE(caddr_t, [char *])
2436 AC_CHECK_TYPE(size_t, unsigned)
2438 AC_CHECK_TYPES([long long])
2439 AC_CHECK_TYPES([ptrdiff_t])
2441 AC_CHECK_TYPE([socklen_t],,
2442 [AC_DEFINE_UNQUOTED([socklen_t], [int],
2443 [Define to `int' if <sys/socket.h> does not define.])],
2444 [$ac_includes_default
2445 #ifdef HAVE_SYS_SOCKET_H
2446 #include <sys/socket.h>
2452 AC_CHECK_TYPE([sig_atomic_t],,
2453 [AC_DEFINE_UNQUOTED([sig_atomic_t], [int],
2454 [Define to `int' if <signal.h> does not define.])],
2455 [$ac_includes_default
2463 AC_CHECK_MEMBERS([struct stat.st_blksize])
2464 AC_CHECK_MEMBERS([struct passwd.pw_gecos],,,[$ac_includes_default
2466 AC_CHECK_MEMBERS([struct passwd.pw_passwd],,,[$ac_includes_default
2473 if test $cross_compiling = yes ; then
2474 AC_MSG_WARN([Crossing compiling... all bets are off!])
2475 AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
2480 AC_CHECK_SIZEOF(short)
2481 AC_CHECK_SIZEOF(int)
2482 AC_CHECK_SIZEOF(long)
2483 AC_CHECK_SIZEOF(wchar_t)
2485 if test "$ac_cv_sizeof_int" -lt 4 ; then
2486 AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
2488 AC_DEFINE(LBER_INT_T,long,[define to 32-bit or greater integer type])
2490 AC_DEFINE(LBER_INT_T,int,[define to 32-bit or greater integer type])
2493 AC_DEFINE(LBER_LEN_T,long,[define to large integer type])
2494 AC_DEFINE(LBER_SOCKET_T,int,[define to socket descriptor type])
2495 AC_DEFINE(LBER_TAG_T,long,[define to large integer type])
2497 dnl ----------------------------------------------------------------
2498 dnl Checks for library functions.
2501 if test $ac_cv_func_memcmp_working = no ; then
2502 AC_DEFINE(NEED_MEMCMP_REPLACEMENT,1,
2503 [define if memcmp is not 8-bit clean or is otherwise broken])
2510 dnl Check for NT specific routines
2511 AC_CHECK_FUNC(_spawnlp, AC_DEFINE(HAVE_SPAWNLP,1,[if you have spawnlp()]))
2513 AC_CHECK_FUNC(_snprintf, [ac_cv_func_snprintf=yes
2514 AC_DEFINE(snprintf, _snprintf, [define to snprintf routine])
2517 AC_CHECK_FUNC(_vsnprintf, [ac_cv_func_vsnprintf=yes
2518 AC_DEFINE(vsnprintf, _vsnprintf, [define to vsnprintf routine])
2523 if test $ac_cv_func_vprintf = yes ; then
2524 dnl check for vsnprintf
2525 AC_CHECK_FUNCS(snprintf vsnprintf)
2586 dnl We actually may need to replace more than this.
2587 AC_REPLACE_FUNCS(getopt getpeereid)
2589 if test "$ac_cv_func_getopt" != yes; then
2590 LIBSRCS="$LIBSRCS getopt.c"
2593 if test "$ac_cv_func_getpeereid" != yes; then
2594 AC_CHECK_FUNCS( getpeerucred )
2595 if test "$ac_cv_func_getpeerucred" != yes ; then
2596 AC_CHECK_MEMBERS([struct msghdr.msg_accrightslen],,,
2597 [$ac_includes_default
2598 #ifdef HAVE_SYS_SOCKET_H
2599 #include <sys/socket.h>
2601 if test "$ac_cv_member_struct_msghdr_msg_accrightslen" != yes; then
2602 AC_CHECK_MEMBERS([struct msghdr.msg_control],,,
2603 [$ac_includes_default
2604 #ifdef HAVE_SYS_SOCKET_H
2605 #include <sys/socket.h>
2609 LIBSRCS="$LIBSRCS getpeereid.c"
2612 if test "$ac_cv_func_snprintf" != yes ||
2613 test "$ac_cv_func_vsnprintf" != yes; then
2614 if test "$ac_cv_func_snprintf" != yes; then
2615 AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
2617 if test "$ac_cv_func_vsnprintf" != yes; then
2618 AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine])
2622 dnl ----------------------------------------------------------------
2623 dnl Sort out defines
2625 if test "$ol_enable_slapi" != no ; then
2626 dnl This check is done also if --enable-modules is used;
2627 dnl it is duplicated here, 'cause it'd be cached anyway
2628 AC_CHECK_HEADERS(ltdl.h)
2630 if test $ac_cv_header_ltdl_h != yes ; then
2631 AC_MSG_ERROR([could not locate <ltdl.h>])
2633 AC_CHECK_LIB(ltdl, lt_dlinit, [
2636 LIBSLAPITOOLS=../libslapi.a
2637 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
2638 ],[AC_MSG_ERROR([could not locate libtool -lltdl])])
2640 AC_DEFINE(LDAP_SLAPI,1, [define this to add SLAPI code])
2643 if test "$ol_enable_debug" != no ; then
2644 if test "$ol_enable_debug" = traditional; then
2645 AC_DEFINE(OLD_DEBUG,1,
2646 [define to use the original debug style])
2648 AC_DEFINE(LDAP_DEBUG,1,
2649 [define this to add debugging code])
2651 if test "$ol_enable_syslog" = yes ; then
2652 AC_DEFINE(LDAP_SYSLOG,1,
2653 [define this to add syslog code])
2655 if test "$ol_link_kbind" != no ; then
2656 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND,LDAP_VENDOR_VERSION,
2657 [define to LDAP VENDOR VERSION])
2659 if test "$ol_enable_proctitle" != no ; then
2660 AC_DEFINE(LDAP_PROCTITLE,1,
2661 [define this for LDAP process title support])
2663 if test "$ol_enable_referrals" != no ; then
2664 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION,
2665 [define to LDAP VENDOR VERSION])
2667 if test "$ol_enable_local" != no; then
2668 AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
2670 if test "$ol_link_ipv6" != no; then
2671 AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
2673 if test "$ol_enable_cleartext" != no ; then
2674 AC_DEFINE(SLAPD_CLEARTEXT,1,[define to support cleartext passwords])
2676 if test "$ol_enable_crypt" != no ; then
2677 AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords])
2679 if test "$ol_link_spasswd" != no ; then
2680 AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
2682 if test "$ol_enable_multimaster" != no ; then
2683 AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
2685 if test "$ol_enable_rlookups" != no ; then
2686 AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
2688 if test "$ol_enable_aci" != no ; then
2689 AC_DEFINE(SLAPD_ACI_ENABLED,1,[define to support per-object ACIs])
2690 WITH_ACI_ENABLED=yes
2695 if test "$ol_link_modules" != no ; then
2696 AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
2698 SLAPD_MODULES_LDFLAGS="-dlopen self"
2701 AC_DEFINE(SLAPD_MOD_STATIC,1,[statically linked module])
2702 AC_DEFINE(SLAPD_MOD_DYNAMIC,2,[dynamically linked module])
2704 if test "$ol_enable_bdb" != no ; then
2706 BUILD_BDB=$ol_enable_bdb
2707 if test "$ol_enable_bdb" = mod ; then
2708 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
2709 MFLAG=SLAPD_MOD_DYNAMIC
2711 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
2712 MFLAG=SLAPD_MOD_STATIC
2714 AC_DEFINE_UNQUOTED(SLAPD_BDB,$MFLAG,[define to support BDB backend])
2717 if test "$ol_enable_dnssrv" != no ; then
2719 BUILD_DNSSRV=$ol_enable_dnssrv
2720 if test "$ol_enable_dnssrv" = mod ; then
2721 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
2722 MFLAG=SLAPD_MOD_DYNAMIC
2724 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
2725 MFLAG=SLAPD_MOD_STATIC
2727 AC_DEFINE_UNQUOTED(SLAPD_DNSSRV,$MFLAG,[define to support DNS SRV backend])
2730 if test "$ol_enable_hdb" != no ; then
2732 BUILD_HDB=$ol_enable_hdb
2733 if test "$ol_enable_hdb" = mod ; then
2734 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-hdb"
2735 MFLAG=SLAPD_MOD_DYNAMIC
2737 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb"
2738 MFLAG=SLAPD_MOD_STATIC
2740 AC_DEFINE_UNQUOTED(SLAPD_HDB,$MFLAG,[define to support HDB backend])
2743 if test "$ol_enable_ldap" != no ; then
2745 BUILD_LDAP=$ol_enable_ldap
2746 if test "$ol_enable_ldap" = mod ; then
2747 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
2748 MFLAG=SLAPD_MOD_DYNAMIC
2750 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
2751 MFLAG=SLAPD_MOD_STATIC
2753 AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
2756 if test "$ol_link_ldbm" != no && test $ol_enable_ldbm != no; then
2758 BUILD_LDBM=$ol_enable_ldbm
2759 if test "$ol_enable_ldbm" = mod ; then
2760 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldbm"
2761 MFLAG=SLAPD_MOD_DYNAMIC
2763 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldbm"
2764 MFLAG=SLAPD_MOD_STATIC
2766 AC_DEFINE_UNQUOTED(SLAPD_LDBM,$MFLAG,[define to support LDBM backend])
2769 if test "$ol_enable_meta" != no ; then
2771 BUILD_META=$ol_enable_meta
2773 if test "$ol_enable_meta" = mod ; then
2774 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
2775 MFLAG=SLAPD_MOD_DYNAMIC
2777 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
2778 MFLAG=SLAPD_MOD_STATIC
2780 AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
2783 if test "$ol_enable_monitor" != no ; then
2785 BUILD_MONITOR=$ol_enable_monitor
2786 if test "$ol_enable_monitor" = mod ; then
2787 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
2788 MFLAG=SLAPD_MOD_DYNAMIC
2790 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
2791 MFLAG=SLAPD_MOD_STATIC
2793 AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
2796 if test "$ol_enable_null" != no ; then
2798 BUILD_NULL=$ol_enable_null
2799 if test "$ol_enable_null" = mod ; then
2800 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
2801 MFLAG=SLAPD_MOD_DYNAMIC
2803 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
2804 MFLAG=SLAPD_MOD_STATIC
2806 AC_DEFINE_UNQUOTED(SLAPD_NULL,$MFLAG,[define to support NULL backend])
2809 if test "$ol_enable_passwd" != no ; then
2811 BUILD_PASSWD=$ol_enable_passwd
2812 if test "$ol_enable_passwd" = mod ; then
2813 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
2814 MFLAG=SLAPD_MOD_DYNAMIC
2816 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
2817 MFLAG=SLAPD_MOD_STATIC
2819 AC_DEFINE_UNQUOTED(SLAPD_PASSWD,$MFLAG,[define to support PASSWD backend])
2822 if test "$ol_link_perl" != no ; then
2824 BUILD_PERL=$ol_enable_perl
2825 if test "$ol_enable_perl" = mod ; then
2826 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
2827 MFLAG=SLAPD_MOD_DYNAMIC
2829 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
2830 MFLAG=SLAPD_MOD_STATIC
2832 AC_DEFINE_UNQUOTED(SLAPD_PERL,$MFLAG,[define to support PERL backend])
2835 if test "$ol_enable_relay" != no ; then
2837 BUILD_RELAY=$ol_enable_relay
2838 if test "$ol_enable_relay" = mod ; then
2839 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-relay"
2840 MFLAG=SLAPD_MOD_DYNAMIC
2842 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-relay"
2843 MFLAG=SLAPD_MOD_STATIC
2845 AC_DEFINE_UNQUOTED(SLAPD_RELAY,$MFLAG,[define to support relay backend])
2848 if test "$ol_enable_shell" != no ; then
2849 if test "$ol_link_threads" != no ; then
2850 AC_MSG_WARN([Use of --without-threads is recommended with back-shell])
2853 BUILD_SHELL=$ol_enable_shell
2854 if test "$ol_enable_shell" = mod ; then
2855 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
2856 MFLAG=SLAPD_MOD_DYNAMIC
2858 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
2859 MFLAG=SLAPD_MOD_STATIC
2861 AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend])
2864 if test "$ol_link_sql" != no ; then
2866 BUILD_SQL=$ol_enable_sql
2867 if test "$ol_enable_sql" = mod; then
2868 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
2869 MFLAG=SLAPD_MOD_DYNAMIC
2871 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
2872 MFLAG=SLAPD_MOD_STATIC
2874 AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend])
2877 if test "$ol_enable_accesslog" != no ; then
2878 BUILD_ACCESSLOG=$ol_enable_accesslog
2879 if test "$ol_enable_accesslog" = mod ; then
2880 MFLAG=SLAPD_MOD_DYNAMIC
2881 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS accesslog.la"
2883 MFLAG=SLAPD_MOD_STATIC
2884 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS accesslog.o"
2886 AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay])
2889 if test "$ol_enable_denyop" != no ; then
2890 BUILD_DENYOP=$ol_enable_denyop
2891 if test "$ol_enable_denyop" = mod ; then
2892 MFLAG=SLAPD_MOD_DYNAMIC
2893 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS denyop.la"
2895 MFLAG=SLAPD_MOD_STATIC
2896 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS denyop.o"
2898 AC_DEFINE_UNQUOTED(SLAPD_OVER_DENYOP,$MFLAG,[define for Dynamic Group overlay])
2901 if test "$ol_enable_dyngroup" != no ; then
2902 BUILD_DYNGROUP=$ol_enable_dyngroup
2903 if test "$ol_enable_dyngroup" = mod ; then
2904 MFLAG=SLAPD_MOD_DYNAMIC
2905 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dyngroup.la"
2907 MFLAG=SLAPD_MOD_STATIC
2908 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dyngroup.o"
2910 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay])
2913 if test "$ol_enable_dynlist" != no ; then
2914 BUILD_DYNLIST=$ol_enable_dynlist
2915 if test "$ol_enable_dynlist" = mod ; then
2916 MFLAG=SLAPD_MOD_DYNAMIC
2917 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dynlist.la"
2919 MFLAG=SLAPD_MOD_STATIC
2920 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dynlist.o"
2922 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNLIST,$MFLAG,[define for Dynamic List overlay])
2925 if test "$ol_enable_lastmod" != no ; then
2926 BUILD_LASTMOD=$ol_enable_lastmod
2927 if test "$ol_enable_lastmod" = mod ; then
2928 MFLAG=SLAPD_MOD_DYNAMIC
2929 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS lastmod.la"
2931 MFLAG=SLAPD_MOD_STATIC
2932 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS lastmod.o"
2934 AC_DEFINE_UNQUOTED(SLAPD_OVER_LASTMOD,$MFLAG,[define for Last Modification overlay])
2937 if test "$ol_enable_ppolicy" != no ; then
2938 BUILD_PPOLICY=$ol_enable_ppolicy
2939 if test "$ol_enable_ppolicy" = mod ; then
2940 MFLAG=SLAPD_MOD_DYNAMIC
2941 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS ppolicy.la"
2943 MFLAG=SLAPD_MOD_STATIC
2944 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS ppolicy.o"
2946 AC_DEFINE_UNQUOTED(SLAPD_OVER_PPOLICY,$MFLAG,[define for Password Policy overlay])
2949 if test "$ol_enable_proxycache" != no ; then
2950 BUILD_PROXYCACHE=$ol_enable_proxycache
2951 if test "$ol_enable_proxycache" = mod ; then
2952 MFLAG=SLAPD_MOD_DYNAMIC
2953 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS pcache.la"
2955 MFLAG=SLAPD_MOD_STATIC
2956 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS pcache.o"
2958 AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay])
2961 if test "$ol_enable_refint" != no ; then
2962 BUILD_REFINT=$ol_enable_refint
2963 if test "$ol_enable_refint" = mod ; then
2964 MFLAG=SLAPD_MOD_DYNAMIC
2965 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la"
2967 MFLAG=SLAPD_MOD_STATIC
2968 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS refint.o"
2970 AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay])
2973 if test "$ol_enable_retcode" != no ; then
2974 BUILD_RETCODE=$ol_enable_retcode
2975 if test "$ol_enable_retcode" = mod ; then
2976 MFLAG=SLAPD_MOD_DYNAMIC
2977 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS retcode.la"
2979 MFLAG=SLAPD_MOD_STATIC
2980 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS retcode.o"
2982 AC_DEFINE_UNQUOTED(SLAPD_OVER_RETCODE,$MFLAG,[define for Referential Integrity overlay])
2985 if test "$ol_enable_rwm" != no ; then
2987 BUILD_RWM=$ol_enable_rwm
2988 if test "$ol_enable_rwm" = mod ; then
2989 MFLAG=SLAPD_MOD_DYNAMIC
2990 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS rwm.la"
2992 MFLAG=SLAPD_MOD_STATIC
2993 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS rwm_x.o"
2995 AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
2998 if test "$ol_enable_syncprov" != no ; then
2999 BUILD_SYNCPROV=$ol_enable_syncprov
3000 if test "$ol_enable_syncprov" = mod ; then
3001 MFLAG=SLAPD_MOD_DYNAMIC
3002 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS syncprov.la"
3004 MFLAG=SLAPD_MOD_STATIC
3005 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS syncprov.o"
3007 AC_DEFINE_UNQUOTED(SLAPD_OVER_SYNCPROV,$MFLAG,[define for Syncrepl Provider overlay])
3010 if test "$ol_enable_translucent" != no ; then
3011 BUILD_TRANSLUCENT=$ol_enable_translucent
3012 if test "$ol_enable_translucent" = mod ; then
3013 MFLAG=SLAPD_MOD_DYNAMIC
3014 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS translucent.la"
3016 MFLAG=SLAPD_MOD_STATIC
3017 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS translucent.o"
3019 AC_DEFINE_UNQUOTED(SLAPD_OVER_TRANSLUCENT,$MFLAG,[define for Translucent Proxy overlay])
3022 if test "$ol_enable_unique" != no ; then
3023 BUILD_UNIQUE=$ol_enable_unique
3024 if test "$ol_enable_unique" = mod ; then
3025 MFLAG=SLAPD_MOD_DYNAMIC
3026 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la"
3028 MFLAG=SLAPD_MOD_STATIC
3029 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS unique.o"
3031 AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay])
3034 if test "$ol_enable_valsort" != no ; then
3035 BUILD_VALSORT=$ol_enable_valsort
3036 if test "$ol_enable_valsort" = mod ; then
3037 MFLAG=SLAPD_MOD_DYNAMIC
3038 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS valsort.la"
3040 MFLAG=SLAPD_MOD_STATIC
3041 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS valsort.o"
3043 AC_DEFINE_UNQUOTED(SLAPD_OVER_VALSORT,$MFLAG,[define for Value Sorting overlay])
3046 if test "$ol_enable_slurpd" != no &&
3047 test "$ol_link_threads" != no &&
3048 test $BUILD_SLAPD = yes ; then
3052 if test "$ol_enable_rewrite" != no ; then
3053 AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta])
3057 if test "$ol_enable_slapi" != no ; then
3058 AC_DEFINE(ENABLE_SLAPI,1,[define to enable slapi library])
3060 SLAPD_SLAPI_DEPEND=libslapi.a
3063 dnl ----------------------------------------------------------------
3066 dnl For Windows build, we don't want to include -dlopen flags.
3067 dnl They hurt more than they help.
3070 if test "$ac_cv_mingw32" = yes ; then
3072 SLAPD_MODULES_LDFLAGS=
3081 AC_SUBST(WITH_MODULES_ENABLED)
3082 AC_SUBST(WITH_ACI_ENABLED)
3083 AC_SUBST(BUILD_THREAD)
3084 AC_SUBST(BUILD_LIBS_DYNAMIC)
3086 AC_SUBST(BUILD_SLAPD)
3088 AC_SUBST(BUILD_SLAPI)
3089 AC_SUBST(SLAPD_SLAPI_DEPEND)
3092 AC_SUBST(BUILD_DNSSRV)
3094 AC_SUBST(BUILD_LDAP)
3095 AC_SUBST(BUILD_LDBM)
3096 AC_SUBST(BUILD_META)
3097 AC_SUBST(BUILD_MONITOR)
3098 AC_SUBST(BUILD_NULL)
3099 AC_SUBST(BUILD_PASSWD)
3100 AC_SUBST(BUILD_RELAY)
3101 AC_SUBST(BUILD_PERL)
3102 AC_SUBST(BUILD_SHELL)
3105 AC_SUBST(BUILD_ACCESSLOG)
3106 AC_SUBST(BUILD_DENYOP)
3107 AC_SUBST(BUILD_DYNGROUP)
3108 AC_SUBST(BUILD_DYNLIST)
3109 AC_SUBST(BUILD_LASTMOD)
3110 AC_SUBST(BUILD_PPOLICY)
3111 AC_SUBST(BUILD_PROXYCACHE)
3112 AC_SUBST(BUILD_REFINT)
3113 AC_SUBST(BUILD_RETCODE)
3115 AC_SUBST(BUILD_SYNCPROV)
3116 AC_SUBST(BUILD_TRANSLUCENT)
3117 AC_SUBST(BUILD_UNIQUE)
3118 AC_SUBST(BUILD_VALSORT)
3119 AC_SUBST(BUILD_SLURPD)
3122 AC_SUBST(SLAPD_LIBS)
3123 AC_SUBST(SLURPD_LIBS)
3125 AC_SUBST(LTHREAD_LIBS)
3126 AC_SUBST(LUTIL_LIBS)
3129 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
3130 AC_SUBST(SLAPD_MODULES_LDFLAGS)
3132 AC_SUBST(SLAPD_NO_STATIC)
3133 AC_SUBST(SLAPD_STATIC_BACKENDS)
3134 AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
3135 AC_SUBST(SLAPD_STATIC_OVERLAYS)
3136 AC_SUBST(SLAPD_DYNAMIC_OVERLAYS)
3138 AC_SUBST(PERL_CPPFLAGS)
3139 AC_SUBST(SLAPD_PERL_LDFLAGS)
3140 AC_SUBST(MOD_PERL_LDFLAGS)
3146 AC_SUBST(MODULES_LIBS)
3147 AC_SUBST(SLAPI_LIBS)
3149 AC_SUBST(LIBSLAPITOOLS)
3153 AC_SUBST(SLAPD_SLP_LIBS)
3154 AC_SUBST(SLAPD_GMP_LIBS)
3156 AC_SUBST(SLAPD_SQL_LDFLAGS)
3157 AC_SUBST(SLAPD_SQL_LIBS)
3158 AC_SUBST(SLAPD_SQL_INCLUDES)
3160 dnl ----------------------------------------------------------------
3161 dnl final help output
3162 AC_ARG_WITH(xxinstall,[
3163 See INSTALL file for further details.])
3165 dnl ----------------------------------------------------------------
3169 AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.mk]
3170 [doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk]
3171 [doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk]
3172 [doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk]
3173 [doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk]
3174 [doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk]
3175 [doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk]
3176 [clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk]
3177 [clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk]
3178 [include/Makefile:build/top.mk:include/Makefile.in]
3179 [libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk]
3180 [libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk]
3181 [libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk]
3182 [libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk]
3183 [libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk]
3184 [libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk]
3185 [libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk]
3186 [servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk]
3187 [servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk]
3188 [servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk]
3189 [servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk]
3190 [servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk]
3191 [servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk]
3192 [servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/mod.mk]
3193 [servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk]
3194 [servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk]
3195 [servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk]
3196 [servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk]
3197 [servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk]
3198 [servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk]
3199 [servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk]
3200 [servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk]
3201 [servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk]
3202 [servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk]
3203 [servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk]
3204 [servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk]
3205 [servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk]
3206 [tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk]
3208 [tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk])
3210 AC_CONFIG_COMMANDS([default],[[
3213 BACKENDSC="servers/slapd/backends.c"
3214 echo "Making $BACKENDSC"
3216 cat > $BACKENDSC << ENDX
3217 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3219 * Copyright 1998-2005 The OpenLDAP Foundation.
3220 * All rights reserved.
3222 * Redistribution and use in source and binary forms, with or without
3223 * modification, are permitted only as authorized by the OpenLDAP
3226 * A copy of this license is available in the file LICENSE in the
3227 * top-level directory of the distribution or, alternatively, at
3228 * <http://www.OpenLDAP.org/license.html>.
3230 /* This file is automatically generated by configure; please do not edit. */
3232 #include "portable.h"
3236 if test "${STATIC_BACKENDS}"; then
3237 for b in config ${STATIC_BACKENDS}; do
3238 bb=`echo "${b}" | sed -e 's/back-//'`
3239 cat >> $BACKENDSC << ENDX
3240 extern BI_init ${bb}_back_initialize;
3244 cat >> $BACKENDSC << ENDX
3246 BackendInfo slap_binfo[] = {
3249 for b in config ${STATIC_BACKENDS}; do
3250 bb=`echo "${b}" | sed -e 's/back-//'`
3251 echo " Add ${bb} ..."
3252 cat >> $BACKENDSC << ENDX
3253 { "${bb}", ${bb}_back_initialize },
3257 cat >> $BACKENDSC << ENDX
3261 /* end of generated file */
3264 OVERLAYSC="servers/slapd/overlays/statover.c"
3265 echo "Making $OVERLAYSC"
3267 cat > $OVERLAYSC << ENDX
3268 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3270 * Copyright 1998-2005 The OpenLDAP Foundation.
3271 * All rights reserved.
3273 * Redistribution and use in source and binary forms, with or without
3274 * modification, are permitted only as authorized by the OpenLDAP
3277 * A copy of this license is available in the file LICENSE in the
3278 * top-level directory of the distribution or, alternatively, at
3279 * <http://www.OpenLDAP.org/license.html>.
3281 /* This file is automatically generated by configure; please do not edit. */
3283 #include "portable.h"
3287 if test "${STATIC_OVERLAYS}"; then
3288 for o in ${STATIC_OVERLAYS}; do
3289 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3290 cat >> $OVERLAYSC << ENDX
3291 extern OV_init ${oo}_initialize;
3296 cat >> $OVERLAYSC << ENDX
3298 OverlayInit slap_oinfo[] = {
3301 if test "${STATIC_OVERLAYS}"; then
3302 for o in ${STATIC_OVERLAYS}; do
3303 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3304 echo " Add ${oo} ..."
3305 cat >> $OVERLAYSC << ENDX
3306 { "${oo}", ${oo}_initialize },
3311 cat >> $OVERLAYSC << ENDX
3315 /* end of generated file */
3318 echo Please run \"make depend\" to build dependencies
3320 STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"
3321 STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS"