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 Configure.in for OpenLDAP
21 AC_COPYRIGHT([[Copyright 1998-2005 The OpenLDAP Foundation. All rights reserved.
22 Restrictions apply, see COPYRIGHT and LICENSE files.]])
23 AC_REVISION([$OpenLDAP$])
24 AC_INIT([OpenLDAP],,[http://www.openldap.org/its/])
25 AC_CONFIG_SRCDIR(build/version.sh)dnl
26 dnl ----------------------------------------------------------------
27 dnl OpenLDAP Autoconf Macros
28 builtin(include, build/openldap.m4)dnl
29 dnl ================================================================
31 AC_CONFIG_AUX_DIR(build)dnl
33 eval `$ac_aux_dir/version.sh`
34 if test -z "$OL_STRING"; then
35 AC_MSG_ERROR([could not determine version])
38 if test -f "$ac_aux_dir/shtool" -a ! -d $ac_aux_dir/shtool; then
39 ac_cv_shtool="$ac_aux_dir/shtool"
41 AC_MSG_ERROR([no shtool found in $ac_aux_dir])
44 SHTOOL="$ac_cv_shtool"
45 dnl AC_SUBST(SHTOOL)dnl
47 TB="`$SHTOOL echo -e '%B' 2>/dev/null`"
48 TN="`$SHTOOL echo -e '%b' 2>/dev/null`"
51 if test -d $ac_aux_dir/CVS; then
52 OPENLDAP_CVS="(from CVS sources) "
55 echo "Configuring ${TB}${OL_STRING}${TN} ${OPENLDAP_CVS}..."
57 dnl Determine host platform
58 dnl we try not to use this for much
59 AC_CANONICAL_TARGET([])
61 AM_INIT_AUTOMAKE([$OL_PACKAGE],[$OL_VERSION], [no defines])dnl
64 AC_DEFINE_UNQUOTED(OPENLDAP_PACKAGE,"$PACKAGE",Package)
65 AC_DEFINE_UNQUOTED(OPENLDAP_VERSION,"$VERSION",Version)
67 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION,$OL_API_INC,Version)
68 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MAJOR,$OL_MAJOR,Major)
69 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MINOR,$OL_MINOR,Minor)
70 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_PATCH,$OL_PATCH,Patch)
72 OPENLDAP_LIBRELEASE=$OL_API_LIB_RELEASE
73 AC_SUBST(OPENLDAP_LIBRELEASE)dnl
75 OPENLDAP_LIBVERSION=$OL_API_LIB_VERSION
76 AC_SUBST(OPENLDAP_LIBVERSION)dnl
78 OPENLDAP_RELEASE_DATE="$OL_RELEASE_DATE"
79 AC_SUBST(OPENLDAP_RELEASE_DATE)dnl
81 dnl We use autoconf features new to 2.59. Later versions like won't work.
82 dnl aclocal.m4 should be built using aclocal from automake 1.5
83 dnl libtool 1.5 should be installed.
84 AC_PREREQ(2.59)dnl Required Autoconf version
87 /* begin of portable.h.pre */
88 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
90 * Copyright 1998-2005 The OpenLDAP Foundation
91 * All rights reserved.
93 * Redistribution and use in source and binary forms, with or without
94 * modification, are permitted only as authorized by the OpenLDAP
97 * A copy of this license is available in the file LICENSE in the
98 * top-level directory of the distribution or, alternatively, at
99 * <http://www.OpenLDAP.org/license.html>.
102 #ifndef _LDAP_PORTABLE_H
103 #define _LDAP_PORTABLE_H
105 /* define this if needed to get reentrant functions */
113 /* define this if needed to get threadsafe functions */
127 #ifndef _SGI_MP_SOURCE
128 #undef _SGI_MP_SOURCE
131 /* end of portable.h.pre */
134 /* begin of portable.h.post */
137 /* don't suck in all of the win32 api */
138 # define WIN32_LEAN_AND_MEAN 1
141 #ifndef LDAP_NEEDS_PROTOTYPES
142 /* force LDAP_P to always include prototypes */
143 #define LDAP_NEEDS_PROTOTYPES 1
147 #if (LDAP_VENDOR_VERSION == 000000) && !defined(LDAP_DEVEL)
150 #if defined(LDAP_DEVEL) && !defined(LDAP_TEST)
160 /* ASCII/EBCDIC converting replacements for stdio funcs
161 * vsnprintf and snprintf are used too, but they are already
162 * checked by the configure script
164 #define fputs ber_pvt_fputs
165 #define fgets ber_pvt_fgets
166 #define printf ber_pvt_printf
167 #define fprintf ber_pvt_fprintf
168 #define vfprintf ber_pvt_vfprintf
169 #define vsprintf ber_pvt_vsprintf
172 #include "ac/fdset.h"
174 #include "ldap_cdefs.h"
175 #include "ldap_features.h"
177 #include "ac/assert.h"
178 #include "ac/localize.h"
180 #endif /* _LDAP_PORTABLE_H */
181 /* end of portable.h.post */
184 AC_CONFIG_HEADERS([include/portable.h:include/portable.hin])
185 AC_CONFIG_HEADERS([include/ldap_features.h:include/ldap_features.hin])
186 AC_CONFIG_HEADERS([include/lber_types.h:include/lber_types.hin])
188 dnl ================================================================
190 AC_MSG_CHECKING(configure arguments)
191 AC_PREFIX_DEFAULT(/usr/local)
194 AC_SUBST(top_builddir)dnl
196 dnl ----------------------------------------------------------------
198 ldap_subdir="/openldap"
201 [ --with-subdir=DIR change default subdirectory used for installs],
208 ldap_subdir="$withval"
211 ldap_subdir="/$withval"
216 AC_SUBST(ldap_subdir)dnl
218 dnl ----------------------------------------------------------------
219 dnl General "enable" options
220 OL_ARG_ENABLE(debug,[ --enable-debug enable debugging], yes)dnl
221 OL_ARG_ENABLE(dynamic,[ --enable-dynamic enable linking built binaries with dynamic libs], no)dnl
222 OL_ARG_ENABLE(syslog,[ --enable-syslog enable syslog support], auto)dnl
223 OL_ARG_ENABLE(proctitle,[ --enable-proctitle enable proctitle support], yes)dnl
224 dnl OL_ARG_ENABLE(referrals,[ --enable-referrals enable LDAPv2+ Referrals (experimental)], no)dnl
225 ol_enable_referrals=${ol_enable_referrals-no}
226 dnl OL_ARG_ENABLE(kbind,[ --enable-kbind enable LDAPv2+ Kerberos IV bind (deprecated)], no)dnl
227 ol_enable_kbind=${ol_enable_kbind-no}
228 OL_ARG_ENABLE(ipv6,[ --enable-ipv6 enable IPv6 support], auto)dnl
229 OL_ARG_ENABLE(local,[ --enable-local enable AF_LOCAL (AF_UNIX) socket support], auto)dnl
231 dnl ----------------------------------------------------------------
232 dnl General "with" options
233 OL_ARG_WITH(cyrus_sasl,[ --with-cyrus-sasl with Cyrus SASL support],
234 auto, [auto yes no] )
235 OL_ARG_WITH(fetch,[ --with-fetch with fetch(3) URL support],
236 auto, [auto yes no] )
237 dnl OL_ARG_WITH(kerberos,[ --with-kerberos with Kerberos support],
238 dnl auto, [auto k5 k5only k425 kth k4 afs yes no])
239 ol_with_kerberos=${ol_with_kerberos-auto}
240 OL_ARG_WITH(threads,[ --with-threads with threads],
241 auto, [auto nt posix mach pth lwp yes no manual] )
242 OL_ARG_WITH(tls,[ --with-tls with TLS/SSL support],
243 auto, [auto ssleay openssl yes no] )
244 OL_ARG_WITH(yielding_select,[ --with-yielding-select with implicitly yielding select],
245 auto, [auto yes no manual] )
246 OL_ARG_WITH(multiple_precision,[ --with-multiple-precision
247 multiple precision support for statistics
249 auto, [auto bignum gmp yes no] )
251 dnl ----------------------------------------------------------------
253 dnl ----------------------------------------------------------------
255 dnl ----------------------------------------------------------------
257 AC_ARG_ENABLE(xxslapdoptions,[
258 SLAPD (Standalone LDAP Daemon) Options:])
259 OL_ARG_ENABLE(slapd,[ --enable-slapd enable building slapd], yes)dnl
260 OL_ARG_ENABLE(aci,[ --enable-aci enable per-object ACIs (experimental)], no)dnl
261 OL_ARG_ENABLE(cleartext,[ --enable-cleartext enable cleartext passwords], yes)dnl
262 OL_ARG_ENABLE(crypt,[ --enable-crypt enable crypt(3) passwords], no)dnl
263 OL_ARG_ENABLE(lmpasswd,[ --enable-lmpasswd enable LAN Manager passwords], no)dnl
264 OL_ARG_ENABLE(spasswd,[ --enable-spasswd enable (Cyrus) SASL password verification], no)dnl
265 OL_ARG_ENABLE(modules,[ --enable-modules enable dynamic module support], no)dnl
266 dnl OL_ARG_ENABLE(multimaster,[ --enable-multimaster enable multimaster replication], no)dnl
267 ol_enable_multimaster=${ol_enable_multimaster-no}
268 OL_ARG_ENABLE(rewrite,[ --enable-rewrite enable DN rewriting in back-ldap and rwm overlay], auto)dnl
269 OL_ARG_ENABLE(rlookups,[ --enable-rlookups enable reverse lookups of client hostnames], no)dnl
270 OL_ARG_ENABLE(slapi,[ --enable-slapi enable SLAPI support (experimental)], no)dnl
271 OL_ARG_ENABLE(slp,[ --enable-slp enable SLPv2 support], no)dnl
272 OL_ARG_ENABLE(wrappers,[ --enable-wrappers enable tcp wrapper support], no)dnl
274 dnl ----------------------------------------------------------------
275 dnl SLAPD Backend Options
276 Backends="bdb dnssrv hdb ldap ldbm meta monitor null \
277 passwd perl relay shell sql"
279 AC_ARG_ENABLE(xxslapbackends,[
280 SLAPD Backend Options:])
282 OL_ARG_ENABLE(backends,[ --enable-backends enable all available backends],
284 OL_ARG_ENABLE(bdb,[ --enable-bdb enable Berkeley DB backend],
285 yes, [no yes mod], ol_enable_backends)dnl
286 OL_ARG_ENABLE(dnssrv,[ --enable-dnssrv enable dnssrv backend],
287 no, [no yes mod], ol_enable_backends)dnl
288 OL_ARG_ENABLE(hdb,[ --enable-hdb enable Hierarchical DB backend],
289 yes, [no yes mod], ol_enable_backends)dnl
290 OL_ARG_ENABLE(ldap,[ --enable-ldap enable ldap backend],
291 no, [no yes mod], ol_enable_backends)dnl
292 OL_ARG_ENABLE(ldbm,[ --enable-ldbm enable ldbm backend],
293 no, [no yes mod], ol_enable_backends)dnl
294 OL_ARG_ENABLE(ldbm_api,[ --enable-ldbm-api use LDBM API],
295 auto, [auto berkeley bcompat mdbm gdbm])
296 OL_ARG_ENABLE(ldbm_type,[ --enable-ldbm-type use LDBM type],
297 auto, [auto btree hash])
298 OL_ARG_ENABLE(meta,[ --enable-meta enable metadirectory backend],
299 no, [no yes mod], ol_enable_backends)dnl
300 OL_ARG_ENABLE(monitor,[ --enable-monitor enable monitor backend],
301 yes, [no yes mod], ol_enable_backends)dnl
302 OL_ARG_ENABLE(null,[ --enable-null enable null backend],
303 no, [no yes mod], ol_enable_backends)dnl
304 OL_ARG_ENABLE(passwd,[ --enable-passwd enable passwd backend],
305 no, [no yes mod], ol_enable_backends)dnl
306 OL_ARG_ENABLE(perl,[ --enable-perl enable perl backend],
307 no, [no yes mod], ol_enable_backends)dnl
308 OL_ARG_ENABLE(relay,[ --enable-relay enable relay backend],
309 yes, [no yes mod], ol_enable_backends)dnl
310 OL_ARG_ENABLE(shell,[ --enable-shell enable shell backend],
311 no, [no yes mod], ol_enable_backends)dnl
312 OL_ARG_ENABLE(sql,[ --enable-sql enable sql backend],
313 no, [no yes mod], ol_enable_backends)dnl
315 dnl ----------------------------------------------------------------
316 dnl SLAPD Overlay Options
317 Overlays="accesslog \
333 AC_ARG_ENABLE(xxslapoverlays,[
334 SLAPD Overlay Options:])
336 OL_ARG_ENABLE(overlays,[ --enable-overlays enable all available overlays],
338 OL_ARG_ENABLE(accesslog,[ --enable-accesslog In-Directory Access Logging overlay],
339 no, [no yes mod], ol_enable_overlays)
340 OL_ARG_ENABLE(denyop,[ --enable-denyop Deny Operation overlay],
341 no, [no yes mod], ol_enable_overlays)
342 OL_ARG_ENABLE(dyngroup,[ --enable-dyngroup Dynamic Group overlay],
343 no, [no yes mod], ol_enable_overlays)
344 OL_ARG_ENABLE(dynlist,[ --enable-dynlist Dynamic List overlay],
345 no, [no yes mod], ol_enable_overlays)
346 OL_ARG_ENABLE(glue,[ --enable-glue Backend Glue overlay],
347 yes, [no yes mod], ol_enable_overlays)
348 OL_ARG_ENABLE(lastmod,[ --enable-lastmod Last Modification overlay],
349 no, [no yes mod], ol_enable_overlays)
350 OL_ARG_ENABLE(ppolicy,[ --enable-ppolicy Password Policy overlay],
351 no, [no yes mod], ol_enable_overlays)
352 OL_ARG_ENABLE(proxycache,[ --enable-proxycache Proxy Cache overlay],
353 no, [no yes mod], ol_enable_overlays)
354 OL_ARG_ENABLE(refint,[ --enable-refint Referential Integrity overlay],
355 no, [no yes mod], ol_enable_overlays)
356 OL_ARG_ENABLE(retcode,[ --enable-retcode Return Code testing overlay],
357 no, [no yes mod], ol_enable_overlays)
358 OL_ARG_ENABLE(rwm,[ --enable-rwm Rewrite/Remap overlay],
359 no, [no yes mod], ol_enable_overlays)
360 OL_ARG_ENABLE(syncprov,[ --enable-syncprov Syncrepl Provider overlay],
361 yes, [no yes mod], ol_enable_overlays)
362 OL_ARG_ENABLE(translucent,[ --enable-translucent Translucent Proxy overlay],
363 no, [no yes mod], ol_enable_overlays)
364 OL_ARG_ENABLE(unique,[ --enable-unique Attribute Uniqueness overlay],
365 no, [no yes mod], ol_enable_overlays)
366 OL_ARG_ENABLE(unique,[ --enable-valsort Value Sorting overlay],
367 no, [no yes mod], ol_enable_overlays)
369 dnl ----------------------------------------------------------------
371 AC_ARG_ENABLE(xxslurpdoptions,[
372 SLURPD (Replication Daemon) Options:])
373 OL_ARG_ENABLE(slurpd,[ --enable-slurpd enable building slurpd], auto)dnl
375 dnl ----------------------------------------------------------------
376 AC_ARG_ENABLE(xxliboptions,[
377 Library Generation & Linking Options])
381 dnl ----------------------------------------------------------------
384 if test $ol_enable_slapd = no ; then
385 dnl SLAPD was specificallly disabled
386 if test $ol_enable_slapi = yes ; then
387 AC_MSG_WARN([slapd disabled, ignoring --enable-slapi argument])
389 case "$ol_enable_backends" in yes | mod)
390 AC_MSG_WARN([slapd disabled, ignoring --enable-backends argument])
392 for i in $Backends; do
393 eval "ol_tmp=\$ol_enable_$i"
394 if test $ol_tmp != no ; then
395 AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
396 eval "ol_enable_$i=no"
399 if test $ol_enable_modules = yes ; then
400 AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
402 if test $ol_enable_multimaster = yes ; then
403 AC_MSG_WARN([slapd disabled, ignoring --enable-multimaster argument])
405 if test $ol_enable_wrappers = yes ; then
406 AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
408 if test $ol_enable_rlookups = yes ; then
409 AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
411 if test $ol_enable_aci = yes ; then
412 AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
414 if test $ol_enable_ldbm_api != auto ; then
415 AC_MSG_WARN([slapd disabled, ignoring --enable-ldbm-api argument])
417 if test $ol_enable_ldbm_type != auto ; then
418 AC_MSG_WARN([slapd disabled, ignoring --enable-ldbm-type argument])
420 if test $ol_enable_slurpd = yes ; then
421 AC_MSG_ERROR([slurpd requires slapd])
423 if test $ol_enable_rewrite = yes ; then
424 AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
427 case "$ol_enable_overlays" in yes | mod)
428 AC_MSG_WARN([slapd disabled, ignoring --enable-overlays argument])
430 for i in $Overlays; do
431 eval "ol_tmp=\$ol_enable_$i"
432 if test $ol_tmp != no ; then
433 AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
434 eval "ol_enable_$i=no"
438 # force settings to no
444 ol_enable_multimaster=no
445 ol_enable_rlookups=no
447 ol_enable_wrappers=no
449 ol_enable_ldbm_api=no
450 ol_enable_ldbm_type=no
456 elif test $ol_enable_ldbm = no ; then
457 dnl SLAPD without LDBM
459 if test $ol_enable_ldbm_api != auto ; then
460 AC_MSG_WARN([LDBM disabled, ignoring --enable-ldbm-api argument])
463 if test $ol_enable_ldbm_type != auto ; then
464 AC_MSG_WARN([LDBM disabled, ignoring --enable-ldbm-type argument])
467 if test $ol_enable_modules != yes -a \
468 $ol_enable_bdb = no -a \
469 $ol_enable_dnssrv = no -a \
470 $ol_enable_hdb = no -a \
471 $ol_enable_ldap = no -a \
472 $ol_enable_meta = no -a \
473 $ol_enable_monitor = no -a \
474 $ol_enable_null = no -a \
475 $ol_enable_passwd = no -a \
476 $ol_enable_perl = no -a \
477 $ol_enable_relay = no -a \
478 $ol_enable_shell = no -a \
479 $ol_enable_sql = no ; then
481 if test $ol_enable_slapd = yes ; then
482 AC_MSG_ERROR([slapd requires a backend])
484 AC_MSG_WARN([skipping slapd, no backend specified])
489 ol_enable_ldbm_api=no
490 ol_enable_ldbm_type=no
492 if test $ol_enable_bdb != no -o $ol_enable_hdb != no; then
493 ol_enable_ldbm_api=berkeley
498 if test $ol_enable_ldbm_api = gdbm -a \
499 $ol_enable_ldbm_type = btree ; then
500 AC_MSG_ERROR([GDBM only supports LDBM type hash])
502 if test $ol_enable_ldbm_api = mdbm -a \
503 $ol_enable_ldbm_type = btree ; then
504 AC_MSG_ERROR([MDBM only supports LDBM type hash])
506 if test $ol_enable_ldbm_api = ndbm -a \
507 $ol_enable_ldbm_type = btree ; then
508 AC_MSG_ERROR([NDBM only supports LDBM type hash])
511 if test $ol_enable_bdb != no -o $ol_enable_hdb != no ; then
512 if test $ol_enable_ldbm_api = auto ; then
513 ol_enable_ldbm_api=berkeley
514 elif test $ol_enable_ldbm_api != berkeley ; then
515 AC_MSG_ERROR([LDBM API not compatible with BDB/HDB])
520 if test $ol_enable_meta = yes -a $ol_enable_ldap = no ; then
521 AC_MSG_ERROR([--enable-meta requires --enable-ldap])
524 if test $ol_enable_slurpd = yes ; then
525 dnl SLURPD was specifically enabled
526 if test $ol_with_threads = no ; then
527 AC_MSG_ERROR([slurpd requires threads])
531 if test $ol_enable_lmpasswd = yes ; then
532 if test $ol_with_tls = no ; then
533 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
537 if test $ol_enable_kbind = yes ; then
538 if test $ol_with_kerberos = no ; then
539 AC_MSG_ERROR([options require --with-kerberos])
540 elif test $ol_with_kerberos = auto ; then
544 elif test $ol_enable_kbind = no ; then
545 if test $ol_with_kerberos = auto ; then
547 elif test $ol_with_kerberos != no ; then
548 AC_MSG_WARN([Kerberos detection enabled unnecessarily]);
553 if test $ol_enable_spasswd = yes ; then
554 if test $ol_with_cyrus_sasl = no ; then
555 AC_MSG_ERROR([options require --with-cyrus-sasl])
557 ol_with_cyrus_sasl=yes
562 dnl ----------------------------------------------------------------
610 SLAPD_STATIC_OVERLAYS=
611 SLAPD_DYNAMIC_OVERLAYS=
613 SLAPD_MODULES_LDFLAGS=
614 SLAPD_MODULES_CPPFLAGS=
616 SLAPD_STATIC_BACKENDS=back-ldif
617 SLAPD_DYNAMIC_BACKENDS=
640 dnl ================================================================
641 dnl Checks for programs
643 AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
645 dnl ----------------------------------------------------------------
647 dnl Determine which C translator to use
650 dnl AIX Thread requires we use cc_r or xlc_r.
651 dnl But only do this IF AIX and CC is not set
652 dnl and threads are auto|yes|posix.
654 dnl If we find cc_r|xlc_r, force pthreads and assume
655 dnl pthread_create is in $LIBS (ie: don't bring in
656 dnl any additional thread libraries)
657 dnl If we do not find cc_r|xlc_r, disable threads
661 *-*-aix*) dnl all AIX is not a good idea.
662 if test -z "$CC" ; then
663 case "$ol_with_threads" in
664 auto | yes | posix) ol_aix_threads=yes ;;
670 if test $ol_aix_threads = yes ; then
671 if test -z "${CC}" ; then
672 AC_CHECK_PROGS(CC,cc_r xlc_r cc)
674 if test "$CC" = cc ; then
675 dnl no CC! don't allow --with-threads
676 if test $ol_with_threads != auto ; then
677 AC_MSG_ERROR([--with-threads requires cc_r (or other suitable compiler) on AIX])
679 AC_MSG_WARN([disabling threads, no cc_r on AIX])
685 if test "${CC}" = "cc_r" -o "${CC}" = "xlc_r" ; then
686 ol_with_threads=posix
687 ol_cv_pthread_create=yes
691 if test -z "${CC}"; then
692 AC_CHECK_PROGS(CC,cc gcc,missing)
694 if test "${CC}" = "missing" ; then
695 AC_MSG_ERROR([Unable to locate cc(1) or suitable replacement. Check PATH or set CC.])
699 if test -z "${AR}"; then
700 AC_CHECK_PROGS(AR,ar gar,missing)
702 if test "${AR}" = "missing" ; then
703 AC_MSG_ERROR([Unable to locate ar(1) or suitable replacement. Check PATH or set AR.])
711 dnl ----------------------------------------------------------------
714 if test $ol_enable_perl != no ; then
715 AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)
717 if test "no$PERLBIN" = "no" ; then
718 if test $ol_enable_perl = yes ; then
719 AC_MSG_ERROR([could not locate perl])
723 PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
724 PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e 's/ -lc / /' -e 's/ -lc$//'`"
726 if test x"$ol_enable_perl" = "xyes" ; then
727 SLAPD_PERL_LDFLAGS="$PERL_LDFLAGS"
729 MOD_PERL_LDFLAGS="$PERL_LDFLAGS"
731 dnl should check perl version
738 dnl ----------------------------------------------------------------
739 dnl Checks for file extensions
742 AC_DEFINE_UNQUOTED(EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
744 dnl ----------------------------------------------------------------
745 dnl BeOS requires -lbe -lroot -lnet
746 AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])
748 dnl ----------------------------------------------------------------
749 dnl OpenLDAP requires STDC features
751 if test "X${ac_cv_prog_cc_stdc}" = "Xno" ; then
752 AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
755 dnl ----------------------------------------------------------------
756 dnl Check cc depend flags
758 if test "${ol_cv_mkdep}" = no ; then
759 # this will soon become an error
760 AC_MSG_WARN([do not know how to generate dependencies])
763 dnl ----------------------------------------------------------------
764 dnl Check for AIX security library
765 AC_CHECK_LIB(s, afopen, [
767 AC_DEFINE(HAVE_AIX_SECURITY,1,[define if you have AIX security lib])
770 dnl ----------------------------------------------------------------
771 dnl Check for IBM OS/390
775 AC_DEFINE(BOTH_STRINGS_H,1,[define to use both <string.h> and <strings.h>])
779 dnl ----------------------------------------------------------------
780 dnl Check for module support
782 WITH_MODULES_ENABLED=no
783 if test $ol_enable_modules != no ; then
784 AC_CHECK_HEADERS(ltdl.h)
786 if test $ac_cv_header_ltdl_h = no ; then
787 AC_MSG_ERROR([could not locate libtool ltdl.h])
790 AC_CHECK_LIB(ltdl, lt_dlinit, [
792 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
795 if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then
796 AC_MSG_ERROR([could not locate libtool -lltdl])
799 WITH_MODULES_ENABLED=yes
802 for i in $Backends; do
803 eval "ol_tmp=\$ol_enable_$i"
804 if test $ol_tmp = mod ; then
805 AC_MSG_WARN([building static $i backend])
806 eval "ol_enable_$i=yes"
809 for i in $Overlays; do
810 eval "ol_tmp=\$ol_enable_$i"
811 if test $ol_tmp = mod ; then
812 AC_MSG_WARN([building static $i overlay])
813 eval "ol_enable_$i=yes"
818 dnl ----------------------------------------------------------------
819 dnl Checks for header files.
822 if test $ol_cv_header_stdc != yes; then
823 AC_MSG_WARN([could not locate Standard C compliant headers])
880 AC_CHECK_HEADERS( resolv.h, [], [],
881 [$ac_includes_default]
882 #include <netinet/in.h>
885 AC_CHECK_HEADERS(sys/ucred.h, [], [],
886 [$ac_includes_default
887 #ifdef HAVE_SYS_PARAM_H
888 #include <sys/param.h>
892 dnl ----------------------------------------------------------------
893 dnl Checks for libraries
895 AC_CHECK_FUNCS( sigaction sigset )
897 dnl HP-UX requires -lV3
898 dnl this is not needed on newer versions of HP-UX
899 if test $ac_cv_func_sigaction = no && test $ac_cv_func_sigaction = no ; then
900 AC_CHECK_LIB(V3, sigset)
903 dnl The following is INTENTIONALLY scripted out because shell does not
904 dnl support variable names with the '@' character, which is what
905 dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
907 dnl Skip Winsock tests on Cygwin
908 if test "$ac_cv_cygwin" != yes && test "$ac_cv_header_winsock_h" = yes; then
909 AC_CACHE_CHECK([for winsock], [ol_cv_winsock],
911 for curlib in ws2_32 wsock32; do
912 LIBS="$LIBS -l$curlib"
913 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <winsock.h>
916 select(0,NULL,NULL,NULL,NULL);
919 ]])],[ol_cv_winsock=yes],[ol_cv_winsock=no])
921 if test $ol_cv_winsock = yes; then
922 AC_DEFINE(HAVE_WINSOCK, 1, [define if you have winsock])
923 ac_cv_func_socket=yes
924 ac_cv_func_select=yes
925 ac_cv_func_closesocket=yes
926 ac_cv_func_gethostname=yes
927 if test $curlib = ws2_32; then
928 ol_cv_winsock=winsock2
929 AC_DEFINE(HAVE_WINSOCK2, 1,
930 [define if you have winsock2])
939 dnl Likely combinations:
940 dnl -lsocket [ -lnsl_s | -lnsl ]
943 AC_CHECK_FUNC(socket, :, [
944 dnl hopefully we won't include too many libraries
945 AC_CHECK_LIB(socket, main)
946 AC_CHECK_LIB(net, main)
947 AC_CHECK_LIB(nsl_s, main)
948 AC_CHECK_LIB(nsl, main)
949 AC_CHECK_LIB(inet, socket)
950 AC_CHECK_LIB(gen, main)
954 AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
956 if test "${ac_cv_header_winsock_h}" != yes; then
958 dnl (if this detection becomes permenent, it and the select() detection
959 dnl should be done before the yielding select test)
960 AC_FUNC_SELECT_ARGTYPES
963 dnl check to see if system call automatically restart
964 dnl AC_SYS_RESTARTABLE_SYSCALLS
966 dnl ----------------------------------------------------------------
967 AC_CHECK_FUNCS( poll )
968 AC_CHECK_HEADERS( poll.h )
970 dnl ----------------------------------------------------------------
971 AC_CHECK_HEADERS( sys/epoll.h )
972 if test "${ac_cv_header_sys_epoll_h}" = yes; then
973 AC_MSG_CHECKING(for epoll system call)
974 AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char *argv)
976 int epfd = epoll_create(256);
977 exit (epfd == -1 ? 1 : 0);
978 }]])],[AC_MSG_RESULT(yes)
979 AC_DEFINE(HAVE_EPOLL,1, [define if your system supports epoll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
982 dnl ----------------------------------------------------------------
986 dnl ----------------------------------------------------------------
987 dnl require POSIX regex
988 AC_CHECK_HEADERS( regex.h )
989 if test "$ac_cv_header_regex_h" != yes ; then
990 AC_MSG_ERROR([POSIX regex.h required.])
992 AC_SEARCH_LIBS(regfree, [regex gnuregex],
993 :, AC_MSG_ERROR([POSIX regex required.]))
996 if test "$ol_cv_c_posix_regex" = no ; then
997 AC_MSG_ERROR([broken POSIX regex!])
1000 dnl ----------------------------------------------------------------
1004 AC_CHECK_HEADERS(sys/uuid.h)
1005 if test $ac_cv_header_sys_uuid_h = yes ; then
1007 AC_SEARCH_LIBS(uuid_to_str, uuid, [have_uuid=yes], :)
1010 if test have_uuid = yes ; then
1011 AC_DEFINE(HAVE_UUID_TO_STR,1,
1012 [define if you have uuid_to_str()])
1014 test "$ac_cv_search_uuid_to_str" = "none required" || \
1015 SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_to_str"
1019 dnl For windows, check for the need of RPCRT for UUID function support
1020 if test $have_uuid = no ; then
1021 AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
1023 LIBS="$LIBS -lrpcrt4"
1024 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1025 int __stdcall UuidCreate(void *);
1026 int __stdcall UuidToStringA(void *,void **);
1030 ]])],[need_rpcrt=yes],[need_rpcrt=no])
1031 if test $need_rpcrt = yes; then
1032 SLAPD_LIBS="$SLAPD_LIBS -lrpcrt4"
1035 AC_MSG_RESULT($need_rpcrt)
1038 dnl ----------------------------------------------------------------
1039 dnl Check for resolver routines
1043 if test "$ol_cv_lib_resolver" != no ; then
1044 AC_DEFINE(HAVE_RES_QUERY,1,
1045 [define if you have res_query()])
1047 if test "$ol_enable_dnssrv" != no ; then
1051 if test "$ol_cv_lib_resolver" != yes ; then
1052 LIBS="$ol_cv_lib_resolver $LIBS"
1056 if test "$ol_enable_dnssrv" = yes -o "$ol_enable_dnssrv" = mod ; then
1057 if test "$ol_link_dnssrv" = no ; then
1058 AC_MSG_ERROR([DNSSRV requires res_query()])
1064 AC_CHECK_FUNCS( hstrerror )
1066 dnl ----------------------------------------------------------------
1067 dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
1068 dnl PF_LOCAL may use getaddrinfo in available
1069 AC_CHECK_FUNCS( getaddrinfo getnameinfo gai_strerror inet_ntop )
1072 if test $ac_cv_func_getaddrinfo = no -o $ac_cv_func_inet_ntop = no ; then
1073 if test $ol_enable_ipv6 = yes ; then
1074 AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
1076 elif test $ol_enable_ipv6 != no ; then
1077 AC_CACHE_CHECK([INET6_ADDRSTRLEN],[ol_cv_inet6_addrstrlen],[
1078 AC_EGREP_CPP(__has_inet6_addrstrlen__,[
1079 # include <netinet/in.h>
1080 # ifdef INET6_ADDRSTRLEN
1081 __has_inet6_addrstrlen__;
1083 ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])])
1086 AC_CACHE_CHECK([struct sockaddr_storage],ol_cv_struct_sockaddr_storage,[
1087 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1088 #include <sys/types.h>
1089 #include <sys/socket.h>
1091 struct sockaddr_storage ss;
1092 ]])],[ol_cv_struct_sockaddr_storage=yes],[ol_cv_struct_sockaddr_storage=no])])
1094 if test $ol_cv_inet6_addrstrlen = yes \
1095 -a $ol_cv_struct_sockaddr_storage = yes ; then
1097 elif test $ol_enable_ipv6 = yes \
1098 -a $ol_cv_inet6_addrstrlen = no ; then
1099 AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
1100 elif test $ol_enable_ipv6 = yes \
1101 -a $ol_cv_struct_sockaddr_storage = no ; then
1102 AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage])
1106 if test $ol_enable_local != no ; then
1107 AC_CHECK_HEADERS( sys/un.h )
1109 if test $ol_enable_local = auto ; then
1110 ol_enable_local=$ac_cv_header_sys_un_h
1111 elif test $ac_cv_header_sys_un_h = no ; then
1112 AC_MSG_ERROR([AF_LOCAL domain support requires sys/un.h])
1116 dnl ----------------------------------------------------------------
1122 if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
1123 -o $ol_with_kerberos = k5 -o $ol_with_kerberos = k5only \
1124 -o $ol_with_kerberos = k425 ; then
1126 AC_CHECK_HEADERS(krb5.h)
1128 if test $ac_cv_header_krb5_h = yes ; then
1129 dnl lazy check for Heimdal Kerberos
1130 AC_CHECK_HEADERS(heim_err.h)
1131 if test $ac_cv_header_heim_err_h = yes ; then
1137 if test $krb5_impl = mit; then
1138 AC_CHECK_LIB(k5crypto, main,
1139 [krb5crypto=k5crypto],
1140 [krb5crypto=crypto])
1142 AC_CHECK_LIB(krb5, main,
1144 KRB5_LIBS="-lkrb5 -l$krb5crypto -lcom_err"],
1146 [-l$krb5crypto -lcom_err])
1148 elif test $krb5_impl = heimdal; then
1149 AC_CHECK_LIB(des, main,
1151 [krb5crypto=crypto])
1153 AC_CHECK_LIB(krb5, main,
1155 KRB5_LIBS="-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err"],
1157 [-l$krb5crypto -lasn1 -lroken -lcom_err])
1159 AC_DEFINE(HAVE_HEIMDAL_KERBEROS, 1,
1160 [define if you have HEIMDAL Kerberos])
1164 AC_MSG_WARN([Unrecognized Kerberos5 Implementation])
1167 if test $have_krb5 = yes ; then
1170 AC_DEFINE(HAVE_KRB5, 1,
1171 [define if you have Kerberos V])
1173 if test $ol_with_kerberos = k5only ; then
1174 ol_with_kerberos=found
1177 elif test $ol_with_kerberos != auto ; then
1178 AC_MSG_ERROR([Required Kerberos 5 support not available])
1184 if test $ol_link_krb5 = yes -a \( $ol_with_kerberos = yes -o \
1185 $ol_with_kerberos = auto -o $ol_with_kerberos = k425 \) ; then
1187 AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
1189 if test $ac_cv_header_kerberosIV_krb_h = yes ; then
1190 if test $krb5_impl = mit; then
1191 AC_CHECK_LIB(krb4, main, [have_k425=yes
1192 KRB4_LIBS="-lkrb4 -ldes425"], [have_k425=no],
1193 [-ldes425 -lkrb5 -l$krb5crypto -lcom_err])
1195 elif test $krb5_impl = heimdal; then
1196 AC_CHECK_LIB(krb4, main, [have_k425=yes
1197 KRB4_LIBS="-lkrb4"], [have_k425=no],
1198 [-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err])
1202 AC_MSG_WARN([Unrecongized Kerberos V Implementation])
1205 if test $have_k425 = yes ; then
1206 ol_with_kerberos=found
1209 AC_DEFINE(HAVE_KRB425, 1,
1210 [define if you have Kerberos V with IV support])
1211 AC_DEFINE(HAVE_KRB4, 1,
1212 [define if you have Kerberos IV])
1214 AC_CACHE_CHECK([for des_debug in Kerberos libraries],
1215 [ol_cv_var_des_debug], [
1218 LIBS="$KRB4_LIBS $KRB5_LIBS $LIBS"
1219 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1220 #include <kerberosIV/krb.h>
1221 #include <kerberosIV/des.h>
1222 extern int des_debug;
1225 ]])],[ol_cv_var_des_debug=yes],[ol_cv_var_des_debug=no])
1226 dnl restore the LIBS
1230 if test $ol_cv_var_des_debug = yes ; then
1231 AC_DEFINE(HAVE_DES_DEBUG,1,
1232 [define if you have Kerberos des_debug])
1240 if test $ol_link_krb5 = yes ; then
1241 ol_with_kerberos=found
1244 if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
1245 -o $ol_with_kerberos = k4 -o $ol_with_kerberos = kth ; then
1247 AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
1249 if test $ac_cv_header_krb_h = yes ; then
1250 AC_CHECK_LIB(krb, main, [have_k4=yes], [have_k4=no], [-ldes])
1252 if test $have_k4 = yes ; then
1253 ol_with_kerberos=found
1256 AC_DEFINE(HAVE_KRB4, 1,
1257 [define if you have Kerberos IV])
1259 KRB4_LIBS="-lkrb -ldes"
1261 if test $ac_cv_header_krb_archaeology_h = yes ; then
1262 AC_DEFINE(HAVE_KTH_KERBEROS, 1,
1263 [define if you have Kth Kerberos])
1269 if test $ol_link_krb4 = yes -a $ol_enable_kbind != no ; then
1272 elif test $ol_enable_kbind = yes ; then
1273 AC_MSG_ERROR([Kerberos IV detection failed])
1276 if test $ol_link_krb4 = yes -o $ol_link_krb5 = yes ; then
1277 AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
1279 elif test $ol_with_kerberos != auto -a $ol_with_kerberos != no ; then
1280 AC_MSG_ERROR([Kerberos detection failed])
1283 dnl ----------------------------------------------------------------
1287 if test $ol_with_tls != no ; then
1288 AC_CHECK_HEADERS(openssl/ssl.h ssl.h)
1290 if test $ac_cv_header_openssl_ssl_h = yes \
1291 -o $ac_cv_header_ssl_h = yes ; then
1292 AC_CHECK_LIB(ssl, SSLeay_add_ssl_algorithms,
1298 if test $have_ssleay = no ; then
1299 AC_CHECK_LIB(ssl, SSL_library_init,
1301 need_rsaref=no], [have_ssleay=no],
1305 if test $have_ssleay = no ; then
1306 AC_CHECK_LIB(ssl, ssl3_accept,
1308 need_rsaref=yes], [have_ssleay=no],
1309 [-lcrypto -lRSAglue -lrsaref])
1312 if test $have_ssleay = yes ; then
1316 AC_DEFINE(HAVE_SSLEAY, 1,
1317 [define if you have SSLeay or OpenSSL])
1319 if test $need_rsaref = yes; then
1320 AC_DEFINE(HAVE_RSAREF, 1,
1321 [define if you have RSAref])
1323 TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
1325 TLS_LIBS="-lssl -lcrypto"
1329 if test $ol_cv_ssl_crl_compat = no ; then
1332 AC_DEFINE(HAVE_OPENSSL_CRL, 1,
1333 [define if you have OpenSSL with CRL checking capability])
1338 AC_MSG_WARN([TLS data protection not supported!])
1342 if test $ol_link_tls = yes ; then
1343 AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
1346 elif test $ol_with_tls = auto ; then
1347 AC_MSG_WARN([Could not locate TLS/SSL package])
1348 AC_MSG_WARN([TLS data protection not supported!])
1350 elif test $ol_with_tls != no ; then
1351 AC_MSG_ERROR([Could not locate TLS/SSL package])
1354 dnl ----------------------------------------------------------------
1355 dnl LAN Manger password checking requires DES from OpenSSL
1356 if test $ol_enable_lmpasswd != no; then
1357 if test $ol_link_tls != yes ; then
1358 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
1361 AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
1364 dnl ----------------------------------------------------------------
1368 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1369 -o $ol_with_threads = nt ; then
1373 if test "$ol_cv_nt_threads" = yes ; then
1375 ol_with_threads=found
1376 ol_with_yielding_select=yes
1378 AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager])
1379 AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log])
1382 if test $ol_with_threads = nt ; then
1383 AC_MSG_ERROR([could not locate NT Threads])
1387 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1388 -o $ol_with_threads = posix ; then
1390 AC_CHECK_HEADERS(pthread.h)
1392 if test $ac_cv_header_pthread_h = yes ; then
1393 OL_POSIX_THREAD_VERSION
1395 if test $ol_cv_pthread_version != 0 ; then
1396 AC_DEFINE_UNQUOTED(HAVE_PTHREADS,$ol_cv_pthread_version,
1397 [define to pthreads API spec revision])
1399 AC_MSG_ERROR([unknown pthread version])
1402 # consider threads found
1403 ol_with_threads=found
1405 OL_HEADER_LINUX_THREADS
1406 OL_HEADER_GNU_PTH_PTHREAD_H
1408 if test $ol_cv_header_gnu_pth_pthread_h = no ; then
1409 AC_CHECK_HEADERS(sched.h)
1412 dnl Now the hard part, how to link?
1414 dnl currently supported checks:
1416 dnl Check for no flags
1417 dnl pthread_create() in $LIBS
1419 dnl Check special pthread (final) flags
1420 dnl [skipped] pthread_create() with -mt (Solaris) [disabled]
1421 dnl pthread_create() with -kthread (FreeBSD)
1422 dnl pthread_create() with -pthread (FreeBSD/Digital Unix)
1423 dnl pthread_create() with -pthreads (?)
1424 dnl pthread_create() with -mthreads (AIX)
1425 dnl pthread_create() with -thread (?)
1427 dnl Check pthread (final) libraries
1428 dnl pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
1429 dnl pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
1430 dnl [skipped] pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
1431 dnl pthread_join() -Wl,-woff,85 -lpthread (IRIX)
1432 dnl pthread_create() in -lpthread (many)
1433 dnl pthread_create() in -lc_r (FreeBSD)
1435 dnl Check pthread (draft4) flags (depreciated)
1436 dnl pthread_create() with -threads (OSF/1)
1438 dnl Check pthread (draft4) libraries (depreciated)
1439 dnl pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
1440 dnl pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
1441 dnl pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
1442 dnl pthread_create() in -lpthreads (many)
1445 dnl pthread_create in $LIBS
1446 AC_CACHE_CHECK([for pthread_create in default libraries],
1447 ol_cv_pthread_create,[
1448 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1449 [ol_cv_pthread_create=yes],
1450 [ol_cv_pthread_create=no],
1451 [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION,
1452 [ol_cv_pthread_create=yes],
1453 [ol_cv_pthread_create=no])])])
1455 if test $ol_cv_pthread_create != no ; then
1456 ol_link_threads=posix
1460 dnl OL_PTHREAD_TRY([-mt], [ol_cv_pthread_mt])
1461 OL_PTHREAD_TRY([-kthread], [ol_cv_pthread_kthread])
1462 OL_PTHREAD_TRY([-pthread], [ol_cv_pthread_pthread])
1463 OL_PTHREAD_TRY([-pthreads], [ol_cv_pthread_pthreads])
1464 OL_PTHREAD_TRY([-mthreads], [ol_cv_pthread_mthreads])
1465 OL_PTHREAD_TRY([-thread], [ol_cv_pthread_thread])
1467 OL_PTHREAD_TRY([-lpthread -lmach -lexc -lc_r],
1468 [ol_cv_pthread_lpthread_lmach_lexc_lc_r])
1469 OL_PTHREAD_TRY([-lpthread -lmach -lexc],
1470 [ol_cv_pthread_lpthread_lmach_lexc])
1471 dnl OL_PTHREAD_TRY([-lpthread -lexc],
1472 dnl [ol_cv_pthread_lpthread_lexc])
1474 OL_PTHREAD_TRY([-lpthread -Wl,-woff,85],
1475 [ol_cv_pthread_lib_lpthread_woff])
1477 OL_PTHREAD_TRY([-lpthread], [ol_cv_pthread_lpthread])
1478 OL_PTHREAD_TRY([-lc_r], [ol_cv_pthread_lc_r])
1480 OL_PTHREAD_TRY([-threads], [ol_cv_pthread_threads])
1482 OL_PTHREAD_TRY([-lpthreads -lmach -lexc -lc_r],
1483 [ol_cv_pthread_lpthreads_lmach_lexc_lc_r])
1484 OL_PTHREAD_TRY([-lpthreads -lmach -lexc],
1485 [ol_cv_pthread_lpthreads_lmach_lexc])
1486 OL_PTHREAD_TRY([-lpthreads -lexc],
1487 [ol_cv_pthread_lpthreads_lexc])
1489 OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
1491 if test $ol_link_threads != no ; then
1492 LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
1495 save_CPPFLAGS="$CPPFLAGS"
1497 LIBS="$LTHREAD_LIBS $LIBS"
1499 dnl All POSIX Thread (final) implementations should have
1500 dnl sched_yield instead of pthread yield.
1501 dnl check for both, and thr_yield for Solaris
1502 AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
1504 if test $ac_cv_func_sched_yield = no -a \
1505 $ac_cv_func_pthread_yield = no -a \
1506 $ac_cv_func_thr_yield = no ; then
1507 dnl Digital UNIX has sched_yield() in -lrt
1508 AC_CHECK_LIB(rt, sched_yield,
1509 [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
1510 AC_DEFINE(HAVE_SCHED_YIELD,1,
1511 [Define if you have the sched_yield function.])
1512 ac_cv_func_sched_yield=yes],
1513 [ac_cv_func_sched_yield=no])
1515 if test $ac_cv_func_sched_yield = no -a \
1516 $ac_cv_func_pthread_yield = no -a \
1517 "$ac_cv_func_thr_yield" = no ; then
1518 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
1521 dnl Check functions for compatibility
1522 AC_CHECK_FUNCS(pthread_kill pthread_rwlock_destroy)
1524 dnl Check for pthread_detach with <pthread.h> inclusion
1525 dnl as it's symbol may have been mangled.
1526 AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
1527 [ol_cv_func_pthread_detach], [
1529 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1530 #include <pthread.h>
1532 #define NULL (void*)0
1534 ]], [[pthread_detach(NULL);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
1537 if test $ol_cv_func_pthread_detach = no ; then
1538 AC_MSG_ERROR([could not locate pthread_detach()])
1541 AC_DEFINE(HAVE_PTHREAD_DETACH,1,
1542 [define if you have pthread_detach function])
1544 dnl Check for setconcurreny functions
1546 pthread_setconcurrency \
1547 pthread_getconcurrency \
1548 thr_setconcurrency \
1549 thr_getconcurrency \
1552 OL_SYS_LINUX_THREADS
1555 if test $ol_cv_linux_threads = error; then
1556 AC_MSG_ERROR([LinuxThreads header/library mismatch]);
1559 AC_CACHE_CHECK([if pthread_create() works],
1560 ol_cv_pthread_create_works,[
1561 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1562 [ol_cv_pthread_create_works=yes],
1563 [ol_cv_pthread_create_works=no],
1565 ol_cv_pthread_create_works=yes])])
1567 if test $ol_cv_pthread_create_works = no ; then
1568 AC_MSG_ERROR([pthread_create is not usable, check environment settings])
1571 dnl Check if select causes an yield
1572 if test $ol_with_yielding_select = auto ; then
1573 AC_CACHE_CHECK([if select yields when using pthreads],
1574 ol_cv_pthread_select_yields,[
1575 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1576 #include <sys/types.h>
1577 #include <sys/time.h>
1579 #include <pthread.h>
1581 #define NULL (void*) 0
1584 static int fildes[2];
1586 static void *task(p)
1598 FD_SET(fildes[0], &rfds);
1600 /* we're not interested in any fds */
1601 i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
1608 exit(0); /* if we exit here, the select blocked the whole process */
1611 int main(argc, argv)
1617 /* create a pipe to select */
1618 if(pipe(&fildes[0])) {
1623 #ifdef HAVE_PTHREAD_SETCONCURRENCY
1624 (void) pthread_setconcurrency(2);
1626 #ifdef HAVE_THR_SETCONCURRENCY
1627 /* Set Solaris LWP concurrency to 2 */
1628 thr_setconcurrency(2);
1632 #if HAVE_PTHREADS < 6
1633 pthread_create(&t, pthread_attr_default, task, NULL);
1635 pthread_create(&t, NULL, task, NULL);
1638 /* make sure task runs first */
1641 #elif defined( HAVE_SCHED_YIELD )
1643 #elif defined( HAVE_PTHREAD_YIELD )
1648 }]])],[ol_cv_pthread_select_yields=no],[ol_cv_pthread_select_yields=yes],[ol_cv_pthread_select_yields=cross])])
1650 if test $ol_cv_pthread_select_yields = cross ; then
1651 AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])
1654 if test $ol_cv_pthread_select_yields = yes ; then
1655 ol_with_yielding_select=yes
1660 CPPFLAGS="$save_CPPFLAGS"
1663 AC_MSG_ERROR([could not locate usable POSIX Threads])
1667 if test $ol_with_threads = posix ; then
1668 AC_MSG_ERROR([could not locate POSIX Threads])
1672 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1673 -o $ol_with_threads = mach ; then
1675 dnl check for Mach CThreads
1676 AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
1677 if test $ac_cv_header_mach_cthreads_h = yes ; then
1678 ol_with_threads=found
1680 dnl check for cthreads support in current $LIBS
1681 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1683 if test $ol_link_threads = no ; then
1685 dnl this test needs work
1686 AC_CACHE_CHECK([for cthread_fork with -all_load],
1687 [ol_cv_cthread_all_load], [
1690 LIBS="-all_load $LIBS"
1691 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <mach/cthreads.h>]], [[
1692 cthread_fork((void *)0, (void *)0);
1693 ]])],[ol_cv_cthread_all_load=yes],[ol_cv_cthread_all_load=no])
1694 dnl restore the LIBS
1698 if test $ol_cv_cthread_all_load = yes ; then
1699 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
1700 ol_link_threads=mach
1701 ol_with_threads=found
1705 elif test $ac_cv_header_cthreads_h = yes ; then
1706 dnl Hurd variant of Mach Cthreads
1707 dnl uses <cthreads.h> and -lthreads
1709 ol_with_threads=found
1713 LIBS="$LIBS -lthreads"
1714 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1717 if test $ol_link_threads = yes ; then
1718 LTHREAD_LIBS="-lthreads"
1719 ol_link_threads=mach
1720 ol_with_threads=found
1722 AC_MSG_ERROR([could not link with Mach CThreads])
1725 elif test $ol_with_threads = mach ; then
1726 AC_MSG_ERROR([could not locate Mach CThreads])
1729 if test $ol_link_threads = mach ; then
1730 AC_DEFINE(HAVE_MACH_CTHREADS,1,
1731 [define if you have Mach Cthreads])
1732 elif test $ol_with_threads = found ; then
1733 AC_MSG_ERROR([could not link with Mach CThreads])
1737 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1738 -o $ol_with_threads = pth ; then
1740 AC_CHECK_HEADERS(pth.h)
1742 if test $ac_cv_header_pth_h = yes ; then
1743 AC_CHECK_LIB(pth, pth_version, [have_pth=yes], [have_pth=no])
1745 if test $have_pth = yes ; then
1746 AC_DEFINE(HAVE_GNU_PTH,1,[if you have GNU Pth])
1747 LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
1749 ol_with_threads=found
1751 if test $ol_with_yielding_select = auto ; then
1752 ol_with_yielding_select=yes
1758 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1759 -o $ol_with_threads = lwp ; then
1761 dnl check for SunOS5 LWP
1762 AC_CHECK_HEADERS(thread.h synch.h)
1763 if test $ac_cv_header_thread_h = yes -a $ac_cv_header_synch_h = yes ; then
1764 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
1766 if test $have_thr = yes ; then
1767 AC_DEFINE(HAVE_THR,1,
1768 [if you have Solaris LWP (thr) package])
1769 LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
1772 if test $ol_with_yielding_select = auto ; then
1773 ol_with_yielding_select=yes
1776 dnl Check for setconcurreny functions
1778 thr_setconcurrency \
1779 thr_getconcurrency \
1784 dnl check for SunOS4 LWP
1785 AC_CHECK_HEADERS(lwp/lwp.h)
1786 if test $ac_cv_header_lwp_lwp_h = yes ; then
1787 AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
1789 if test $have_lwp = yes ; then
1790 AC_DEFINE(HAVE_LWP,1,
1791 [if you have SunOS LWP package])
1792 LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
1795 if test $ol_with_yielding_select = auto ; then
1796 ol_with_yielding_select=no
1802 if test $ol_with_yielding_select = yes ; then
1803 AC_DEFINE(HAVE_YIELDING_SELECT,1,
1804 [define if select implicitly yields])
1807 if test $ol_with_threads = manual ; then
1808 dnl User thinks he can manually configure threads.
1811 AC_MSG_WARN([thread defines and link options must be set manually])
1813 AC_CHECK_HEADERS(pthread.h sched.h)
1814 AC_CHECK_FUNCS(sched_yield pthread_yield)
1815 OL_HEADER_LINUX_THREADS
1817 AC_CHECK_HEADERS(mach/cthreads.h)
1818 AC_CHECK_HEADERS(lwp/lwp.h)
1819 AC_CHECK_HEADERS(thread.h synch.h)
1822 if test $ol_link_threads != no -a $ol_link_threads != nt ; then
1823 dnl needed to get reentrant/threadsafe versions
1825 AC_DEFINE(REENTRANT,1)
1826 AC_DEFINE(_REENTRANT,1)
1827 AC_DEFINE(THREAD_SAFE,1)
1828 AC_DEFINE(_THREAD_SAFE,1)
1829 AC_DEFINE(THREADSAFE,1)
1830 AC_DEFINE(_THREADSAFE,1)
1831 AC_DEFINE(_SGI_MP_SOURCE,1)
1833 dnl The errno declaration may dependent upon _REENTRANT.
1834 dnl If it does, we must link with thread support.
1835 AC_CACHE_CHECK([for thread specific errno],
1836 [ol_cv_errno_thread_specific], [
1837 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <errno.h>]], [[errno = 0;]])],[ol_cv_errno_thread_specific=yes],[ol_cv_errno_thread_specific=no])
1840 dnl The h_errno declaration may dependent upon _REENTRANT.
1841 dnl If it does, we must link with thread support.
1842 AC_CACHE_CHECK([for thread specific h_errno],
1843 [ol_cv_h_errno_thread_specific], [
1844 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])
1847 if test $ol_cv_errno_thread_specific != yes \
1848 -o $ol_cv_h_errno_thread_specific != yes ; then
1849 LIBS="$LTHREAD_LIBS $LIBS"
1853 dnl When in thread environment, use
1854 dnl #if defined( HAVE_REENTRANT_FUNCTIONS ) || defined( HAVE_FUNC_R )
1857 dnl # if defined( HAVE_THREADS )
1861 dnl # if defined( HAVE_THREADS )
1866 dnl HAVE_REENTRANT_FUNCTIONS is derived from:
1867 dnl _POSIX_REENTRANT_FUNCTIONS
1868 dnl _POSIX_THREAD_SAFE_FUNCTIONS
1869 dnl _POSIX_THREADSAFE_FUNCTIONS
1871 dnl and is currently defined in <ldap_pvt_thread.h>
1873 dnl HAVE_THREADS is defined by <ldap_pvt_thread.h> iff -UNO_THREADS
1875 dnl libldap/*.c should only include <ldap_pvt_thread.h> iff
1876 dnl LDAP_R_COMPILE is defined. ie:
1877 dnl #ifdef LDAP_R_COMPILE
1878 dnl # include <ldap_pvt_thread.h>
1881 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
1882 dnl specifically for compiling the threadsafe version of
1883 dnl the ldap library (-lldap_r).
1885 dnl dnl check for reentrant/threadsafe functions
1887 dnl dnl note: these should only be used when linking
1888 dnl dnl with $LTHREAD_LIBS
1890 dnl save_CPPFLAGS="$CPPFLAGS"
1891 dnl save_LIBS="$LIBS"
1892 dnl LIBS="$LTHREAD_LIBS $LIBS"
1893 dnl AC_CHECK_FUNCS( \
1895 dnl gethostbyaddr_r gethostbyname_r \
1896 dnl feof_unlocked unlocked_feof \
1897 dnl putc_unlocked unlocked_putc \
1898 dnl flockfile ftrylockfile \
1900 dnl CPPFLAGS="$save_CPPFLAGS"
1901 dnl LIBS="$save_LIBS"
1904 if test $ol_link_threads = no ; then
1905 if test $ol_with_threads = yes ; then
1906 AC_MSG_ERROR([no suitable thread support])
1909 if test $ol_with_threads = auto ; then
1910 AC_MSG_WARN([no suitable thread support, disabling threads])
1914 AC_DEFINE(NO_THREADS,1,
1915 [define if you have (or want) no threads])
1919 if test $ol_link_threads != no ; then
1920 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1,
1921 [define to 1 if library is thread safe])
1924 dnl ----------------------------------------------------------------
1925 dnl Tests for reentrant functions necessary to build -lldap_r
1928 gethostbyname_r gethostbyaddr_r \
1931 if test "$ac_cv_func_ctime_r" = no ; then
1932 ol_cv_func_ctime_r_nargs=0
1934 OL_FUNC_CTIME_R_NARGS
1935 dnl OL_FUNC_CTIME_R_TYPE
1938 if test "$ac_cv_func_gethostbyname_r" = yes ; then
1939 OL_FUNC_GETHOSTBYNAME_R_NARGS
1941 ol_cv_func_gethostbyname_r_nargs=0
1944 if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
1945 OL_FUNC_GETHOSTBYADDR_R_NARGS
1947 ol_cv_func_gethostbyaddr_r_nargs=0
1950 dnl ----------------------------------------------------------------
1953 if test $ol_enable_ldbm_api = auto \
1954 -o $ol_enable_ldbm_api = berkeley \
1955 -o $ol_enable_ldbm_api = bcompat ; then
1957 if test $ol_enable_ldbm_api = bcompat; then \
1958 OL_BERKELEY_COMPAT_DB
1963 if test $ol_cv_berkeley_db != no ; then
1964 AC_DEFINE(HAVE_BERKELEY_DB,1,
1965 [define this if Berkeley DB is available])
1967 ol_link_ldbm=berkeley
1968 ol_enable_ldbm_api=berkeley
1970 if test $ol_enable_ldbm_type = hash ; then
1971 AC_DEFINE(LDBM_USE_DBHASH,1,
1972 [define this to use DBHASH w/ LDBM backend])
1974 AC_DEFINE(LDBM_USE_DBBTREE,1,
1975 [define this to use DBBTREE w/ LDBM backend])
1978 dnl $ol_cv_lib_db should be yes or -ldb
1979 dnl (it could be no, but that would be an error
1980 if test $ol_cv_lib_db != yes ; then
1981 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
1986 if test $ol_enable_bdb != no -o $ol_enable_hdb != no; then
1987 if test $ol_link_ldbm != berkeley ; then
1988 AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
1992 if test $ol_cv_bdb_compat != yes ; then
1993 AC_MSG_ERROR([BDB/HDB: BerkeleyDB version incompatible])
1998 if test $ol_link_ldbm = no -a $ol_enable_ldbm_type = btree ; then
1999 AC_MSG_WARN([Could not find LDBM with BTREE support])
2000 ol_enable_ldbm_api=none
2003 if test $ol_enable_ldbm_api = auto -o $ol_enable_ldbm_api = mdbm ; then
2006 if test $ol_cv_mdbm = yes ; then
2008 ol_enable_ldbm_api=mdbm
2009 if test $ol_cv_lib_mdbm != yes ; then
2010 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_mdbm"
2015 if test $ol_enable_ldbm_api = auto -o $ol_enable_ldbm_api = gdbm ; then
2018 if test $ol_cv_gdbm = yes ; then
2020 ol_enable_ldbm_api=gdbm
2022 if test $ol_cv_lib_gdbm != yes ; then
2023 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
2028 if test $ol_enable_ldbm_api = ndbm ; then
2031 if test $ol_cv_ndbm = yes ; then
2033 ol_enable_ldbm_api=ndbm
2035 if test $ol_cv_lib_ndbm != yes ; then
2036 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
2041 if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
2042 AC_MSG_ERROR([could not find suitable LDBM backend])
2045 if test $ol_enable_bdb = yes -o \
2046 $ol_enable_hdb = yes -o \
2047 $ol_enable_ldbm = yes ; then
2048 SLAPD_LIBS="$SLAPD_LIBS \$(LDBM_LIBS)"
2051 dnl ----------------------------------------------------------------
2053 if test $ol_enable_dynamic = yes -a $enable_shared = yes ; then
2054 BUILD_LIBS_DYNAMIC=shared
2055 AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
2058 BUILD_LIBS_DYNAMIC=static
2061 AC_SUBST(LTSTATIC)dnl
2063 dnl ----------------------------------------------------------------
2064 if test $ol_enable_wrappers != no ; then
2065 AC_CHECK_HEADERS(tcpd.h,[
2066 AC_MSG_CHECKING([for TCP wrappers library])
2069 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
2071 int allow_severity = 0;
2072 int deny_severity = 0;
2074 struct request_info *req;
2077 ]])],[AC_MSG_RESULT([-lwrap])
2079 LIBS="$save_LIBS"],[
2084 int allow_severity = 0;
2085 int deny_severity = 0;
2087 struct request_info *req;
2090 ],[AC_MSG_RESULT([-lwrap -lnsl])
2092 LIBS="$save_LIBS -lnsl"],[
2095 LIBS=$save_LIBS])])],[have_wrappers=no])
2097 if test $have_wrappers = yes ; then
2098 AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
2100 elif test $ol_enable_wrappers = yes ; then
2101 AC_MSG_ERROR([could not find TCP wrappers, select apppropriate options or disable])
2103 AC_MSG_WARN([could not find TCP wrappers, support disabled])
2108 dnl ----------------------------------------------------------------
2109 if test $ol_enable_syslog != no ; then
2110 AC_CHECK_FUNC(openlog)
2111 if test $ac_cv_func_openlog = no -a $ol_enable_syslog = yes; then
2112 AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
2114 ol_enable_syslog=$ac_cv_func_openlog
2117 dnl ----------------------------------------------------------------
2120 if test $ol_enable_sql != no ; then
2121 AC_CHECK_HEADERS(sql.h sqlext.h,[],[
2122 AC_MSG_ERROR([could not locate SQL headers])
2126 LIBS="$LTHREAD_LIBS"
2128 AC_CHECK_LIB(iodbc,SQLDriverConnect,[have_iodbc=yes],[have_iodbc=no])
2129 if test $have_iodbc = yes ; then
2130 ol_link_sql="-liodbc"
2132 AC_CHECK_LIB(odbc,SQLDriverConnect,[have_odbc=yes],[have_odbc=no])
2133 if test $have_odbc = yes ; then
2134 ol_link_sql="-lodbc"
2140 if test $ol_link_sql != no ; then
2141 SLAPD_SQL_LIBS="$ol_link_sql"
2143 elif test $ol_enable_sql != auto ; then
2144 AC_MSG_ERROR([could not locate suitable ODBC library])
2148 dnl ----------------------------------------------------------------
2150 dnl Check for Cyrus SASL
2155 if test $ol_with_cyrus_sasl != no ; then
2156 AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
2158 if test $ac_cv_header_sasl_sasl_h = yes -o $ac_cv_header_sasl_h = yes; then
2159 AC_CHECK_LIB(sasl2, sasl_client_init,
2160 [ol_link_sasl="-lsasl2"],
2161 [AC_CHECK_LIB(sasl, sasl_client_init,
2162 [ol_link_sasl="-lsasl"])])
2165 if test $ol_link_sasl = no ; then
2166 if test $ol_with_cyrus_sasl != auto ; then
2167 AC_MSG_ERROR([Could not locate Cyrus SASL])
2169 AC_MSG_WARN([Could not locate Cyrus SASL])
2170 AC_MSG_WARN([SASL authentication not supported!])
2171 if test $ol_link_tls = no ; then
2172 AC_MSG_WARN([Strong authentication not supported!])
2177 if test $ol_cv_sasl_compat = no ; then
2179 AC_MSG_ERROR([Cyrus SASL library located but is incompatible])
2182 AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
2183 SASL_LIBS="$ol_link_sasl"
2184 if test $ol_enable_spasswd != no ; then
2188 ac_save_LIBS="$LIBS"
2189 LIBS="$LIBS $ol_link_sasl"
2190 AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1,
2191 [define if your SASL library has sasl_version()])])
2192 LIBS="$ac_save_LIBS"
2198 AC_MSG_WARN([SASL authentication not supported!])
2199 if test $ol_link_tls = no ; then
2200 AC_MSG_WARN([Strong authentication not supported!])
2204 dnl ----------------------------------------------------------------
2205 dnl Check for entropy sources
2206 if test $cross_compiling != yes -a "$ac_cv_mingw32" != yes ; then
2208 if test -r /dev/urandom ; then
2210 elif test -r /idev/urandom ; then
2211 dev="/idev/urandom";
2212 elif test -r /dev/srandom ; then
2214 elif test -r /dev/random ; then
2216 elif test -r /idev/random ; then
2220 if test $dev != no ; then
2221 AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
2225 dnl ----------------------------------------------------------------
2227 dnl Check for fetch URL support
2228 dnl should be extended to support other fetch URL APIs
2231 if test $ol_with_fetch != no ; then
2234 if test $ol_cv_lib_fetch != no ; then
2235 LUTIL_LIBS="$LUTIL_LIBS $ol_link_fetch"
2236 ol_link_fetch=freebsd
2238 elif test $ol_with_fetch != auto ; then
2239 AC_MSG_ERROR(no suitable API for --with-fetch=$ol_with_fetch)
2243 dnl ----------------------------------------------------------------
2244 dnl FreeBSD (and others) have crypt(3) in -lcrypt
2245 if test $ol_enable_crypt != no ; then
2247 LIBS="$TLS_LIBS $LIBS"
2249 AC_CHECK_FUNC(crypt, [have_crypt=yes], [
2251 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
2252 have_crypt=yes], [have_crypt=no])])
2256 if test $have_crypt = yes ; then
2257 AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
2259 AC_MSG_WARN([could not find crypt])
2260 if test $ol_enable_crypt = yes ; then
2261 AC_MSG_ERROR([could not find crypt, select appropriate options or disable])
2264 AC_MSG_WARN([disabling crypt support])
2269 dnl ----------------------------------------------------------------
2270 dnl FreeBSD (and others) have setproctitle(3) in -lutil
2271 if test $ol_enable_proctitle != no ; then
2272 AC_CHECK_FUNC(setproctitle, [have_setproctitle=yes], [
2273 AC_CHECK_LIB(util, setproctitle,
2274 [have_setproctitle=yes
2275 LUTIL_LIBS="$LUTIL_LIBS -lutil"],
2276 [have_setproctitle=no
2277 AC_LIBOBJ(setproctitle)
2278 LIBSRCS="$LIBSRCS setproctitle.c"])])
2280 if test $have_setproctitle = yes ; then
2281 AC_DEFINE(HAVE_SETPROCTITLE,1,
2282 [define if setproctitle(3) is available])
2286 dnl ----------------------------------------------------------------
2287 dnl Check for SLPv2 Compliant API Library
2288 if test $ol_enable_slp != no ; then
2289 AC_CHECK_HEADERS( slp.h )
2291 if test $ac_cv_header_slp_h = yes ; then
2292 AC_CHECK_LIB(slp, SLPOpen, [have_slp=yes], [have_slp=no])
2293 if test $have_slp = yes ; then
2294 AC_DEFINE(HAVE_SLP, 1, [define if you have -lslp])
2295 SLAPD_SLP_LIBS=-lslp
2298 elif test $ol_enable_slp = yes ; then
2299 AC_MSG_ERROR([SLP not found])
2303 dnl ----------------------------------------------------------------
2304 dnl Check for multiple precision support
2305 if test "$ol_with_multiple_precision" != "no" ; then
2309 AC_CHECK_HEADERS(openssl/bn.h bn.h)
2310 AC_CHECK_HEADERS(openssl/crypto.h crypto.h)
2311 AC_CHECK_HEADERS( gmp.h )
2313 if test "$ol_with_tls" = "found" ; then
2317 if test "$ac_cv_header_openssl_bn_h" = "yes" \
2318 -o "$ac_cv_header_bn_h" = "yes" ; then
2322 if test "$ac_cv_header_openssl_crypto_h" = "yes" \
2323 -o "$ac_cv_header_crypto_h" = "yes" ; then
2324 ol_have_crypto_h=yes
2327 if test "$ol_have_bn_h" = "yes" \
2328 -a "$ol_have_crypto_h" = "yes" ; then
2333 if test $ac_cv_header_gmp_h = yes ; then
2334 AC_CHECK_LIB(gmp, __gmpz_add_ui, [have_gmp=yes], [have_gmp=no])
2335 if test $have_gmp = yes ; then
2340 AC_MSG_CHECKING([for multiple precision support])
2342 ol_mp_support="none"
2343 case "$ol_with_multiple_precision" in
2345 dnl preferred sequence:
2346 dnl - OpenSSL's BIGNUM (if libssl is already linked)
2349 if test "$ol_have_bignum" = "yes" ; then
2350 ol_mp_support="bignum"
2352 if test "$ol_have_gmp" = "yes" ; then
2358 if test "$ol_have_bignum" != "yes" ; then
2359 AC_MSG_ERROR([OpenSSL's BIGNUM not available])
2361 ol_mp_support="bignum"
2364 if test "$ol_have_gmp" != "yes" ; then
2365 AC_MSG_ERROR([GMP not available])
2370 if test "$ol_have_bignum" = "yes" ; then
2371 ol_mp_support="bignum"
2372 elif test "$ol_have_gmp" = "yes" ; then
2375 AC_MSG_ERROR([not available])
2380 case "$ol_mp_support" in
2382 AC_DEFINE(HAVE_BIGNUM, 1,
2383 [define if you have SSLeay or OpenSSL's BIGNUM])
2386 AC_DEFINE(HAVE_GMP, 1, [define if you have -lgmp])
2387 SLAPD_GMP_LIBS=-lgmp
2393 AC_MSG_RESULT($ol_mp_support)
2396 dnl ----------------------------------------------------------------
2397 dnl Checks for typedefs, structures, and compiler characteristics.
2399 AC_CHECK_TYPE(mode_t, int)
2400 AC_CHECK_TYPE(off_t, long)
2401 AC_CHECK_TYPE(pid_t, int)
2402 AC_CHECK_TYPE(ssize_t, [signed int])
2403 AC_CHECK_TYPE(caddr_t, [char *])
2404 AC_CHECK_TYPE(size_t, unsigned)
2406 AC_CHECK_TYPES([long long])
2407 AC_CHECK_TYPES([ptrdiff_t])
2409 AC_CHECK_TYPE([socklen_t],,
2410 [AC_DEFINE_UNQUOTED([socklen_t], [int],
2411 [Define to `int' if <sys/socket.h> does not define.])],
2412 [$ac_includes_default
2413 #ifdef HAVE_SYS_SOCKET_H
2414 #include <sys/socket.h>
2420 AC_CHECK_TYPE([sig_atomic_t],,
2421 [AC_DEFINE_UNQUOTED([sig_atomic_t], [int],
2422 [Define to `int' if <signal.h> does not define.])],
2423 [$ac_includes_default
2431 AC_CHECK_MEMBERS([struct stat.st_blksize])
2432 AC_CHECK_MEMBERS([struct passwd.pw_gecos],,,[$ac_includes_default
2434 AC_CHECK_MEMBERS([struct passwd.pw_passwd],,,[$ac_includes_default
2441 if test $cross_compiling = yes ; then
2442 AC_MSG_WARN([Crossing compiling... all bets are off!])
2443 AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
2448 AC_CHECK_SIZEOF(short)
2449 AC_CHECK_SIZEOF(int)
2450 AC_CHECK_SIZEOF(long)
2451 AC_CHECK_SIZEOF(wchar_t)
2453 if test "$ac_cv_sizeof_int" -lt 4 ; then
2454 AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
2456 AC_DEFINE(LBER_INT_T,long,[define to 32-bit or greater integer type])
2458 AC_DEFINE(LBER_INT_T,int,[define to 32-bit or greater integer type])
2461 AC_DEFINE(LBER_LEN_T,long,[define to large integer type])
2462 AC_DEFINE(LBER_SOCKET_T,int,[define to socket descriptor type])
2463 AC_DEFINE(LBER_TAG_T,long,[define to large integer type])
2465 dnl ----------------------------------------------------------------
2466 dnl Checks for library functions.
2469 if test $ac_cv_func_memcmp_working = no ; then
2470 AC_DEFINE(NEED_MEMCMP_REPLACEMENT,1,
2471 [define if memcmp is not 8-bit clean or is otherwise broken])
2478 dnl Check for NT specific routines
2479 AC_CHECK_FUNC(_spawnlp, AC_DEFINE(HAVE_SPAWNLP,1,[if you have spawnlp()]))
2481 AC_CHECK_FUNC(_snprintf, [ac_cv_func_snprintf=yes
2482 AC_DEFINE(snprintf, _snprintf, [define to snprintf routine])
2485 AC_CHECK_FUNC(_vsnprintf, [ac_cv_func_vsnprintf=yes
2486 AC_DEFINE(vsnprintf, _vsnprintf, [define to vsnprintf routine])
2491 if test $ac_cv_func_vprintf = yes ; then
2492 dnl check for vsnprintf
2493 AC_CHECK_FUNCS(snprintf vsnprintf)
2552 dnl We actually may need to replace more than this.
2553 AC_REPLACE_FUNCS(getopt getpeereid)
2555 if test "$ac_cv_func_getopt" != yes; then
2556 LIBSRCS="$LIBSRCS getopt.c"
2558 if test "$ac_cv_func_getpeereid" != yes; then
2559 AC_CHECK_MEMBERS([struct msghdr.msg_accrightslen],,,
2560 [$ac_includes_default
2561 #ifdef HAVE_SYS_SOCKET_H
2562 #include <sys/socket.h>
2564 if test "$ac_cv_member_struct_msghdr_msg_accrightslen" != yes; then
2565 AC_CHECK_MEMBERS([struct msghdr.msg_control],,,
2566 [$ac_includes_default
2567 #ifdef HAVE_SYS_SOCKET_H
2568 #include <sys/socket.h>
2571 LIBSRCS="$LIBSRCS getpeereid.c"
2573 if test "$ac_cv_func_snprintf" != yes -o "$ac_cv_func_vsnprintf" != yes; then
2574 if test "$ac_cv_func_snprintf" != yes; then
2575 AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
2577 if test "$ac_cv_func_vsnprintf" != yes; then
2578 AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine])
2582 dnl ----------------------------------------------------------------
2583 dnl Sort out defines
2585 if test "$ol_enable_slapi" != no ; then
2586 dnl This check is done also if --enable-modules is used;
2587 dnl it is duplicated here, 'cause it'd be cached anyway
2588 AC_CHECK_HEADERS(ltdl.h)
2590 if test $ac_cv_header_ltdl_h != yes ; then
2591 AC_MSG_ERROR([could not locate <ltdl.h>])
2593 AC_CHECK_LIB(ltdl, lt_dlinit, [
2596 LIBSLAPITOOLS=../libslapi.a
2597 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
2598 ],[AC_MSG_ERROR([could not locate libtool -lltdl])])
2600 AC_DEFINE(LDAP_SLAPI,1, [define this to add SLAPI code])
2603 if test "$ol_enable_debug" != no ; then
2604 AC_DEFINE(LDAP_DEBUG,1,
2605 [define this to add debugging code])
2607 if test "$ol_enable_syslog" = yes ; then
2608 AC_DEFINE(LDAP_SYSLOG,1,
2609 [define this to add syslog code])
2611 if test "$ol_link_kbind" != no ; then
2612 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND,LDAP_VENDOR_VERSION,
2613 [define to LDAP VENDOR VERSION])
2615 if test "$ol_enable_proctitle" != no ; then
2616 AC_DEFINE(LDAP_PROCTITLE,1,
2617 [define this for LDAP process title support])
2619 if test "$ol_enable_referrals" != no ; then
2620 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION,
2621 [define to LDAP VENDOR VERSION])
2623 if test "$ol_enable_local" != no; then
2624 AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
2626 if test "$ol_link_ipv6" != no; then
2627 AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
2629 if test "$ol_enable_cleartext" != no ; then
2630 AC_DEFINE(SLAPD_CLEARTEXT,1,[define to support cleartext passwords])
2632 if test "$ol_enable_crypt" != no ; then
2633 AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords])
2635 if test "$ol_link_spasswd" != no ; then
2636 AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
2638 if test "$ol_enable_multimaster" != no ; then
2639 AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
2641 if test "$ol_enable_rlookups" != no ; then
2642 AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
2644 if test "$ol_enable_aci" != no ; then
2645 AC_DEFINE(SLAPD_ACI_ENABLED,1,[define to support per-object ACIs])
2648 if test "$ol_link_modules" != no ; then
2649 AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
2651 SLAPD_MODULES_LDFLAGS="-dlopen self"
2654 AC_DEFINE(SLAPD_MOD_STATIC,1,[statically linked module])
2655 AC_DEFINE(SLAPD_MOD_DYNAMIC,2,[dynamically linked module])
2657 if test "$ol_enable_bdb" != no ; then
2659 BUILD_BDB=$ol_enable_bdb
2660 if test "$ol_enable_bdb" = mod ; then
2661 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
2662 MFLAG=SLAPD_MOD_DYNAMIC
2664 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
2665 MFLAG=SLAPD_MOD_STATIC
2667 AC_DEFINE_UNQUOTED(SLAPD_BDB,$MFLAG,[define to support BDB backend])
2670 if test "$ol_enable_dnssrv" != no ; then
2672 BUILD_DNSSRV=$ol_enable_dnssrv
2673 if test "$ol_enable_dnssrv" = mod ; then
2674 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
2675 MFLAG=SLAPD_MOD_DYNAMIC
2677 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
2678 MFLAG=SLAPD_MOD_STATIC
2680 AC_DEFINE_UNQUOTED(SLAPD_DNSSRV,$MFLAG,[define to support DNS SRV backend])
2683 if test "$ol_enable_hdb" != no ; then
2685 BUILD_HDB=$ol_enable_hdb
2686 if test "$ol_enable_hdb" = mod ; then
2687 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-hdb"
2688 MFLAG=SLAPD_MOD_DYNAMIC
2690 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb"
2691 MFLAG=SLAPD_MOD_STATIC
2693 AC_DEFINE_UNQUOTED(SLAPD_HDB,$MFLAG,[define to support HDB backend])
2696 if test "$ol_enable_ldap" != no ; then
2698 BUILD_LDAP=$ol_enable_ldap
2699 if test "$ol_enable_ldap" = mod ; then
2700 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
2701 MFLAG=SLAPD_MOD_DYNAMIC
2703 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
2704 MFLAG=SLAPD_MOD_STATIC
2706 AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
2709 if test "$ol_link_ldbm" != no -a $ol_enable_ldbm != no; then
2711 BUILD_LDBM=$ol_enable_ldbm
2712 if test "$ol_enable_ldbm" = mod ; then
2713 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldbm"
2714 MFLAG=SLAPD_MOD_DYNAMIC
2716 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldbm"
2717 MFLAG=SLAPD_MOD_STATIC
2719 AC_DEFINE_UNQUOTED(SLAPD_LDBM,$MFLAG,[define to support LDBM backend])
2722 if test "$ol_enable_meta" != no ; then
2724 BUILD_META=$ol_enable_meta
2726 if test "$ol_enable_meta" = mod ; then
2727 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
2728 MFLAG=SLAPD_MOD_DYNAMIC
2730 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
2731 MFLAG=SLAPD_MOD_STATIC
2733 AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
2736 if test "$ol_enable_monitor" != no ; then
2738 BUILD_MONITOR=$ol_enable_monitor
2739 if test "$ol_enable_monitor" = mod ; then
2740 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
2741 MFLAG=SLAPD_MOD_DYNAMIC
2743 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
2744 MFLAG=SLAPD_MOD_STATIC
2746 AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
2749 if test "$ol_enable_null" != no ; then
2751 BUILD_NULL=$ol_enable_null
2752 if test "$ol_enable_null" = mod ; then
2753 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
2754 MFLAG=SLAPD_MOD_DYNAMIC
2756 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
2757 MFLAG=SLAPD_MOD_STATIC
2759 AC_DEFINE_UNQUOTED(SLAPD_NULL,$MFLAG,[define to support NULL backend])
2762 if test "$ol_enable_passwd" != no ; then
2764 BUILD_PASSWD=$ol_enable_passwd
2765 if test "$ol_enable_passwd" = mod ; then
2766 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
2767 MFLAG=SLAPD_MOD_DYNAMIC
2769 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
2770 MFLAG=SLAPD_MOD_STATIC
2772 AC_DEFINE_UNQUOTED(SLAPD_PASSWD,$MFLAG,[define to support PASSWD backend])
2775 if test "$ol_link_perl" != no ; then
2777 BUILD_PERL=$ol_enable_perl
2778 if test "$ol_enable_perl" = mod ; then
2779 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
2780 MFLAG=SLAPD_MOD_DYNAMIC
2782 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
2783 MFLAG=SLAPD_MOD_STATIC
2785 AC_DEFINE_UNQUOTED(SLAPD_PERL,$MFLAG,[define to support PERL backend])
2788 if test "$ol_enable_relay" != no ; then
2790 BUILD_RELAY=$ol_enable_relay
2791 if test "$ol_enable_relay" = mod ; then
2792 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-relay"
2793 MFLAG=SLAPD_MOD_DYNAMIC
2795 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-relay"
2796 MFLAG=SLAPD_MOD_STATIC
2798 AC_DEFINE_UNQUOTED(SLAPD_RELAY,$MFLAG,[define to support relay backend])
2801 if test "$ol_enable_shell" != no ; then
2802 if test "$ol_link_threads" != no ; then
2803 AC_MSG_WARN([Use of --without-threads is recommended with back-shell])
2806 BUILD_SHELL=$ol_enable_shell
2807 if test "$ol_enable_shell" = mod ; then
2808 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
2809 MFLAG=SLAPD_MOD_DYNAMIC
2811 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
2812 MFLAG=SLAPD_MOD_STATIC
2814 AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend])
2817 if test "$ol_link_sql" != no ; then
2819 BUILD_SQL=$ol_enable_sql
2820 if test "$ol_enable_sql" = mod; then
2821 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
2822 MFLAG=SLAPD_MOD_DYNAMIC
2824 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
2825 MFLAG=SLAPD_MOD_STATIC
2827 AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend])
2830 if test "$ol_enable_accesslog" != no ; then
2831 BUILD_ACCESSLOG=$ol_enable_accesslog
2832 if test "$ol_enable_accesslog" = mod ; then
2833 MFLAG=SLAPD_MOD_DYNAMIC
2834 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS accesslog.la"
2836 MFLAG=SLAPD_MOD_STATIC
2837 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS accesslog.o"
2839 AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay])
2842 if test "$ol_enable_denyop" != no ; then
2843 BUILD_DENYOP=$ol_enable_denyop
2844 if test "$ol_enable_denyop" = mod ; then
2845 MFLAG=SLAPD_MOD_DYNAMIC
2846 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS denyop.la"
2848 MFLAG=SLAPD_MOD_STATIC
2849 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS denyop.o"
2851 AC_DEFINE_UNQUOTED(SLAPD_OVER_DENYOP,$MFLAG,[define for Dynamic Group overlay])
2854 if test "$ol_enable_dyngroup" != no ; then
2855 BUILD_DYNGROUP=$ol_enable_dyngroup
2856 if test "$ol_enable_dyngroup" = mod ; then
2857 MFLAG=SLAPD_MOD_DYNAMIC
2858 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dyngroup.la"
2860 MFLAG=SLAPD_MOD_STATIC
2861 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dyngroup.o"
2863 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay])
2866 if test "$ol_enable_dynlist" != no ; then
2867 BUILD_DYNLIST=$ol_enable_dynlist
2868 if test "$ol_enable_dynlist" = mod ; then
2869 MFLAG=SLAPD_MOD_DYNAMIC
2870 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dynlist.la"
2872 MFLAG=SLAPD_MOD_STATIC
2873 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dynlist.o"
2875 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNLIST,$MFLAG,[define for Dynamic List overlay])
2878 if test "$ol_enable_glue" != no ; then
2879 BUILD_GLUE=$ol_enable_glue
2880 if test "$ol_enable_glue" = mod ; then
2881 MFLAG=SLAPD_MOD_DYNAMIC
2882 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS glue.la"
2884 MFLAG=SLAPD_MOD_STATIC
2885 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS glue.o"
2887 AC_DEFINE_UNQUOTED(SLAPD_OVER_GLUE,$MFLAG,[define for Backend Glue overlay])
2890 if test "$ol_enable_lastmod" != no ; then
2891 BUILD_LASTMOD=$ol_enable_lastmod
2892 if test "$ol_enable_lastmod" = mod ; then
2893 MFLAG=SLAPD_MOD_DYNAMIC
2894 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS lastmod.la"
2896 MFLAG=SLAPD_MOD_STATIC
2897 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS lastmod.o"
2899 AC_DEFINE_UNQUOTED(SLAPD_OVER_LASTMOD,$MFLAG,[define for Last Modification overlay])
2902 if test "$ol_enable_ppolicy" != no ; then
2903 BUILD_PPOLICY=$ol_enable_ppolicy
2904 if test "$ol_enable_ppolicy" = mod ; then
2905 MFLAG=SLAPD_MOD_DYNAMIC
2906 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS ppolicy.la"
2908 MFLAG=SLAPD_MOD_STATIC
2909 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS ppolicy.o"
2911 AC_DEFINE_UNQUOTED(SLAPD_OVER_PPOLICY,$MFLAG,[define for Password Policy overlay])
2914 if test "$ol_enable_proxycache" != no ; then
2915 BUILD_PROXYCACHE=$ol_enable_proxycache
2916 if test "$ol_enable_proxycache" = mod ; then
2917 MFLAG=SLAPD_MOD_DYNAMIC
2918 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS pcache.la"
2920 MFLAG=SLAPD_MOD_STATIC
2921 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS pcache.o"
2923 AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay])
2926 if test "$ol_enable_refint" != no ; then
2927 BUILD_REFINT=$ol_enable_refint
2928 if test "$ol_enable_refint" = mod ; then
2929 MFLAG=SLAPD_MOD_DYNAMIC
2930 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la"
2932 MFLAG=SLAPD_MOD_STATIC
2933 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS refint.o"
2935 AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay])
2938 if test "$ol_enable_retcode" != no ; then
2939 BUILD_RETCODE=$ol_enable_retcode
2940 if test "$ol_enable_retcode" = mod ; then
2941 MFLAG=SLAPD_MOD_DYNAMIC
2942 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS retcode.la"
2944 MFLAG=SLAPD_MOD_STATIC
2945 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS retcode.o"
2947 AC_DEFINE_UNQUOTED(SLAPD_OVER_RETCODE,$MFLAG,[define for Referential Integrity overlay])
2950 if test "$ol_enable_rwm" != no ; then
2952 BUILD_RWM=$ol_enable_rwm
2953 if test "$ol_enable_rwm" = mod ; then
2954 MFLAG=SLAPD_MOD_DYNAMIC
2955 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS rwm.la"
2957 MFLAG=SLAPD_MOD_STATIC
2958 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS rwm_x.o"
2960 AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
2963 if test "$ol_enable_syncprov" != no ; then
2964 BUILD_SYNCPROV=$ol_enable_syncprov
2965 if test "$ol_enable_syncprov" = mod ; then
2966 MFLAG=SLAPD_MOD_DYNAMIC
2967 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS syncprov.la"
2969 MFLAG=SLAPD_MOD_STATIC
2970 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS syncprov.o"
2972 AC_DEFINE_UNQUOTED(SLAPD_OVER_SYNCPROV,$MFLAG,[define for Syncrepl Provider overlay])
2975 if test "$ol_enable_translucent" != no ; then
2976 BUILD_TRANSLUCENT=$ol_enable_translucent
2977 if test "$ol_enable_translucent" = mod ; then
2978 MFLAG=SLAPD_MOD_DYNAMIC
2979 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS translucent.la"
2981 MFLAG=SLAPD_MOD_STATIC
2982 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS translucent.o"
2984 AC_DEFINE_UNQUOTED(SLAPD_OVER_TRANSLUCENT,$MFLAG,[define for Translucent Proxy overlay])
2987 if test "$ol_enable_unique" != no ; then
2988 BUILD_UNIQUE=$ol_enable_unique
2989 if test "$ol_enable_unique" = mod ; then
2990 MFLAG=SLAPD_MOD_DYNAMIC
2991 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la"
2993 MFLAG=SLAPD_MOD_STATIC
2994 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS unique.o"
2996 AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay])
2999 if test "$ol_enable_valsort" != no ; then
3000 BUILD_VALSORT=$ol_enable_valsort
3001 if test "$ol_enable_valsort" = mod ; then
3002 MFLAG=SLAPD_MOD_DYNAMIC
3003 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS valsort.la"
3005 MFLAG=SLAPD_MOD_STATIC
3006 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS valsort.o"
3008 AC_DEFINE_UNQUOTED(SLAPD_OVER_VALSORT,$MFLAG,[define for Value Sorting overlay])
3011 if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \
3012 $BUILD_SLAPD = yes ; then
3016 if test "$ol_enable_rewrite" != no ; then
3017 AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta])
3021 if test "$ol_enable_slapi" != no ; then
3022 AC_DEFINE(ENABLE_SLAPI,1,[define to enable slapi library])
3024 SLAPD_SLAPI_DEPEND=libslapi.a
3027 dnl ----------------------------------------------------------------
3030 dnl For Windows build, we don't want to include -dlopen flags.
3031 dnl They hurt more than they help.
3034 if test "$ac_cv_mingw32" = yes ; then
3036 SLAPD_MODULES_LDFLAGS=
3045 AC_SUBST(WITH_MODULES_ENABLED)
3046 AC_SUBST(BUILD_LIBS_DYNAMIC)
3048 AC_SUBST(BUILD_SLAPD)
3050 AC_SUBST(BUILD_SLAPI)
3051 AC_SUBST(SLAPD_SLAPI_DEPEND)
3054 AC_SUBST(BUILD_DNSSRV)
3056 AC_SUBST(BUILD_LDAP)
3057 AC_SUBST(BUILD_LDBM)
3058 AC_SUBST(BUILD_META)
3059 AC_SUBST(BUILD_MONITOR)
3060 AC_SUBST(BUILD_NULL)
3061 AC_SUBST(BUILD_PASSWD)
3062 AC_SUBST(BUILD_RELAY)
3063 AC_SUBST(BUILD_PERL)
3064 AC_SUBST(BUILD_SHELL)
3067 AC_SUBST(BUILD_ACCESSLOG)
3068 AC_SUBST(BUILD_DENYOP)
3069 AC_SUBST(BUILD_DYNGROUP)
3070 AC_SUBST(BUILD_DYNLIST)
3071 AC_SUBST(BUILD_GLUE)
3072 AC_SUBST(BUILD_LASTMOD)
3073 AC_SUBST(BUILD_PPOLICY)
3074 AC_SUBST(BUILD_PROXYCACHE)
3075 AC_SUBST(BUILD_REFINT)
3076 AC_SUBST(BUILD_RETCODE)
3078 AC_SUBST(BUILD_SYNCPROV)
3079 AC_SUBST(BUILD_TRANSLUCENT)
3080 AC_SUBST(BUILD_UNIQUE)
3081 AC_SUBST(BUILD_VALSORT)
3082 AC_SUBST(BUILD_SLURPD)
3085 AC_SUBST(SLAPD_LIBS)
3086 AC_SUBST(SLURPD_LIBS)
3088 AC_SUBST(LTHREAD_LIBS)
3089 AC_SUBST(LUTIL_LIBS)
3092 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
3093 AC_SUBST(SLAPD_MODULES_LDFLAGS)
3095 AC_SUBST(SLAPD_NO_STATIC)
3096 AC_SUBST(SLAPD_STATIC_BACKENDS)
3097 AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
3098 AC_SUBST(SLAPD_STATIC_OVERLAYS)
3099 AC_SUBST(SLAPD_DYNAMIC_OVERLAYS)
3101 AC_SUBST(PERL_CPPFLAGS)
3102 AC_SUBST(SLAPD_PERL_LDFLAGS)
3103 AC_SUBST(MOD_PERL_LDFLAGS)
3109 AC_SUBST(MODULES_LIBS)
3110 AC_SUBST(SLAPI_LIBS)
3112 AC_SUBST(LIBSLAPITOOLS)
3115 AC_SUBST(SLAPD_SLP_LIBS)
3116 AC_SUBST(SLAPD_GMP_LIBS)
3118 AC_SUBST(SLAPD_SQL_LDFLAGS)
3119 AC_SUBST(SLAPD_SQL_LIBS)
3120 AC_SUBST(SLAPD_SQL_INCLUDES)
3122 dnl ----------------------------------------------------------------
3123 dnl final help output
3124 AC_ARG_WITH(xxinstall,[
3125 See INSTALL file for further details.])
3127 dnl ----------------------------------------------------------------
3131 AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.mk]
3132 [doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk]
3133 [doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk]
3134 [doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk]
3135 [doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk]
3136 [doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk]
3137 [doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk]
3138 [clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk]
3139 [clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk]
3140 [include/Makefile:build/top.mk:include/Makefile.in]
3141 [libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk]
3142 [libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk]
3143 [libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk]
3144 [libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk]
3145 [libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk]
3146 [libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk]
3147 [libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-shared.mk]
3148 [servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk]
3149 [servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk]
3150 [servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk]
3151 [servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk]
3152 [servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk]
3153 [servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk]
3154 [servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/mod.mk]
3155 [servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk]
3156 [servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk]
3157 [servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk]
3158 [servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk]
3159 [servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk]
3160 [servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk]
3161 [servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk]
3162 [servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk]
3163 [servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk]
3164 [servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk]
3165 [servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk]
3166 [servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk]
3167 [servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk]
3168 [tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk]
3170 [tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk])
3172 AC_CONFIG_COMMANDS([default],[[
3175 BACKENDSC="servers/slapd/backends.c"
3176 echo "Making $BACKENDSC"
3178 cat > $BACKENDSC << ENDX
3179 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3181 * Copyright 1998-2005 The OpenLDAP Foundation.
3182 * All rights reserved.
3184 * Redistribution and use in source and binary forms, with or without
3185 * modification, are permitted only as authorized by the OpenLDAP
3188 * A copy of this license is available in the file LICENSE in the
3189 * top-level directory of the distribution or, alternatively, at
3190 * <http://www.OpenLDAP.org/license.html>.
3192 /* This file is automatically generated by configure; please do not edit. */
3194 #include "portable.h"
3198 if test "${STATIC_BACKENDS}"; then
3199 for b in config ${STATIC_BACKENDS}; do
3200 bb=`echo "${b}" | sed -e 's/back-//'`
3201 cat >> $BACKENDSC << ENDX
3202 extern BI_init ${bb}_back_initialize;
3206 cat >> $BACKENDSC << ENDX
3208 BackendInfo slap_binfo[] = {
3211 for b in config ${STATIC_BACKENDS}; do
3212 bb=`echo "${b}" | sed -e 's/back-//'`
3213 echo " Add ${bb} ..."
3214 cat >> $BACKENDSC << ENDX
3215 { "${bb}", ${bb}_back_initialize },
3219 cat >> $BACKENDSC << ENDX
3223 /* end of generated file */
3227 echo Please run \"make depend\" to build dependencies
3228 ]],[[STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"]])