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 denyop dyngroup dynlist glue lastmod ppolicy proxycache \
318 refint retcode rwm syncprov translucent unique"
320 AC_ARG_ENABLE(xxslapoverlays,[
321 SLAPD Overlay Options:])
323 OL_ARG_ENABLE(overlays,[ --enable-overlays enable all available overlays],
325 OL_ARG_ENABLE(accesslog,[ --enable-accesslog In-Directory Access Logging overlay],
326 no, [no yes mod], ol_enable_overlays)
327 OL_ARG_ENABLE(denyop,[ --enable-denyop Deny Operation overlay],
328 no, [no yes mod], ol_enable_overlays)
329 OL_ARG_ENABLE(dyngroup,[ --enable-dyngroup Dynamic Group overlay],
330 no, [no yes mod], ol_enable_overlays)
331 OL_ARG_ENABLE(dynlist,[ --enable-dynlist Dynamic List overlay],
332 no, [no yes mod], ol_enable_overlays)
333 OL_ARG_ENABLE(glue,[ --enable-glue Backend Glue overlay],
334 yes, [no yes mod], ol_enable_overlays)
335 OL_ARG_ENABLE(lastmod,[ --enable-lastmod Last Modification overlay],
336 no, [no yes mod], ol_enable_overlays)
337 OL_ARG_ENABLE(ppolicy,[ --enable-ppolicy Password Policy overlay],
338 no, [no yes mod], ol_enable_overlays)
339 OL_ARG_ENABLE(proxycache,[ --enable-proxycache Proxy Cache overlay],
340 no, [no yes mod], ol_enable_overlays)
341 OL_ARG_ENABLE(refint,[ --enable-refint Referential Integrity overlay],
342 no, [no yes mod], ol_enable_overlays)
343 OL_ARG_ENABLE(retcode,[ --enable-retcode Return Code testing overlay],
344 no, [no yes mod], ol_enable_overlays)
345 OL_ARG_ENABLE(rwm,[ --enable-rwm Rewrite/Remap overlay],
346 no, [no yes mod], ol_enable_overlays)
347 OL_ARG_ENABLE(syncprov,[ --enable-syncprov Syncrepl Provider overlay],
348 yes, [no yes mod], ol_enable_overlays)
349 OL_ARG_ENABLE(translucent,[ --enable-translucent Translucent Proxy overlay],
350 no, [no yes mod], ol_enable_overlays)
351 OL_ARG_ENABLE(unique,[ --enable-unique Attribute Uniqueness overlay],
352 no, [no yes mod], ol_enable_overlays)
354 dnl ----------------------------------------------------------------
356 AC_ARG_ENABLE(xxslurpdoptions,[
357 SLURPD (Replication Daemon) Options:])
358 OL_ARG_ENABLE(slurpd,[ --enable-slurpd enable building slurpd], auto)dnl
360 dnl ----------------------------------------------------------------
361 AC_ARG_ENABLE(xxliboptions,[
362 Library Generation & Linking Options])
366 dnl ----------------------------------------------------------------
369 if test $ol_enable_slapd = no ; then
370 dnl SLAPD was specificallly disabled
371 if test $ol_enable_slapi = yes ; then
372 AC_MSG_WARN([slapd disabled, ignoring --enable-slapi argument])
374 case "$ol_enable_backends" in yes | mod)
375 AC_MSG_WARN([slapd disabled, ignoring --enable-backends argument])
377 for i in $Backends; do
378 eval "ol_tmp=\$ol_enable_$i"
379 if test $ol_tmp != no ; then
380 AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
381 eval "ol_enable_$i=no"
384 if test $ol_enable_modules = yes ; then
385 AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
387 if test $ol_enable_multimaster = yes ; then
388 AC_MSG_WARN([slapd disabled, ignoring --enable-multimaster argument])
390 if test $ol_enable_wrappers = yes ; then
391 AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
393 if test $ol_enable_rlookups = yes ; then
394 AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
396 if test $ol_enable_aci = yes ; then
397 AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
399 if test $ol_enable_ldbm_api != auto ; then
400 AC_MSG_WARN([slapd disabled, ignoring --enable-ldbm-api argument])
402 if test $ol_enable_ldbm_type != auto ; then
403 AC_MSG_WARN([slapd disabled, ignoring --enable-ldbm-type argument])
405 if test $ol_enable_slurpd = yes ; then
406 AC_MSG_ERROR([slurpd requires slapd])
408 if test $ol_enable_rewrite = yes ; then
409 AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
412 case "$ol_enable_overlays" in yes | mod)
413 AC_MSG_WARN([slapd disabled, ignoring --enable-overlays argument])
415 for i in $Overlays; do
416 eval "ol_tmp=\$ol_enable_$i"
417 if test $ol_tmp != no ; then
418 AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
419 eval "ol_enable_$i=no"
423 # force settings to no
429 ol_enable_multimaster=no
430 ol_enable_rlookups=no
432 ol_enable_wrappers=no
434 ol_enable_ldbm_api=no
435 ol_enable_ldbm_type=no
441 elif test $ol_enable_ldbm = no ; then
442 dnl SLAPD without LDBM
444 if test $ol_enable_ldbm_api != auto ; then
445 AC_MSG_WARN([LDBM disabled, ignoring --enable-ldbm-api argument])
448 if test $ol_enable_ldbm_type != auto ; then
449 AC_MSG_WARN([LDBM disabled, ignoring --enable-ldbm-type argument])
452 if test $ol_enable_modules != yes -a \
453 $ol_enable_bdb = no -a \
454 $ol_enable_dnssrv = no -a \
455 $ol_enable_hdb = no -a \
456 $ol_enable_ldap = no -a \
457 $ol_enable_meta = no -a \
458 $ol_enable_monitor = no -a \
459 $ol_enable_null = no -a \
460 $ol_enable_passwd = no -a \
461 $ol_enable_perl = no -a \
462 $ol_enable_relay = no -a \
463 $ol_enable_shell = no -a \
464 $ol_enable_sql = no ; then
466 if test $ol_enable_slapd = yes ; then
467 AC_MSG_ERROR([slapd requires a backend])
469 AC_MSG_WARN([skipping slapd, no backend specified])
474 ol_enable_ldbm_api=no
475 ol_enable_ldbm_type=no
477 if test $ol_enable_bdb != no -o $ol_enable_hdb != no; then
478 ol_enable_ldbm_api=berkeley
483 if test $ol_enable_ldbm_api = gdbm -a \
484 $ol_enable_ldbm_type = btree ; then
485 AC_MSG_ERROR([GDBM only supports LDBM type hash])
487 if test $ol_enable_ldbm_api = mdbm -a \
488 $ol_enable_ldbm_type = btree ; then
489 AC_MSG_ERROR([MDBM only supports LDBM type hash])
491 if test $ol_enable_ldbm_api = ndbm -a \
492 $ol_enable_ldbm_type = btree ; then
493 AC_MSG_ERROR([NDBM only supports LDBM type hash])
496 if test $ol_enable_bdb != no -o $ol_enable_hdb != no ; then
497 if test $ol_enable_ldbm_api = auto ; then
498 ol_enable_ldbm_api=berkeley
499 elif test $ol_enable_ldbm_api != berkeley ; then
500 AC_MSG_ERROR([LDBM API not compatible with BDB/HDB])
505 if test $ol_enable_meta = yes -a $ol_enable_ldap = no ; then
506 AC_MSG_ERROR([--enable-meta requires --enable-ldap])
509 if test $ol_enable_slurpd = yes ; then
510 dnl SLURPD was specifically enabled
511 if test $ol_with_threads = no ; then
512 AC_MSG_ERROR([slurpd requires threads])
516 if test $ol_enable_lmpasswd = yes ; then
517 if test $ol_with_tls = no ; then
518 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
522 if test $ol_enable_kbind = yes ; then
523 if test $ol_with_kerberos = no ; then
524 AC_MSG_ERROR([options require --with-kerberos])
525 elif test $ol_with_kerberos = auto ; then
529 elif test $ol_enable_kbind = no ; then
530 if test $ol_with_kerberos = auto ; then
532 elif test $ol_with_kerberos != no ; then
533 AC_MSG_WARN([Kerberos detection enabled unnecessarily]);
538 if test $ol_enable_spasswd = yes ; then
539 if test $ol_with_cyrus_sasl = no ; then
540 AC_MSG_ERROR([options require --with-cyrus-sasl])
542 ol_with_cyrus_sasl=yes
547 dnl ----------------------------------------------------------------
594 SLAPD_STATIC_OVERLAYS=
595 SLAPD_DYNAMIC_OVERLAYS=
597 SLAPD_MODULES_LDFLAGS=
598 SLAPD_MODULES_CPPFLAGS=
600 SLAPD_STATIC_BACKENDS=back-ldif
601 SLAPD_DYNAMIC_BACKENDS=
624 dnl ================================================================
625 dnl Checks for programs
627 AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
629 dnl ----------------------------------------------------------------
631 dnl Determine which C translator to use
634 dnl AIX Thread requires we use cc_r or xlc_r.
635 dnl But only do this IF AIX and CC is not set
636 dnl and threads are auto|yes|posix.
638 dnl If we find cc_r|xlc_r, force pthreads and assume
639 dnl pthread_create is in $LIBS (ie: don't bring in
640 dnl any additional thread libraries)
641 dnl If we do not find cc_r|xlc_r, disable threads
645 *-*-aix*) dnl all AIX is not a good idea.
646 if test -z "$CC" ; then
647 case "$ol_with_threads" in
648 auto | yes | posix) ol_aix_threads=yes ;;
654 if test $ol_aix_threads = yes ; then
655 if test -z "${CC}" ; then
656 AC_CHECK_PROGS(CC,cc_r xlc_r cc)
658 if test "$CC" = cc ; then
659 dnl no CC! don't allow --with-threads
660 if test $ol_with_threads != auto ; then
661 AC_MSG_ERROR([--with-threads requires cc_r (or other suitable compiler) on AIX])
663 AC_MSG_WARN([disabling threads, no cc_r on AIX])
669 if test "${CC}" = "cc_r" -o "${CC}" = "xlc_r" ; then
670 ol_with_threads=posix
671 ol_cv_pthread_create=yes
675 if test -z "${CC}"; then
676 AC_CHECK_PROGS(CC,cc gcc,missing)
678 if test "${CC}" = "missing" ; then
679 AC_MSG_ERROR([Unable to locate cc(1) or suitable replacement. Check PATH or set CC.])
683 if test -z "${AR}"; then
684 AC_CHECK_PROGS(AR,ar gar,missing)
686 if test "${AR}" = "missing" ; then
687 AC_MSG_ERROR([Unable to locate ar(1) or suitable replacement. Check PATH or set AR.])
695 dnl ----------------------------------------------------------------
698 if test $ol_enable_perl != no ; then
699 AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)
701 if test "no$PERLBIN" = "no" ; then
702 if test $ol_enable_perl = yes ; then
703 AC_MSG_ERROR([could not locate perl])
707 PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
708 PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e 's/ -lc / /' -e 's/ -lc$//'`"
710 if test x"$ol_enable_perl" = "xyes" ; then
711 SLAPD_PERL_LDFLAGS="$PERL_LDFLAGS"
713 MOD_PERL_LDFLAGS="$PERL_LDFLAGS"
715 dnl should check perl version
722 dnl ----------------------------------------------------------------
723 dnl Checks for file extensions
726 AC_DEFINE_UNQUOTED(EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
728 dnl ----------------------------------------------------------------
729 dnl BeOS requires -lbe -lroot -lnet
730 AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])
732 dnl ----------------------------------------------------------------
733 dnl OpenLDAP requires STDC features
735 if test "X${ac_cv_prog_cc_stdc}" = "Xno" ; then
736 AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
739 dnl ----------------------------------------------------------------
740 dnl Check cc depend flags
742 if test "${ol_cv_mkdep}" = no ; then
743 # this will soon become an error
744 AC_MSG_WARN([do not know how to generate dependencies])
747 dnl ----------------------------------------------------------------
748 dnl Check for AIX security library
749 AC_CHECK_LIB(s, afopen, [
751 AC_DEFINE(HAVE_AIX_SECURITY,1,[define if you have AIX security lib])
754 dnl ----------------------------------------------------------------
755 dnl Check for IBM OS/390
759 AC_DEFINE(BOTH_STRINGS_H,1,[define to use both <string.h> and <strings.h>])
763 dnl ----------------------------------------------------------------
764 dnl Check for module support
766 WITH_MODULES_ENABLED=no
767 if test $ol_enable_modules != no ; then
768 AC_CHECK_HEADERS(ltdl.h)
770 if test $ac_cv_header_ltdl_h = no ; then
771 AC_MSG_ERROR([could not locate libtool ltdl.h])
774 AC_CHECK_LIB(ltdl, lt_dlinit, [
776 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
779 if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then
780 AC_MSG_ERROR([could not locate libtool -lltdl])
783 WITH_MODULES_ENABLED=yes
786 for i in $Backends; do
787 eval "ol_tmp=\$ol_enable_$i"
788 if test $ol_tmp = mod ; then
789 AC_MSG_WARN([building static $i backend])
790 eval "ol_enable_$i=yes"
793 for i in $Overlays; do
794 eval "ol_tmp=\$ol_enable_$i"
795 if test $ol_tmp = mod ; then
796 AC_MSG_WARN([building static $i overlay])
797 eval "ol_enable_$i=yes"
802 dnl ----------------------------------------------------------------
803 dnl Checks for header files.
806 if test $ol_cv_header_stdc != yes; then
807 AC_MSG_WARN([could not locate Standard C compliant headers])
864 AC_CHECK_HEADERS( resolv.h, [], [],
865 [$ac_includes_default]
866 #include <netinet/in.h>
869 AC_CHECK_HEADERS(sys/ucred.h, [], [],
870 [$ac_includes_default
871 #ifdef HAVE_SYS_PARAM_H
872 #include <sys/param.h>
876 dnl ----------------------------------------------------------------
877 dnl Checks for libraries
879 AC_CHECK_FUNCS( sigaction sigset )
881 dnl HP-UX requires -lV3
882 dnl this is not needed on newer versions of HP-UX
883 if test $ac_cv_func_sigaction = no && test $ac_cv_func_sigaction = no ; then
884 AC_CHECK_LIB(V3, sigset)
887 dnl The following is INTENTIONALLY scripted out because shell does not
888 dnl support variable names with the '@' character, which is what
889 dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
891 dnl Skip Winsock tests on Cygwin
892 if test "$ac_cv_cygwin" != yes && test "$ac_cv_header_winsock_h" = yes; then
893 AC_CACHE_CHECK([for winsock], [ol_cv_winsock],
895 for curlib in ws2_32 wsock32; do
896 LIBS="$LIBS -l$curlib"
897 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <winsock.h>
900 select(0,NULL,NULL,NULL,NULL);
903 ]])],[ol_cv_winsock=yes],[ol_cv_winsock=no])
905 if test $ol_cv_winsock = yes; then
906 AC_DEFINE(HAVE_WINSOCK, 1, [define if you have winsock])
907 ac_cv_func_socket=yes
908 ac_cv_func_select=yes
909 ac_cv_func_closesocket=yes
910 ac_cv_func_gethostname=yes
911 if test $curlib = ws2_32; then
912 ol_cv_winsock=winsock2
913 AC_DEFINE(HAVE_WINSOCK2, 1,
914 [define if you have winsock2])
923 dnl Likely combinations:
924 dnl -lsocket [ -lnsl_s | -lnsl ]
927 AC_CHECK_FUNC(socket, :, [
928 dnl hopefully we won't include too many libraries
929 AC_CHECK_LIB(socket, main)
930 AC_CHECK_LIB(net, main)
931 AC_CHECK_LIB(nsl_s, main)
932 AC_CHECK_LIB(nsl, main)
933 AC_CHECK_LIB(inet, socket)
934 AC_CHECK_LIB(gen, main)
938 AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
940 if test "${ac_cv_header_winsock_h}" != yes; then
942 dnl (if this detection becomes permenent, it and the select() detection
943 dnl should be done before the yielding select test)
944 AC_FUNC_SELECT_ARGTYPES
947 dnl check to see if system call automatically restart
948 dnl AC_SYS_RESTARTABLE_SYSCALLS
950 dnl ----------------------------------------------------------------
951 AC_CHECK_FUNCS( poll )
952 AC_CHECK_HEADERS( poll.h )
954 dnl ----------------------------------------------------------------
955 AC_CHECK_HEADERS( sys/epoll.h )
956 if test "${ac_cv_header_sys_epoll_h}" = yes; then
957 AC_MSG_CHECKING(for epoll system call)
958 AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char *argv)
960 int epfd = epoll_create(256);
961 exit (epfd == -1 ? 1 : 0);
962 }]])],[AC_MSG_RESULT(yes)
963 AC_DEFINE(HAVE_EPOLL,1, [define if your system supports epoll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
966 dnl ----------------------------------------------------------------
970 dnl ----------------------------------------------------------------
971 dnl require POSIX regex
972 AC_CHECK_HEADERS( regex.h )
973 if test "$ac_cv_header_regex_h" != yes ; then
974 AC_MSG_ERROR([POSIX regex.h required.])
976 AC_SEARCH_LIBS(regfree, [regex gnuregex],
977 :, AC_MSG_ERROR([POSIX regex required.]))
980 if test "$ol_cv_c_posix_regex" = no ; then
981 AC_MSG_ERROR([broken POSIX regex!])
984 dnl ----------------------------------------------------------------
988 AC_CHECK_HEADERS(sys/uuid.h)
989 if test $ac_cv_header_sys_uuid_h = yes ; then
991 AC_SEARCH_LIBS(uuid_to_str, uuid, [have_uuid=yes], :)
994 if test have_uuid = yes ; then
995 AC_DEFINE(HAVE_UUID_TO_STR,1,
996 [define if you have uuid_to_str()])
998 test "$ac_cv_search_uuid_to_str" = "none required" || \
999 SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_to_str"
1003 dnl For windows, check for the need of RPCRT for UUID function support
1004 if test $have_uuid = no ; then
1005 AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
1007 LIBS="$LIBS -lrpcrt4"
1008 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1009 int __stdcall UuidCreate(void *);
1010 int __stdcall UuidToStringA(void *,void **);
1014 ]])],[need_rpcrt=yes],[need_rpcrt=no])
1015 if test $need_rpcrt = yes; then
1016 SLAPD_LIBS="$SLAPD_LIBS -lrpcrt4"
1019 AC_MSG_RESULT($need_rpcrt)
1022 dnl ----------------------------------------------------------------
1023 dnl Check for resolver routines
1027 if test "$ol_cv_lib_resolver" != no ; then
1028 AC_DEFINE(HAVE_RES_QUERY,1,
1029 [define if you have res_query()])
1031 if test "$ol_enable_dnssrv" != no ; then
1035 if test "$ol_cv_lib_resolver" != yes ; then
1036 LIBS="$ol_cv_lib_resolver $LIBS"
1040 if test "$ol_enable_dnssrv" = yes -o "$ol_enable_dnssrv" = mod ; then
1041 if test "$ol_link_dnssrv" = no ; then
1042 AC_MSG_ERROR([DNSSRV requires res_query()])
1048 AC_CHECK_FUNCS( hstrerror )
1050 dnl ----------------------------------------------------------------
1051 dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
1052 dnl PF_LOCAL may use getaddrinfo in available
1053 AC_CHECK_FUNCS( getaddrinfo getnameinfo gai_strerror inet_ntop )
1056 if test $ac_cv_func_getaddrinfo = no -o $ac_cv_func_inet_ntop = no ; then
1057 if test $ol_enable_ipv6 = yes ; then
1058 AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
1060 elif test $ol_enable_ipv6 != no ; then
1061 AC_CACHE_CHECK([INET6_ADDRSTRLEN],[ol_cv_inet6_addrstrlen],[
1062 AC_EGREP_CPP(__has_inet6_addrstrlen__,[
1063 # include <netinet/in.h>
1064 # ifdef INET6_ADDRSTRLEN
1065 __has_inet6_addrstrlen__;
1067 ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])])
1070 AC_CACHE_CHECK([struct sockaddr_storage],ol_cv_struct_sockaddr_storage,[
1071 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1072 #include <sys/types.h>
1073 #include <sys/socket.h>
1075 struct sockaddr_storage ss;
1076 ]])],[ol_cv_struct_sockaddr_storage=yes],[ol_cv_struct_sockaddr_storage=no])])
1078 if test $ol_cv_inet6_addrstrlen = yes \
1079 -a $ol_cv_struct_sockaddr_storage = yes ; then
1081 elif test $ol_enable_ipv6 = yes \
1082 -a $ol_cv_inet6_addrstrlen = no ; then
1083 AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
1084 elif test $ol_enable_ipv6 = yes \
1085 -a $ol_cv_struct_sockaddr_storage = no ; then
1086 AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage])
1090 if test $ol_enable_local != no ; then
1091 AC_CHECK_HEADERS( sys/un.h )
1093 if test $ol_enable_local = auto ; then
1094 ol_enable_local=$ac_cv_header_sys_un_h
1095 elif test $ac_cv_header_sys_un_h = no ; then
1096 AC_MSG_ERROR([AF_LOCAL domain support requires sys/un.h])
1100 dnl ----------------------------------------------------------------
1106 if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
1107 -o $ol_with_kerberos = k5 -o $ol_with_kerberos = k5only \
1108 -o $ol_with_kerberos = k425 ; then
1110 AC_CHECK_HEADERS(krb5.h)
1112 if test $ac_cv_header_krb5_h = yes ; then
1113 dnl lazy check for Heimdal Kerberos
1114 AC_CHECK_HEADERS(heim_err.h)
1115 if test $ac_cv_header_heim_err_h = yes ; then
1121 if test $krb5_impl = mit; then
1122 AC_CHECK_LIB(k5crypto, main,
1123 [krb5crypto=k5crypto],
1124 [krb5crypto=crypto])
1126 AC_CHECK_LIB(krb5, main,
1128 KRB5_LIBS="-lkrb5 -l$krb5crypto -lcom_err"],
1130 [-l$krb5crypto -lcom_err])
1132 elif test $krb5_impl = heimdal; then
1133 AC_CHECK_LIB(des, main,
1135 [krb5crypto=crypto])
1137 AC_CHECK_LIB(krb5, main,
1139 KRB5_LIBS="-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err"],
1141 [-l$krb5crypto -lasn1 -lroken -lcom_err])
1143 AC_DEFINE(HAVE_HEIMDAL_KERBEROS, 1,
1144 [define if you have HEIMDAL Kerberos])
1148 AC_MSG_WARN([Unrecognized Kerberos5 Implementation])
1151 if test $have_krb5 = yes ; then
1154 AC_DEFINE(HAVE_KRB5, 1,
1155 [define if you have Kerberos V])
1157 if test $ol_with_kerberos = k5only ; then
1158 ol_with_kerberos=found
1161 elif test $ol_with_kerberos != auto ; then
1162 AC_MSG_ERROR([Required Kerberos 5 support not available])
1168 if test $ol_link_krb5 = yes -a \( $ol_with_kerberos = yes -o \
1169 $ol_with_kerberos = auto -o $ol_with_kerberos = k425 \) ; then
1171 AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
1173 if test $ac_cv_header_kerberosIV_krb_h = yes ; then
1174 if test $krb5_impl = mit; then
1175 AC_CHECK_LIB(krb4, main, [have_k425=yes
1176 KRB4_LIBS="-lkrb4 -ldes425"], [have_k425=no],
1177 [-ldes425 -lkrb5 -l$krb5crypto -lcom_err])
1179 elif test $krb5_impl = heimdal; then
1180 AC_CHECK_LIB(krb4, main, [have_k425=yes
1181 KRB4_LIBS="-lkrb4"], [have_k425=no],
1182 [-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err])
1186 AC_MSG_WARN([Unrecongized Kerberos V Implementation])
1189 if test $have_k425 = yes ; then
1190 ol_with_kerberos=found
1193 AC_DEFINE(HAVE_KRB425, 1,
1194 [define if you have Kerberos V with IV support])
1195 AC_DEFINE(HAVE_KRB4, 1,
1196 [define if you have Kerberos IV])
1198 AC_CACHE_CHECK([for des_debug in Kerberos libraries],
1199 [ol_cv_var_des_debug], [
1202 LIBS="$KRB4_LIBS $KRB5_LIBS $LIBS"
1203 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1204 #include <kerberosIV/krb.h>
1205 #include <kerberosIV/des.h>
1206 extern int des_debug;
1209 ]])],[ol_cv_var_des_debug=yes],[ol_cv_var_des_debug=no])
1210 dnl restore the LIBS
1214 if test $ol_cv_var_des_debug = yes ; then
1215 AC_DEFINE(HAVE_DES_DEBUG,1,
1216 [define if you have Kerberos des_debug])
1224 if test $ol_link_krb5 = yes ; then
1225 ol_with_kerberos=found
1228 if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
1229 -o $ol_with_kerberos = k4 -o $ol_with_kerberos = kth ; then
1231 AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
1233 if test $ac_cv_header_krb_h = yes ; then
1234 AC_CHECK_LIB(krb, main, [have_k4=yes], [have_k4=no], [-ldes])
1236 if test $have_k4 = yes ; then
1237 ol_with_kerberos=found
1240 AC_DEFINE(HAVE_KRB4, 1,
1241 [define if you have Kerberos IV])
1243 KRB4_LIBS="-lkrb -ldes"
1245 if test $ac_cv_header_krb_archaeology_h = yes ; then
1246 AC_DEFINE(HAVE_KTH_KERBEROS, 1,
1247 [define if you have Kth Kerberos])
1253 if test $ol_link_krb4 = yes -a $ol_enable_kbind != no ; then
1256 elif test $ol_enable_kbind = yes ; then
1257 AC_MSG_ERROR([Kerberos IV detection failed])
1260 if test $ol_link_krb4 = yes -o $ol_link_krb5 = yes ; then
1261 AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
1263 elif test $ol_with_kerberos != auto -a $ol_with_kerberos != no ; then
1264 AC_MSG_ERROR([Kerberos detection failed])
1267 dnl ----------------------------------------------------------------
1271 if test $ol_with_tls != no ; then
1272 AC_CHECK_HEADERS(openssl/ssl.h ssl.h)
1274 if test $ac_cv_header_openssl_ssl_h = yes \
1275 -o $ac_cv_header_ssl_h = yes ; then
1276 AC_CHECK_LIB(ssl, SSLeay_add_ssl_algorithms,
1282 if test $have_ssleay = no ; then
1283 AC_CHECK_LIB(ssl, SSL_library_init,
1285 need_rsaref=no], [have_ssleay=no],
1289 if test $have_ssleay = no ; then
1290 AC_CHECK_LIB(ssl, ssl3_accept,
1292 need_rsaref=yes], [have_ssleay=no],
1293 [-lcrypto -lRSAglue -lrsaref])
1296 if test $have_ssleay = yes ; then
1300 AC_DEFINE(HAVE_SSLEAY, 1,
1301 [define if you have SSLeay or OpenSSL])
1303 if test $need_rsaref = yes; then
1304 AC_DEFINE(HAVE_RSAREF, 1,
1305 [define if you have RSAref])
1307 TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
1309 TLS_LIBS="-lssl -lcrypto"
1313 if test $ol_cv_ssl_crl_compat = no ; then
1316 AC_DEFINE(HAVE_OPENSSL_CRL, 1,
1317 [define if you have OpenSSL with CRL checking capability])
1322 AC_MSG_WARN([TLS data protection not supported!])
1326 if test $ol_link_tls = yes ; then
1327 AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
1330 elif test $ol_with_tls = auto ; then
1331 AC_MSG_WARN([Could not locate TLS/SSL package])
1332 AC_MSG_WARN([TLS data protection not supported!])
1334 elif test $ol_with_tls != no ; then
1335 AC_MSG_ERROR([Could not locate TLS/SSL package])
1338 dnl ----------------------------------------------------------------
1339 dnl LAN Manger password checking requires DES from OpenSSL
1340 if test $ol_enable_lmpasswd != no; then
1341 if test $ol_link_tls != yes ; then
1342 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
1345 AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
1348 dnl ----------------------------------------------------------------
1352 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1353 -o $ol_with_threads = nt ; then
1357 if test "$ol_cv_nt_threads" = yes ; then
1359 ol_with_threads=found
1360 ol_with_yielding_select=yes
1362 AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager])
1363 AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log])
1366 if test $ol_with_threads = nt ; then
1367 AC_MSG_ERROR([could not locate NT Threads])
1371 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1372 -o $ol_with_threads = posix ; then
1374 AC_CHECK_HEADERS(pthread.h)
1376 if test $ac_cv_header_pthread_h = yes ; then
1377 OL_POSIX_THREAD_VERSION
1379 if test $ol_cv_pthread_version != 0 ; then
1380 AC_DEFINE_UNQUOTED(HAVE_PTHREADS,$ol_cv_pthread_version,
1381 [define to pthreads API spec revision])
1383 AC_MSG_ERROR([unknown pthread version])
1386 # consider threads found
1387 ol_with_threads=found
1389 OL_HEADER_LINUX_THREADS
1390 OL_HEADER_GNU_PTH_PTHREAD_H
1392 if test $ol_cv_header_gnu_pth_pthread_h = no ; then
1393 AC_CHECK_HEADERS(sched.h)
1396 dnl Now the hard part, how to link?
1398 dnl currently supported checks:
1400 dnl Check for no flags
1401 dnl pthread_create() in $LIBS
1403 dnl Check special pthread (final) flags
1404 dnl [skipped] pthread_create() with -mt (Solaris) [disabled]
1405 dnl pthread_create() with -kthread (FreeBSD)
1406 dnl pthread_create() with -pthread (FreeBSD/Digital Unix)
1407 dnl pthread_create() with -pthreads (?)
1408 dnl pthread_create() with -mthreads (AIX)
1409 dnl pthread_create() with -thread (?)
1411 dnl Check pthread (final) libraries
1412 dnl pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
1413 dnl pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
1414 dnl [skipped] pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
1415 dnl pthread_join() -Wl,-woff,85 -lpthread (IRIX)
1416 dnl pthread_create() in -lpthread (many)
1417 dnl pthread_create() in -lc_r (FreeBSD)
1419 dnl Check pthread (draft4) flags (depreciated)
1420 dnl pthread_create() with -threads (OSF/1)
1422 dnl Check pthread (draft4) libraries (depreciated)
1423 dnl pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
1424 dnl pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
1425 dnl pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
1426 dnl pthread_create() in -lpthreads (many)
1429 dnl pthread_create in $LIBS
1430 AC_CACHE_CHECK([for pthread_create in default libraries],
1431 ol_cv_pthread_create,[
1432 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1433 [ol_cv_pthread_create=yes],
1434 [ol_cv_pthread_create=no],
1435 [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION,
1436 [ol_cv_pthread_create=yes],
1437 [ol_cv_pthread_create=no])])])
1439 if test $ol_cv_pthread_create != no ; then
1440 ol_link_threads=posix
1444 dnl OL_PTHREAD_TRY([-mt], [ol_cv_pthread_mt])
1445 OL_PTHREAD_TRY([-kthread], [ol_cv_pthread_kthread])
1446 OL_PTHREAD_TRY([-pthread], [ol_cv_pthread_pthread])
1447 OL_PTHREAD_TRY([-pthreads], [ol_cv_pthread_pthreads])
1448 OL_PTHREAD_TRY([-mthreads], [ol_cv_pthread_mthreads])
1449 OL_PTHREAD_TRY([-thread], [ol_cv_pthread_thread])
1451 OL_PTHREAD_TRY([-lpthread -lmach -lexc -lc_r],
1452 [ol_cv_pthread_lpthread_lmach_lexc_lc_r])
1453 OL_PTHREAD_TRY([-lpthread -lmach -lexc],
1454 [ol_cv_pthread_lpthread_lmach_lexc])
1455 dnl OL_PTHREAD_TRY([-lpthread -lexc],
1456 dnl [ol_cv_pthread_lpthread_lexc])
1458 OL_PTHREAD_TRY([-lpthread -Wl,-woff,85],
1459 [ol_cv_pthread_lib_lpthread_woff])
1461 OL_PTHREAD_TRY([-lpthread], [ol_cv_pthread_lpthread])
1462 OL_PTHREAD_TRY([-lc_r], [ol_cv_pthread_lc_r])
1464 OL_PTHREAD_TRY([-threads], [ol_cv_pthread_threads])
1466 OL_PTHREAD_TRY([-lpthreads -lmach -lexc -lc_r],
1467 [ol_cv_pthread_lpthreads_lmach_lexc_lc_r])
1468 OL_PTHREAD_TRY([-lpthreads -lmach -lexc],
1469 [ol_cv_pthread_lpthreads_lmach_lexc])
1470 OL_PTHREAD_TRY([-lpthreads -lexc],
1471 [ol_cv_pthread_lpthreads_lexc])
1473 OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
1475 if test $ol_link_threads != no ; then
1476 LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
1479 save_CPPFLAGS="$CPPFLAGS"
1481 LIBS="$LTHREAD_LIBS $LIBS"
1483 dnl All POSIX Thread (final) implementations should have
1484 dnl sched_yield instead of pthread yield.
1485 dnl check for both, and thr_yield for Solaris
1486 AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
1488 if test $ac_cv_func_sched_yield = no -a \
1489 $ac_cv_func_pthread_yield = no -a \
1490 $ac_cv_func_thr_yield = no ; then
1491 dnl Digital UNIX has sched_yield() in -lrt
1492 AC_CHECK_LIB(rt, sched_yield,
1493 [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
1494 AC_DEFINE(HAVE_SCHED_YIELD,1,
1495 [Define if you have the sched_yield function.])
1496 ac_cv_func_sched_yield=yes],
1497 [ac_cv_func_sched_yield=no])
1499 if test $ac_cv_func_sched_yield = no -a \
1500 $ac_cv_func_pthread_yield = no -a \
1501 "$ac_cv_func_thr_yield" = no ; then
1502 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
1505 dnl Check functions for compatibility
1506 AC_CHECK_FUNCS(pthread_kill pthread_rwlock_destroy)
1508 dnl Check for pthread_detach with <pthread.h> inclusion
1509 dnl as it's symbol may have been mangled.
1510 AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
1511 [ol_cv_func_pthread_detach], [
1513 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1514 #include <pthread.h>
1516 #define NULL (void*)0
1518 ]], [[pthread_detach(NULL);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
1521 if test $ol_cv_func_pthread_detach = no ; then
1522 AC_MSG_ERROR([could not locate pthread_detach()])
1525 AC_DEFINE(HAVE_PTHREAD_DETACH,1,
1526 [define if you have pthread_detach function])
1528 dnl Check for setconcurreny functions
1530 pthread_setconcurrency \
1531 pthread_getconcurrency \
1532 thr_setconcurrency \
1533 thr_getconcurrency \
1536 OL_SYS_LINUX_THREADS
1539 if test $ol_cv_linux_threads = error; then
1540 AC_MSG_ERROR([LinuxThreads header/library mismatch]);
1543 AC_CACHE_CHECK([if pthread_create() works],
1544 ol_cv_pthread_create_works,[
1545 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1546 [ol_cv_pthread_create_works=yes],
1547 [ol_cv_pthread_create_works=no],
1549 ol_cv_pthread_create_works=yes])])
1551 if test $ol_cv_pthread_create_works = no ; then
1552 AC_MSG_ERROR([pthread_create is not usable, check environment settings])
1555 dnl Check if select causes an yield
1556 if test $ol_with_yielding_select = auto ; then
1557 AC_CACHE_CHECK([if select yields when using pthreads],
1558 ol_cv_pthread_select_yields,[
1559 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1560 #include <sys/types.h>
1561 #include <sys/time.h>
1563 #include <pthread.h>
1565 #define NULL (void*) 0
1568 static int fildes[2];
1570 static void *task(p)
1582 FD_SET(fildes[0], &rfds);
1584 /* we're not interested in any fds */
1585 i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
1592 exit(0); /* if we exit here, the select blocked the whole process */
1595 int main(argc, argv)
1601 /* create a pipe to select */
1602 if(pipe(&fildes[0])) {
1607 #ifdef HAVE_PTHREAD_SETCONCURRENCY
1608 (void) pthread_setconcurrency(2);
1610 #ifdef HAVE_THR_SETCONCURRENCY
1611 /* Set Solaris LWP concurrency to 2 */
1612 thr_setconcurrency(2);
1616 #if HAVE_PTHREADS < 6
1617 pthread_create(&t, pthread_attr_default, task, NULL);
1619 pthread_create(&t, NULL, task, NULL);
1622 /* make sure task runs first */
1625 #elif defined( HAVE_SCHED_YIELD )
1627 #elif defined( HAVE_PTHREAD_YIELD )
1632 }]])],[ol_cv_pthread_select_yields=no],[ol_cv_pthread_select_yields=yes],[ol_cv_pthread_select_yields=cross])])
1634 if test $ol_cv_pthread_select_yields = cross ; then
1635 AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])
1638 if test $ol_cv_pthread_select_yields = yes ; then
1639 ol_with_yielding_select=yes
1644 CPPFLAGS="$save_CPPFLAGS"
1647 AC_MSG_ERROR([could not locate usable POSIX Threads])
1651 if test $ol_with_threads = posix ; then
1652 AC_MSG_ERROR([could not locate POSIX Threads])
1656 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1657 -o $ol_with_threads = mach ; then
1659 dnl check for Mach CThreads
1660 AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
1661 if test $ac_cv_header_mach_cthreads_h = yes ; then
1662 ol_with_threads=found
1664 dnl check for cthreads support in current $LIBS
1665 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1667 if test $ol_link_threads = no ; then
1669 dnl this test needs work
1670 AC_CACHE_CHECK([for cthread_fork with -all_load],
1671 [ol_cv_cthread_all_load], [
1674 LIBS="-all_load $LIBS"
1675 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <mach/cthreads.h>]], [[
1676 cthread_fork((void *)0, (void *)0);
1677 ]])],[ol_cv_cthread_all_load=yes],[ol_cv_cthread_all_load=no])
1678 dnl restore the LIBS
1682 if test $ol_cv_cthread_all_load = yes ; then
1683 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
1684 ol_link_threads=mach
1685 ol_with_threads=found
1689 elif test $ac_cv_header_cthreads_h = yes ; then
1690 dnl Hurd variant of Mach Cthreads
1691 dnl uses <cthreads.h> and -lthreads
1693 ol_with_threads=found
1697 LIBS="$LIBS -lthreads"
1698 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1701 if test $ol_link_threads = yes ; then
1702 LTHREAD_LIBS="-lthreads"
1703 ol_link_threads=mach
1704 ol_with_threads=found
1706 AC_MSG_ERROR([could not link with Mach CThreads])
1709 elif test $ol_with_threads = mach ; then
1710 AC_MSG_ERROR([could not locate Mach CThreads])
1713 if test $ol_link_threads = mach ; then
1714 AC_DEFINE(HAVE_MACH_CTHREADS,1,
1715 [define if you have Mach Cthreads])
1716 elif test $ol_with_threads = found ; then
1717 AC_MSG_ERROR([could not link with Mach CThreads])
1721 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1722 -o $ol_with_threads = pth ; then
1724 AC_CHECK_HEADERS(pth.h)
1726 if test $ac_cv_header_pth_h = yes ; then
1727 AC_CHECK_LIB(pth, pth_version, [have_pth=yes], [have_pth=no])
1729 if test $have_pth = yes ; then
1730 AC_DEFINE(HAVE_GNU_PTH,1,[if you have GNU Pth])
1731 LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
1733 ol_with_threads=found
1735 if test $ol_with_yielding_select = auto ; then
1736 ol_with_yielding_select=yes
1742 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1743 -o $ol_with_threads = lwp ; then
1745 dnl check for SunOS5 LWP
1746 AC_CHECK_HEADERS(thread.h synch.h)
1747 if test $ac_cv_header_thread_h = yes -a $ac_cv_header_synch_h = yes ; then
1748 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
1750 if test $have_thr = yes ; then
1751 AC_DEFINE(HAVE_THR,1,
1752 [if you have Solaris LWP (thr) package])
1753 LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
1756 if test $ol_with_yielding_select = auto ; then
1757 ol_with_yielding_select=yes
1760 dnl Check for setconcurreny functions
1762 thr_setconcurrency \
1763 thr_getconcurrency \
1768 dnl check for SunOS4 LWP
1769 AC_CHECK_HEADERS(lwp/lwp.h)
1770 if test $ac_cv_header_lwp_lwp_h = yes ; then
1771 AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
1773 if test $have_lwp = yes ; then
1774 AC_DEFINE(HAVE_LWP,1,
1775 [if you have SunOS LWP package])
1776 LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
1779 if test $ol_with_yielding_select = auto ; then
1780 ol_with_yielding_select=no
1786 if test $ol_with_yielding_select = yes ; then
1787 AC_DEFINE(HAVE_YIELDING_SELECT,1,
1788 [define if select implicitly yields])
1791 if test $ol_with_threads = manual ; then
1792 dnl User thinks he can manually configure threads.
1795 AC_MSG_WARN([thread defines and link options must be set manually])
1797 AC_CHECK_HEADERS(pthread.h sched.h)
1798 AC_CHECK_FUNCS(sched_yield pthread_yield)
1799 OL_HEADER_LINUX_THREADS
1801 AC_CHECK_HEADERS(mach/cthreads.h)
1802 AC_CHECK_HEADERS(lwp/lwp.h)
1803 AC_CHECK_HEADERS(thread.h synch.h)
1806 if test $ol_link_threads != no -a $ol_link_threads != nt ; then
1807 dnl needed to get reentrant/threadsafe versions
1809 AC_DEFINE(REENTRANT,1)
1810 AC_DEFINE(_REENTRANT,1)
1811 AC_DEFINE(THREAD_SAFE,1)
1812 AC_DEFINE(_THREAD_SAFE,1)
1813 AC_DEFINE(THREADSAFE,1)
1814 AC_DEFINE(_THREADSAFE,1)
1815 AC_DEFINE(_SGI_MP_SOURCE,1)
1817 dnl The errno declaration may dependent upon _REENTRANT.
1818 dnl If it does, we must link with thread support.
1819 AC_CACHE_CHECK([for thread specific errno],
1820 [ol_cv_errno_thread_specific], [
1821 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <errno.h>]], [[errno = 0;]])],[ol_cv_errno_thread_specific=yes],[ol_cv_errno_thread_specific=no])
1824 dnl The h_errno declaration may dependent upon _REENTRANT.
1825 dnl If it does, we must link with thread support.
1826 AC_CACHE_CHECK([for thread specific h_errno],
1827 [ol_cv_h_errno_thread_specific], [
1828 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])
1831 if test $ol_cv_errno_thread_specific != yes \
1832 -o $ol_cv_h_errno_thread_specific != yes ; then
1833 LIBS="$LTHREAD_LIBS $LIBS"
1837 dnl When in thread environment, use
1838 dnl #if defined( HAVE_REENTRANT_FUNCTIONS ) || defined( HAVE_FUNC_R )
1841 dnl # if defined( HAVE_THREADS )
1845 dnl # if defined( HAVE_THREADS )
1850 dnl HAVE_REENTRANT_FUNCTIONS is derived from:
1851 dnl _POSIX_REENTRANT_FUNCTIONS
1852 dnl _POSIX_THREAD_SAFE_FUNCTIONS
1853 dnl _POSIX_THREADSAFE_FUNCTIONS
1855 dnl and is currently defined in <ldap_pvt_thread.h>
1857 dnl HAVE_THREADS is defined by <ldap_pvt_thread.h> iff -UNO_THREADS
1859 dnl libldap/*.c should only include <ldap_pvt_thread.h> iff
1860 dnl LDAP_R_COMPILE is defined. ie:
1861 dnl #ifdef LDAP_R_COMPILE
1862 dnl # include <ldap_pvt_thread.h>
1865 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
1866 dnl specifically for compiling the threadsafe version of
1867 dnl the ldap library (-lldap_r).
1869 dnl dnl check for reentrant/threadsafe functions
1871 dnl dnl note: these should only be used when linking
1872 dnl dnl with $LTHREAD_LIBS
1874 dnl save_CPPFLAGS="$CPPFLAGS"
1875 dnl save_LIBS="$LIBS"
1876 dnl LIBS="$LTHREAD_LIBS $LIBS"
1877 dnl AC_CHECK_FUNCS( \
1879 dnl gethostbyaddr_r gethostbyname_r \
1880 dnl feof_unlocked unlocked_feof \
1881 dnl putc_unlocked unlocked_putc \
1882 dnl flockfile ftrylockfile \
1884 dnl CPPFLAGS="$save_CPPFLAGS"
1885 dnl LIBS="$save_LIBS"
1888 if test $ol_link_threads = no ; then
1889 if test $ol_with_threads = yes ; then
1890 AC_MSG_ERROR([no suitable thread support])
1893 if test $ol_with_threads = auto ; then
1894 AC_MSG_WARN([no suitable thread support, disabling threads])
1898 AC_DEFINE(NO_THREADS,1,
1899 [define if you have (or want) no threads])
1903 if test $ol_link_threads != no ; then
1904 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1,
1905 [define to 1 if library is thread safe])
1908 dnl ----------------------------------------------------------------
1909 dnl Tests for reentrant functions necessary to build -lldap_r
1912 gethostbyname_r gethostbyaddr_r \
1915 if test "$ac_cv_func_ctime_r" = no ; then
1916 ol_cv_func_ctime_r_nargs=0
1918 OL_FUNC_CTIME_R_NARGS
1919 dnl OL_FUNC_CTIME_R_TYPE
1922 if test "$ac_cv_func_gethostbyname_r" = yes ; then
1923 OL_FUNC_GETHOSTBYNAME_R_NARGS
1925 ol_cv_func_gethostbyname_r_nargs=0
1928 if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
1929 OL_FUNC_GETHOSTBYADDR_R_NARGS
1931 ol_cv_func_gethostbyaddr_r_nargs=0
1934 dnl ----------------------------------------------------------------
1937 if test $ol_enable_ldbm_api = auto \
1938 -o $ol_enable_ldbm_api = berkeley \
1939 -o $ol_enable_ldbm_api = bcompat ; then
1941 if test $ol_enable_ldbm_api = bcompat; then \
1942 OL_BERKELEY_COMPAT_DB
1947 if test $ol_cv_berkeley_db != no ; then
1948 AC_DEFINE(HAVE_BERKELEY_DB,1,
1949 [define this if Berkeley DB is available])
1951 ol_link_ldbm=berkeley
1952 ol_enable_ldbm_api=berkeley
1954 if test $ol_enable_ldbm_type = hash ; then
1955 AC_DEFINE(LDBM_USE_DBHASH,1,
1956 [define this to use DBHASH w/ LDBM backend])
1958 AC_DEFINE(LDBM_USE_DBBTREE,1,
1959 [define this to use DBBTREE w/ LDBM backend])
1962 dnl $ol_cv_lib_db should be yes or -ldb
1963 dnl (it could be no, but that would be an error
1964 if test $ol_cv_lib_db != yes ; then
1965 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
1970 if test $ol_enable_bdb != no -o $ol_enable_hdb != no; then
1971 if test $ol_link_ldbm != berkeley ; then
1972 AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
1976 if test $ol_cv_bdb_compat != yes ; then
1977 AC_MSG_ERROR([BDB/HDB: BerkeleyDB version incompatible])
1982 if test $ol_link_ldbm = no -a $ol_enable_ldbm_type = btree ; then
1983 AC_MSG_WARN([Could not find LDBM with BTREE support])
1984 ol_enable_ldbm_api=none
1987 if test $ol_enable_ldbm_api = auto -o $ol_enable_ldbm_api = mdbm ; then
1990 if test $ol_cv_mdbm = yes ; then
1992 ol_enable_ldbm_api=mdbm
1993 if test $ol_cv_lib_mdbm != yes ; then
1994 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_mdbm"
1999 if test $ol_enable_ldbm_api = auto -o $ol_enable_ldbm_api = gdbm ; then
2002 if test $ol_cv_gdbm = yes ; then
2004 ol_enable_ldbm_api=gdbm
2006 if test $ol_cv_lib_gdbm != yes ; then
2007 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
2012 if test $ol_enable_ldbm_api = ndbm ; then
2015 if test $ol_cv_ndbm = yes ; then
2017 ol_enable_ldbm_api=ndbm
2019 if test $ol_cv_lib_ndbm != yes ; then
2020 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
2025 if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
2026 AC_MSG_ERROR([could not find suitable LDBM backend])
2029 if test $ol_enable_bdb = yes -o \
2030 $ol_enable_hdb = yes -o \
2031 $ol_enable_ldbm = yes ; then
2032 SLAPD_LIBS="$SLAPD_LIBS \$(LDBM_LIBS)"
2035 dnl ----------------------------------------------------------------
2037 if test $ol_enable_dynamic = yes -a $enable_shared = yes ; then
2038 BUILD_LIBS_DYNAMIC=shared
2039 AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
2042 BUILD_LIBS_DYNAMIC=static
2045 AC_SUBST(LTSTATIC)dnl
2047 dnl ----------------------------------------------------------------
2048 if test $ol_enable_wrappers != no ; then
2049 AC_CHECK_HEADERS(tcpd.h,[
2050 AC_MSG_CHECKING([for TCP wrappers library])
2053 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
2055 int allow_severity = 0;
2056 int deny_severity = 0;
2058 struct request_info *req;
2061 ]])],[AC_MSG_RESULT([-lwrap])
2063 LIBS="$save_LIBS"],[
2068 int allow_severity = 0;
2069 int deny_severity = 0;
2071 struct request_info *req;
2074 ],[AC_MSG_RESULT([-lwrap -lnsl])
2076 LIBS="$save_LIBS -lnsl"],[
2079 LIBS=$save_LIBS])])],[have_wrappers=no])
2081 if test $have_wrappers = yes ; then
2082 AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
2084 elif test $ol_enable_wrappers = yes ; then
2085 AC_MSG_ERROR([could not find TCP wrappers, select apppropriate options or disable])
2087 AC_MSG_WARN([could not find TCP wrappers, support disabled])
2092 dnl ----------------------------------------------------------------
2093 if test $ol_enable_syslog != no ; then
2094 AC_CHECK_FUNC(openlog)
2095 if test $ac_cv_func_openlog = no -a $ol_enable_syslog = yes; then
2096 AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
2098 ol_enable_syslog=$ac_cv_func_openlog
2101 dnl ----------------------------------------------------------------
2104 if test $ol_enable_sql != no ; then
2105 AC_CHECK_HEADERS(sql.h sqlext.h,[],[
2106 AC_MSG_ERROR([could not locate SQL headers])
2110 LIBS="$LTHREAD_LIBS"
2112 AC_CHECK_LIB(iodbc,SQLDriverConnect,[have_iodbc=yes],[have_iodbc=no])
2113 if test $have_iodbc = yes ; then
2114 ol_link_sql="-liodbc"
2116 AC_CHECK_LIB(odbc,SQLDriverConnect,[have_odbc=yes],[have_odbc=no])
2117 if test $have_odbc = yes ; then
2118 ol_link_sql="-lodbc"
2124 if test $ol_link_sql != no ; then
2125 SLAPD_SQL_LIBS="$ol_link_sql"
2127 elif test $ol_enable_sql != auto ; then
2128 AC_MSG_ERROR([could not locate suitable ODBC library])
2132 dnl ----------------------------------------------------------------
2134 dnl Check for Cyrus SASL
2139 if test $ol_with_cyrus_sasl != no ; then
2140 AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
2142 if test $ac_cv_header_sasl_sasl_h = yes -o $ac_cv_header_sasl_h = yes; then
2143 AC_CHECK_LIB(sasl2, sasl_client_init,
2144 [ol_link_sasl="-lsasl2"],
2145 [AC_CHECK_LIB(sasl, sasl_client_init,
2146 [ol_link_sasl="-lsasl"])])
2149 if test $ol_link_sasl = no ; then
2150 if test $ol_with_cyrus_sasl != auto ; then
2151 AC_MSG_ERROR([Could not locate Cyrus SASL])
2153 AC_MSG_WARN([Could not locate Cyrus SASL])
2154 AC_MSG_WARN([SASL authentication not supported!])
2155 if test $ol_link_tls = no ; then
2156 AC_MSG_WARN([Strong authentication not supported!])
2161 if test $ol_cv_sasl_compat = no ; then
2163 AC_MSG_ERROR([Cyrus SASL library located but is incompatible])
2166 AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
2167 SASL_LIBS="$ol_link_sasl"
2168 if test $ol_enable_spasswd != no ; then
2172 ac_save_LIBS="$LIBS"
2173 LIBS="$LIBS $ol_link_sasl"
2174 AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1,
2175 [define if your SASL library has sasl_version()])])
2176 LIBS="$ac_save_LIBS"
2182 AC_MSG_WARN([SASL authentication not supported!])
2183 if test $ol_link_tls = no ; then
2184 AC_MSG_WARN([Strong authentication not supported!])
2188 dnl ----------------------------------------------------------------
2189 dnl Check for entropy sources
2190 if test $cross_compiling != yes -a "$ac_cv_mingw32" != yes ; then
2192 if test -r /dev/urandom ; then
2194 elif test -r /idev/urandom ; then
2195 dev="/idev/urandom";
2196 elif test -r /dev/srandom ; then
2198 elif test -r /dev/random ; then
2200 elif test -r /idev/random ; then
2204 if test $dev != no ; then
2205 AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
2209 dnl ----------------------------------------------------------------
2211 dnl Check for fetch URL support
2212 dnl should be extended to support other fetch URL APIs
2215 if test $ol_with_fetch != no ; then
2218 if test $ol_cv_lib_fetch != no ; then
2219 LUTIL_LIBS="$LUTIL_LIBS $ol_link_fetch"
2220 ol_link_fetch=freebsd
2222 elif test $ol_with_fetch != auto ; then
2223 AC_MSG_ERROR(no suitable API for --with-fetch=$ol_with_fetch)
2227 dnl ----------------------------------------------------------------
2228 dnl FreeBSD (and others) have crypt(3) in -lcrypt
2229 if test $ol_enable_crypt != no ; then
2231 LIBS="$TLS_LIBS $LIBS"
2233 AC_CHECK_FUNC(crypt, [have_crypt=yes], [
2235 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
2236 have_crypt=yes], [have_crypt=no])])
2240 if test $have_crypt = yes ; then
2241 AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
2243 AC_MSG_WARN([could not find crypt])
2244 if test $ol_enable_crypt = yes ; then
2245 AC_MSG_ERROR([could not find crypt, select appropriate options or disable])
2248 AC_MSG_WARN([disabling crypt support])
2253 dnl ----------------------------------------------------------------
2254 dnl FreeBSD (and others) have setproctitle(3) in -lutil
2255 if test $ol_enable_proctitle != no ; then
2256 AC_CHECK_FUNC(setproctitle, [have_setproctitle=yes], [
2257 AC_CHECK_LIB(util, setproctitle,
2258 [have_setproctitle=yes
2259 LUTIL_LIBS="$LUTIL_LIBS -lutil"],
2260 [have_setproctitle=no
2261 AC_LIBOBJ(setproctitle)
2262 LIBSRCS="$LIBSRCS setproctitle.c"])])
2264 if test $have_setproctitle = yes ; then
2265 AC_DEFINE(HAVE_SETPROCTITLE,1,
2266 [define if setproctitle(3) is available])
2270 dnl ----------------------------------------------------------------
2271 dnl Check for SLPv2 Compliant API Library
2272 if test $ol_enable_slp != no ; then
2273 AC_CHECK_HEADERS( slp.h )
2275 if test $ac_cv_header_slp_h = yes ; then
2276 AC_CHECK_LIB(slp, SLPOpen, [have_slp=yes], [have_slp=no])
2277 if test $have_slp = yes ; then
2278 AC_DEFINE(HAVE_SLP, 1, [define if you have -lslp])
2279 SLAPD_SLP_LIBS=-lslp
2282 elif test $ol_enable_slp = yes ; then
2283 AC_MSG_ERROR([SLP not found])
2287 dnl ----------------------------------------------------------------
2288 dnl Check for multiple precision support
2289 if test "$ol_with_multiple_precision" != "no" ; then
2293 AC_CHECK_HEADERS(openssl/bn.h bn.h)
2294 AC_CHECK_HEADERS(openssl/crypto.h crypto.h)
2295 AC_CHECK_HEADERS( gmp.h )
2297 if test "$ol_with_tls" = "found" ; then
2301 if test "$ac_cv_header_openssl_bn_h" = "yes" \
2302 -o "$ac_cv_header_bn_h" = "yes" ; then
2306 if test "$ac_cv_header_openssl_crypto_h" = "yes" \
2307 -o "$ac_cv_header_crypto_h" = "yes" ; then
2308 ol_have_crypto_h=yes
2311 if test "$ol_have_bn_h" = "yes" \
2312 -a "$ol_have_crypto_h" = "yes" ; then
2317 if test $ac_cv_header_gmp_h = yes ; then
2318 AC_CHECK_LIB(gmp, __gmpz_add_ui, [have_gmp=yes], [have_gmp=no])
2319 if test $have_gmp = yes ; then
2324 AC_MSG_CHECKING([for multiple precision support])
2326 ol_mp_support="none"
2327 case "$ol_with_multiple_precision" in
2329 dnl preferred sequence:
2330 dnl - OpenSSL's BIGNUM (if libssl is already linked)
2333 if test "$ol_have_bignum" = "yes" ; then
2334 ol_mp_support="bignum"
2336 if test "$ol_have_gmp" = "yes" ; then
2342 if test "$ol_have_bignum" != "yes" ; then
2343 AC_MSG_ERROR([OpenSSL's BIGNUM not available])
2345 ol_mp_support="bignum"
2348 if test "$ol_have_gmp" != "yes" ; then
2349 AC_MSG_ERROR([GMP not available])
2354 if test "$ol_have_bignum" = "yes" ; then
2355 ol_mp_support="bignum"
2356 elif test "$ol_have_gmp" = "yes" ; then
2359 AC_MSG_ERROR([not available])
2364 case "$ol_mp_support" in
2366 AC_DEFINE(HAVE_BIGNUM, 1,
2367 [define if you have SSLeay or OpenSSL's BIGNUM])
2370 AC_DEFINE(HAVE_GMP, 1, [define if you have -lgmp])
2371 SLAPD_GMP_LIBS=-lgmp
2377 AC_MSG_RESULT($ol_mp_support)
2380 dnl ----------------------------------------------------------------
2381 dnl Checks for typedefs, structures, and compiler characteristics.
2383 AC_CHECK_TYPE(mode_t, int)
2384 AC_CHECK_TYPE(off_t, long)
2385 AC_CHECK_TYPE(pid_t, int)
2386 AC_CHECK_TYPE(ssize_t, [signed int])
2387 AC_CHECK_TYPE(caddr_t, [char *])
2388 AC_CHECK_TYPE(size_t, unsigned)
2390 AC_CHECK_TYPES([long long])
2391 AC_CHECK_TYPES([ptrdiff_t])
2393 AC_CHECK_TYPE([socklen_t],,
2394 [AC_DEFINE_UNQUOTED([socklen_t], [int],
2395 [Define to `int' if <sys/socket.h> does not define.])],
2396 [$ac_includes_default
2397 #ifdef HAVE_SYS_SOCKET_H
2398 #include <sys/socket.h>
2404 AC_CHECK_TYPE([sig_atomic_t],,
2405 [AC_DEFINE_UNQUOTED([sig_atomic_t], [int],
2406 [Define to `int' if <signal.h> does not define.])],
2407 [$ac_includes_default
2415 AC_CHECK_MEMBERS([struct stat.st_blksize])
2416 AC_CHECK_MEMBERS([struct passwd.pw_gecos],,,[$ac_includes_default
2418 AC_CHECK_MEMBERS([struct passwd.pw_passwd],,,[$ac_includes_default
2425 if test $cross_compiling = yes ; then
2426 AC_MSG_WARN([Crossing compiling... all bets are off!])
2427 AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
2432 AC_CHECK_SIZEOF(short)
2433 AC_CHECK_SIZEOF(int)
2434 AC_CHECK_SIZEOF(long)
2435 AC_CHECK_SIZEOF(wchar_t)
2437 if test "$ac_cv_sizeof_int" -lt 4 ; then
2438 AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
2440 AC_DEFINE(LBER_INT_T,long,[define to 32-bit or greater integer type])
2442 AC_DEFINE(LBER_INT_T,int,[define to 32-bit or greater integer type])
2445 AC_DEFINE(LBER_LEN_T,long,[define to large integer type])
2446 AC_DEFINE(LBER_SOCKET_T,int,[define to socket descriptor type])
2447 AC_DEFINE(LBER_TAG_T,long,[define to large integer type])
2449 dnl ----------------------------------------------------------------
2450 dnl Checks for library functions.
2453 if test $ac_cv_func_memcmp_working = no ; then
2454 AC_DEFINE(NEED_MEMCMP_REPLACEMENT,1,
2455 [define if memcmp is not 8-bit clean or is otherwise broken])
2462 dnl Check for NT specific routines
2463 AC_CHECK_FUNC(_spawnlp, AC_DEFINE(HAVE_SPAWNLP,1,[if you have spawnlp()]))
2465 AC_CHECK_FUNC(_snprintf, [ac_cv_func_snprintf=yes
2466 AC_DEFINE(snprintf, _snprintf, [define to snprintf routine])
2469 AC_CHECK_FUNC(_vsnprintf, [ac_cv_func_vsnprintf=yes
2470 AC_DEFINE(vsnprintf, _vsnprintf, [define to vsnprintf routine])
2475 if test $ac_cv_func_vprintf = yes ; then
2476 dnl check for vsnprintf
2477 AC_CHECK_FUNCS(snprintf vsnprintf)
2536 dnl We actually may need to replace more than this.
2537 AC_REPLACE_FUNCS(getopt getpeereid)
2539 if test "$ac_cv_func_getopt" != yes; then
2540 LIBSRCS="$LIBSRCS getopt.c"
2542 if test "$ac_cv_func_getpeereid" != yes; then
2543 AC_CHECK_MEMBERS([struct msghdr.msg_accrightslen],,,
2544 [$ac_includes_default
2545 #ifdef HAVE_SYS_SOCKET_H
2546 #include <sys/socket.h>
2548 if test "$ac_cv_member_struct_msghdr_msg_accrightslen" != yes; then
2549 AC_CHECK_MEMBERS([struct msghdr.msg_control],,,
2550 [$ac_includes_default
2551 #ifdef HAVE_SYS_SOCKET_H
2552 #include <sys/socket.h>
2555 LIBSRCS="$LIBSRCS getpeereid.c"
2557 if test "$ac_cv_func_snprintf" != yes -o "$ac_cv_func_vsnprintf" != yes; then
2558 if test "$ac_cv_func_snprintf" != yes; then
2559 AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
2561 if test "$ac_cv_func_vsnprintf" != yes; then
2562 AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine])
2566 dnl ----------------------------------------------------------------
2567 dnl Sort out defines
2569 if test "$ol_enable_slapi" != no ; then
2570 dnl This check is done also if --enable-modules is used;
2571 dnl it is duplicated here, 'cause it'd be cached anyway
2572 AC_CHECK_HEADERS(ltdl.h)
2574 if test $ac_cv_header_ltdl_h != yes ; then
2575 AC_MSG_ERROR([could not locate <ltdl.h>])
2577 AC_CHECK_LIB(ltdl, lt_dlinit, [
2580 LIBSLAPITOOLS=../libslapi.a
2581 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
2582 ],[AC_MSG_ERROR([could not locate libtool -lltdl])])
2584 AC_DEFINE(LDAP_SLAPI,1, [define this to add SLAPI code])
2587 if test "$ol_enable_debug" != no ; then
2588 AC_DEFINE(LDAP_DEBUG,1,
2589 [define this to add debugging code])
2591 if test "$ol_enable_syslog" = yes ; then
2592 AC_DEFINE(LDAP_SYSLOG,1,
2593 [define this to add syslog code])
2595 if test "$ol_link_kbind" != no ; then
2596 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND,LDAP_VENDOR_VERSION,
2597 [define to LDAP VENDOR VERSION])
2599 if test "$ol_enable_proctitle" != no ; then
2600 AC_DEFINE(LDAP_PROCTITLE,1,
2601 [define this for LDAP process title support])
2603 if test "$ol_enable_referrals" != no ; then
2604 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION,
2605 [define to LDAP VENDOR VERSION])
2607 if test "$ol_enable_local" != no; then
2608 AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
2610 if test "$ol_link_ipv6" != no; then
2611 AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
2613 if test "$ol_enable_cleartext" != no ; then
2614 AC_DEFINE(SLAPD_CLEARTEXT,1,[define to support cleartext passwords])
2616 if test "$ol_enable_crypt" != no ; then
2617 AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords])
2619 if test "$ol_link_spasswd" != no ; then
2620 AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
2622 if test "$ol_enable_multimaster" != no ; then
2623 AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
2625 if test "$ol_enable_rlookups" != no ; then
2626 AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
2628 if test "$ol_enable_aci" != no ; then
2629 AC_DEFINE(SLAPD_ACI_ENABLED,1,[define to support per-object ACIs])
2632 if test "$ol_link_modules" != no ; then
2633 AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
2635 SLAPD_MODULES_LDFLAGS="-dlopen self"
2638 AC_DEFINE(SLAPD_MOD_STATIC,1,[statically linked module])
2639 AC_DEFINE(SLAPD_MOD_DYNAMIC,2,[dynamically linked module])
2641 if test "$ol_enable_bdb" != no ; then
2643 BUILD_BDB=$ol_enable_bdb
2644 if test "$ol_enable_bdb" = mod ; then
2645 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
2646 MFLAG=SLAPD_MOD_DYNAMIC
2648 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
2649 MFLAG=SLAPD_MOD_STATIC
2651 AC_DEFINE_UNQUOTED(SLAPD_BDB,$MFLAG,[define to support BDB backend])
2654 if test "$ol_enable_dnssrv" != no ; then
2656 BUILD_DNSSRV=$ol_enable_dnssrv
2657 if test "$ol_enable_dnssrv" = mod ; then
2658 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
2659 MFLAG=SLAPD_MOD_DYNAMIC
2661 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
2662 MFLAG=SLAPD_MOD_STATIC
2664 AC_DEFINE_UNQUOTED(SLAPD_DNSSRV,$MFLAG,[define to support DNS SRV backend])
2667 if test "$ol_enable_hdb" != no ; then
2669 BUILD_HDB=$ol_enable_hdb
2670 if test "$ol_enable_hdb" = mod ; then
2671 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-hdb"
2672 MFLAG=SLAPD_MOD_DYNAMIC
2674 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb"
2675 MFLAG=SLAPD_MOD_STATIC
2677 AC_DEFINE_UNQUOTED(SLAPD_HDB,$MFLAG,[define to support HDB backend])
2680 if test "$ol_enable_ldap" != no ; then
2682 BUILD_LDAP=$ol_enable_ldap
2683 if test "$ol_enable_ldap" = mod ; then
2684 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
2685 MFLAG=SLAPD_MOD_DYNAMIC
2687 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
2688 MFLAG=SLAPD_MOD_STATIC
2690 AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
2693 if test "$ol_link_ldbm" != no -a $ol_enable_ldbm != no; then
2695 BUILD_LDBM=$ol_enable_ldbm
2696 if test "$ol_enable_ldbm" = mod ; then
2697 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldbm"
2698 MFLAG=SLAPD_MOD_DYNAMIC
2700 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldbm"
2701 MFLAG=SLAPD_MOD_STATIC
2703 AC_DEFINE_UNQUOTED(SLAPD_LDBM,$MFLAG,[define to support LDBM backend])
2706 if test "$ol_enable_meta" != no ; then
2708 BUILD_META=$ol_enable_meta
2710 if test "$ol_enable_meta" = mod ; then
2711 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
2712 MFLAG=SLAPD_MOD_DYNAMIC
2714 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
2715 MFLAG=SLAPD_MOD_STATIC
2717 AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
2720 if test "$ol_enable_monitor" != no ; then
2722 BUILD_MONITOR=$ol_enable_monitor
2723 if test "$ol_enable_monitor" = mod ; then
2724 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
2725 MFLAG=SLAPD_MOD_DYNAMIC
2727 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
2728 MFLAG=SLAPD_MOD_STATIC
2730 AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
2733 if test "$ol_enable_null" != no ; then
2735 BUILD_NULL=$ol_enable_null
2736 if test "$ol_enable_null" = mod ; then
2737 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
2738 MFLAG=SLAPD_MOD_DYNAMIC
2740 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
2741 MFLAG=SLAPD_MOD_STATIC
2743 AC_DEFINE_UNQUOTED(SLAPD_NULL,$MFLAG,[define to support NULL backend])
2746 if test "$ol_enable_passwd" != no ; then
2748 BUILD_PASSWD=$ol_enable_passwd
2749 if test "$ol_enable_passwd" = mod ; then
2750 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
2751 MFLAG=SLAPD_MOD_DYNAMIC
2753 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
2754 MFLAG=SLAPD_MOD_STATIC
2756 AC_DEFINE_UNQUOTED(SLAPD_PASSWD,$MFLAG,[define to support PASSWD backend])
2759 if test "$ol_link_perl" != no ; then
2761 BUILD_PERL=$ol_enable_perl
2762 if test "$ol_enable_perl" = mod ; then
2763 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
2764 MFLAG=SLAPD_MOD_DYNAMIC
2766 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
2767 MFLAG=SLAPD_MOD_STATIC
2769 AC_DEFINE_UNQUOTED(SLAPD_PERL,$MFLAG,[define to support PERL backend])
2772 if test "$ol_enable_relay" != no ; then
2774 BUILD_RELAY=$ol_enable_relay
2775 if test "$ol_enable_relay" = mod ; then
2776 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-relay"
2777 MFLAG=SLAPD_MOD_DYNAMIC
2779 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-relay"
2780 MFLAG=SLAPD_MOD_STATIC
2782 AC_DEFINE_UNQUOTED(SLAPD_RELAY,$MFLAG,[define to support relay backend])
2785 if test "$ol_enable_shell" != no ; then
2786 if test "$ol_link_thread" != no ; then
2787 AC_MSG_WARN([Use of --without-threads is recommended with back-shell])
2790 BUILD_SHELL=$ol_enable_shell
2791 if test "$ol_enable_shell" = mod ; then
2792 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
2793 MFLAG=SLAPD_MOD_DYNAMIC
2795 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
2796 MFLAG=SLAPD_MOD_STATIC
2798 AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend])
2801 if test "$ol_link_sql" != no ; then
2803 BUILD_SQL=$ol_enable_sql
2804 if test "$ol_enable_sql" = mod; then
2805 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
2806 MFLAG=SLAPD_MOD_DYNAMIC
2808 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
2809 MFLAG=SLAPD_MOD_STATIC
2811 AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend])
2814 if test "$ol_enable_accesslog" != no ; then
2815 BUILD_ACCESSLOG=$ol_enable_accesslog
2816 if test "$ol_enable_accesslog" = mod ; then
2817 MFLAG=SLAPD_MOD_DYNAMIC
2818 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS accesslog.la"
2820 MFLAG=SLAPD_MOD_STATIC
2821 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS accesslog.o"
2823 AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay])
2826 if test "$ol_enable_denyop" != no ; then
2827 BUILD_DENYOP=$ol_enable_denyop
2828 if test "$ol_enable_denyop" = mod ; then
2829 MFLAG=SLAPD_MOD_DYNAMIC
2830 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS denyop.la"
2832 MFLAG=SLAPD_MOD_STATIC
2833 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS denyop.o"
2835 AC_DEFINE_UNQUOTED(SLAPD_OVER_DENYOP,$MFLAG,[define for Dynamic Group overlay])
2838 if test "$ol_enable_dyngroup" != no ; then
2839 BUILD_DYNGROUP=$ol_enable_dyngroup
2840 if test "$ol_enable_dyngroup" = mod ; then
2841 MFLAG=SLAPD_MOD_DYNAMIC
2842 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dyngroup.la"
2844 MFLAG=SLAPD_MOD_STATIC
2845 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dyngroup.o"
2847 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay])
2850 if test "$ol_enable_dynlist" != no ; then
2851 BUILD_DYNLIST=$ol_enable_dynlist
2852 if test "$ol_enable_dynlist" = mod ; then
2853 MFLAG=SLAPD_MOD_DYNAMIC
2854 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dynlist.la"
2856 MFLAG=SLAPD_MOD_STATIC
2857 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dynlist.o"
2859 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNLIST,$MFLAG,[define for Dynamic List overlay])
2862 if test "$ol_enable_glue" != no ; then
2863 BUILD_GLUE=$ol_enable_glue
2864 if test "$ol_enable_glue" = mod ; then
2865 MFLAG=SLAPD_MOD_DYNAMIC
2866 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS glue.la"
2868 MFLAG=SLAPD_MOD_STATIC
2869 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS glue.o"
2871 AC_DEFINE_UNQUOTED(SLAPD_OVER_GLUE,$MFLAG,[define for Backend Glue overlay])
2874 if test "$ol_enable_lastmod" != no ; then
2875 BUILD_LASTMOD=$ol_enable_lastmod
2876 if test "$ol_enable_lastmod" = mod ; then
2877 MFLAG=SLAPD_MOD_DYNAMIC
2878 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS lastmod.la"
2880 MFLAG=SLAPD_MOD_STATIC
2881 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS lastmod.o"
2883 AC_DEFINE_UNQUOTED(SLAPD_OVER_LASTMOD,$MFLAG,[define for Last Modification overlay])
2886 if test "$ol_enable_ppolicy" != no ; then
2887 BUILD_PPOLICY=$ol_enable_ppolicy
2888 if test "$ol_enable_ppolicy" = mod ; then
2889 MFLAG=SLAPD_MOD_DYNAMIC
2890 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS ppolicy.la"
2892 MFLAG=SLAPD_MOD_STATIC
2893 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS ppolicy.o"
2895 AC_DEFINE_UNQUOTED(SLAPD_OVER_PPOLICY,$MFLAG,[define for Password Policy overlay])
2898 if test "$ol_enable_proxycache" != no ; then
2899 BUILD_PROXYCACHE=$ol_enable_proxycache
2900 if test "$ol_enable_proxycache" = mod ; then
2901 MFLAG=SLAPD_MOD_DYNAMIC
2902 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS pcache.la"
2904 MFLAG=SLAPD_MOD_STATIC
2905 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS pcache.o"
2907 AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay])
2910 if test "$ol_enable_refint" != no ; then
2911 BUILD_REFINT=$ol_enable_refint
2912 if test "$ol_enable_refint" = mod ; then
2913 MFLAG=SLAPD_MOD_DYNAMIC
2914 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la"
2916 MFLAG=SLAPD_MOD_STATIC
2917 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS refint.o"
2919 AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay])
2922 if test "$ol_enable_retcode" != no ; then
2923 BUILD_RETCODE=$ol_enable_retcode
2924 if test "$ol_enable_retcode" = mod ; then
2925 MFLAG=SLAPD_MOD_DYNAMIC
2926 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS retcode.la"
2928 MFLAG=SLAPD_MOD_STATIC
2929 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS retcode.o"
2931 AC_DEFINE_UNQUOTED(SLAPD_OVER_RETCODE,$MFLAG,[define for Referential Integrity overlay])
2934 if test "$ol_enable_rwm" != no ; then
2936 BUILD_RWM=$ol_enable_rwm
2937 if test "$ol_enable_rwm" = mod ; then
2938 MFLAG=SLAPD_MOD_DYNAMIC
2939 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS rwm.la"
2941 MFLAG=SLAPD_MOD_STATIC
2942 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS rwm_x.o"
2944 AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
2947 if test "$ol_enable_syncprov" != no ; then
2948 BUILD_SYNCPROV=$ol_enable_syncprov
2949 if test "$ol_enable_syncprov" = mod ; then
2950 MFLAG=SLAPD_MOD_DYNAMIC
2951 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS syncprov.la"
2953 MFLAG=SLAPD_MOD_STATIC
2954 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS syncprov.o"
2956 AC_DEFINE_UNQUOTED(SLAPD_OVER_SYNCPROV,$MFLAG,[define for Syncrepl Provider overlay])
2959 if test "$ol_enable_translucent" != no ; then
2960 BUILD_TRANSLUCENT=$ol_enable_translucent
2961 if test "$ol_enable_translucent" = mod ; then
2962 MFLAG=SLAPD_MOD_DYNAMIC
2963 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS translucent.la"
2965 MFLAG=SLAPD_MOD_STATIC
2966 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS translucent.o"
2968 AC_DEFINE_UNQUOTED(SLAPD_OVER_TRANSLUCENT,$MFLAG,[define for Translucent Proxy overlay])
2971 if test "$ol_enable_unique" != no ; then
2972 BUILD_UNIQUE=$ol_enable_unique
2973 if test "$ol_enable_unique" = mod ; then
2974 MFLAG=SLAPD_MOD_DYNAMIC
2975 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la"
2977 MFLAG=SLAPD_MOD_STATIC
2978 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS unique.o"
2980 AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay])
2983 if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \
2984 $BUILD_SLAPD = yes ; then
2988 if test "$ol_enable_rewrite" != no ; then
2989 AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta])
2993 if test "$ol_enable_slapi" != no ; then
2994 AC_DEFINE(ENABLE_SLAPI,1,[define to enable slapi library])
2996 SLAPD_SLAPI_DEPEND=libslapi.a
2999 dnl ----------------------------------------------------------------
3002 dnl For Windows build, we don't want to include -dlopen flags.
3003 dnl They hurt more than they help.
3006 if test "$ac_cv_mingw32" = yes ; then
3008 SLAPD_MODULES_LDFLAGS=
3017 AC_SUBST(WITH_MODULES_ENABLED)
3018 AC_SUBST(BUILD_LIBS_DYNAMIC)
3020 AC_SUBST(BUILD_SLAPD)
3022 AC_SUBST(BUILD_SLAPI)
3023 AC_SUBST(SLAPD_SLAPI_DEPEND)
3026 AC_SUBST(BUILD_DNSSRV)
3028 AC_SUBST(BUILD_LDAP)
3029 AC_SUBST(BUILD_LDBM)
3030 AC_SUBST(BUILD_META)
3031 AC_SUBST(BUILD_MONITOR)
3032 AC_SUBST(BUILD_NULL)
3033 AC_SUBST(BUILD_PASSWD)
3034 AC_SUBST(BUILD_RELAY)
3035 AC_SUBST(BUILD_PERL)
3036 AC_SUBST(BUILD_SHELL)
3039 AC_SUBST(BUILD_ACCESSLOG)
3040 AC_SUBST(BUILD_DENYOP)
3041 AC_SUBST(BUILD_DYNGROUP)
3042 AC_SUBST(BUILD_DYNLIST)
3043 AC_SUBST(BUILD_GLUE)
3044 AC_SUBST(BUILD_LASTMOD)
3045 AC_SUBST(BUILD_PPOLICY)
3046 AC_SUBST(BUILD_PROXYCACHE)
3047 AC_SUBST(BUILD_REFINT)
3048 AC_SUBST(BUILD_RETCODE)
3050 AC_SUBST(BUILD_SYNCPROV)
3051 AC_SUBST(BUILD_TRANSLUCENT)
3052 AC_SUBST(BUILD_UNIQUE)
3053 AC_SUBST(BUILD_SLURPD)
3056 AC_SUBST(SLAPD_LIBS)
3057 AC_SUBST(SLURPD_LIBS)
3059 AC_SUBST(LTHREAD_LIBS)
3060 AC_SUBST(LUTIL_LIBS)
3063 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
3064 AC_SUBST(SLAPD_MODULES_LDFLAGS)
3066 AC_SUBST(SLAPD_NO_STATIC)
3067 AC_SUBST(SLAPD_STATIC_BACKENDS)
3068 AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
3069 AC_SUBST(SLAPD_STATIC_OVERLAYS)
3070 AC_SUBST(SLAPD_DYNAMIC_OVERLAYS)
3072 AC_SUBST(PERL_CPPFLAGS)
3073 AC_SUBST(SLAPD_PERL_LDFLAGS)
3074 AC_SUBST(MOD_PERL_LDFLAGS)
3080 AC_SUBST(MODULES_LIBS)
3081 AC_SUBST(SLAPI_LIBS)
3083 AC_SUBST(LIBSLAPITOOLS)
3086 AC_SUBST(SLAPD_SLP_LIBS)
3087 AC_SUBST(SLAPD_GMP_LIBS)
3089 AC_SUBST(SLAPD_SQL_LDFLAGS)
3090 AC_SUBST(SLAPD_SQL_LIBS)
3091 AC_SUBST(SLAPD_SQL_INCLUDES)
3093 dnl ----------------------------------------------------------------
3094 dnl final help output
3095 AC_ARG_WITH(xxinstall,[
3096 See INSTALL file for further details.])
3098 dnl ----------------------------------------------------------------
3102 AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.mk]
3103 [doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk]
3104 [doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk]
3105 [doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk]
3106 [doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk]
3107 [doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk]
3108 [doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk]
3109 [clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk]
3110 [clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk]
3111 [include/Makefile:build/top.mk:include/Makefile.in]
3112 [libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk]
3113 [libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk]
3114 [libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk]
3115 [libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk]
3116 [libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk]
3117 [libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk]
3118 [libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-shared.mk]
3119 [servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk]
3120 [servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk]
3121 [servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk]
3122 [servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk]
3123 [servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk]
3124 [servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk]
3125 [servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/mod.mk]
3126 [servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk]
3127 [servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk]
3128 [servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk]
3129 [servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk]
3130 [servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk]
3131 [servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk]
3132 [servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk]
3133 [servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk]
3134 [servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk]
3135 [servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk]
3136 [servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk]
3137 [servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk]
3138 [servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk]
3139 [tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk]
3141 [tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk])
3143 AC_CONFIG_COMMANDS([default],[[
3146 BACKENDSC="servers/slapd/backends.c"
3147 echo "Making $BACKENDSC"
3149 cat > $BACKENDSC << ENDX
3150 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3152 * Copyright 1998-2005 The OpenLDAP Foundation.
3153 * All rights reserved.
3155 * Redistribution and use in source and binary forms, with or without
3156 * modification, are permitted only as authorized by the OpenLDAP
3159 * A copy of this license is available in the file LICENSE in the
3160 * top-level directory of the distribution or, alternatively, at
3161 * <http://www.OpenLDAP.org/license.html>.
3163 /* This file is automatically generated by configure; please do not edit. */
3165 #include "portable.h"
3169 if test "${STATIC_BACKENDS}"; then
3170 for b in config ${STATIC_BACKENDS}; do
3171 bb=`echo "${b}" | sed -e 's/back-//'`
3172 cat >> $BACKENDSC << ENDX
3173 extern BI_init ${bb}_back_initialize;
3177 cat >> $BACKENDSC << ENDX
3179 BackendInfo slap_binfo[] = {
3182 for b in config ${STATIC_BACKENDS}; do
3183 bb=`echo "${b}" | sed -e 's/back-//'`
3184 echo " Add ${bb} ..."
3185 cat >> $BACKENDSC << ENDX
3186 { "${bb}", ${bb}_back_initialize },
3190 cat >> $BACKENDSC << ENDX
3194 /* end of generated file */
3198 echo Please run \"make depend\" to build dependencies
3199 ]],[[STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"]])