2 dnl This work is part of OpenLDAP Software <http://www.openldap.org/>.
4 dnl Copyright 1998-2009 The OpenLDAP Foundation.
5 dnl All rights reserved.
7 dnl Redistribution and use in source and binary forms, with or without
8 dnl modification, are permitted only as authorized by the OpenLDAP
11 dnl A copy of this license is available in the file LICENSE in the
12 dnl top-level directory of the distribution or, alternatively, at
13 dnl <http://www.OpenLDAP.org/license.html>.
15 dnl ----------------------------------------------------------------
16 dnl Disable config.cache!
17 define([AC_CACHE_LOAD], )dnl
18 define([AC_CACHE_SAVE], )dnl
19 dnl ----------------------------------------------------------------
20 dnl Disable libtool 1.5 support for languages we don't use
21 define([AC_LIBTOOL_LANG_CXX_CONFIG], [:])dnl
22 define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
23 define([AC_LIBTOOL_LANG_GCJ_CONFIG], [:])dnl
24 dnl ================================================================
25 dnl Configure.in for OpenLDAP
26 AC_COPYRIGHT([[Copyright 1998-2009 The OpenLDAP Foundation. All rights reserved.
27 Restrictions apply, see COPYRIGHT and LICENSE files.]])
28 AC_REVISION([$OpenLDAP$])
29 AC_INIT([OpenLDAP],,[http://www.openldap.org/its/])
30 m4_define([AC_PACKAGE_BUGREPORT],[<http://www.openldap.org/its/>])
31 AC_CONFIG_SRCDIR(build/version.sh)dnl
32 dnl ----------------------------------------------------------------
33 dnl OpenLDAP Autoconf Macros
34 builtin(include, build/openldap.m4)dnl
35 dnl ================================================================
37 AC_CONFIG_AUX_DIR(build)dnl
39 eval `$ac_aux_dir/version.sh`
40 if test -z "$OL_STRING"; then
41 AC_MSG_ERROR([could not determine version])
44 if test -f "$ac_aux_dir/shtool" && test ! -d $ac_aux_dir/shtool; then
45 ac_cv_shtool="$ac_aux_dir/shtool"
47 AC_MSG_ERROR([no shtool found in $ac_aux_dir])
50 SHTOOL="$ac_cv_shtool"
51 dnl AC_SUBST(SHTOOL)dnl
55 TB="`$SHTOOL echo -e '%B' 2>/dev/null`"
56 TN="`$SHTOOL echo -e '%b' 2>/dev/null`"
60 if test -d $ac_aux_dir/CVS; then
61 OPENLDAP_CVS="(from CVS sources) "
64 echo "Configuring ${TB}${OL_STRING}${TN} ${OPENLDAP_CVS}..."
66 dnl Determine host platform
67 dnl we try not to use this for much
68 AC_CANONICAL_TARGET([])
70 AM_INIT_AUTOMAKE([$OL_PACKAGE],[$OL_VERSION], [no defines])dnl
73 AC_DEFINE_UNQUOTED(OPENLDAP_PACKAGE,"$PACKAGE",Package)
74 AC_DEFINE_UNQUOTED(OPENLDAP_VERSION,"$VERSION",Version)
76 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION,$OL_API_INC,Version)
77 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MAJOR,$OL_MAJOR,Major)
78 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MINOR,$OL_MINOR,Minor)
79 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_PATCH,$OL_PATCH,Patch)
81 OPENLDAP_LIBRELEASE=$OL_API_LIB_RELEASE
82 AC_SUBST(OPENLDAP_LIBRELEASE)dnl
84 OPENLDAP_LIBVERSION=$OL_API_LIB_VERSION
85 AC_SUBST(OPENLDAP_LIBVERSION)dnl
87 OPENLDAP_RELEASE_DATE="$OL_RELEASE_DATE"
88 AC_SUBST(OPENLDAP_RELEASE_DATE)dnl
90 dnl We use autoconf features new to 2.59. Later versions like won't work.
91 dnl aclocal.m4 should be built using aclocal from automake 1.5
92 dnl libtool 1.5 should be installed.
93 AC_PREREQ(2.59)dnl Required Autoconf version
96 /* begin of portable.h.pre */
97 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
99 * Copyright 1998-2009 The OpenLDAP Foundation
100 * All rights reserved.
102 * Redistribution and use in source and binary forms, with or without
103 * modification, are permitted only as authorized by the OpenLDAP
106 * A copy of this license is available in the file LICENSE in the
107 * top-level directory of the distribution or, alternatively, at
108 * <http://www.OpenLDAP.org/license.html>.
111 #ifndef _LDAP_PORTABLE_H
112 #define _LDAP_PORTABLE_H
114 /* define this if needed to get reentrant functions */
122 /* define this if needed to get threadsafe functions */
136 #ifndef _SGI_MP_SOURCE
137 #undef _SGI_MP_SOURCE
140 /* end of portable.h.pre */
143 /* begin of portable.h.post */
146 /* don't suck in all of the win32 api */
147 # define WIN32_LEAN_AND_MEAN 1
150 #ifndef LDAP_NEEDS_PROTOTYPES
151 /* force LDAP_P to always include prototypes */
152 #define LDAP_NEEDS_PROTOTYPES 1
156 #if (LDAP_VENDOR_VERSION == 000000) && !defined(LDAP_DEVEL)
159 #if defined(LDAP_DEVEL) && !defined(LDAP_TEST)
169 /* ASCII/EBCDIC converting replacements for stdio funcs
170 * vsnprintf and snprintf are used too, but they are already
171 * checked by the configure script
173 #define fputs ber_pvt_fputs
174 #define fgets ber_pvt_fgets
175 #define printf ber_pvt_printf
176 #define fprintf ber_pvt_fprintf
177 #define vfprintf ber_pvt_vfprintf
178 #define vsprintf ber_pvt_vsprintf
181 #include "ac/fdset.h"
183 #include "ldap_cdefs.h"
184 #include "ldap_features.h"
186 #include "ac/assert.h"
187 #include "ac/localize.h"
189 #endif /* _LDAP_PORTABLE_H */
190 /* end of portable.h.post */
193 AC_CONFIG_HEADERS([include/portable.h:include/portable.hin])
194 AC_CONFIG_HEADERS([include/ldap_features.h:include/ldap_features.hin])
195 AC_CONFIG_HEADERS([include/lber_types.h:include/lber_types.hin])
197 dnl ================================================================
199 AC_MSG_CHECKING(configure arguments)
200 AC_PREFIX_DEFAULT(/usr/local)
203 AC_SUBST(top_builddir)dnl
205 dnl ----------------------------------------------------------------
207 ldap_subdir="/openldap"
210 [ --with-subdir=DIR change default subdirectory used for installs],
217 ldap_subdir="$withval"
220 ldap_subdir="/$withval"
225 AC_SUBST(ldap_subdir)dnl
227 dnl ----------------------------------------------------------------
228 dnl General "enable" options
229 dnl set default to traditional to enable the original debug style
230 OL_ARG_ENABLE(debug,[ --enable-debug enable debugging], yes, [no yes traditional])dnl
231 OL_ARG_ENABLE(dynamic,[ --enable-dynamic enable linking built binaries with dynamic libs], no)dnl
232 OL_ARG_ENABLE(syslog,[ --enable-syslog enable syslog support], auto)dnl
233 OL_ARG_ENABLE(proctitle,[ --enable-proctitle enable proctitle support], yes)dnl
234 dnl OL_ARG_ENABLE(referrals,[ --enable-referrals enable LDAPv2+ Referrals (experimental)], no)dnl
235 ol_enable_referrals=${ol_enable_referrals-no}
236 OL_ARG_ENABLE(ipv6,[ --enable-ipv6 enable IPv6 support], auto)dnl
237 OL_ARG_ENABLE(local,[ --enable-local enable AF_LOCAL (AF_UNIX) socket support], auto)dnl
239 dnl ----------------------------------------------------------------
240 dnl General "with" options
241 OL_ARG_WITH(cyrus_sasl,[ --with-cyrus-sasl with Cyrus SASL support],
242 auto, [auto yes no] )
243 OL_ARG_WITH(fetch,[ --with-fetch with fetch(3) URL support],
244 auto, [auto yes no] )
245 OL_ARG_WITH(gssapi,[ --with-gssapi with GSSAPI support],
246 auto, [auto yes no] )
247 OL_ARG_WITH(threads,[ --with-threads with threads],
248 auto, [auto nt posix mach pth lwp yes no manual] )
249 OL_ARG_WITH(tls,[ --with-tls with TLS/SSL support auto|openssl|gnutls],
250 auto, [auto openssl gnutls yes no] )
251 OL_ARG_WITH(yielding_select,
252 [ --with-yielding-select with implicitly yielding select],
253 auto, [auto yes no manual] )
255 [ --with-mp with multiple precision statistics auto|longlong|long|bignum|gmp],
256 auto, [auto longlong long bignum gmp yes no])
258 [ --with-odbc with specific ODBC support iodbc|unixodbc|odbc32|auto],
259 auto, [auto iodbc unixodbc odbc32] )
261 dnl ----------------------------------------------------------------
263 dnl ----------------------------------------------------------------
265 dnl ----------------------------------------------------------------
267 AC_ARG_ENABLE(xxslapdoptions,[
268 SLAPD (Standalone LDAP Daemon) Options:])
269 OL_ARG_ENABLE(slapd,[ --enable-slapd enable building slapd], yes)dnl
270 OL_ARG_ENABLE(dynacl,[ --enable-dynacl enable run-time loadable ACL support (experimental)], no)dnl
271 OL_ARG_ENABLE(aci,[ --enable-aci enable per-object ACIs (experimental)], no, [no yes mod])dnl
272 OL_ARG_ENABLE(cleartext,[ --enable-cleartext enable cleartext passwords], yes)dnl
273 OL_ARG_ENABLE(crypt,[ --enable-crypt enable crypt(3) passwords], no)dnl
274 OL_ARG_ENABLE(lmpasswd,[ --enable-lmpasswd enable LAN Manager passwords], no)dnl
275 OL_ARG_ENABLE(spasswd,[ --enable-spasswd enable (Cyrus) SASL password verification], no)dnl
276 OL_ARG_ENABLE(modules,[ --enable-modules enable dynamic module support], no)dnl
277 OL_ARG_ENABLE(rewrite,[ --enable-rewrite enable DN rewriting in back-ldap and rwm overlay], auto)dnl
278 OL_ARG_ENABLE(rlookups,[ --enable-rlookups enable reverse lookups of client hostnames], no)dnl
279 OL_ARG_ENABLE(slapi,[ --enable-slapi enable SLAPI support (experimental)], no)dnl
280 OL_ARG_ENABLE(slp,[ --enable-slp enable SLPv2 support], no)dnl
281 OL_ARG_ENABLE(wrappers,[ --enable-wrappers enable tcp wrapper support], no)dnl
283 dnl ----------------------------------------------------------------
284 dnl SLAPD Backend Options
300 AC_ARG_ENABLE(xxslapbackends,[
301 SLAPD Backend Options:])
303 OL_ARG_ENABLE(backends,[ --enable-backends enable all available backends],
305 OL_ARG_ENABLE(bdb,[ --enable-bdb enable Berkeley DB backend],
306 yes, [no yes mod], ol_enable_backends)dnl
307 OL_ARG_ENABLE(dnssrv,[ --enable-dnssrv enable dnssrv backend],
308 no, [no yes mod], ol_enable_backends)dnl
309 OL_ARG_ENABLE(hdb,[ --enable-hdb enable Hierarchical DB backend],
310 yes, [no yes mod], ol_enable_backends)dnl
311 OL_ARG_ENABLE(ldap,[ --enable-ldap enable ldap backend],
312 no, [no yes mod], ol_enable_backends)dnl
313 OL_ARG_ENABLE(meta,[ --enable-meta enable metadirectory backend],
314 no, [no yes mod], ol_enable_backends)dnl
315 OL_ARG_ENABLE(monitor,[ --enable-monitor enable monitor backend],
316 yes, [no yes mod], ol_enable_backends)dnl
317 OL_ARG_ENABLE(ndb,[ --enable-ndb enable MySQL NDB Cluster backend],
318 no, [no yes mod], ol_enable_backends)dnl
319 OL_ARG_ENABLE(null,[ --enable-null enable null backend],
320 no, [no yes mod], ol_enable_backends)dnl
321 OL_ARG_ENABLE(passwd,[ --enable-passwd enable passwd backend],
322 no, [no yes mod], ol_enable_backends)dnl
323 OL_ARG_ENABLE(perl,[ --enable-perl enable perl backend],
324 no, [no yes mod], ol_enable_backends)dnl
325 OL_ARG_ENABLE(relay,[ --enable-relay enable relay backend],
326 yes, [no yes mod], ol_enable_backends)dnl
327 OL_ARG_ENABLE(shell,[ --enable-shell enable shell backend],
328 no, [no yes mod], ol_enable_backends)dnl
329 OL_ARG_ENABLE(sock,[ --enable-sock enable sock backend],
330 no, [no yes mod], ol_enable_backends)dnl
331 OL_ARG_ENABLE(sql,[ --enable-sql enable sql backend],
332 no, [no yes mod], ol_enable_backends)dnl
334 dnl ----------------------------------------------------------------
335 dnl SLAPD Overlay Options
336 Overlays="accesslog \
356 AC_ARG_ENABLE(xxslapoverlays,[
357 SLAPD Overlay Options:])
359 OL_ARG_ENABLE(overlays,[ --enable-overlays enable all available overlays],
361 OL_ARG_ENABLE(accesslog,[ --enable-accesslog In-Directory Access Logging overlay],
362 no, [no yes mod], ol_enable_overlays)
363 OL_ARG_ENABLE(auditlog,[ --enable-auditlog Audit Logging overlay],
364 no, [no yes mod], ol_enable_overlays)
365 OL_ARG_ENABLE(collect,[ --enable-collect Collect overlay],
366 no, [no yes mod], ol_enable_overlays)
367 OL_ARG_ENABLE(constraint,[ --enable-constraint Attribute Constraint overlay],
368 no, [no yes mod], ol_enable_overlays)
369 OL_ARG_ENABLE(dds,[ --enable-dds Dynamic Directory Services overlay],
370 no, [no yes mod], ol_enable_overlays)
371 OL_ARG_ENABLE(deref,[ --enable-deref Dereference overlay],
372 no, [no yes mod], ol_enable_overlays)
373 OL_ARG_ENABLE(dyngroup,[ --enable-dyngroup Dynamic Group overlay],
374 no, [no yes mod], ol_enable_overlays)
375 OL_ARG_ENABLE(dynlist,[ --enable-dynlist Dynamic List overlay],
376 no, [no yes mod], ol_enable_overlays)
377 OL_ARG_ENABLE(memberof,[ --enable-memberof Reverse Group Membership overlay],
378 no, [no yes mod], ol_enable_overlays)
379 OL_ARG_ENABLE(ppolicy,[ --enable-ppolicy Password Policy overlay],
380 no, [no yes mod], ol_enable_overlays)
381 OL_ARG_ENABLE(proxycache,[ --enable-proxycache Proxy Cache overlay],
382 no, [no yes mod], ol_enable_overlays)
383 OL_ARG_ENABLE(refint,[ --enable-refint Referential Integrity overlay],
384 no, [no yes mod], ol_enable_overlays)
385 OL_ARG_ENABLE(retcode,[ --enable-retcode Return Code testing overlay],
386 no, [no yes mod], ol_enable_overlays)
387 OL_ARG_ENABLE(rwm,[ --enable-rwm Rewrite/Remap overlay],
388 no, [no yes mod], ol_enable_overlays)
389 OL_ARG_ENABLE(seqmod,[ --enable-seqmod Sequential Modify overlay],
390 yes, [no yes mod], ol_enable_overlays)
391 OL_ARG_ENABLE(syncprov,[ --enable-syncprov Syncrepl Provider overlay],
392 yes, [no yes mod], ol_enable_overlays)
393 OL_ARG_ENABLE(translucent,[ --enable-translucent Translucent Proxy overlay],
394 no, [no yes mod], ol_enable_overlays)
395 OL_ARG_ENABLE(unique,[ --enable-unique Attribute Uniqueness overlay],
396 no, [no yes mod], ol_enable_overlays)
397 OL_ARG_ENABLE(valsort,[ --enable-valsort Value Sorting overlay],
398 no, [no yes mod], ol_enable_overlays)
400 dnl ----------------------------------------------------------------
401 AC_ARG_ENABLE(xxliboptions,[
402 Library Generation & Linking Options])
406 dnl ----------------------------------------------------------------
409 if test $ol_enable_slapd = no ; then
410 dnl SLAPD was specificallly disabled
411 if test $ol_enable_slapi = yes ; then
412 AC_MSG_WARN([slapd disabled, ignoring --enable-slapi argument])
414 case "$ol_enable_backends" in yes | mod)
415 AC_MSG_WARN([slapd disabled, ignoring --enable-backends argument])
417 for i in $Backends; do
418 eval "ol_tmp=\$ol_enable_$i"
419 if test $ol_tmp != no ; then
420 AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
421 eval "ol_enable_$i=no"
424 if test $ol_enable_modules = yes ; then
425 AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
427 if test $ol_enable_wrappers = yes ; then
428 AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
430 if test $ol_enable_rlookups = yes ; then
431 AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
433 if test $ol_enable_dynacl = yes ; then
434 AC_MSG_WARN([slapd disabled, ignoring --enable-dynacl argument])
436 if test $ol_enable_aci != no ; then
437 AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
439 if test $ol_enable_rewrite = yes ; then
440 AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
443 case "$ol_enable_overlays" in yes | mod)
444 AC_MSG_WARN([slapd disabled, ignoring --enable-overlays argument])
446 for i in $Overlays; do
447 eval "ol_tmp=\$ol_enable_$i"
448 if test $ol_tmp != no ; then
449 AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
450 eval "ol_enable_$i=no"
454 # force settings to no
460 ol_enable_rlookups=no
463 ol_enable_wrappers=no
467 elif test $ol_enable_modules != yes &&
468 test $ol_enable_bdb = no &&
469 test $ol_enable_dnssrv = no &&
470 test $ol_enable_hdb = no &&
471 test $ol_enable_ldap = no &&
472 test $ol_enable_meta = no &&
473 test $ol_enable_monitor = no &&
474 test $ol_enable_ndb = no &&
475 test $ol_enable_null = no &&
476 test $ol_enable_passwd = no &&
477 test $ol_enable_perl = no &&
478 test $ol_enable_relay = no &&
479 test $ol_enable_shell = no &&
480 test $ol_enable_sock = no &&
481 test $ol_enable_sql = no ; then
484 if test $ol_enable_slapd = yes ; then
485 AC_MSG_ERROR([slapd requires a backend])
487 AC_MSG_WARN([skipping slapd, no backend specified])
492 if test $ol_enable_meta/$ol_enable_ldap = yes/no ; then
493 AC_MSG_ERROR([--enable-meta requires --enable-ldap])
496 if test $ol_enable_lmpasswd = yes ; then
497 if test $ol_with_tls = no ; then
498 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
502 if test $ol_enable_spasswd = yes ; then
503 if test $ol_with_cyrus_sasl = no ; then
504 AC_MSG_ERROR([options require --with-cyrus-sasl])
506 ol_with_cyrus_sasl=yes
511 dnl ----------------------------------------------------------------
564 SLAPD_STATIC_OVERLAYS=
565 SLAPD_DYNAMIC_OVERLAYS=
567 SLAPD_MODULES_LDFLAGS=
568 SLAPD_MODULES_CPPFLAGS=
570 SLAPD_STATIC_BACKENDS=back-ldif
571 SLAPD_DYNAMIC_BACKENDS=
596 dnl ================================================================
597 dnl Checks for programs
599 AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
601 dnl ----------------------------------------------------------------
603 dnl Determine which C translator to use
606 dnl AIX Thread requires we use cc_r or xlc_r.
607 dnl But only do this IF AIX and CC is not set
608 dnl and threads are auto|yes|posix.
610 dnl If we find cc_r|xlc_r, force pthreads and assume
611 dnl pthread_create is in $LIBS (ie: don't bring in
612 dnl any additional thread libraries)
613 dnl If we do not find cc_r|xlc_r, disable threads
617 *-*-aix*) dnl all AIX is not a good idea.
618 if test -z "$CC" ; then
619 case "$ol_with_threads" in
620 auto | yes | posix) ol_aix_threads=yes ;;
626 if test $ol_aix_threads = yes ; then
627 if test -z "${CC}" ; then
628 AC_CHECK_PROGS(CC,cc_r xlc_r cc)
630 if test "$CC" = cc ; then
631 dnl no CC! don't allow --with-threads
632 if test $ol_with_threads != auto ; then
633 AC_MSG_ERROR([--with-threads requires cc_r (or other suitable compiler) on AIX])
635 AC_MSG_WARN([disabling threads, no cc_r on AIX])
641 case ${CC} in cc_r | xlc_r)
642 ol_with_threads=posix
643 ol_cv_pthread_create=yes
648 if test -z "${CC}"; then
649 AC_CHECK_PROGS(CC,cc gcc,missing)
651 if test "${CC}" = "missing" ; then
652 AC_MSG_ERROR([Unable to locate cc(1) or suitable replacement. Check PATH or set CC.])
656 if test -z "${AR}"; then
657 AC_CHECK_PROGS(AR,ar gar,missing)
659 if test "${AR}" = "missing" ; then
660 AC_MSG_ERROR([Unable to locate ar(1) or suitable replacement. Check PATH or set AR.])
668 dnl ----------------------------------------------------------------
671 if test $ol_enable_perl != no ; then
672 AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)
674 if test "no$PERLBIN" = "no" ; then
675 if test $ol_enable_perl = yes ; then
676 AC_MSG_ERROR([could not locate perl])
680 PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
681 PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e 's/ -lc / /' -e 's/ -lc$//'`"
683 if test x"$ol_enable_perl" = "xyes" ; then
684 SLAPD_PERL_LDFLAGS="$PERL_LDFLAGS"
686 MOD_PERL_LDFLAGS="$PERL_LDFLAGS"
688 dnl should check perl version
696 dnl ----------------------------------------------------------------
697 dnl Checks for Windows NT
699 *mingw32* ) ac_cv_mingw32=yes ;;
700 *cygwin* ) ac_cv_cygwin=yes ;;
703 dnl ----------------------------------------------------------------
704 dnl Checks for file extensions
707 AC_DEFINE_UNQUOTED(EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
709 dnl ----------------------------------------------------------------
710 dnl BeOS requires -lbe -lroot -lnet
711 AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])
713 dnl ----------------------------------------------------------------
714 dnl OpenLDAP requires STDC features
716 if test "X${ac_cv_prog_cc_stdc}" = "Xno" ; then
717 AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
720 dnl ----------------------------------------------------------------
721 dnl Check cc depend flags
723 if test "${ol_cv_mkdep}" = no ; then
724 # this will soon become an error
725 AC_MSG_WARN([do not know how to generate dependencies])
728 dnl ----------------------------------------------------------------
729 dnl Check for AIX security library
730 AC_CHECK_LIB(s, afopen, [
732 AC_DEFINE(HAVE_AIX_SECURITY,1,[define if you have AIX security lib])
735 dnl ----------------------------------------------------------------
736 dnl Check for IBM OS/390
740 AC_DEFINE(BOTH_STRINGS_H,1,[define to use both <string.h> and <strings.h>])
744 dnl ----------------------------------------------------------------
745 dnl Check for module support
747 WITH_MODULES_ENABLED=no
748 if test $ol_enable_modules != no ; then
749 AC_CHECK_HEADERS(ltdl.h)
751 if test $ac_cv_header_ltdl_h = no ; then
752 AC_MSG_ERROR([could not locate libtool ltdl.h])
755 AC_CHECK_LIB(ltdl, lt_dlinit, [
757 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
760 if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then
761 AC_MSG_ERROR([could not locate libtool -lltdl])
764 WITH_MODULES_ENABLED=yes
767 for i in $Backends; do
768 eval "ol_tmp=\$ol_enable_$i"
769 if test $ol_tmp = mod ; then
770 AC_MSG_WARN([building static $i backend])
771 eval "ol_enable_$i=yes"
774 for i in $Overlays; do
775 eval "ol_tmp=\$ol_enable_$i"
776 if test $ol_tmp = mod ; then
777 AC_MSG_WARN([building static $i overlay])
778 eval "ol_enable_$i=yes"
783 dnl ----------------------------------------------------------------
784 dnl Checks for header files.
787 if test $ol_cv_header_stdc != yes; then
788 AC_MSG_WARN([could not locate Standard C compliant headers])
845 dnl Only check Winsock on MinGW
846 if test "$ac_cv_mingw32" = yes -o "$ol_cv_msvc" = yes ; then
847 AC_CHECK_HEADERS( winsock.h winsock2.h )
850 AC_CHECK_HEADERS( resolv.h, [], [],
851 [$ac_includes_default
852 #include <netinet/in.h>
855 AC_CHECK_HEADERS( netinet/tcp.h, [], [],
856 [$ac_includes_default
857 #include <netinet/in.h>
860 AC_CHECK_HEADERS( sys/ucred.h, [], [],
861 [$ac_includes_default
862 #ifdef HAVE_SYS_PARAM_H
863 #include <sys/param.h>
867 dnl ----------------------------------------------------------------
868 dnl Checks for libraries
870 AC_CHECK_FUNCS( sigaction sigset )
872 dnl HP-UX requires -lV3
873 dnl this is not needed on newer versions of HP-UX
874 if test $ac_cv_func_sigaction = no && test $ac_cv_func_sigaction = no ; then
875 AC_CHECK_LIB(V3, sigset)
878 if test $ol_cv_msvc ; then
882 dnl The following is INTENTIONALLY scripted out because shell does not
883 dnl support variable names with the '@' character, which is what
884 dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
885 if test "$ac_cv_header_winsock_h" = yes; then
886 AC_CACHE_CHECK([for winsock], [ol_cv_winsock],[
888 for curlib in none ws2_32 wsock32; do
889 if test curlib != none ; then
890 LIBS="$save_LIBS -l$curlib"
892 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <winsock.h>
895 select(0,NULL,NULL,NULL,NULL);
898 ]])],[ol_cv_winsock=$curlib],[ol_cv_winsock=no])
900 test "$ol_cv_winsock" != no && break
905 if test $ol_cv_winsock != no ; 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
912 if test $ol_cv_winsock != none -a $ol_cv_winsock != yes ; then
913 LIBS="$LIBS -l$ol_cv_winsock"
916 if test $ol_cv_winsock = ws2_32 -o $ol_cv_winsock = yes ; then
917 AC_DEFINE(HAVE_WINSOCK2, 1, [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 if test $ac_cv_func_poll = yes; then
953 AC_CHECK_HEADERS( poll.h sys/poll.h )
956 dnl ----------------------------------------------------------------
957 AC_CHECK_HEADERS( sys/epoll.h )
958 if test "${ac_cv_header_sys_epoll_h}" = yes; then
959 AC_MSG_CHECKING(for epoll system call)
960 AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv)
962 int epfd = epoll_create(256);
963 exit (epfd == -1 ? 1 : 0);
964 }]])],[AC_MSG_RESULT(yes)
965 AC_DEFINE(HAVE_EPOLL,1, [define if your system supports epoll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
968 dnl ----------------------------------------------------------------
969 AC_CHECK_HEADERS( sys/devpoll.h )
970 dnl "/dev/poll" needs <sys/poll.h> as well...
971 if test "${ac_cv_header_sys_devpoll_h}" = yes \
972 -a "${ac_cv_header_poll_h}" = yes ; \
974 AC_MSG_CHECKING(for /dev/poll)
975 AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv)
977 int devpollfd = open("/dev/poll", /* O_RDWR */ 2);
978 exit (devpollfd == -1 ? 1 : 0);
979 }]])],[AC_MSG_RESULT(yes)
980 AC_DEFINE(HAVE_DEVPOLL,1, [define if your system supports /dev/poll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
983 dnl ----------------------------------------------------------------
986 dnl ----------------------------------------------------------------
987 dnl require POSIX regex
988 AC_CHECK_HEADERS( regex.h, [], [],
989 [$ac_includes_default
990 #ifdef HAVE_SYS_TYPES_H
991 #include <sys/types.h>
995 if test "$ac_cv_header_regex_h" != yes ; then
996 AC_MSG_ERROR([POSIX regex.h required.])
998 AC_SEARCH_LIBS(regfree, [regex gnuregex],
999 :, AC_MSG_ERROR([POSIX regex required.]))
1002 if test "$ol_cv_c_posix_regex" = no ; then
1003 AC_MSG_ERROR([broken POSIX regex!])
1006 dnl ----------------------------------------------------------------
1010 AC_CHECK_HEADERS(sys/uuid.h)
1011 if test $ac_cv_header_sys_uuid_h = yes ; then
1013 AC_SEARCH_LIBS([uuid_to_str], [uuid], [have_uuid=yes], :)
1016 if test $have_uuid = yes ; then
1017 AC_DEFINE(HAVE_UUID_TO_STR,1,
1018 [define if you have uuid_to_str()])
1020 test "$ac_cv_search_uuid_to_str" = "none required" || \
1021 SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_to_str"
1025 dnl Look for uuid_generate
1026 if test $have_uuid = no ; then
1027 AC_CHECK_HEADERS(uuid/uuid.h)
1028 if test $ac_cv_header_uuid_uuid_h = yes ; then
1030 AC_SEARCH_LIBS([uuid_generate], [uuid], [have_uuid=yes], :)
1033 if test $have_uuid = yes ; then
1034 AC_DEFINE(HAVE_UUID_GENERATE,1,
1035 [define if you have uuid_generate()])
1037 test "$ac_cv_search_uuid_generate" = "none required" || \
1038 SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_generate"
1043 dnl For windows, check for the need of RPCRT for UUID function support
1044 if test $have_uuid = no ; then
1045 AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
1047 LIBS="$LIBS -lrpcrt4"
1048 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1049 int __stdcall UuidCreate(void *);
1050 int __stdcall UuidToStringA(void *,void **);
1054 ]])],[need_rpcrt=yes],[need_rpcrt=no])
1055 if test $need_rpcrt = yes; then
1056 SLAPD_LIBS="$SLAPD_LIBS -lrpcrt4"
1059 AC_MSG_RESULT($need_rpcrt)
1062 dnl ----------------------------------------------------------------
1063 dnl Check for resolver routines
1067 if test "$ol_cv_lib_resolver" != no ; then
1068 AC_DEFINE(HAVE_RES_QUERY,1,
1069 [define if you have res_query()])
1071 if test "$ol_enable_dnssrv" != no ; then
1075 if test "$ol_cv_lib_resolver" != yes ; then
1076 LIBS="$ol_cv_lib_resolver $LIBS"
1080 if test "$ol_enable_dnssrv" = yes || test "$ol_enable_dnssrv" = mod ; then
1081 if test "$ol_link_dnssrv" = no ; then
1082 AC_MSG_ERROR([DNSSRV requires res_query()])
1088 AC_CHECK_FUNCS( hstrerror )
1090 dnl ----------------------------------------------------------------
1091 dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
1092 dnl PF_LOCAL may use getaddrinfo in available
1093 AC_CHECK_FUNCS( getaddrinfo getnameinfo gai_strerror inet_ntop )
1096 if test $ac_cv_func_getaddrinfo = no || test $ac_cv_func_inet_ntop = no ; then
1097 if test $ol_enable_ipv6 = yes ; then
1098 AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
1100 elif test $ol_enable_ipv6 != no ; then
1101 AC_CACHE_CHECK([INET6_ADDRSTRLEN],[ol_cv_inet6_addrstrlen],[
1102 AC_EGREP_CPP(__has_inet6_addrstrlen__,[
1103 # include <netinet/in.h>
1104 # ifdef INET6_ADDRSTRLEN
1105 __has_inet6_addrstrlen__;
1107 ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])])
1110 AC_CACHE_CHECK([struct sockaddr_storage],ol_cv_struct_sockaddr_storage,[
1111 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1112 #include <sys/types.h>
1113 #include <sys/socket.h>
1115 struct sockaddr_storage ss;
1116 ]])],[ol_cv_struct_sockaddr_storage=yes],[ol_cv_struct_sockaddr_storage=no])])
1118 if test $ol_cv_inet6_addrstrlen = yes &&
1119 test $ol_cv_struct_sockaddr_storage = yes ; then
1121 elif test $ol_enable_ipv6 = yes &&
1122 test $ol_cv_inet6_addrstrlen = no ; then
1123 AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
1124 elif test $ol_enable_ipv6 = yes &&
1125 test $ol_cv_struct_sockaddr_storage = no ; then
1126 AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage])
1130 if test $ol_enable_local != no ; then
1131 AC_CHECK_HEADERS( sys/un.h )
1133 if test $ol_enable_local = auto ; then
1134 ol_enable_local=$ac_cv_header_sys_un_h
1135 elif test $ac_cv_header_sys_un_h = no ; then
1136 AC_MSG_ERROR([AF_LOCAL domain support requires sys/un.h])
1140 dnl ----------------------------------------------------------------
1144 case $ol_with_gssapi in yes | auto)
1147 AC_CHECK_HEADERS(gssapi/gssapi.h)
1148 if test $ac_cv_header_gssapi_gssapi_h = yes ; then
1149 ol_header_gssapi=yes
1151 AC_CHECK_HEADERS(gssapi.h)
1152 if test $ac_cv_header_gssapi_h = yes ; then
1153 ol_header_gssapi=yes
1156 dnl## not every gssapi has gss_oid_to_str()
1157 dnl## as it's not defined in the GSSAPI V2 API
1160 LIBS="$LIBS $GSSAPI_LIBS"
1161 AC_CHECK_FUNCS(gss_oid_to_str)
1165 if test $ol_header_gssapi = yes ; then
1166 dnl## we check for gss_wrap
1167 dnl## as it's new to the GSSAPI V2 API
1168 AC_CHECK_LIB(gssapi, gss_wrap,
1169 [ol_link_gssapi=yes;GSSAPI_LIBS="-lgssapi"],
1170 [ol_link_gssapi=no])
1171 if test $ol_link_gssapi != yes ; then
1172 AC_CHECK_LIB(gssapi_krb5, gss_wrap,
1173 [ol_link_gssapi=yes;GSSAPI_LIBS="-lgssapi_krb5"],
1174 [ol_link_gssapi=no])
1182 if test $ol_link_gssapi = yes; then
1183 AC_DEFINE(HAVE_GSSAPI, 1, [define if you have GSSAPI])
1185 elif test $ol_with_gssapi = auto ; then
1186 AC_MSG_WARN([Could not locate GSSAPI package])
1187 AC_MSG_WARN([GSSAPI authentication not supported!])
1188 elif test $ol_with_gssapi = yes ; then
1189 AC_MSG_ERROR([GSSAPI detection failed])
1192 dnl ----------------------------------------------------------------
1195 if test $ol_with_tls = yes ; then
1200 if test $ol_with_tls = openssl || test $ol_with_tls = auto ; then
1201 AC_CHECK_HEADERS(openssl/ssl.h)
1203 if test $ac_cv_header_openssl_ssl_h = yes ; then
1204 AC_CHECK_LIB(ssl, SSL_library_init,
1206 need_rsaref=no], [have_openssl=no],
1209 if test $have_openssl = no ; then
1210 AC_CHECK_LIB(ssl, ssl3_accept,
1212 need_rsaref=yes], [have_openssl=no],
1213 [-lcrypto -lRSAglue -lrsaref])
1216 if test $have_openssl = yes ; then
1220 AC_DEFINE(HAVE_OPENSSL, 1,
1221 [define if you have OpenSSL])
1223 if test $need_rsaref = yes; then
1224 AC_DEFINE(HAVE_RSAREF, 1,
1225 [define if OpenSSL needs RSAref])
1227 TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
1229 TLS_LIBS="-lssl -lcrypto"
1233 if test $ol_cv_ssl_crl_compat = yes ; then
1234 AC_DEFINE(HAVE_OPENSSL_CRL, 1,
1235 [define if you have OpenSSL with CRL checking capability])
1241 if test $ol_link_tls = no ; then
1242 if test $ol_with_tls = gnutls || test $ol_with_tls = auto ; then
1243 AC_CHECK_HEADERS(gnutls/gnutls.h)
1245 if test $ac_cv_header_gnutls_gnutls_h = yes ; then
1246 AC_CHECK_LIB(gnutls, gnutls_init,
1247 [have_gnutls=yes], [have_gnutls=no])
1249 if test $have_gnutls = yes ; then
1255 AC_DEFINE(HAVE_GNUTLS, 1,
1256 [define if you have GNUtls])
1263 if test $ol_link_tls = yes ; then
1264 AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
1266 elif test $ol_with_tls = auto ; then
1267 AC_MSG_WARN([Could not locate TLS/SSL package])
1268 AC_MSG_WARN([TLS data protection not supported!])
1269 elif test $ol_with_tls != no ; then
1270 AC_MSG_ERROR([Could not locate TLS/SSL package])
1272 AC_MSG_WARN([TLS data protection not supported!])
1275 dnl ----------------------------------------------------------------
1276 dnl LAN Manger password checking requires DES from OpenSSL
1277 if test $ol_enable_lmpasswd != no; then
1278 if test $ol_link_tls != yes ; then
1279 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
1282 AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
1285 dnl ----------------------------------------------------------------
1289 case $ol_with_threads in auto | yes | nt)
1293 if test "$ol_cv_nt_threads" = yes ; then
1295 ol_with_threads=found
1296 ol_with_yielding_select=yes
1298 AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager])
1299 AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log])
1302 if test $ol_with_threads = nt ; then
1303 AC_MSG_ERROR([could not locate NT Threads])
1308 case $ol_with_threads in auto | yes | posix)
1310 AC_CHECK_HEADERS(pthread.h)
1312 if test $ac_cv_header_pthread_h = yes ; then
1313 OL_POSIX_THREAD_VERSION
1315 if test $ol_cv_pthread_version != 0 ; then
1316 AC_DEFINE_UNQUOTED(HAVE_PTHREADS,$ol_cv_pthread_version,
1317 [define to pthreads API spec revision])
1319 AC_MSG_ERROR([unknown pthread version])
1322 # consider threads found
1323 ol_with_threads=found
1325 OL_HEADER_LINUX_THREADS
1326 OL_HEADER_GNU_PTH_PTHREAD_H
1328 if test $ol_cv_header_gnu_pth_pthread_h = no ; then
1329 AC_CHECK_HEADERS(sched.h)
1332 dnl Now the hard part, how to link?
1334 dnl currently supported checks:
1336 dnl Check for no flags
1337 dnl pthread_create() in $LIBS
1339 dnl Check special pthread (final) flags
1340 dnl [skipped] pthread_create() with -mt (Solaris) [disabled]
1341 dnl pthread_create() with -kthread (FreeBSD)
1342 dnl pthread_create() with -pthread (FreeBSD/Digital Unix)
1343 dnl pthread_create() with -pthreads (?)
1344 dnl pthread_create() with -mthreads (AIX)
1345 dnl pthread_create() with -thread (?)
1347 dnl Check pthread (final) libraries
1348 dnl pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
1349 dnl pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
1350 dnl [skipped] pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
1351 dnl pthread_join() -Wl,-woff,85 -lpthread (IRIX)
1352 dnl pthread_create() in -lpthread (many)
1353 dnl pthread_create() in -lc_r (FreeBSD)
1355 dnl Check pthread (draft4) flags (depreciated)
1356 dnl pthread_create() with -threads (OSF/1)
1358 dnl Check pthread (draft4) libraries (depreciated)
1359 dnl pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
1360 dnl pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
1361 dnl pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
1362 dnl pthread_create() in -lpthreads (many)
1365 dnl pthread_create in $LIBS
1366 AC_CACHE_CHECK([for pthread_create in default libraries],
1367 ol_cv_pthread_create,[
1368 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1369 [ol_cv_pthread_create=yes],
1370 [ol_cv_pthread_create=no],
1371 [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION,
1372 [ol_cv_pthread_create=yes],
1373 [ol_cv_pthread_create=no])])])
1375 if test $ol_cv_pthread_create != no ; then
1376 ol_link_threads=posix
1380 dnl OL_PTHREAD_TRY([-mt], [ol_cv_pthread_mt])
1381 OL_PTHREAD_TRY([-kthread], [ol_cv_pthread_kthread])
1382 OL_PTHREAD_TRY([-pthread], [ol_cv_pthread_pthread])
1383 OL_PTHREAD_TRY([-pthreads], [ol_cv_pthread_pthreads])
1384 OL_PTHREAD_TRY([-mthreads], [ol_cv_pthread_mthreads])
1385 OL_PTHREAD_TRY([-thread], [ol_cv_pthread_thread])
1387 OL_PTHREAD_TRY([-lpthread -lmach -lexc -lc_r],
1388 [ol_cv_pthread_lpthread_lmach_lexc_lc_r])
1389 OL_PTHREAD_TRY([-lpthread -lmach -lexc],
1390 [ol_cv_pthread_lpthread_lmach_lexc])
1391 dnl OL_PTHREAD_TRY([-lpthread -lexc],
1392 dnl [ol_cv_pthread_lpthread_lexc])
1394 OL_PTHREAD_TRY([-lpthread -Wl,-woff,85],
1395 [ol_cv_pthread_lib_lpthread_woff])
1397 OL_PTHREAD_TRY([-lpthread], [ol_cv_pthread_lpthread])
1398 OL_PTHREAD_TRY([-lc_r], [ol_cv_pthread_lc_r])
1400 OL_PTHREAD_TRY([-threads], [ol_cv_pthread_threads])
1402 OL_PTHREAD_TRY([-lpthreads -lmach -lexc -lc_r],
1403 [ol_cv_pthread_lpthreads_lmach_lexc_lc_r])
1404 OL_PTHREAD_TRY([-lpthreads -lmach -lexc],
1405 [ol_cv_pthread_lpthreads_lmach_lexc])
1406 OL_PTHREAD_TRY([-lpthreads -lexc],
1407 [ol_cv_pthread_lpthreads_lexc])
1409 OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
1411 if test $ol_link_threads != no ; then
1412 LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
1415 save_CPPFLAGS="$CPPFLAGS"
1417 LIBS="$LTHREAD_LIBS $LIBS"
1419 dnl All POSIX Thread (final) implementations should have
1420 dnl sched_yield instead of pthread yield.
1421 dnl check for both, and thr_yield for Solaris
1422 AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
1424 if test $ac_cv_func_sched_yield = no &&
1425 test $ac_cv_func_pthread_yield = no &&
1426 test $ac_cv_func_thr_yield = no ; then
1427 dnl Digital UNIX has sched_yield() in -lrt
1428 AC_CHECK_LIB(rt, sched_yield,
1429 [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
1430 AC_DEFINE(HAVE_SCHED_YIELD,1,
1431 [Define if you have the sched_yield function.])
1432 ac_cv_func_sched_yield=yes],
1433 [ac_cv_func_sched_yield=no])
1435 if test $ac_cv_func_sched_yield = no &&
1436 test $ac_cv_func_pthread_yield = no &&
1437 test "$ac_cv_func_thr_yield" = no ; then
1438 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
1441 dnl Check functions for compatibility
1442 AC_CHECK_FUNCS(pthread_kill)
1444 dnl Check for pthread_rwlock_destroy with <pthread.h>
1445 dnl as pthread_rwlock_t may not be defined.
1446 AC_CACHE_CHECK([for pthread_rwlock_destroy with <pthread.h>],
1447 [ol_cv_func_pthread_rwlock_destroy], [
1449 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1450 #include <pthread.h>
1451 pthread_rwlock_t rwlock;
1452 ]], [[pthread_rwlock_destroy(&rwlock);]])],[ol_cv_func_pthread_rwlock_destroy=yes],[ol_cv_func_pthread_rwlock_destroy=no])
1454 if test $ol_cv_func_pthread_rwlock_destroy = yes ; then
1455 AC_DEFINE(HAVE_PTHREAD_RWLOCK_DESTROY,1,
1456 [define if you have pthread_rwlock_destroy function])
1459 dnl Check for pthread_detach with <pthread.h> inclusion
1460 dnl as it's symbol may have been mangled.
1461 AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
1462 [ol_cv_func_pthread_detach], [
1464 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1465 #include <pthread.h>
1467 #define NULL (void*)0
1469 ]], [[pthread_detach(NULL);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
1472 if test $ol_cv_func_pthread_detach = no ; then
1473 AC_MSG_ERROR([could not locate pthread_detach()])
1476 AC_DEFINE(HAVE_PTHREAD_DETACH,1,
1477 [define if you have pthread_detach function])
1479 dnl Check for setconcurreny functions
1481 pthread_setconcurrency \
1482 pthread_getconcurrency \
1483 thr_setconcurrency \
1484 thr_getconcurrency \
1487 OL_SYS_LINUX_THREADS
1490 if test $ol_cv_linux_threads = error; then
1491 AC_MSG_ERROR([LinuxThreads header/library mismatch]);
1494 AC_CACHE_CHECK([if pthread_create() works],
1495 ol_cv_pthread_create_works,[
1496 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1497 [ol_cv_pthread_create_works=yes],
1498 [ol_cv_pthread_create_works=no],
1500 ol_cv_pthread_create_works=yes])])
1502 if test $ol_cv_pthread_create_works = no ; then
1503 AC_MSG_ERROR([pthread_create is not usable, check environment settings])
1506 ol_replace_broken_yield=no
1507 dnl case "$target" in
1509 dnl AC_CHECK_FUNCS(nanosleep)
1510 dnl ol_replace_broken_yield=yes
1514 if test $ol_replace_broken_yield = yes ; then
1515 AC_DEFINE([REPLACE_BROKEN_YIELD],1,
1516 [define if sched_yield yields the entire process])
1519 dnl Check if select causes an yield
1520 if test $ol_with_yielding_select = auto ; then
1521 AC_CACHE_CHECK([if select yields when using pthreads],
1522 ol_cv_pthread_select_yields,[
1523 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1524 #include <sys/types.h>
1525 #include <sys/time.h>
1527 #include <pthread.h>
1529 #define NULL (void*) 0
1532 static int fildes[2];
1534 static void *task(p)
1546 FD_SET(fildes[0], &rfds);
1548 /* we're not interested in any fds */
1549 i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
1556 exit(0); /* if we exit here, the select blocked the whole process */
1559 int main(argc, argv)
1565 /* create a pipe to select */
1566 if(pipe(&fildes[0])) {
1571 #ifdef HAVE_PTHREAD_SETCONCURRENCY
1572 (void) pthread_setconcurrency(2);
1574 #ifdef HAVE_THR_SETCONCURRENCY
1575 /* Set Solaris LWP concurrency to 2 */
1576 thr_setconcurrency(2);
1580 #if HAVE_PTHREADS < 6
1581 pthread_create(&t, pthread_attr_default, task, NULL);
1583 pthread_create(&t, NULL, task, NULL);
1586 /* make sure task runs first */
1587 #ifdef HAVE_THR_YIELD
1589 #elif defined( HAVE_SCHED_YIELD )
1591 #elif defined( HAVE_PTHREAD_YIELD )
1596 }]])],[ol_cv_pthread_select_yields=no],[ol_cv_pthread_select_yields=yes],[ol_cv_pthread_select_yields=cross])])
1598 if test $ol_cv_pthread_select_yields = cross ; then
1599 AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])
1602 if test $ol_cv_pthread_select_yields = yes ; then
1603 ol_with_yielding_select=yes
1608 CPPFLAGS="$save_CPPFLAGS"
1611 AC_MSG_ERROR([could not locate usable POSIX Threads])
1615 if test $ol_with_threads = posix ; then
1616 AC_MSG_ERROR([could not locate POSIX Threads])
1621 case $ol_with_threads in auto | yes | mach)
1623 dnl check for Mach CThreads
1624 AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
1625 if test $ac_cv_header_mach_cthreads_h = yes ; then
1626 ol_with_threads=found
1628 dnl check for cthreads support in current $LIBS
1629 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1631 if test $ol_link_threads = no ; then
1633 dnl this test needs work
1634 AC_CACHE_CHECK([for cthread_fork with -all_load],
1635 [ol_cv_cthread_all_load], [
1638 LIBS="-all_load $LIBS"
1639 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <mach/cthreads.h>]], [[
1640 cthread_fork((void *)0, (void *)0);
1641 ]])],[ol_cv_cthread_all_load=yes],[ol_cv_cthread_all_load=no])
1642 dnl restore the LIBS
1646 if test $ol_cv_cthread_all_load = yes ; then
1647 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
1648 ol_link_threads=mach
1649 ol_with_threads=found
1653 elif test $ac_cv_header_cthreads_h = yes ; then
1654 dnl Hurd variant of Mach Cthreads
1655 dnl uses <cthreads.h> and -lthreads
1657 ol_with_threads=found
1661 LIBS="$LIBS -lthreads"
1662 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1665 if test $ol_link_threads = yes ; then
1666 LTHREAD_LIBS="-lthreads"
1667 ol_link_threads=mach
1668 ol_with_threads=found
1670 AC_MSG_ERROR([could not link with Mach CThreads])
1673 elif test $ol_with_threads = mach ; then
1674 AC_MSG_ERROR([could not locate Mach CThreads])
1677 if test $ol_link_threads = mach ; then
1678 AC_DEFINE(HAVE_MACH_CTHREADS,1,
1679 [define if you have Mach Cthreads])
1680 elif test $ol_with_threads = found ; then
1681 AC_MSG_ERROR([could not link with Mach CThreads])
1686 case $ol_with_threads in auto | yes | pth)
1688 AC_CHECK_HEADERS(pth.h)
1690 if test $ac_cv_header_pth_h = yes ; then
1691 AC_CHECK_LIB(pth, pth_version, [have_pth=yes], [have_pth=no])
1693 if test $have_pth = yes ; then
1694 AC_DEFINE(HAVE_GNU_PTH,1,[if you have GNU Pth])
1695 LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
1697 ol_with_threads=found
1699 if test $ol_with_yielding_select = auto ; then
1700 ol_with_yielding_select=yes
1707 case $ol_with_threads in auto | yes | lwp)
1709 dnl check for SunOS5 LWP
1710 AC_CHECK_HEADERS(thread.h synch.h)
1711 if test $ac_cv_header_thread_h = yes &&
1712 test $ac_cv_header_synch_h = yes ; then
1713 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
1715 if test $have_thr = yes ; then
1716 AC_DEFINE(HAVE_THR,1,
1717 [if you have Solaris LWP (thr) package])
1718 LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
1721 if test $ol_with_yielding_select = auto ; then
1722 ol_with_yielding_select=yes
1725 dnl Check for setconcurreny functions
1727 thr_setconcurrency \
1728 thr_getconcurrency \
1733 dnl check for SunOS4 LWP
1734 AC_CHECK_HEADERS(lwp/lwp.h)
1735 if test $ac_cv_header_lwp_lwp_h = yes ; then
1736 AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
1738 if test $have_lwp = yes ; then
1739 AC_DEFINE(HAVE_LWP,1,
1740 [if you have SunOS LWP package])
1741 LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
1744 if test $ol_with_yielding_select = auto ; then
1745 ol_with_yielding_select=no
1752 if test $ol_with_yielding_select = yes ; then
1753 AC_DEFINE(HAVE_YIELDING_SELECT,1,
1754 [define if select implicitly yields])
1757 if test $ol_with_threads = manual ; then
1758 dnl User thinks he can manually configure threads.
1761 AC_MSG_WARN([thread defines and link options must be set manually])
1763 AC_CHECK_HEADERS(pthread.h sched.h)
1764 AC_CHECK_FUNCS(sched_yield pthread_yield)
1765 OL_HEADER_LINUX_THREADS
1767 AC_CHECK_HEADERS(mach/cthreads.h)
1768 AC_CHECK_HEADERS(lwp/lwp.h)
1769 AC_CHECK_HEADERS(thread.h synch.h)
1772 if test $ol_link_threads != no && test $ol_link_threads != nt ; then
1773 dnl needed to get reentrant/threadsafe versions
1775 AC_DEFINE(REENTRANT,1)
1776 AC_DEFINE(_REENTRANT,1)
1777 AC_DEFINE(THREAD_SAFE,1)
1778 AC_DEFINE(_THREAD_SAFE,1)
1779 AC_DEFINE(THREADSAFE,1)
1780 AC_DEFINE(_THREADSAFE,1)
1781 AC_DEFINE(_SGI_MP_SOURCE,1)
1783 dnl The errno declaration may dependent upon _REENTRANT.
1784 dnl If it does, we must link with thread support.
1785 AC_CACHE_CHECK([for thread specific errno],
1786 [ol_cv_errno_thread_specific], [
1787 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <errno.h>]], [[errno = 0;]])],[ol_cv_errno_thread_specific=yes],[ol_cv_errno_thread_specific=no])
1790 dnl The h_errno declaration may dependent upon _REENTRANT.
1791 dnl If it does, we must link with thread support.
1792 AC_CACHE_CHECK([for thread specific h_errno],
1793 [ol_cv_h_errno_thread_specific], [
1794 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])
1797 if test $ol_cv_errno_thread_specific != yes ||
1798 test $ol_cv_h_errno_thread_specific != yes ; then
1799 LIBS="$LTHREAD_LIBS $LIBS"
1803 dnl When in thread environment, use
1804 dnl #if defined( HAVE_REENTRANT_FUNCTIONS ) || defined( HAVE_FUNC_R )
1807 dnl # if defined( HAVE_THREADS )
1811 dnl # if defined( HAVE_THREADS )
1816 dnl HAVE_REENTRANT_FUNCTIONS is derived from:
1817 dnl _POSIX_REENTRANT_FUNCTIONS
1818 dnl _POSIX_THREAD_SAFE_FUNCTIONS
1819 dnl _POSIX_THREADSAFE_FUNCTIONS
1821 dnl and is currently defined in <ldap_pvt_thread.h>
1823 dnl HAVE_THREADS is defined by <ldap_pvt_thread.h> iff -UNO_THREADS
1825 dnl libldap/*.c should only include <ldap_pvt_thread.h> iff
1826 dnl LDAP_R_COMPILE is defined. ie:
1827 dnl #ifdef LDAP_R_COMPILE
1828 dnl # include <ldap_pvt_thread.h>
1831 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
1832 dnl specifically for compiling the threadsafe version of
1833 dnl the ldap library (-lldap_r).
1835 dnl dnl check for reentrant/threadsafe functions
1837 dnl dnl note: these should only be used when linking
1838 dnl dnl with $LTHREAD_LIBS
1840 dnl save_CPPFLAGS="$CPPFLAGS"
1841 dnl save_LIBS="$LIBS"
1842 dnl LIBS="$LTHREAD_LIBS $LIBS"
1843 dnl AC_CHECK_FUNCS( \
1845 dnl gethostbyaddr_r gethostbyname_r \
1846 dnl feof_unlocked unlocked_feof \
1847 dnl putc_unlocked unlocked_putc \
1848 dnl flockfile ftrylockfile \
1850 dnl CPPFLAGS="$save_CPPFLAGS"
1851 dnl LIBS="$save_LIBS"
1854 if test $ol_link_threads = no ; then
1855 if test $ol_with_threads = yes ; then
1856 AC_MSG_ERROR([no suitable thread support])
1859 if test $ol_with_threads = auto ; then
1860 AC_MSG_WARN([no suitable thread support, disabling threads])
1864 AC_DEFINE(NO_THREADS,1,
1865 [define if you have (or want) no threads])
1872 if test $ol_link_threads != no ; then
1873 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1,
1874 [define to 1 if library is thread safe])
1877 dnl ----------------------------------------------------------------
1878 dnl Tests for reentrant functions necessary to build -lldap_r
1881 gethostbyname_r gethostbyaddr_r \
1884 if test "$ac_cv_func_ctime_r" = no ; then
1885 ol_cv_func_ctime_r_nargs=0
1887 OL_FUNC_CTIME_R_NARGS
1888 dnl OL_FUNC_CTIME_R_TYPE
1891 if test "$ac_cv_func_gethostbyname_r" = yes ; then
1892 OL_FUNC_GETHOSTBYNAME_R_NARGS
1894 ol_cv_func_gethostbyname_r_nargs=0
1897 if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
1898 OL_FUNC_GETHOSTBYADDR_R_NARGS
1900 ol_cv_func_gethostbyaddr_r_nargs=0
1903 dnl ----------------------------------------------------------------
1906 if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
1909 if test $ol_cv_berkeley_db = no ; then
1910 AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
1913 AC_DEFINE(HAVE_BERKELEY_DB,1,
1914 [define this if Berkeley DB is available])
1916 dnl $ol_cv_lib_db should be yes or -ldb
1917 dnl (it could be no, but that would be an error
1918 if test $ol_cv_lib_db != yes ; then
1919 BDB_LIBS="$BDB_LIBS $ol_cv_lib_db"
1922 SLAPD_LIBS="$SLAPD_LIBS \$(BDB_LIBS)"
1927 dnl ----------------------------------------------------------------
1929 if test $ol_enable_dynamic = yes && test $enable_shared = yes ; then
1930 BUILD_LIBS_DYNAMIC=shared
1931 AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
1934 BUILD_LIBS_DYNAMIC=static
1937 AC_SUBST(LTSTATIC)dnl
1939 dnl ----------------------------------------------------------------
1940 if test $ol_enable_wrappers != no ; then
1941 AC_CHECK_HEADERS(tcpd.h,[
1942 AC_MSG_CHECKING([for TCP wrappers library])
1945 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1947 int allow_severity = 0;
1948 int deny_severity = 0;
1950 struct request_info *req;
1953 ]])],[AC_MSG_RESULT([-lwrap])
1955 LIBS="$save_LIBS"],[
1960 int allow_severity = 0;
1961 int deny_severity = 0;
1963 struct request_info *req;
1966 ],[AC_MSG_RESULT([-lwrap -lnsl])
1968 LIBS="$save_LIBS -lnsl"],[
1971 LIBS=$save_LIBS])])],[have_wrappers=no])
1973 if test $have_wrappers = yes ; then
1974 AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
1976 elif test $ol_enable_wrappers = yes ; then
1977 AC_MSG_ERROR([could not find TCP wrappers, select apppropriate options or disable])
1979 AC_MSG_WARN([could not find TCP wrappers, support disabled])
1984 dnl ----------------------------------------------------------------
1985 if test $ol_enable_syslog != no ; then
1986 AC_CHECK_FUNC(openlog)
1987 if test $ac_cv_func_openlog = no && test $ol_enable_syslog = yes; then
1988 AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
1990 ol_enable_syslog=$ac_cv_func_openlog
1993 dnl ----------------------------------------------------------------
1996 if test $ol_enable_sql != no ; then
1997 AC_CHECK_HEADERS(sql.h sqlext.h,[],[
1998 AC_MSG_ERROR([could not locate SQL headers])
2002 LIBS="$LTHREAD_LIBS"
2004 if test $ol_with_odbc = auto ; then
2005 ol_with_odbc="iodbc unixodbc odbc32"
2008 for odbc in $ol_with_odbc ; do
2009 if test $ol_link_sql = no ; then
2012 AC_CHECK_LIB(iodbc, SQLDriverConnect, [have_iodbc=yes], [have_iodbc=no])
2013 if test $have_iodbc = yes ; then
2014 ol_link_sql="-liodbc"
2019 AC_CHECK_LIB(odbc, SQLDriverConnect, [have_odbc=yes], [have_odbc=no])
2020 if test $have_odbc = yes ; then
2021 ol_link_sql="-lodbc"
2026 AC_CHECK_LIB(odbc32, SQLDriverConnect, [have_odbc32=yes], [have_odbc32=no])
2027 if test $have_odbc32 = yes ; then
2028 ol_link_sql="-lodbc32"
2033 AC_MSG_ERROR([unknown ODBC library])
2041 if test $ol_link_sql != no ; then
2042 SLAPD_SQL_LIBS="$ol_link_sql"
2044 elif test $ol_enable_sql != auto ; then
2045 AC_MSG_ERROR([could not locate suitable ODBC library])
2049 dnl ----------------------------------------------------------------
2051 dnl Note: uses C++, but we don't want to add C++ test overhead to
2052 dnl the rest of the libtool machinery.
2054 if test $ol_enable_ndb != no ; then
2055 AC_CHECK_PROG(MYSQL,mysql_config,yes)
2056 if test "$MYSQL" != yes ; then
2057 AC_MSG_ERROR([could not locate mysql_config])
2060 SQL_INC=`mysql_config --include`
2061 SLAPD_NDB_INCS="$SQL_INC $SQL_INC/storage/ndb $SQL_INC/storage/ndb/ndbapi"
2063 save_CPPFLAGS="$CPPFLAGS"
2064 CPPFLAGS="$SLAPD_NDB_INCS"
2065 AC_MSG_CHECKING(for NdbApi.hpp)
2067 [AC_LANG_SOURCE([[#include <NdbApi.hpp>]])],
2069 AC_MSG_ERROR([could not locate NdbApi headers])
2071 CPPFLAGS="$save_CPPFLAGS"
2073 SQL_LIB=`mysql_config --libs_r`
2074 SLAPD_NDB_LIBS="$SQL_LIB -lndbclient -lstdc++"
2076 save_LDFLAGS="$LDFLAGS"
2079 AC_CHECK_LIB(ndbclient,ndb_init,[: ok],[
2080 AC_MSG_ERROR([could not locate ndbclient library])
2083 LDFLAGS="$save_LDFLAGS"
2085 if test "$ol_enable_ndb" = yes ; then
2086 SLAPD_LIBS="$SLAPD_LIBS \$(SLAPD_NDB_LIBS)"
2090 dnl ----------------------------------------------------------------
2091 dnl International Components for Unicode
2093 if test "$ol_icu" = no ; then
2094 AC_MSG_WARN([ICU not available])
2098 dnl ----------------------------------------------------------------
2100 dnl Check for Cyrus SASL
2105 if test $ol_with_cyrus_sasl != no ; then
2106 AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
2108 if test $ac_cv_header_sasl_sasl_h = yes ||
2109 test $ac_cv_header_sasl_h = yes; then
2110 AC_CHECK_LIB(sasl2, sasl_client_init,
2111 [ol_link_sasl="-lsasl2"],
2112 [AC_CHECK_LIB(sasl, sasl_client_init,
2113 [ol_link_sasl="-lsasl"])])
2116 if test $ol_link_sasl = no ; then
2117 if test $ol_with_cyrus_sasl != auto ; then
2118 AC_MSG_ERROR([Could not locate Cyrus SASL])
2120 AC_MSG_WARN([Could not locate Cyrus SASL])
2121 AC_MSG_WARN([SASL authentication not supported!])
2122 if test $ol_link_tls = no ; then
2123 AC_MSG_WARN([Strong authentication not supported!])
2128 if test $ol_cv_sasl_compat = no ; then
2130 AC_MSG_ERROR([Cyrus SASL library located but is incompatible])
2133 AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
2134 SASL_LIBS="$ol_link_sasl"
2135 if test $ol_enable_spasswd != no ; then
2139 ac_save_LIBS="$LIBS"
2140 LIBS="$LIBS $ol_link_sasl"
2141 AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1,
2142 [define if your SASL library has sasl_version()])])
2143 LIBS="$ac_save_LIBS"
2149 AC_MSG_WARN([SASL authentication not supported!])
2150 if test $ol_link_tls = no ; then
2151 AC_MSG_WARN([Strong authentication not supported!])
2155 dnl ----------------------------------------------------------------
2156 dnl Check for entropy sources
2157 if test $cross_compiling != yes && test "$ac_cv_mingw32" != yes ; then
2159 if test -r /dev/urandom ; then
2161 elif test -r /idev/urandom ; then
2162 dev="/idev/urandom";
2163 elif test -r /dev/srandom ; then
2165 elif test -r /dev/random ; then
2167 elif test -r /idev/random ; then
2171 if test $dev != no ; then
2172 AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
2176 dnl ----------------------------------------------------------------
2178 dnl Check for fetch URL support
2179 dnl should be extended to support other fetch URL APIs
2182 if test $ol_with_fetch != no ; then
2185 if test $ol_cv_lib_fetch != no ; then
2186 LUTIL_LIBS="$LUTIL_LIBS $ol_link_fetch"
2187 ol_link_fetch=freebsd
2189 elif test $ol_with_fetch != auto ; then
2190 AC_MSG_ERROR(no suitable API for --with-fetch=$ol_with_fetch)
2194 dnl ----------------------------------------------------------------
2195 dnl FreeBSD (and others) have crypt(3) in -lcrypt
2196 if test $ol_enable_crypt != no ; then
2198 LIBS="$TLS_LIBS $LIBS"
2200 AC_CHECK_FUNC(crypt, [have_crypt=yes], [
2202 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
2203 have_crypt=yes], [have_crypt=no])])
2207 if test $have_crypt = yes ; then
2208 AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
2210 AC_MSG_WARN([could not find crypt])
2211 if test $ol_enable_crypt = yes ; then
2212 AC_MSG_ERROR([could not find crypt, select appropriate options or disable])
2215 AC_MSG_WARN([disabling crypt support])
2220 dnl ----------------------------------------------------------------
2221 dnl FreeBSD (and others) have setproctitle(3) in -lutil
2222 if test $ol_enable_proctitle != no ; then
2223 AC_CHECK_FUNC(setproctitle, [have_setproctitle=yes], [
2224 AC_CHECK_LIB(util, setproctitle,
2225 [have_setproctitle=yes
2226 LUTIL_LIBS="$LUTIL_LIBS -lutil"],
2227 [have_setproctitle=no
2228 AC_LIBOBJ(setproctitle)
2229 LIBSRCS="$LIBSRCS setproctitle.c"])])
2231 if test $have_setproctitle = yes ; then
2232 AC_DEFINE(HAVE_SETPROCTITLE,1,
2233 [define if setproctitle(3) is available])
2237 dnl ----------------------------------------------------------------
2238 if test $ol_enable_slp != no ; then
2239 AC_CHECK_HEADERS( slp.h )
2241 if test $ac_cv_header_slp_h = yes ; then
2242 AC_CHECK_LIB(slp, SLPOpen, [have_slp=yes], [have_slp=no])
2243 if test $have_slp = yes ; then
2244 AC_DEFINE(HAVE_SLP, 1, [define if you have -lslp])
2245 SLAPD_SLP_LIBS=-lslp
2248 elif test $ol_enable_slp = yes ; then
2249 AC_MSG_ERROR([SLP not found])
2253 dnl ----------------------------------------------------------------
2254 dnl Checks for typedefs, structures, and compiler characteristics.
2256 AC_CHECK_TYPE(mode_t, int)
2257 AC_CHECK_TYPE(off_t, long)
2258 AC_CHECK_TYPE(pid_t, int)
2259 AC_CHECK_TYPE(ssize_t, [signed int])
2260 AC_CHECK_TYPE(caddr_t, [char *])
2261 AC_CHECK_TYPE(size_t, unsigned)
2263 AC_CHECK_TYPES([long long])
2264 AC_CHECK_TYPES([ptrdiff_t])
2267 AC_CHECK_TYPE([socklen_t],,, [$ac_includes_default
2268 #ifdef HAVE_SYS_SOCKET_H
2269 #include <sys/socket.h>
2272 dnl socklen_t-like type in accept(), default socklen_t or int:
2273 dnl - The OS might define socklen_t without using it. POSIX moved from
2274 dnl int to size_t to socklen_t, hoping to stay at a 32-bit type, and
2275 dnl HP-UX now has selectors for what to use.
2276 dnl - On Solaris 2.8 the prototype has void *len, but the default is OK.
2277 AC_MSG_CHECKING([the type of arg 3 to accept()])
2278 AC_CACHE_VAL(ol_cv_type_ber_socklen_t, [
2279 set socklen_t int unsigned "unsigned long" long size_t
2280 test "$ac_cv_type_socklen_t" = yes || shift
2281 ol_cv_type_ber_socklen_t=$1 guessing="guessing "
2282 for lentype in "$@" ; do for addrtype in "struct sockaddr" void ; do
2283 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$ac_includes_default
2284 #ifdef HAVE_SYS_SOCKET_H
2285 #include <sys/socket.h>
2287 extern int accept(int s, $addrtype *ap, $lentype *lp);
2289 accept(0, (struct sockaddr *) 0, ($lentype *) 0);
2290 ])], [ol_cv_type_ber_socklen_t=$lentype guessing= ; break 2])
2292 AC_MSG_RESULT([$guessing$ol_cv_type_ber_socklen_t *])
2293 AC_DEFINE_UNQUOTED(ber_socklen_t, $ol_cv_type_ber_socklen_t,
2294 [Define to the type of arg 3 for `accept'.])
2296 dnl Modules should use ber_socklen_t, not socklen_t. Define socklen_t
2297 dnl for the time being anyway, for backwards compatibility.
2298 if test "$ac_cv_type_socklen_t" != yes; then
2299 AC_DEFINE_UNQUOTED([socklen_t], [$ol_cv_type_ber_socklen_t],
2300 [Define like ber_socklen_t if <sys/socket.h> does not define.])
2306 AC_CHECK_TYPE([sig_atomic_t],,
2307 [AC_DEFINE_UNQUOTED([sig_atomic_t], [int],
2308 [Define to `int' if <signal.h> does not define.])],
2309 [$ac_includes_default
2317 AC_CHECK_MEMBERS([struct stat.st_blksize])
2318 AC_CHECK_MEMBERS([struct passwd.pw_gecos],,,[$ac_includes_default
2320 AC_CHECK_MEMBERS([struct passwd.pw_passwd],,,[$ac_includes_default
2327 if test $cross_compiling = yes ; then
2328 AC_MSG_WARN([Crossing compiling... all bets are off!])
2329 AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
2334 AC_CHECK_SIZEOF(short)
2335 AC_CHECK_SIZEOF(int)
2336 AC_CHECK_SIZEOF(long)
2337 AC_CHECK_SIZEOF(long long)
2338 AC_CHECK_SIZEOF(wchar_t)
2340 if test "$ac_cv_sizeof_int" -lt 4 ; then
2341 AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
2343 AC_DEFINE(LBER_INT_T,long,[define to 32-bit or greater integer type])
2345 AC_DEFINE(LBER_INT_T,int,[define to 32-bit or greater integer type])
2348 AC_DEFINE(LBER_LEN_T,long,[define to large integer type])
2349 AC_DEFINE(LBER_SOCKET_T,int,[define to socket descriptor type])
2350 AC_DEFINE(LBER_TAG_T,long,[define to large integer type])
2352 dnl ----------------------------------------------------------------
2353 dnl Check for multiple precision support
2354 if test $ol_with_mp = longlong || test $ol_with_mp = auto ; then
2355 if test $ac_cv_sizeof_long_long -gt 4 ; then
2357 AC_DEFINE(USE_MP_LONG_LONG,1,[define to use 'long long' for MP])
2358 elif test $ol_with_mp = longlong ; then
2359 AC_MSG_ERROR([long long unusable for multiple precision])
2362 if test $ol_with_mp = long || test $ol_with_mp = auto ; then
2363 if test $ac_cv_sizeof_long -gt 4 ; then
2365 AC_DEFINE(USE_MP_LONG,1,[define to use 'long' for MP])
2366 elif test $ol_with_mp = long ; then
2367 AC_MSG_ERROR([long unusable for multiple precision])
2370 if test $ol_with_mp = bignum || test $ol_with_mp = auto ; then
2371 AC_CHECK_HEADERS(openssl/bn.h)
2372 AC_CHECK_HEADERS(openssl/crypto.h)
2373 if test "$ac_cv_header_openssl_bn_h" = "yes" &&
2374 test "$ac_cv_header_openssl_crypto_h" = "yes" &&
2375 test "$ol_with_tls" = "found" ; then
2377 AC_DEFINE(USE_MP_BIGNUM,1,[define to use OpenSSL BIGNUM for MP])
2378 elif test $ol_with_mp = bignum ; then
2379 AC_MSG_ERROR([bignum not available])
2382 if test $ol_with_mp = gmp || test $ol_with_mp = auto ; then
2383 AC_CHECK_HEADERS(gmp.h)
2384 AC_CHECK_LIB(gmp, __gmpz_add_ui)
2385 if test $ac_cv_header_gmp_h = yes && test $ac_cv_lib_gmp___gmpz_add_ui = yes ; then
2386 AC_DEFINE(USE_MP_GMP,1,[define to use GMP for MP])
2388 elif test $ol_with_mp = gmp ; then
2389 AC_MSG_ERROR([gmp not available])
2392 if test $ol_with_mp = auto ; then
2396 dnl ----------------------------------------------------------------
2397 dnl Checks for library functions.
2400 if test $ac_cv_func_memcmp_working = no ; then
2401 AC_DEFINE(NEED_MEMCMP_REPLACEMENT,1,
2402 [define if memcmp is not 8-bit clean or is otherwise broken])
2409 dnl Check for NT specific routines
2410 AC_CHECK_FUNC(_spawnlp, AC_DEFINE(HAVE_SPAWNLP,1,[if you have spawnlp()]))
2412 AC_CHECK_FUNC(_snprintf, [ac_cv_func_snprintf=yes
2413 AC_DEFINE(snprintf, _snprintf, [define to snprintf routine])
2416 AC_CHECK_FUNCS(vsnprintf _vsnprintf)
2418 if test $ac_cv_func_vsnprintf = no -a $ac_cv_func__vsnprintf = yes ; then
2419 ac_cv_func_vsnprintf=yes
2420 AC_DEFINE(vsnprintf, _vsnprintf, [define to vsnprintf routine])
2425 if test $ac_cv_func_vprintf = yes ; then
2426 dnl check for vsnprintf
2427 AC_CHECK_FUNCS(snprintf vsnprintf)
2489 dnl We actually may need to replace more than this.
2490 AC_REPLACE_FUNCS(getopt getpeereid)
2492 if test "$ac_cv_func_getopt" != yes; then
2493 LIBSRCS="$LIBSRCS getopt.c"
2496 if test "$ac_cv_func_getpeereid" != yes; then
2497 AC_CHECK_FUNCS( getpeerucred )
2498 if test "$ac_cv_func_getpeerucred" != yes ; then
2499 AC_CHECK_MEMBERS([struct msghdr.msg_accrightslen],,,
2500 [$ac_includes_default
2501 #ifdef HAVE_SYS_SOCKET_H
2502 #include <sys/socket.h>
2504 if test "$ac_cv_member_struct_msghdr_msg_accrightslen" != yes; then
2505 AC_CHECK_MEMBERS([struct msghdr.msg_control],,,
2506 [$ac_includes_default
2507 #ifdef HAVE_SYS_SOCKET_H
2508 #include <sys/socket.h>
2511 AC_CHECK_MEMBERS([struct stat.st_fstype, struct stat.st_vfstype])
2512 if test "$ac_cv_member_struct_stat_st_fstype" = yes; then
2513 AC_COMPILE_IFELSE([struct stat st; char *ptr=st.st_fstype;],
2514 AC_DEFINE([HAVE_STRUCT_STAT_ST_FSTYPE_CHAR],1,[define to 1 if st_fstype is char *]),
2515 AC_DEFINE([HAVE_STRUCT_STAT_ST_FSTYPE_INT],1,[define to 1 if st_fstype is int]))
2518 LIBSRCS="$LIBSRCS getpeereid.c"
2521 if test "$ac_cv_func_snprintf" != yes ||
2522 test "$ac_cv_func_vsnprintf" != yes; then
2523 if test "$ac_cv_func_snprintf" != yes; then
2524 AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
2526 if test "$ac_cv_func_vsnprintf" != yes; then
2527 AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine])
2531 dnl ----------------------------------------------------------------
2532 dnl Sort out defines
2534 if test "$ol_enable_slapi" != no ; then
2535 dnl This check is done also if --enable-modules is used;
2536 dnl it is duplicated here, 'cause it'd be cached anyway
2537 AC_CHECK_HEADERS(ltdl.h)
2539 if test $ac_cv_header_ltdl_h != yes ; then
2540 AC_MSG_ERROR([could not locate <ltdl.h>])
2542 AC_CHECK_LIB(ltdl, lt_dlinit, [
2545 LIBSLAPITOOLS=../libslapi.a
2546 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
2547 ],[AC_MSG_ERROR([could not locate libtool -lltdl])])
2549 AC_DEFINE(LDAP_SLAPI,1, [define this to add SLAPI code])
2552 if test "$ol_enable_debug" != no ; then
2553 if test "$ol_enable_debug" = traditional; then
2554 AC_DEFINE(OLD_DEBUG,1,
2555 [define to use the original debug style])
2557 AC_DEFINE(LDAP_DEBUG,1,
2558 [define this to add debugging code])
2560 if test "$ol_enable_syslog" = yes ; then
2561 AC_DEFINE(LDAP_SYSLOG,1,
2562 [define this to add syslog code])
2564 if test "$ol_enable_proctitle" != no ; then
2565 AC_DEFINE(LDAP_PROCTITLE,1,
2566 [define this for LDAP process title support])
2568 if test "$ol_enable_referrals" != no ; then
2569 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION,
2570 [define to LDAP VENDOR VERSION])
2572 if test "$ol_enable_local" != no; then
2573 AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
2575 if test "$ol_link_ipv6" != no; then
2576 AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
2578 if test "$ol_enable_cleartext" != no ; then
2579 AC_DEFINE(SLAPD_CLEARTEXT,1,[define to support cleartext passwords])
2581 if test "$ol_enable_crypt" != no ; then
2582 AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords])
2584 if test "$ol_link_spasswd" != no ; then
2585 AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
2587 if test "$ol_enable_rlookups" != no ; then
2588 AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
2590 if test "$ol_enable_aci" != no ; then
2591 if test $ol_enable_dynacl = no ; then
2592 ol_enable_dynacl=yes
2593 AC_MSG_WARN([ACIs need dynacl])
2595 if test "$ol_enable_aci" = mod ; then
2596 MFLAG=SLAPD_MOD_DYNAMIC
2597 dnl remove this after moving servers/slapd/aci.c in contrib/slapd-modules/acl
2598 AC_MSG_ERROR([ACI build as dynamic module not supported (yet)])
2600 MFLAG=SLAPD_MOD_STATIC
2602 WITH_ACI_ENABLED=$ol_enable_aci
2603 AC_DEFINE_UNQUOTED(SLAPD_ACI_ENABLED,$MFLAG,[define to support per-object ACIs])
2607 if test "$ol_enable_dynacl" != no ; then
2608 AC_DEFINE(SLAP_DYNACL,1,[define to support run-time loadable ACL])
2611 if test "$ol_link_modules" != no ; then
2612 AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
2614 SLAPD_MODULES_LDFLAGS="-dlopen self"
2617 AC_DEFINE(SLAPD_MOD_STATIC,1,[statically linked module])
2618 AC_DEFINE(SLAPD_MOD_DYNAMIC,2,[dynamically linked module])
2620 dnl back-monitor goes first (well, after back-config)
2621 if test "$ol_enable_monitor" != no ; then
2623 BUILD_MONITOR=$ol_enable_monitor
2624 if test "$ol_enable_monitor" = mod ; then
2625 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
2626 MFLAG=SLAPD_MOD_DYNAMIC
2628 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
2629 MFLAG=SLAPD_MOD_STATIC
2631 AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
2634 if test "$ol_enable_bdb" != no ; then
2636 BUILD_BDB=$ol_enable_bdb
2637 if test "$ol_enable_bdb" = mod ; then
2638 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
2639 MFLAG=SLAPD_MOD_DYNAMIC
2641 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
2642 MFLAG=SLAPD_MOD_STATIC
2644 AC_DEFINE_UNQUOTED(SLAPD_BDB,$MFLAG,[define to support BDB backend])
2647 if test "$ol_enable_dnssrv" != no ; then
2649 BUILD_DNSSRV=$ol_enable_dnssrv
2650 if test "$ol_enable_dnssrv" = mod ; then
2651 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
2652 MFLAG=SLAPD_MOD_DYNAMIC
2654 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
2655 MFLAG=SLAPD_MOD_STATIC
2657 AC_DEFINE_UNQUOTED(SLAPD_DNSSRV,$MFLAG,[define to support DNS SRV backend])
2660 if test "$ol_enable_hdb" != no ; then
2662 BUILD_HDB=$ol_enable_hdb
2663 if test "$ol_enable_hdb" = mod ; then
2664 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-hdb"
2665 MFLAG=SLAPD_MOD_DYNAMIC
2667 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb"
2668 MFLAG=SLAPD_MOD_STATIC
2670 AC_DEFINE_UNQUOTED(SLAPD_HDB,$MFLAG,[define to support HDB backend])
2673 if test "$ol_enable_ldap" != no ; then
2675 BUILD_LDAP=$ol_enable_ldap
2676 if test "$ol_enable_ldap" = mod ; then
2677 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
2678 MFLAG=SLAPD_MOD_DYNAMIC
2680 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
2681 MFLAG=SLAPD_MOD_STATIC
2683 AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
2686 if test "$ol_enable_meta" != no ; then
2688 BUILD_META=$ol_enable_meta
2690 if test "$ol_enable_meta" = mod ; then
2691 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
2692 MFLAG=SLAPD_MOD_DYNAMIC
2694 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
2695 MFLAG=SLAPD_MOD_STATIC
2697 AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
2700 if test "$ol_enable_ndb" != no ; then
2702 BUILD_NDB=$ol_enable_ndb
2703 if test "$ol_enable_ndb" = mod ; then
2704 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ndb"
2705 MFLAG=SLAPD_MOD_DYNAMIC
2707 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ndb"
2708 MFLAG=SLAPD_MOD_STATIC
2710 AC_DEFINE_UNQUOTED(SLAPD_NDB,$MFLAG,[define to support NDB backend])
2713 if test "$ol_enable_null" != no ; then
2715 BUILD_NULL=$ol_enable_null
2716 if test "$ol_enable_null" = mod ; then
2717 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
2718 MFLAG=SLAPD_MOD_DYNAMIC
2720 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
2721 MFLAG=SLAPD_MOD_STATIC
2723 AC_DEFINE_UNQUOTED(SLAPD_NULL,$MFLAG,[define to support NULL backend])
2726 if test "$ol_enable_passwd" != no ; then
2728 BUILD_PASSWD=$ol_enable_passwd
2729 if test "$ol_enable_passwd" = mod ; then
2730 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
2731 MFLAG=SLAPD_MOD_DYNAMIC
2733 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
2734 MFLAG=SLAPD_MOD_STATIC
2736 AC_DEFINE_UNQUOTED(SLAPD_PASSWD,$MFLAG,[define to support PASSWD backend])
2739 if test "$ol_link_perl" != no ; then
2741 BUILD_PERL=$ol_enable_perl
2742 if test "$ol_enable_perl" = mod ; then
2743 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
2744 MFLAG=SLAPD_MOD_DYNAMIC
2746 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
2747 MFLAG=SLAPD_MOD_STATIC
2749 AC_DEFINE_UNQUOTED(SLAPD_PERL,$MFLAG,[define to support PERL backend])
2752 if test "$ol_enable_relay" != no ; then
2754 BUILD_RELAY=$ol_enable_relay
2755 if test "$ol_enable_relay" = mod ; then
2756 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-relay"
2757 MFLAG=SLAPD_MOD_DYNAMIC
2759 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-relay"
2760 MFLAG=SLAPD_MOD_STATIC
2762 AC_DEFINE_UNQUOTED(SLAPD_RELAY,$MFLAG,[define to support relay backend])
2765 if test "$ol_enable_shell" != no ; then
2766 if test "$ol_link_threads" != no ; then
2767 AC_MSG_WARN([Use of --without-threads is recommended with back-shell])
2770 BUILD_SHELL=$ol_enable_shell
2771 if test "$ol_enable_shell" = mod ; then
2772 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
2773 MFLAG=SLAPD_MOD_DYNAMIC
2775 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
2776 MFLAG=SLAPD_MOD_STATIC
2778 AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend])
2781 if test "$ol_enable_sock" != no ; then
2783 BUILD_SOCK=$ol_enable_sock
2784 if test "$ol_enable_sock" = mod ; then
2785 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sock"
2786 MFLAG=SLAPD_MOD_DYNAMIC
2788 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sock"
2789 MFLAG=SLAPD_MOD_STATIC
2791 AC_DEFINE_UNQUOTED(SLAPD_SOCK,$MFLAG,[define to support SOCK backend])
2794 if test "$ol_link_sql" != no ; then
2796 BUILD_SQL=$ol_enable_sql
2797 if test "$ol_enable_sql" = mod; then
2798 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
2799 MFLAG=SLAPD_MOD_DYNAMIC
2801 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
2802 MFLAG=SLAPD_MOD_STATIC
2804 AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend])
2807 if test "$ol_enable_accesslog" != no ; then
2808 BUILD_ACCESSLOG=$ol_enable_accesslog
2809 if test "$ol_enable_accesslog" = mod ; then
2810 MFLAG=SLAPD_MOD_DYNAMIC
2811 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS accesslog.la"
2813 MFLAG=SLAPD_MOD_STATIC
2814 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS accesslog.o"
2816 AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay])
2819 if test "$ol_enable_auditlog" != no ; then
2820 BUILD_AUDITLOG=$ol_enable_auditlog
2821 if test "$ol_enable_auditlog" = mod ; then
2822 MFLAG=SLAPD_MOD_DYNAMIC
2823 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS auditlog.la"
2825 MFLAG=SLAPD_MOD_STATIC
2826 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS auditlog.o"
2828 AC_DEFINE_UNQUOTED(SLAPD_OVER_AUDITLOG,$MFLAG,[define for Audit Logging overlay])
2831 if test "$ol_enable_collect" != no ; then
2832 BUILD_COLLECT=$ol_enable_collect
2833 if test "$ol_enable_collect" = mod ; then
2834 MFLAG=SLAPD_MOD_DYNAMIC
2835 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS collect.la"
2837 MFLAG=SLAPD_MOD_STATIC
2838 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS collect.o"
2840 AC_DEFINE_UNQUOTED(SLAPD_OVER_COLLECT,$MFLAG,[define for Collect overlay])
2843 if test "$ol_enable_constraint" != no ; then
2844 BUILD_CONSTRAINT=$ol_enable_constraint
2845 if test "$ol_enable_constraint" = mod ; then
2846 MFLAG=SLAPD_MOD_DYNAMIC
2847 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS constraint.la"
2849 MFLAG=SLAPD_MOD_STATIC
2850 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS constraint.o"
2852 AC_DEFINE_UNQUOTED(SLAPD_OVER_CONSTRAINT,$MFLAG,[define for Attribute Constraint overlay])
2855 if test "$ol_enable_dds" != no ; then
2856 BUILD_DDS=$ol_enable_dds
2857 if test "$ol_enable_dds" = mod ; then
2858 MFLAG=SLAPD_MOD_DYNAMIC
2859 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dds.la"
2861 MFLAG=SLAPD_MOD_STATIC
2862 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dds.o"
2864 AC_DEFINE_UNQUOTED(SLAPD_OVER_DDS,$MFLAG,[define for Dynamic Directory Services overlay])
2867 if test "$ol_enable_deref" != no ; then
2868 BUILD_DDS=$ol_enable_deref
2869 if test "$ol_enable_deref" = mod ; then
2870 MFLAG=SLAPD_MOD_DYNAMIC
2871 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS deref.la"
2873 MFLAG=SLAPD_MOD_STATIC
2874 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS deref.o"
2876 AC_DEFINE_UNQUOTED(SLAPD_OVER_DEREF,$MFLAG,[define for Dynamic Directory Services overlay])
2879 if test "$ol_enable_dyngroup" != no ; then
2880 BUILD_DYNGROUP=$ol_enable_dyngroup
2881 if test "$ol_enable_dyngroup" = mod ; then
2882 MFLAG=SLAPD_MOD_DYNAMIC
2883 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dyngroup.la"
2885 MFLAG=SLAPD_MOD_STATIC
2886 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dyngroup.o"
2888 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay])
2891 if test "$ol_enable_dynlist" != no ; then
2892 BUILD_DYNLIST=$ol_enable_dynlist
2893 if test "$ol_enable_dynlist" = mod ; then
2894 MFLAG=SLAPD_MOD_DYNAMIC
2895 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dynlist.la"
2897 MFLAG=SLAPD_MOD_STATIC
2898 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dynlist.o"
2900 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNLIST,$MFLAG,[define for Dynamic List overlay])
2903 if test "$ol_enable_memberof" != no ; then
2904 BUILD_MEMBEROF=$ol_enable_memberof
2905 if test "$ol_enable_memberof" = mod ; then
2906 MFLAG=SLAPD_MOD_DYNAMIC
2907 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS memberof.la"
2909 MFLAG=SLAPD_MOD_STATIC
2910 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS memberof.o"
2912 AC_DEFINE_UNQUOTED(SLAPD_OVER_MEMBEROF,$MFLAG,[define for Reverse Group Membership overlay])
2915 if test "$ol_enable_ppolicy" != no ; then
2916 BUILD_PPOLICY=$ol_enable_ppolicy
2917 if test "$ol_enable_ppolicy" = mod ; then
2918 MFLAG=SLAPD_MOD_DYNAMIC
2919 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS ppolicy.la"
2921 MFLAG=SLAPD_MOD_STATIC
2922 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS ppolicy.o"
2924 AC_DEFINE_UNQUOTED(SLAPD_OVER_PPOLICY,$MFLAG,[define for Password Policy overlay])
2927 if test "$ol_enable_proxycache" != no ; then
2928 BUILD_PROXYCACHE=$ol_enable_proxycache
2929 if test "$ol_enable_proxycache" = mod ; then
2930 MFLAG=SLAPD_MOD_DYNAMIC
2931 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS pcache.la"
2933 MFLAG=SLAPD_MOD_STATIC
2934 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS pcache.o"
2936 AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay])
2939 if test "$ol_enable_refint" != no ; then
2940 BUILD_REFINT=$ol_enable_refint
2941 if test "$ol_enable_refint" = mod ; then
2942 MFLAG=SLAPD_MOD_DYNAMIC
2943 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la"
2945 MFLAG=SLAPD_MOD_STATIC
2946 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS refint.o"
2948 AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay])
2951 if test "$ol_enable_retcode" != no ; then
2952 BUILD_RETCODE=$ol_enable_retcode
2953 if test "$ol_enable_retcode" = mod ; then
2954 MFLAG=SLAPD_MOD_DYNAMIC
2955 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS retcode.la"
2957 MFLAG=SLAPD_MOD_STATIC
2958 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS retcode.o"
2960 AC_DEFINE_UNQUOTED(SLAPD_OVER_RETCODE,$MFLAG,[define for Referential Integrity overlay])
2963 if test "$ol_enable_rwm" != no ; then
2965 BUILD_RWM=$ol_enable_rwm
2966 if test "$ol_enable_rwm" = mod ; then
2967 MFLAG=SLAPD_MOD_DYNAMIC
2968 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS rwm.la"
2970 MFLAG=SLAPD_MOD_STATIC
2971 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS rwm_x.o"
2973 AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
2976 if test "$ol_enable_seqmod" != no ; then
2977 BUILD_SEQMOD=$ol_enable_seqmod
2978 if test "$ol_enable_seqmod" = mod ; then
2979 MFLAG=SLAPD_MOD_DYNAMIC
2980 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS seqmod.la"
2982 MFLAG=SLAPD_MOD_STATIC
2983 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS seqmod.o"
2985 AC_DEFINE_UNQUOTED(SLAPD_OVER_SEQMOD,$MFLAG,[define for Sequential Modify overlay])
2988 if test "$ol_enable_syncprov" != no ; then
2989 BUILD_SYNCPROV=$ol_enable_syncprov
2990 if test "$ol_enable_syncprov" = mod ; then
2991 MFLAG=SLAPD_MOD_DYNAMIC
2992 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS syncprov.la"
2994 MFLAG=SLAPD_MOD_STATIC
2995 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS syncprov.o"
2997 AC_DEFINE_UNQUOTED(SLAPD_OVER_SYNCPROV,$MFLAG,[define for Syncrepl Provider overlay])
3000 if test "$ol_enable_translucent" != no ; then
3001 BUILD_TRANSLUCENT=$ol_enable_translucent
3002 if test "$ol_enable_translucent" = mod ; then
3003 MFLAG=SLAPD_MOD_DYNAMIC
3004 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS translucent.la"
3006 MFLAG=SLAPD_MOD_STATIC
3007 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS translucent.o"
3009 AC_DEFINE_UNQUOTED(SLAPD_OVER_TRANSLUCENT,$MFLAG,[define for Translucent Proxy overlay])
3012 if test "$ol_enable_unique" != no ; then
3013 BUILD_UNIQUE=$ol_enable_unique
3014 if test "$ol_enable_unique" = mod ; then
3015 MFLAG=SLAPD_MOD_DYNAMIC
3016 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la"
3018 MFLAG=SLAPD_MOD_STATIC
3019 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS unique.o"
3021 AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay])
3024 if test "$ol_enable_valsort" != no ; then
3025 BUILD_VALSORT=$ol_enable_valsort
3026 if test "$ol_enable_valsort" = mod ; then
3027 MFLAG=SLAPD_MOD_DYNAMIC
3028 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS valsort.la"
3030 MFLAG=SLAPD_MOD_STATIC
3031 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS valsort.o"
3033 AC_DEFINE_UNQUOTED(SLAPD_OVER_VALSORT,$MFLAG,[define for Value Sorting overlay])
3036 if test "$ol_enable_rewrite" != no ; then
3037 AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta])
3041 if test "$ol_enable_slapi" != no ; then
3042 AC_DEFINE(ENABLE_SLAPI,1,[define to enable slapi library])
3044 SLAPD_SLAPI_DEPEND=libslapi.a
3047 dnl ----------------------------------------------------------------
3050 dnl For Windows build, we don't want to include -dlopen flags.
3051 dnl They hurt more than they help.
3054 if test "$ac_cv_mingw32" = yes -o $ol_cv_msvc = yes ; then
3056 SLAPD_MODULES_LDFLAGS=
3065 AC_SUBST(WITH_MODULES_ENABLED)
3066 AC_SUBST(WITH_ACI_ENABLED)
3067 AC_SUBST(BUILD_THREAD)
3068 AC_SUBST(BUILD_LIBS_DYNAMIC)
3070 AC_SUBST(BUILD_SLAPD)
3072 AC_SUBST(BUILD_SLAPI)
3073 AC_SUBST(SLAPD_SLAPI_DEPEND)
3076 AC_SUBST(BUILD_DNSSRV)
3078 AC_SUBST(BUILD_LDAP)
3079 AC_SUBST(BUILD_META)
3080 AC_SUBST(BUILD_MONITOR)
3082 AC_SUBST(BUILD_NULL)
3083 AC_SUBST(BUILD_PASSWD)
3084 AC_SUBST(BUILD_RELAY)
3085 AC_SUBST(BUILD_PERL)
3086 AC_SUBST(BUILD_SHELL)
3087 AC_SUBST(BUILD_SOCK)
3090 AC_SUBST(BUILD_ACCESSLOG)
3091 AC_SUBST(BUILD_AUDITLOG)
3092 AC_SUBST(BUILD_COLLECT)
3093 AC_SUBST(BUILD_CONSTRAINT)
3095 AC_SUBST(BUILD_DENYOP)
3096 AC_SUBST(BUILD_DYNGROUP)
3097 AC_SUBST(BUILD_DYNLIST)
3098 AC_SUBST(BUILD_LASTMOD)
3099 AC_SUBST(BUILD_MEMBEROF)
3100 AC_SUBST(BUILD_PPOLICY)
3101 AC_SUBST(BUILD_PROXYCACHE)
3102 AC_SUBST(BUILD_REFINT)
3103 AC_SUBST(BUILD_RETCODE)
3105 AC_SUBST(BUILD_SEQMOD)
3106 AC_SUBST(BUILD_SYNCPROV)
3107 AC_SUBST(BUILD_TRANSLUCENT)
3108 AC_SUBST(BUILD_UNIQUE)
3109 AC_SUBST(BUILD_VALSORT)
3112 AC_SUBST(SLAPD_LIBS)
3114 AC_SUBST(SLAPD_NDB_LIBS)
3115 AC_SUBST(SLAPD_NDB_INCS)
3116 AC_SUBST(LTHREAD_LIBS)
3117 AC_SUBST(LUTIL_LIBS)
3120 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
3121 AC_SUBST(SLAPD_MODULES_LDFLAGS)
3123 AC_SUBST(SLAPD_NO_STATIC)
3124 AC_SUBST(SLAPD_STATIC_BACKENDS)
3125 AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
3126 AC_SUBST(SLAPD_STATIC_OVERLAYS)
3127 AC_SUBST(SLAPD_DYNAMIC_OVERLAYS)
3129 AC_SUBST(PERL_CPPFLAGS)
3130 AC_SUBST(SLAPD_PERL_LDFLAGS)
3131 AC_SUBST(MOD_PERL_LDFLAGS)
3136 AC_SUBST(GSSAPI_LIBS)
3138 AC_SUBST(MODULES_LIBS)
3139 AC_SUBST(SLAPI_LIBS)
3141 AC_SUBST(LIBSLAPITOOLS)
3145 AC_SUBST(SLAPD_SLP_LIBS)
3146 AC_SUBST(SLAPD_GMP_LIBS)
3148 AC_SUBST(SLAPD_SQL_LDFLAGS)
3149 AC_SUBST(SLAPD_SQL_LIBS)
3150 AC_SUBST(SLAPD_SQL_INCLUDES)
3152 dnl ----------------------------------------------------------------
3153 dnl final help output
3154 AC_ARG_WITH(xxinstall,[
3155 See INSTALL file for further details.])
3157 dnl ----------------------------------------------------------------
3161 AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.mk]
3162 [doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk]
3163 [doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk]
3164 [doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk]
3165 [doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk]
3166 [doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk]
3167 [doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk]
3168 [clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk]
3169 [clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk]
3170 [include/Makefile:build/top.mk:include/Makefile.in]
3171 [libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk]
3172 [libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk]
3173 [libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk]
3174 [libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk]
3175 [libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk]
3176 [libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk]
3177 [libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk]
3178 [servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk]
3179 [servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk]
3180 [servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk]
3181 [servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk]
3182 [servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk]
3183 [servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk]
3184 [servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk]
3185 [servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk]
3186 [servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk]
3187 [servers/slapd/back-ndb/Makefile:build/top.mk:servers/slapd/back-ndb/Makefile.in:build/mod.mk]
3188 [servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk]
3189 [servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk]
3190 [servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk]
3191 [servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk]
3192 [servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk]
3193 [servers/slapd/back-sock/Makefile:build/top.mk:servers/slapd/back-sock/Makefile.in:build/mod.mk]
3194 [servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk]
3195 [servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk]
3196 [servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk]
3197 [servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk]
3198 [tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk]
3200 [tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk])
3202 AC_CONFIG_COMMANDS([default],[[
3205 BACKENDSC="servers/slapd/backends.c"
3206 echo "Making $BACKENDSC"
3208 cat > $BACKENDSC << ENDX
3209 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3211 * Copyright 1998-2009 The OpenLDAP Foundation.
3212 * All rights reserved.
3214 * Redistribution and use in source and binary forms, with or without
3215 * modification, are permitted only as authorized by the OpenLDAP
3218 * A copy of this license is available in the file LICENSE in the
3219 * top-level directory of the distribution or, alternatively, at
3220 * <http://www.OpenLDAP.org/license.html>.
3222 /* This file is automatically generated by configure; please do not edit. */
3224 #include "portable.h"
3228 if test "${STATIC_BACKENDS}"; then
3229 for b in config ${STATIC_BACKENDS}; do
3230 bb=`echo "${b}" | sed -e 's/back-//'`
3231 cat >> $BACKENDSC << ENDX
3232 extern BI_init ${bb}_back_initialize;
3236 cat >> $BACKENDSC << ENDX
3238 BackendInfo slap_binfo[] = {
3241 for b in config ${STATIC_BACKENDS}; do
3242 bb=`echo "${b}" | sed -e 's/back-//'`
3243 echo " Add ${bb} ..."
3244 cat >> $BACKENDSC << ENDX
3245 { "${bb}", ${bb}_back_initialize },
3249 cat >> $BACKENDSC << ENDX
3253 /* end of generated file */
3256 OVERLAYSC="servers/slapd/overlays/statover.c"
3257 echo "Making $OVERLAYSC"
3259 cat > $OVERLAYSC << ENDX
3260 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3262 * Copyright 1998-2009 The OpenLDAP Foundation.
3263 * All rights reserved.
3265 * Redistribution and use in source and binary forms, with or without
3266 * modification, are permitted only as authorized by the OpenLDAP
3269 * A copy of this license is available in the file LICENSE in the
3270 * top-level directory of the distribution or, alternatively, at
3271 * <http://www.OpenLDAP.org/license.html>.
3273 /* This file is automatically generated by configure; please do not edit. */
3275 #include "portable.h"
3279 if test "${STATIC_OVERLAYS}"; then
3280 for o in ${STATIC_OVERLAYS}; do
3281 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3282 cat >> $OVERLAYSC << ENDX
3283 extern OV_init ${oo}_initialize;
3288 cat >> $OVERLAYSC << ENDX
3290 OverlayInit slap_oinfo[] = {
3293 if test "${STATIC_OVERLAYS}"; then
3294 for o in ${STATIC_OVERLAYS}; do
3295 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3296 echo " Add ${oo} ..."
3297 cat >> $OVERLAYSC << ENDX
3298 { "${oo}", ${oo}_initialize },
3303 cat >> $OVERLAYSC << ENDX
3307 /* end of generated file */
3310 if test "${ol_cv_mkdep}" = no; then
3311 echo '(Do not "make depend"; we do not know how to build dependencies)'
3313 echo 'Please run "make depend" to build dependencies'
3316 STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"
3317 STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS"