2 dnl This work is part of OpenLDAP Software <http://www.openldap.org/>.
4 dnl Copyright 1998-2007 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-2007 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-2007 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(threads,[ --with-threads with threads],
246 auto, [auto nt posix mach pth lwp yes no manual] )
247 OL_ARG_WITH(tls,[ --with-tls with TLS/SSL support auto|openssl|gnutls],
248 auto, [auto openssl gnutls yes no] )
249 OL_ARG_WITH(yielding_select,
250 [ --with-yielding-select with implicitly yielding select],
251 auto, [auto yes no manual] )
253 [ --with-mp with multiple precision statistics auto|longlong|long|bignum|gmp],
254 auto, [auto longlong long bignum gmp yes no])
256 [ --with-odbc with specific ODBC support iodbc|unixodbc|auto],
257 auto, [auto iodbc unixodbc] )
259 dnl ----------------------------------------------------------------
261 dnl ----------------------------------------------------------------
263 dnl ----------------------------------------------------------------
265 AC_ARG_ENABLE(xxslapdoptions,[
266 SLAPD (Standalone LDAP Daemon) Options:])
267 OL_ARG_ENABLE(slapd,[ --enable-slapd enable building slapd], yes)dnl
268 OL_ARG_ENABLE(dynacl,[ --enable-dynacl enable run-time loadable ACL support (experimental)], no)dnl
269 OL_ARG_ENABLE(aci,[ --enable-aci enable per-object ACIs (experimental)], no, [no yes mod])dnl
270 OL_ARG_ENABLE(cleartext,[ --enable-cleartext enable cleartext passwords], yes)dnl
271 OL_ARG_ENABLE(crypt,[ --enable-crypt enable crypt(3) passwords], no)dnl
272 OL_ARG_ENABLE(lmpasswd,[ --enable-lmpasswd enable LAN Manager passwords], no)dnl
273 OL_ARG_ENABLE(spasswd,[ --enable-spasswd enable (Cyrus) SASL password verification], no)dnl
274 OL_ARG_ENABLE(modules,[ --enable-modules enable dynamic module support], no)dnl
275 OL_ARG_ENABLE(rewrite,[ --enable-rewrite enable DN rewriting in back-ldap and rwm overlay], auto)dnl
276 OL_ARG_ENABLE(rlookups,[ --enable-rlookups enable reverse lookups of client hostnames], no)dnl
277 OL_ARG_ENABLE(slapi,[ --enable-slapi enable SLAPI support (experimental)], no)dnl
278 OL_ARG_ENABLE(slp,[ --enable-slp enable SLPv2 support], no)dnl
279 OL_ARG_ENABLE(wrappers,[ --enable-wrappers enable tcp wrapper support], no)dnl
281 dnl ----------------------------------------------------------------
282 dnl SLAPD Backend Options
297 AC_ARG_ENABLE(xxslapbackends,[
298 SLAPD Backend Options:])
300 OL_ARG_ENABLE(backends,[ --enable-backends enable all available backends],
302 OL_ARG_ENABLE(bdb,[ --enable-bdb enable Berkeley DB backend],
303 yes, [no yes mod], ol_enable_backends)dnl
304 OL_ARG_ENABLE(dnssrv,[ --enable-dnssrv enable dnssrv backend],
305 no, [no yes mod], ol_enable_backends)dnl
306 OL_ARG_ENABLE(hdb,[ --enable-hdb enable Hierarchical DB backend],
307 yes, [no yes mod], ol_enable_backends)dnl
308 OL_ARG_ENABLE(ldap,[ --enable-ldap enable ldap backend],
309 no, [no yes mod], ol_enable_backends)dnl
310 OL_ARG_ENABLE(meta,[ --enable-meta enable metadirectory backend],
311 no, [no yes mod], ol_enable_backends)dnl
312 OL_ARG_ENABLE(monitor,[ --enable-monitor enable monitor backend],
313 yes, [no yes mod], ol_enable_backends)dnl
314 OL_ARG_ENABLE(null,[ --enable-null enable null backend],
315 no, [no yes mod], ol_enable_backends)dnl
316 OL_ARG_ENABLE(passwd,[ --enable-passwd enable passwd backend],
317 no, [no yes mod], ol_enable_backends)dnl
318 OL_ARG_ENABLE(perl,[ --enable-perl enable perl backend],
319 no, [no yes mod], ol_enable_backends)dnl
320 OL_ARG_ENABLE(relay,[ --enable-relay enable relay backend],
321 yes, [no yes mod], ol_enable_backends)dnl
322 OL_ARG_ENABLE(shell,[ --enable-shell enable shell backend],
323 no, [no yes mod], ol_enable_backends)dnl
324 OL_ARG_ENABLE(sock,[ --enable-sock enable sock backend],
325 no, [no yes mod], ol_enable_backends)dnl
326 OL_ARG_ENABLE(sql,[ --enable-sql enable sql backend],
327 no, [no yes mod], ol_enable_backends)dnl
329 dnl ----------------------------------------------------------------
330 dnl SLAPD Overlay Options
331 Overlays="accesslog \
349 AC_ARG_ENABLE(xxslapoverlays,[
350 SLAPD Overlay Options:])
352 OL_ARG_ENABLE(overlays,[ --enable-overlays enable all available overlays],
354 OL_ARG_ENABLE(accesslog,[ --enable-accesslog In-Directory Access Logging overlay],
355 no, [no yes mod], ol_enable_overlays)
356 OL_ARG_ENABLE(auditlog,[ --enable-auditlog Audit Logging overlay],
357 no, [no yes mod], ol_enable_overlays)
358 OL_ARG_ENABLE(constraint,[ --enable-constraint Attribute Constraint overlay],
359 no, [no yes mod], ol_enable_overlays)
360 OL_ARG_ENABLE(dds,[ --enable-dds Dynamic Directory Services overlay],
361 no, [no yes mod], ol_enable_overlays)
362 OL_ARG_ENABLE(dyngroup,[ --enable-dyngroup Dynamic Group overlay],
363 no, [no yes mod], ol_enable_overlays)
364 OL_ARG_ENABLE(dynlist,[ --enable-dynlist Dynamic List overlay],
365 no, [no yes mod], ol_enable_overlays)
366 OL_ARG_ENABLE(memberof,[ --enable-memberof Reverse Group Membership overlay],
367 no, [no yes mod], ol_enable_overlays)
368 OL_ARG_ENABLE(ppolicy,[ --enable-ppolicy Password Policy overlay],
369 no, [no yes mod], ol_enable_overlays)
370 OL_ARG_ENABLE(proxycache,[ --enable-proxycache Proxy Cache overlay],
371 no, [no yes mod], ol_enable_overlays)
372 OL_ARG_ENABLE(refint,[ --enable-refint Referential Integrity overlay],
373 no, [no yes mod], ol_enable_overlays)
374 OL_ARG_ENABLE(retcode,[ --enable-retcode Return Code testing overlay],
375 no, [no yes mod], ol_enable_overlays)
376 OL_ARG_ENABLE(rwm,[ --enable-rwm Rewrite/Remap overlay],
377 no, [no yes mod], ol_enable_overlays)
378 OL_ARG_ENABLE(seqmod,[ --enable-seqmod Sequential Modify overlay],
379 yes, [no yes mod], ol_enable_overlays)
380 OL_ARG_ENABLE(syncprov,[ --enable-syncprov Syncrepl Provider overlay],
381 yes, [no yes mod], ol_enable_overlays)
382 OL_ARG_ENABLE(translucent,[ --enable-translucent Translucent Proxy overlay],
383 no, [no yes mod], ol_enable_overlays)
384 OL_ARG_ENABLE(unique,[ --enable-unique Attribute Uniqueness overlay],
385 no, [no yes mod], ol_enable_overlays)
386 OL_ARG_ENABLE(valsort,[ --enable-valsort Value Sorting overlay],
387 no, [no yes mod], ol_enable_overlays)
389 dnl ----------------------------------------------------------------
390 AC_ARG_ENABLE(xxliboptions,[
391 Library Generation & Linking Options])
395 dnl ----------------------------------------------------------------
398 if test $ol_enable_slapd = no ; then
399 dnl SLAPD was specificallly disabled
400 if test $ol_enable_slapi = yes ; then
401 AC_MSG_WARN([slapd disabled, ignoring --enable-slapi argument])
403 case "$ol_enable_backends" in yes | mod)
404 AC_MSG_WARN([slapd disabled, ignoring --enable-backends argument])
406 for i in $Backends; do
407 eval "ol_tmp=\$ol_enable_$i"
408 if test $ol_tmp != no ; then
409 AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
410 eval "ol_enable_$i=no"
413 if test $ol_enable_modules = yes ; then
414 AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
416 if test $ol_enable_wrappers = yes ; then
417 AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
419 if test $ol_enable_rlookups = yes ; then
420 AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
422 if test $ol_enable_dynacl = yes ; then
423 AC_MSG_WARN([slapd disabled, ignoring --enable-dynacl argument])
425 if test $ol_enable_aci != no ; then
426 AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
428 if test $ol_enable_rewrite = yes ; then
429 AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
432 case "$ol_enable_overlays" in yes | mod)
433 AC_MSG_WARN([slapd disabled, ignoring --enable-overlays argument])
435 for i in $Overlays; do
436 eval "ol_tmp=\$ol_enable_$i"
437 if test $ol_tmp != no ; then
438 AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
439 eval "ol_enable_$i=no"
443 # force settings to no
449 ol_enable_rlookups=no
452 ol_enable_wrappers=no
456 elif test $ol_enable_modules != yes &&
457 test $ol_enable_bdb = no &&
458 test $ol_enable_dnssrv = no &&
459 test $ol_enable_hdb = no &&
460 test $ol_enable_ldap = no &&
461 test $ol_enable_meta = no &&
462 test $ol_enable_monitor = no &&
463 test $ol_enable_null = no &&
464 test $ol_enable_passwd = no &&
465 test $ol_enable_perl = no &&
466 test $ol_enable_relay = no &&
467 test $ol_enable_shell = no &&
468 test $ol_enable_sock = no &&
469 test $ol_enable_sql = no ; then
472 if test $ol_enable_slapd = yes ; then
473 AC_MSG_ERROR([slapd requires a backend])
475 AC_MSG_WARN([skipping slapd, no backend specified])
480 if test $ol_enable_meta/$ol_enable_ldap = yes/no ; then
481 AC_MSG_ERROR([--enable-meta requires --enable-ldap])
484 if test $ol_enable_lmpasswd = yes ; then
485 if test $ol_with_tls = no ; then
486 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
490 if test $ol_enable_spasswd = yes ; then
491 if test $ol_with_cyrus_sasl = no ; then
492 AC_MSG_ERROR([options require --with-cyrus-sasl])
494 ol_with_cyrus_sasl=yes
499 dnl ----------------------------------------------------------------
548 SLAPD_STATIC_OVERLAYS=
549 SLAPD_DYNAMIC_OVERLAYS=
551 SLAPD_MODULES_LDFLAGS=
552 SLAPD_MODULES_CPPFLAGS=
554 SLAPD_STATIC_BACKENDS=back-ldif
555 SLAPD_DYNAMIC_BACKENDS=
579 dnl ================================================================
580 dnl Checks for programs
582 AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
584 dnl ----------------------------------------------------------------
586 dnl Determine which C translator to use
589 dnl AIX Thread requires we use cc_r or xlc_r.
590 dnl But only do this IF AIX and CC is not set
591 dnl and threads are auto|yes|posix.
593 dnl If we find cc_r|xlc_r, force pthreads and assume
594 dnl pthread_create is in $LIBS (ie: don't bring in
595 dnl any additional thread libraries)
596 dnl If we do not find cc_r|xlc_r, disable threads
600 *-*-aix*) dnl all AIX is not a good idea.
601 if test -z "$CC" ; then
602 case "$ol_with_threads" in
603 auto | yes | posix) ol_aix_threads=yes ;;
609 if test $ol_aix_threads = yes ; then
610 if test -z "${CC}" ; then
611 AC_CHECK_PROGS(CC,cc_r xlc_r cc)
613 if test "$CC" = cc ; then
614 dnl no CC! don't allow --with-threads
615 if test $ol_with_threads != auto ; then
616 AC_MSG_ERROR([--with-threads requires cc_r (or other suitable compiler) on AIX])
618 AC_MSG_WARN([disabling threads, no cc_r on AIX])
624 case ${CC} in cc_r | xlc_r)
625 ol_with_threads=posix
626 ol_cv_pthread_create=yes
631 if test -z "${CC}"; then
632 AC_CHECK_PROGS(CC,cc gcc,missing)
634 if test "${CC}" = "missing" ; then
635 AC_MSG_ERROR([Unable to locate cc(1) or suitable replacement. Check PATH or set CC.])
639 if test -z "${AR}"; then
640 AC_CHECK_PROGS(AR,ar gar,missing)
642 if test "${AR}" = "missing" ; then
643 AC_MSG_ERROR([Unable to locate ar(1) or suitable replacement. Check PATH or set AR.])
651 dnl ----------------------------------------------------------------
654 if test $ol_enable_perl != no ; then
655 AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)
657 if test "no$PERLBIN" = "no" ; then
658 if test $ol_enable_perl = yes ; then
659 AC_MSG_ERROR([could not locate perl])
663 PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
664 PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e 's/ -lc / /' -e 's/ -lc$//'`"
666 if test x"$ol_enable_perl" = "xyes" ; then
667 SLAPD_PERL_LDFLAGS="$PERL_LDFLAGS"
669 MOD_PERL_LDFLAGS="$PERL_LDFLAGS"
671 dnl should check perl version
678 dnl ----------------------------------------------------------------
679 dnl Checks for Windows NT
681 *mingw32* ) ac_cv_mingw32=yes ;;
682 *cygwin* ) ac_cv_cygwin=yes ;;
685 dnl ----------------------------------------------------------------
686 dnl Checks for file extensions
689 AC_DEFINE_UNQUOTED(EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
691 dnl ----------------------------------------------------------------
692 dnl BeOS requires -lbe -lroot -lnet
693 AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])
695 dnl ----------------------------------------------------------------
696 dnl OpenLDAP requires STDC features
698 if test "X${ac_cv_prog_cc_stdc}" = "Xno" ; then
699 AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
702 dnl ----------------------------------------------------------------
703 dnl Check cc depend flags
705 if test "${ol_cv_mkdep}" = no ; then
706 # this will soon become an error
707 AC_MSG_WARN([do not know how to generate dependencies])
710 dnl ----------------------------------------------------------------
711 dnl Check for AIX security library
712 AC_CHECK_LIB(s, afopen, [
714 AC_DEFINE(HAVE_AIX_SECURITY,1,[define if you have AIX security lib])
717 dnl ----------------------------------------------------------------
718 dnl Check for IBM OS/390
722 AC_DEFINE(BOTH_STRINGS_H,1,[define to use both <string.h> and <strings.h>])
726 dnl ----------------------------------------------------------------
727 dnl Check for module support
729 WITH_MODULES_ENABLED=no
730 if test $ol_enable_modules != no ; then
731 AC_CHECK_HEADERS(ltdl.h)
733 if test $ac_cv_header_ltdl_h = no ; then
734 AC_MSG_ERROR([could not locate libtool ltdl.h])
737 AC_CHECK_LIB(ltdl, lt_dlinit, [
739 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
742 if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then
743 AC_MSG_ERROR([could not locate libtool -lltdl])
746 WITH_MODULES_ENABLED=yes
749 for i in $Backends; do
750 eval "ol_tmp=\$ol_enable_$i"
751 if test $ol_tmp = mod ; then
752 AC_MSG_WARN([building static $i backend])
753 eval "ol_enable_$i=yes"
756 for i in $Overlays; do
757 eval "ol_tmp=\$ol_enable_$i"
758 if test $ol_tmp = mod ; then
759 AC_MSG_WARN([building static $i overlay])
760 eval "ol_enable_$i=yes"
765 dnl ----------------------------------------------------------------
766 dnl Checks for header files.
769 if test $ol_cv_header_stdc != yes; then
770 AC_MSG_WARN([could not locate Standard C compliant headers])
827 dnl Only check Winsock on MinGW
828 if test "$ac_cv_mingw32" = yes ; then
829 AC_CHECK_HEADERS( winsock.h winsock2.h )
832 AC_CHECK_HEADERS( resolv.h, [], [],
833 [$ac_includes_default
834 #include <netinet/in.h>
837 AC_CHECK_HEADERS( netinet/tcp.h, [], [],
838 [$ac_includes_default
839 #include <netinet/in.h>
842 AC_CHECK_HEADERS( sys/ucred.h, [], [],
843 [$ac_includes_default
844 #ifdef HAVE_SYS_PARAM_H
845 #include <sys/param.h>
849 dnl ----------------------------------------------------------------
850 dnl Checks for libraries
852 AC_CHECK_FUNCS( sigaction sigset )
854 dnl HP-UX requires -lV3
855 dnl this is not needed on newer versions of HP-UX
856 if test $ac_cv_func_sigaction = no && test $ac_cv_func_sigaction = no ; then
857 AC_CHECK_LIB(V3, sigset)
860 dnl The following is INTENTIONALLY scripted out because shell does not
861 dnl support variable names with the '@' character, which is what
862 dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
863 if test "$ac_cv_header_winsock_h" = yes; then
864 AC_CACHE_CHECK([for winsock], [ol_cv_winsock],
866 for curlib in ws2_32 wsock32; do
867 LIBS="$LIBS -l$curlib"
868 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <winsock.h>
871 select(0,NULL,NULL,NULL,NULL);
874 ]])],[ol_cv_winsock=yes],[ol_cv_winsock=no])
876 if test $ol_cv_winsock = yes; then
877 AC_DEFINE(HAVE_WINSOCK, 1, [define if you have winsock])
878 ac_cv_func_socket=yes
879 ac_cv_func_select=yes
880 ac_cv_func_closesocket=yes
881 ac_cv_func_gethostname=yes
882 if test $curlib = ws2_32; then
883 ol_cv_winsock=winsock2
884 AC_DEFINE(HAVE_WINSOCK2, 1,
885 [define if you have winsock2])
894 dnl Likely combinations:
895 dnl -lsocket [ -lnsl_s | -lnsl ]
898 AC_CHECK_FUNC(socket, :, [
899 dnl hopefully we won't include too many libraries
900 AC_CHECK_LIB(socket, main)
901 AC_CHECK_LIB(net, main)
902 AC_CHECK_LIB(nsl_s, main)
903 AC_CHECK_LIB(nsl, main)
904 AC_CHECK_LIB(inet, socket)
905 AC_CHECK_LIB(gen, main)
909 AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
911 if test "${ac_cv_header_winsock_h}" != yes; then
913 dnl (if this detection becomes permenent, it and the select() detection
914 dnl should be done before the yielding select test)
915 AC_FUNC_SELECT_ARGTYPES
918 dnl check to see if system call automatically restart
919 dnl AC_SYS_RESTARTABLE_SYSCALLS
921 dnl ----------------------------------------------------------------
922 AC_CHECK_FUNCS( poll )
923 if test $ac_cv_func_poll = yes; then
924 AC_CHECK_HEADERS( poll.h sys/poll.h )
927 dnl ----------------------------------------------------------------
928 AC_CHECK_HEADERS( sys/epoll.h )
929 if test "${ac_cv_header_sys_epoll_h}" = yes; then
930 AC_MSG_CHECKING(for epoll system call)
931 AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv)
933 int epfd = epoll_create(256);
934 exit (epfd == -1 ? 1 : 0);
935 }]])],[AC_MSG_RESULT(yes)
936 AC_DEFINE(HAVE_EPOLL,1, [define if your system supports epoll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
939 dnl ----------------------------------------------------------------
940 AC_CHECK_HEADERS( sys/devpoll.h )
941 dnl "/dev/poll" needs <sys/poll.h> as well...
942 if test "${ac_cv_header_sys_devpoll_h}" = yes \
943 -a "${ac_cv_header_poll_h}" = yes ; \
945 AC_MSG_CHECKING(for /dev/poll)
946 AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv)
948 int devpollfd = open("/dev/poll", /* O_RDWR */ 2);
949 exit (devpollfd == -1 ? 1 : 0);
950 }]])],[AC_MSG_RESULT(yes)
951 AC_DEFINE(HAVE_DEVPOLL,1, [define if your system supports /dev/poll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
954 dnl ----------------------------------------------------------------
958 dnl ----------------------------------------------------------------
959 dnl require POSIX regex
960 AC_CHECK_HEADERS( regex.h, [], [],
961 [$ac_includes_default
962 #ifdef HAVE_SYS_TYPES_H
963 #include <sys/types.h>
967 if test "$ac_cv_header_regex_h" != yes ; then
968 AC_MSG_ERROR([POSIX regex.h required.])
970 AC_SEARCH_LIBS(regfree, [regex gnuregex],
971 :, AC_MSG_ERROR([POSIX regex required.]))
974 if test "$ol_cv_c_posix_regex" = no ; then
975 AC_MSG_ERROR([broken POSIX regex!])
978 dnl ----------------------------------------------------------------
982 AC_CHECK_HEADERS(sys/uuid.h)
983 if test $ac_cv_header_sys_uuid_h = yes ; then
985 AC_SEARCH_LIBS([uuid_to_str], [uuid], [have_uuid=yes], :)
988 if test have_uuid = yes ; then
989 AC_DEFINE(HAVE_UUID_TO_STR,1,
990 [define if you have uuid_to_str()])
992 test "$ac_cv_search_uuid_to_str" = "none required" || \
993 SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_to_str"
997 dnl Look for uuid_generate
998 if test $have_uuid = no ; then
999 AC_CHECK_HEADERS(uuid/uuid.h)
1000 if test $ac_cv_header_uuid_uuid_h = yes ; then
1002 AC_SEARCH_LIBS([uuid_generate], [uuid], [have_uuid=yes], :)
1005 if test have_uuid = yes ; then
1006 AC_DEFINE(HAVE_UUID_GENERATE,1,
1007 [define if you have uuid_generate()])
1009 test "$ac_cv_search_uuid_generate" = "none required" || \
1010 SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_generate"
1015 dnl For windows, check for the need of RPCRT for UUID function support
1016 if test $have_uuid = no ; then
1017 AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
1019 LIBS="$LIBS -lrpcrt4"
1020 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1021 int __stdcall UuidCreate(void *);
1022 int __stdcall UuidToStringA(void *,void **);
1026 ]])],[need_rpcrt=yes],[need_rpcrt=no])
1027 if test $need_rpcrt = yes; then
1028 SLAPD_LIBS="$SLAPD_LIBS -lrpcrt4"
1031 AC_MSG_RESULT($need_rpcrt)
1034 dnl ----------------------------------------------------------------
1035 dnl Check for resolver routines
1039 if test "$ol_cv_lib_resolver" != no ; then
1040 AC_DEFINE(HAVE_RES_QUERY,1,
1041 [define if you have res_query()])
1043 if test "$ol_enable_dnssrv" != no ; then
1047 if test "$ol_cv_lib_resolver" != yes ; then
1048 LIBS="$ol_cv_lib_resolver $LIBS"
1052 if test "$ol_enable_dnssrv" = yes || test "$ol_enable_dnssrv" = mod ; then
1053 if test "$ol_link_dnssrv" = no ; then
1054 AC_MSG_ERROR([DNSSRV requires res_query()])
1060 AC_CHECK_FUNCS( hstrerror )
1062 dnl ----------------------------------------------------------------
1063 dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
1064 dnl PF_LOCAL may use getaddrinfo in available
1065 AC_CHECK_FUNCS( getaddrinfo getnameinfo gai_strerror inet_ntop )
1068 if test $ac_cv_func_getaddrinfo = no || test $ac_cv_func_inet_ntop = no ; then
1069 if test $ol_enable_ipv6 = yes ; then
1070 AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
1072 elif test $ol_enable_ipv6 != no ; then
1073 AC_CACHE_CHECK([INET6_ADDRSTRLEN],[ol_cv_inet6_addrstrlen],[
1074 AC_EGREP_CPP(__has_inet6_addrstrlen__,[
1075 # include <netinet/in.h>
1076 # ifdef INET6_ADDRSTRLEN
1077 __has_inet6_addrstrlen__;
1079 ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])])
1082 AC_CACHE_CHECK([struct sockaddr_storage],ol_cv_struct_sockaddr_storage,[
1083 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1084 #include <sys/types.h>
1085 #include <sys/socket.h>
1087 struct sockaddr_storage ss;
1088 ]])],[ol_cv_struct_sockaddr_storage=yes],[ol_cv_struct_sockaddr_storage=no])])
1090 if test $ol_cv_inet6_addrstrlen = yes &&
1091 test $ol_cv_struct_sockaddr_storage = yes ; then
1093 elif test $ol_enable_ipv6 = yes &&
1094 test $ol_cv_inet6_addrstrlen = no ; then
1095 AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
1096 elif test $ol_enable_ipv6 = yes &&
1097 test $ol_cv_struct_sockaddr_storage = no ; then
1098 AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage])
1102 if test $ol_enable_local != no ; then
1103 AC_CHECK_HEADERS( sys/un.h )
1105 if test $ol_enable_local = auto ; then
1106 ol_enable_local=$ac_cv_header_sys_un_h
1107 elif test $ac_cv_header_sys_un_h = no ; then
1108 AC_MSG_ERROR([AF_LOCAL domain support requires sys/un.h])
1112 dnl ----------------------------------------------------------------
1115 if test $ol_with_tls = yes ; then
1120 if test $ol_with_tls = openssl || test $ol_with_tls = auto ; then
1121 AC_CHECK_HEADERS(openssl/ssl.h)
1123 if test $ac_cv_header_openssl_ssl_h = yes ; then
1124 AC_CHECK_LIB(ssl, SSL_library_init,
1126 need_rsaref=no], [have_openssl=no],
1129 if test $have_openssl = no ; then
1130 AC_CHECK_LIB(ssl, ssl3_accept,
1132 need_rsaref=yes], [have_openssl=no],
1133 [-lcrypto -lRSAglue -lrsaref])
1136 if test $have_openssl = yes ; then
1140 AC_DEFINE(HAVE_OPENSSL, 1,
1141 [define if you have OpenSSL])
1143 if test $need_rsaref = yes; then
1144 AC_DEFINE(HAVE_RSAREF, 1,
1145 [define if OpenSSL needs RSAref])
1147 TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
1149 TLS_LIBS="-lssl -lcrypto"
1153 if test $ol_cv_ssl_crl_compat = yes ; then
1154 AC_DEFINE(HAVE_OPENSSL_CRL, 1,
1155 [define if you have OpenSSL with CRL checking capability])
1161 if test $ol_link_tls = no ; then
1162 if test $ol_with_tls = gnutls || test $ol_with_tls = auto ; then
1163 AC_CHECK_HEADERS(gnutls/gnutls.h)
1165 if test $ac_cv_header_gnutls_gnutls_h = yes ; then
1166 AC_CHECK_LIB(gnutls, gnutls_init,
1167 [have_gnutls=yes], [have_gnutls=no])
1169 if test $have_gnutls = yes ; then
1175 AC_DEFINE(HAVE_GNUTLS, 1,
1176 [define if you have GNUtls])
1183 if test $ol_link_tls = yes ; then
1184 AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
1186 elif test $ol_with_tls = auto ; then
1187 AC_MSG_WARN([Could not locate TLS/SSL package])
1188 AC_MSG_WARN([TLS data protection not supported!])
1189 elif test $ol_with_tls != no ; then
1190 AC_MSG_ERROR([Could not locate TLS/SSL package])
1192 AC_MSG_WARN([TLS data protection not supported!])
1195 dnl ----------------------------------------------------------------
1196 dnl LAN Manger password checking requires DES from OpenSSL
1197 if test $ol_enable_lmpasswd != no; then
1198 if test $ol_link_tls != yes ; then
1199 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
1202 AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
1205 dnl ----------------------------------------------------------------
1209 case $ol_with_threads in auto | yes | nt)
1213 if test "$ol_cv_nt_threads" = yes ; then
1215 ol_with_threads=found
1216 ol_with_yielding_select=yes
1218 AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager])
1219 AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log])
1222 if test $ol_with_threads = nt ; then
1223 AC_MSG_ERROR([could not locate NT Threads])
1228 case $ol_with_threads in auto | yes | posix)
1230 AC_CHECK_HEADERS(pthread.h)
1232 if test $ac_cv_header_pthread_h = yes ; then
1233 OL_POSIX_THREAD_VERSION
1235 if test $ol_cv_pthread_version != 0 ; then
1236 AC_DEFINE_UNQUOTED(HAVE_PTHREADS,$ol_cv_pthread_version,
1237 [define to pthreads API spec revision])
1239 AC_MSG_ERROR([unknown pthread version])
1242 # consider threads found
1243 ol_with_threads=found
1245 OL_HEADER_LINUX_THREADS
1246 OL_HEADER_GNU_PTH_PTHREAD_H
1248 if test $ol_cv_header_gnu_pth_pthread_h = no ; then
1249 AC_CHECK_HEADERS(sched.h)
1252 dnl Now the hard part, how to link?
1254 dnl currently supported checks:
1256 dnl Check for no flags
1257 dnl pthread_create() in $LIBS
1259 dnl Check special pthread (final) flags
1260 dnl [skipped] pthread_create() with -mt (Solaris) [disabled]
1261 dnl pthread_create() with -kthread (FreeBSD)
1262 dnl pthread_create() with -pthread (FreeBSD/Digital Unix)
1263 dnl pthread_create() with -pthreads (?)
1264 dnl pthread_create() with -mthreads (AIX)
1265 dnl pthread_create() with -thread (?)
1267 dnl Check pthread (final) libraries
1268 dnl pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
1269 dnl pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
1270 dnl [skipped] pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
1271 dnl pthread_join() -Wl,-woff,85 -lpthread (IRIX)
1272 dnl pthread_create() in -lpthread (many)
1273 dnl pthread_create() in -lc_r (FreeBSD)
1275 dnl Check pthread (draft4) flags (depreciated)
1276 dnl pthread_create() with -threads (OSF/1)
1278 dnl Check pthread (draft4) libraries (depreciated)
1279 dnl pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
1280 dnl pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
1281 dnl pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
1282 dnl pthread_create() in -lpthreads (many)
1285 dnl pthread_create in $LIBS
1286 AC_CACHE_CHECK([for pthread_create in default libraries],
1287 ol_cv_pthread_create,[
1288 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1289 [ol_cv_pthread_create=yes],
1290 [ol_cv_pthread_create=no],
1291 [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION,
1292 [ol_cv_pthread_create=yes],
1293 [ol_cv_pthread_create=no])])])
1295 if test $ol_cv_pthread_create != no ; then
1296 ol_link_threads=posix
1300 dnl OL_PTHREAD_TRY([-mt], [ol_cv_pthread_mt])
1301 OL_PTHREAD_TRY([-kthread], [ol_cv_pthread_kthread])
1302 OL_PTHREAD_TRY([-pthread], [ol_cv_pthread_pthread])
1303 OL_PTHREAD_TRY([-pthreads], [ol_cv_pthread_pthreads])
1304 OL_PTHREAD_TRY([-mthreads], [ol_cv_pthread_mthreads])
1305 OL_PTHREAD_TRY([-thread], [ol_cv_pthread_thread])
1307 OL_PTHREAD_TRY([-lpthread -lmach -lexc -lc_r],
1308 [ol_cv_pthread_lpthread_lmach_lexc_lc_r])
1309 OL_PTHREAD_TRY([-lpthread -lmach -lexc],
1310 [ol_cv_pthread_lpthread_lmach_lexc])
1311 dnl OL_PTHREAD_TRY([-lpthread -lexc],
1312 dnl [ol_cv_pthread_lpthread_lexc])
1314 OL_PTHREAD_TRY([-lpthread -Wl,-woff,85],
1315 [ol_cv_pthread_lib_lpthread_woff])
1317 OL_PTHREAD_TRY([-lpthread], [ol_cv_pthread_lpthread])
1318 OL_PTHREAD_TRY([-lc_r], [ol_cv_pthread_lc_r])
1320 OL_PTHREAD_TRY([-threads], [ol_cv_pthread_threads])
1322 OL_PTHREAD_TRY([-lpthreads -lmach -lexc -lc_r],
1323 [ol_cv_pthread_lpthreads_lmach_lexc_lc_r])
1324 OL_PTHREAD_TRY([-lpthreads -lmach -lexc],
1325 [ol_cv_pthread_lpthreads_lmach_lexc])
1326 OL_PTHREAD_TRY([-lpthreads -lexc],
1327 [ol_cv_pthread_lpthreads_lexc])
1329 OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
1331 if test $ol_link_threads != no ; then
1332 LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
1335 save_CPPFLAGS="$CPPFLAGS"
1337 LIBS="$LTHREAD_LIBS $LIBS"
1339 dnl All POSIX Thread (final) implementations should have
1340 dnl sched_yield instead of pthread yield.
1341 dnl check for both, and thr_yield for Solaris
1342 AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
1344 if test $ac_cv_func_sched_yield = no &&
1345 test $ac_cv_func_pthread_yield = no &&
1346 test $ac_cv_func_thr_yield = no ; then
1347 dnl Digital UNIX has sched_yield() in -lrt
1348 AC_CHECK_LIB(rt, sched_yield,
1349 [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
1350 AC_DEFINE(HAVE_SCHED_YIELD,1,
1351 [Define if you have the sched_yield function.])
1352 ac_cv_func_sched_yield=yes],
1353 [ac_cv_func_sched_yield=no])
1355 if test $ac_cv_func_sched_yield = no &&
1356 test $ac_cv_func_pthread_yield = no &&
1357 test "$ac_cv_func_thr_yield" = no ; then
1358 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
1361 dnl Check functions for compatibility
1362 AC_CHECK_FUNCS(pthread_kill)
1364 dnl Check for pthread_rwlock_destroy with <pthread.h>
1365 dnl as pthread_rwlock_t may not be defined.
1366 AC_CACHE_CHECK([for pthread_rwlock_destroy with <pthread.h>],
1367 [ol_cv_func_pthread_rwlock_destroy], [
1369 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1370 #include <pthread.h>
1371 pthread_rwlock_t rwlock;
1372 ]], [[pthread_rwlock_destroy(&rwlock);]])],[ol_cv_func_pthread_rwlock_destroy=yes],[ol_cv_func_pthread_rwlock_destroy=no])
1374 if test $ol_cv_func_pthread_rwlock_destroy = yes ; then
1375 AC_DEFINE(HAVE_PTHREAD_RWLOCK_DESTROY,1,
1376 [define if you have pthread_rwlock_destroy function])
1379 dnl Check for pthread_detach with <pthread.h> inclusion
1380 dnl as it's symbol may have been mangled.
1381 AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
1382 [ol_cv_func_pthread_detach], [
1384 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1385 #include <pthread.h>
1387 #define NULL (void*)0
1389 ]], [[pthread_detach(NULL);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
1392 if test $ol_cv_func_pthread_detach = no ; then
1393 AC_MSG_ERROR([could not locate pthread_detach()])
1396 AC_DEFINE(HAVE_PTHREAD_DETACH,1,
1397 [define if you have pthread_detach function])
1399 dnl Check for setconcurreny functions
1401 pthread_setconcurrency \
1402 pthread_getconcurrency \
1403 thr_setconcurrency \
1404 thr_getconcurrency \
1407 OL_SYS_LINUX_THREADS
1410 if test $ol_cv_linux_threads = error; then
1411 AC_MSG_ERROR([LinuxThreads header/library mismatch]);
1414 AC_CACHE_CHECK([if pthread_create() works],
1415 ol_cv_pthread_create_works,[
1416 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1417 [ol_cv_pthread_create_works=yes],
1418 [ol_cv_pthread_create_works=no],
1420 ol_cv_pthread_create_works=yes])])
1422 if test $ol_cv_pthread_create_works = no ; then
1423 AC_MSG_ERROR([pthread_create is not usable, check environment settings])
1426 ol_replace_broken_yield=no
1427 dnl case "$target" in
1429 dnl AC_CHECK_FUNCS(nanosleep)
1430 dnl ol_replace_broken_yield=yes
1434 if test $ol_replace_broken_yield = yes ; then
1435 AC_DEFINE([REPLACE_BROKEN_YIELD],1,
1436 [define if sched_yield yields the entire process])
1439 dnl Check if select causes an yield
1440 if test $ol_with_yielding_select = auto ; then
1441 AC_CACHE_CHECK([if select yields when using pthreads],
1442 ol_cv_pthread_select_yields,[
1443 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1444 #include <sys/types.h>
1445 #include <sys/time.h>
1447 #include <pthread.h>
1449 #define NULL (void*) 0
1452 static int fildes[2];
1454 static void *task(p)
1466 FD_SET(fildes[0], &rfds);
1468 /* we're not interested in any fds */
1469 i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
1476 exit(0); /* if we exit here, the select blocked the whole process */
1479 int main(argc, argv)
1485 /* create a pipe to select */
1486 if(pipe(&fildes[0])) {
1491 #ifdef HAVE_PTHREAD_SETCONCURRENCY
1492 (void) pthread_setconcurrency(2);
1494 #ifdef HAVE_THR_SETCONCURRENCY
1495 /* Set Solaris LWP concurrency to 2 */
1496 thr_setconcurrency(2);
1500 #if HAVE_PTHREADS < 6
1501 pthread_create(&t, pthread_attr_default, task, NULL);
1503 pthread_create(&t, NULL, task, NULL);
1506 /* make sure task runs first */
1507 #ifdef HAVE_THR_YIELD
1509 #elif defined( HAVE_SCHED_YIELD )
1511 #elif defined( HAVE_PTHREAD_YIELD )
1516 }]])],[ol_cv_pthread_select_yields=no],[ol_cv_pthread_select_yields=yes],[ol_cv_pthread_select_yields=cross])])
1518 if test $ol_cv_pthread_select_yields = cross ; then
1519 AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])
1522 if test $ol_cv_pthread_select_yields = yes ; then
1523 ol_with_yielding_select=yes
1528 CPPFLAGS="$save_CPPFLAGS"
1531 AC_MSG_ERROR([could not locate usable POSIX Threads])
1535 if test $ol_with_threads = posix ; then
1536 AC_MSG_ERROR([could not locate POSIX Threads])
1541 case $ol_with_threads in auto | yes | mach)
1543 dnl check for Mach CThreads
1544 AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
1545 if test $ac_cv_header_mach_cthreads_h = yes ; then
1546 ol_with_threads=found
1548 dnl check for cthreads support in current $LIBS
1549 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1551 if test $ol_link_threads = no ; then
1553 dnl this test needs work
1554 AC_CACHE_CHECK([for cthread_fork with -all_load],
1555 [ol_cv_cthread_all_load], [
1558 LIBS="-all_load $LIBS"
1559 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <mach/cthreads.h>]], [[
1560 cthread_fork((void *)0, (void *)0);
1561 ]])],[ol_cv_cthread_all_load=yes],[ol_cv_cthread_all_load=no])
1562 dnl restore the LIBS
1566 if test $ol_cv_cthread_all_load = yes ; then
1567 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
1568 ol_link_threads=mach
1569 ol_with_threads=found
1573 elif test $ac_cv_header_cthreads_h = yes ; then
1574 dnl Hurd variant of Mach Cthreads
1575 dnl uses <cthreads.h> and -lthreads
1577 ol_with_threads=found
1581 LIBS="$LIBS -lthreads"
1582 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1585 if test $ol_link_threads = yes ; then
1586 LTHREAD_LIBS="-lthreads"
1587 ol_link_threads=mach
1588 ol_with_threads=found
1590 AC_MSG_ERROR([could not link with Mach CThreads])
1593 elif test $ol_with_threads = mach ; then
1594 AC_MSG_ERROR([could not locate Mach CThreads])
1597 if test $ol_link_threads = mach ; then
1598 AC_DEFINE(HAVE_MACH_CTHREADS,1,
1599 [define if you have Mach Cthreads])
1600 elif test $ol_with_threads = found ; then
1601 AC_MSG_ERROR([could not link with Mach CThreads])
1606 case $ol_with_threads in auto | yes | pth)
1608 AC_CHECK_HEADERS(pth.h)
1610 if test $ac_cv_header_pth_h = yes ; then
1611 AC_CHECK_LIB(pth, pth_version, [have_pth=yes], [have_pth=no])
1613 if test $have_pth = yes ; then
1614 AC_DEFINE(HAVE_GNU_PTH,1,[if you have GNU Pth])
1615 LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
1617 ol_with_threads=found
1619 if test $ol_with_yielding_select = auto ; then
1620 ol_with_yielding_select=yes
1627 case $ol_with_threads in auto | yes | lwp)
1629 dnl check for SunOS5 LWP
1630 AC_CHECK_HEADERS(thread.h synch.h)
1631 if test $ac_cv_header_thread_h = yes &&
1632 test $ac_cv_header_synch_h = yes ; then
1633 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
1635 if test $have_thr = yes ; then
1636 AC_DEFINE(HAVE_THR,1,
1637 [if you have Solaris LWP (thr) package])
1638 LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
1641 if test $ol_with_yielding_select = auto ; then
1642 ol_with_yielding_select=yes
1645 dnl Check for setconcurreny functions
1647 thr_setconcurrency \
1648 thr_getconcurrency \
1653 dnl check for SunOS4 LWP
1654 AC_CHECK_HEADERS(lwp/lwp.h)
1655 if test $ac_cv_header_lwp_lwp_h = yes ; then
1656 AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
1658 if test $have_lwp = yes ; then
1659 AC_DEFINE(HAVE_LWP,1,
1660 [if you have SunOS LWP package])
1661 LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
1664 if test $ol_with_yielding_select = auto ; then
1665 ol_with_yielding_select=no
1672 if test $ol_with_yielding_select = yes ; then
1673 AC_DEFINE(HAVE_YIELDING_SELECT,1,
1674 [define if select implicitly yields])
1677 if test $ol_with_threads = manual ; then
1678 dnl User thinks he can manually configure threads.
1681 AC_MSG_WARN([thread defines and link options must be set manually])
1683 AC_CHECK_HEADERS(pthread.h sched.h)
1684 AC_CHECK_FUNCS(sched_yield pthread_yield)
1685 OL_HEADER_LINUX_THREADS
1687 AC_CHECK_HEADERS(mach/cthreads.h)
1688 AC_CHECK_HEADERS(lwp/lwp.h)
1689 AC_CHECK_HEADERS(thread.h synch.h)
1692 if test $ol_link_threads != no && test $ol_link_threads != nt ; then
1693 dnl needed to get reentrant/threadsafe versions
1695 AC_DEFINE(REENTRANT,1)
1696 AC_DEFINE(_REENTRANT,1)
1697 AC_DEFINE(THREAD_SAFE,1)
1698 AC_DEFINE(_THREAD_SAFE,1)
1699 AC_DEFINE(THREADSAFE,1)
1700 AC_DEFINE(_THREADSAFE,1)
1701 AC_DEFINE(_SGI_MP_SOURCE,1)
1703 dnl The errno declaration may dependent upon _REENTRANT.
1704 dnl If it does, we must link with thread support.
1705 AC_CACHE_CHECK([for thread specific errno],
1706 [ol_cv_errno_thread_specific], [
1707 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <errno.h>]], [[errno = 0;]])],[ol_cv_errno_thread_specific=yes],[ol_cv_errno_thread_specific=no])
1710 dnl The h_errno declaration may dependent upon _REENTRANT.
1711 dnl If it does, we must link with thread support.
1712 AC_CACHE_CHECK([for thread specific h_errno],
1713 [ol_cv_h_errno_thread_specific], [
1714 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])
1717 if test $ol_cv_errno_thread_specific != yes ||
1718 test $ol_cv_h_errno_thread_specific != yes ; then
1719 LIBS="$LTHREAD_LIBS $LIBS"
1723 dnl When in thread environment, use
1724 dnl #if defined( HAVE_REENTRANT_FUNCTIONS ) || defined( HAVE_FUNC_R )
1727 dnl # if defined( HAVE_THREADS )
1731 dnl # if defined( HAVE_THREADS )
1736 dnl HAVE_REENTRANT_FUNCTIONS is derived from:
1737 dnl _POSIX_REENTRANT_FUNCTIONS
1738 dnl _POSIX_THREAD_SAFE_FUNCTIONS
1739 dnl _POSIX_THREADSAFE_FUNCTIONS
1741 dnl and is currently defined in <ldap_pvt_thread.h>
1743 dnl HAVE_THREADS is defined by <ldap_pvt_thread.h> iff -UNO_THREADS
1745 dnl libldap/*.c should only include <ldap_pvt_thread.h> iff
1746 dnl LDAP_R_COMPILE is defined. ie:
1747 dnl #ifdef LDAP_R_COMPILE
1748 dnl # include <ldap_pvt_thread.h>
1751 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
1752 dnl specifically for compiling the threadsafe version of
1753 dnl the ldap library (-lldap_r).
1755 dnl dnl check for reentrant/threadsafe functions
1757 dnl dnl note: these should only be used when linking
1758 dnl dnl with $LTHREAD_LIBS
1760 dnl save_CPPFLAGS="$CPPFLAGS"
1761 dnl save_LIBS="$LIBS"
1762 dnl LIBS="$LTHREAD_LIBS $LIBS"
1763 dnl AC_CHECK_FUNCS( \
1765 dnl gethostbyaddr_r gethostbyname_r \
1766 dnl feof_unlocked unlocked_feof \
1767 dnl putc_unlocked unlocked_putc \
1768 dnl flockfile ftrylockfile \
1770 dnl CPPFLAGS="$save_CPPFLAGS"
1771 dnl LIBS="$save_LIBS"
1774 if test $ol_link_threads = no ; then
1775 if test $ol_with_threads = yes ; then
1776 AC_MSG_ERROR([no suitable thread support])
1779 if test $ol_with_threads = auto ; then
1780 AC_MSG_WARN([no suitable thread support, disabling threads])
1784 AC_DEFINE(NO_THREADS,1,
1785 [define if you have (or want) no threads])
1792 if test $ol_link_threads != no ; then
1793 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1,
1794 [define to 1 if library is thread safe])
1797 dnl ----------------------------------------------------------------
1798 dnl Tests for reentrant functions necessary to build -lldap_r
1801 gethostbyname_r gethostbyaddr_r \
1804 if test "$ac_cv_func_ctime_r" = no ; then
1805 ol_cv_func_ctime_r_nargs=0
1807 OL_FUNC_CTIME_R_NARGS
1808 dnl OL_FUNC_CTIME_R_TYPE
1811 if test "$ac_cv_func_gethostbyname_r" = yes ; then
1812 OL_FUNC_GETHOSTBYNAME_R_NARGS
1814 ol_cv_func_gethostbyname_r_nargs=0
1817 if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
1818 OL_FUNC_GETHOSTBYADDR_R_NARGS
1820 ol_cv_func_gethostbyaddr_r_nargs=0
1823 dnl ----------------------------------------------------------------
1826 if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
1829 if test $ol_cv_berkeley_db = no ; then
1830 AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
1833 AC_DEFINE(HAVE_BERKELEY_DB,1,
1834 [define this if Berkeley DB is available])
1836 dnl $ol_cv_lib_db should be yes or -ldb
1837 dnl (it could be no, but that would be an error
1838 if test $ol_cv_lib_db != yes ; then
1839 BDB_LIBS="$BDB_LIBS $ol_cv_lib_db"
1844 if test $ol_cv_bdb_compat != yes ; then
1845 AC_MSG_ERROR([BDB/HDB: BerkeleyDB version incompatible])
1848 SLAPD_LIBS="$SLAPD_LIBS \$(BDB_LIBS)"
1853 dnl ----------------------------------------------------------------
1855 if test $ol_enable_dynamic = yes && test $enable_shared = yes ; then
1856 BUILD_LIBS_DYNAMIC=shared
1857 AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
1860 BUILD_LIBS_DYNAMIC=static
1863 AC_SUBST(LTSTATIC)dnl
1865 dnl ----------------------------------------------------------------
1866 if test $ol_enable_wrappers != no ; then
1867 AC_CHECK_HEADERS(tcpd.h,[
1868 AC_MSG_CHECKING([for TCP wrappers library])
1871 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1873 int allow_severity = 0;
1874 int deny_severity = 0;
1876 struct request_info *req;
1879 ]])],[AC_MSG_RESULT([-lwrap])
1881 LIBS="$save_LIBS"],[
1886 int allow_severity = 0;
1887 int deny_severity = 0;
1889 struct request_info *req;
1892 ],[AC_MSG_RESULT([-lwrap -lnsl])
1894 LIBS="$save_LIBS -lnsl"],[
1897 LIBS=$save_LIBS])])],[have_wrappers=no])
1899 if test $have_wrappers = yes ; then
1900 AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
1902 elif test $ol_enable_wrappers = yes ; then
1903 AC_MSG_ERROR([could not find TCP wrappers, select apppropriate options or disable])
1905 AC_MSG_WARN([could not find TCP wrappers, support disabled])
1910 dnl ----------------------------------------------------------------
1911 if test $ol_enable_syslog != no ; then
1912 AC_CHECK_FUNC(openlog)
1913 if test $ac_cv_func_openlog = no && test $ol_enable_syslog = yes; then
1914 AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
1916 ol_enable_syslog=$ac_cv_func_openlog
1919 dnl ----------------------------------------------------------------
1922 if test $ol_enable_sql != no ; then
1923 AC_CHECK_HEADERS(sql.h sqlext.h,[],[
1924 AC_MSG_ERROR([could not locate SQL headers])
1928 LIBS="$LTHREAD_LIBS"
1930 if test $ol_with_odbc = auto ; then
1931 ol_with_odbc="iodbc unixodbc"
1934 for odbc in $ol_with_odbc ; do
1935 if test $ol_link_sql = no ; then
1938 AC_CHECK_LIB(iodbc, SQLDriverConnect, [have_iodbc=yes], [have_iodbc=no])
1939 if test $have_iodbc = yes ; then
1940 ol_link_sql="-liodbc"
1945 AC_CHECK_LIB(odbc, SQLDriverConnect, [have_odbc=yes], [have_odbc=no])
1946 if test $have_odbc = yes ; then
1947 ol_link_sql="-lodbc"
1952 AC_MSG_ERROR([unknown ODBC library])
1960 if test $ol_link_sql != no ; then
1961 SLAPD_SQL_LIBS="$ol_link_sql"
1963 elif test $ol_enable_sql != auto ; then
1964 AC_MSG_ERROR([could not locate suitable ODBC library])
1968 dnl ----------------------------------------------------------------
1969 dnl International Components for Unicode
1971 if test "$ol_icu" = no ; then
1972 AC_MSG_WARN([ICU not available])
1976 dnl ----------------------------------------------------------------
1978 dnl Check for Cyrus SASL
1983 if test $ol_with_cyrus_sasl != no ; then
1984 AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
1986 if test $ac_cv_header_sasl_sasl_h = yes ||
1987 test $ac_cv_header_sasl_h = yes; then
1988 AC_CHECK_LIB(sasl2, sasl_client_init,
1989 [ol_link_sasl="-lsasl2"],
1990 [AC_CHECK_LIB(sasl, sasl_client_init,
1991 [ol_link_sasl="-lsasl"])])
1994 if test $ol_link_sasl = no ; then
1995 if test $ol_with_cyrus_sasl != auto ; then
1996 AC_MSG_ERROR([Could not locate Cyrus SASL])
1998 AC_MSG_WARN([Could not locate Cyrus SASL])
1999 AC_MSG_WARN([SASL authentication not supported!])
2000 if test $ol_link_tls = no ; then
2001 AC_MSG_WARN([Strong authentication not supported!])
2006 if test $ol_cv_sasl_compat = no ; then
2008 AC_MSG_ERROR([Cyrus SASL library located but is incompatible])
2011 AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
2012 SASL_LIBS="$ol_link_sasl"
2013 if test $ol_enable_spasswd != no ; then
2017 ac_save_LIBS="$LIBS"
2018 LIBS="$LIBS $ol_link_sasl"
2019 AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1,
2020 [define if your SASL library has sasl_version()])])
2021 LIBS="$ac_save_LIBS"
2027 AC_MSG_WARN([SASL authentication not supported!])
2028 if test $ol_link_tls = no ; then
2029 AC_MSG_WARN([Strong authentication not supported!])
2033 dnl ----------------------------------------------------------------
2034 dnl Check for entropy sources
2035 if test $cross_compiling != yes && test "$ac_cv_mingw32" != yes ; then
2037 if test -r /dev/urandom ; then
2039 elif test -r /idev/urandom ; then
2040 dev="/idev/urandom";
2041 elif test -r /dev/srandom ; then
2043 elif test -r /dev/random ; then
2045 elif test -r /idev/random ; then
2049 if test $dev != no ; then
2050 AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
2054 dnl ----------------------------------------------------------------
2056 dnl Check for fetch URL support
2057 dnl should be extended to support other fetch URL APIs
2060 if test $ol_with_fetch != no ; then
2063 if test $ol_cv_lib_fetch != no ; then
2064 LUTIL_LIBS="$LUTIL_LIBS $ol_link_fetch"
2065 ol_link_fetch=freebsd
2067 elif test $ol_with_fetch != auto ; then
2068 AC_MSG_ERROR(no suitable API for --with-fetch=$ol_with_fetch)
2072 dnl ----------------------------------------------------------------
2073 dnl FreeBSD (and others) have crypt(3) in -lcrypt
2074 if test $ol_enable_crypt != no ; then
2076 LIBS="$TLS_LIBS $LIBS"
2078 AC_CHECK_FUNC(crypt, [have_crypt=yes], [
2080 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
2081 have_crypt=yes], [have_crypt=no])])
2085 if test $have_crypt = yes ; then
2086 AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
2088 AC_MSG_WARN([could not find crypt])
2089 if test $ol_enable_crypt = yes ; then
2090 AC_MSG_ERROR([could not find crypt, select appropriate options or disable])
2093 AC_MSG_WARN([disabling crypt support])
2098 dnl ----------------------------------------------------------------
2099 dnl FreeBSD (and others) have setproctitle(3) in -lutil
2100 if test $ol_enable_proctitle != no ; then
2101 AC_CHECK_FUNC(setproctitle, [have_setproctitle=yes], [
2102 AC_CHECK_LIB(util, setproctitle,
2103 [have_setproctitle=yes
2104 LUTIL_LIBS="$LUTIL_LIBS -lutil"],
2105 [have_setproctitle=no
2106 AC_LIBOBJ(setproctitle)
2107 LIBSRCS="$LIBSRCS setproctitle.c"])])
2109 if test $have_setproctitle = yes ; then
2110 AC_DEFINE(HAVE_SETPROCTITLE,1,
2111 [define if setproctitle(3) is available])
2115 dnl ----------------------------------------------------------------
2116 if test $ol_enable_slp != no ; then
2117 AC_CHECK_HEADERS( slp.h )
2119 if test $ac_cv_header_slp_h = yes ; then
2120 AC_CHECK_LIB(slp, SLPOpen, [have_slp=yes], [have_slp=no])
2121 if test $have_slp = yes ; then
2122 AC_DEFINE(HAVE_SLP, 1, [define if you have -lslp])
2123 SLAPD_SLP_LIBS=-lslp
2126 elif test $ol_enable_slp = yes ; then
2127 AC_MSG_ERROR([SLP not found])
2131 dnl ----------------------------------------------------------------
2132 dnl Checks for typedefs, structures, and compiler characteristics.
2134 AC_CHECK_TYPE(mode_t, int)
2135 AC_CHECK_TYPE(off_t, long)
2136 AC_CHECK_TYPE(pid_t, int)
2137 AC_CHECK_TYPE(ssize_t, [signed int])
2138 AC_CHECK_TYPE(caddr_t, [char *])
2139 AC_CHECK_TYPE(size_t, unsigned)
2141 AC_CHECK_TYPES([long long])
2142 AC_CHECK_TYPES([ptrdiff_t])
2145 AC_CHECK_TYPE([socklen_t],,, [$ac_includes_default
2146 #ifdef HAVE_SYS_SOCKET_H
2147 #include <sys/socket.h>
2150 dnl socklen_t-like type in accept(), default socklen_t or int:
2151 dnl - The OS might define socklen_t without using it. POSIX moved from
2152 dnl int to size_t to socklen_t, hoping to stay at a 32-bit type, and
2153 dnl HP-UX now has selectors for what to use.
2154 dnl - On Solaris 2.8 the prototype has void *len, but the default is OK.
2155 AC_MSG_CHECKING([the type of arg 3 to accept()])
2156 AC_CACHE_VAL(ol_cv_type_ber_socklen_t, [
2157 set socklen_t int unsigned "unsigned long" long size_t
2158 test "$ac_cv_type_socklen_t" = yes || shift
2159 ol_cv_type_ber_socklen_t=$1 guessing="guessing "
2160 for lentype in "$@" ; do for addrtype in "struct sockaddr" void ; do
2161 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$ac_includes_default
2162 #ifdef HAVE_SYS_SOCKET_H
2163 #include <sys/socket.h>
2165 extern int accept(int s, $addrtype *ap, $lentype *lp);
2167 accept(0, (struct sockaddr *) 0, ($lentype *) 0);
2168 ])], [ol_cv_type_ber_socklen_t=$lentype guessing= ; break 2])
2170 AC_MSG_RESULT([$guessing$ol_cv_type_ber_socklen_t *])
2171 AC_DEFINE_UNQUOTED(ber_socklen_t, $ol_cv_type_ber_socklen_t,
2172 [Define to the type of arg 3 for `accept'.])
2174 dnl Modules should use ber_socklen_t, not socklen_t. Define socklen_t
2175 dnl for the time being anyway, for backwards compatibility.
2176 if test "$ac_cv_type_socklen_t" != yes; then
2177 AC_DEFINE_UNQUOTED([socklen_t], [$ol_cv_type_ber_socklen_t],
2178 [Define like ber_socklen_t if <sys/socket.h> does not define.])
2184 AC_CHECK_TYPE([sig_atomic_t],,
2185 [AC_DEFINE_UNQUOTED([sig_atomic_t], [int],
2186 [Define to `int' if <signal.h> does not define.])],
2187 [$ac_includes_default
2195 AC_CHECK_MEMBERS([struct stat.st_blksize])
2196 AC_CHECK_MEMBERS([struct passwd.pw_gecos],,,[$ac_includes_default
2198 AC_CHECK_MEMBERS([struct passwd.pw_passwd],,,[$ac_includes_default
2205 if test $cross_compiling = yes ; then
2206 AC_MSG_WARN([Crossing compiling... all bets are off!])
2207 AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
2212 AC_CHECK_SIZEOF(short)
2213 AC_CHECK_SIZEOF(int)
2214 AC_CHECK_SIZEOF(long)
2215 AC_CHECK_SIZEOF(long long)
2216 AC_CHECK_SIZEOF(wchar_t)
2218 if test "$ac_cv_sizeof_int" -lt 4 ; then
2219 AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
2221 AC_DEFINE(LBER_INT_T,long,[define to 32-bit or greater integer type])
2223 AC_DEFINE(LBER_INT_T,int,[define to 32-bit or greater integer type])
2226 AC_DEFINE(LBER_LEN_T,long,[define to large integer type])
2227 AC_DEFINE(LBER_SOCKET_T,int,[define to socket descriptor type])
2228 AC_DEFINE(LBER_TAG_T,long,[define to large integer type])
2230 dnl ----------------------------------------------------------------
2231 dnl Check for multiple precision support
2232 if test $ol_with_mp = longlong || test $ol_with_mp = auto ; then
2233 if test $ac_cv_sizeof_long_long -gt 4 ; then
2235 AC_DEFINE(USE_MP_LONG_LONG,1,[define to use 'long long' for MP])
2236 elif test $ol_with_mp = longlong ; then
2237 AC_MSG_ERROR([long long unusable for multiple precision])
2240 if test $ol_with_mp = long || test $ol_with_mp = auto ; then
2241 if test $ac_cv_sizeof_long -gt 4 ; then
2243 AC_DEFINE(USE_MP_LONG,1,[define to use 'long' for MP])
2244 elif test $ol_with_mp = long ; then
2245 AC_MSG_ERROR([long unusable for multiple precision])
2248 if test $ol_with_mp = bignum || test $ol_with_mp = auto ; then
2249 AC_CHECK_HEADERS(openssl/bn.h)
2250 AC_CHECK_HEADERS(openssl/crypto.h)
2251 if test "$ac_cv_header_openssl_bn_h" = "yes" &&
2252 test "$ac_cv_header_openssl_crypto_h" = "yes" &&
2253 test "$ol_with_tls" = "found" ; then
2255 AC_DEFINE(USE_MP_BIGNUM,1,[define to use OpenSSL BIGNUM for MP])
2256 elif test $ol_with_mp = bignum ; then
2257 AC_MSG_ERROR([bignum not available])
2260 if test $ol_with_mp = gmp || test $ol_with_mp = auto ; then
2261 AC_CHECK_HEADERS(gmp.h)
2262 AC_CHECK_LIB(gmp, __gmpz_add_ui)
2263 if test $ac_cv_header_gmp_h = yes && test $ac_cv_lib_gmp___gmpz_add_ui = yes ; then
2264 AC_DEFINE(USE_MP_GMP,1,[define to use GMP for MP])
2266 elif test $ol_with_mp = gmp ; then
2267 AC_MSG_ERROR([gmp not available])
2270 if test $ol_with_mp = auto ; then
2274 dnl ----------------------------------------------------------------
2275 dnl Checks for library functions.
2278 if test $ac_cv_func_memcmp_working = no ; then
2279 AC_DEFINE(NEED_MEMCMP_REPLACEMENT,1,
2280 [define if memcmp is not 8-bit clean or is otherwise broken])
2287 dnl Check for NT specific routines
2288 AC_CHECK_FUNC(_spawnlp, AC_DEFINE(HAVE_SPAWNLP,1,[if you have spawnlp()]))
2290 AC_CHECK_FUNC(_snprintf, [ac_cv_func_snprintf=yes
2291 AC_DEFINE(snprintf, _snprintf, [define to snprintf routine])
2294 AC_CHECK_FUNC(_vsnprintf, [ac_cv_func_vsnprintf=yes
2295 AC_DEFINE(vsnprintf, _vsnprintf, [define to vsnprintf routine])
2300 if test $ac_cv_func_vprintf = yes ; then
2301 dnl check for vsnprintf
2302 AC_CHECK_FUNCS(snprintf vsnprintf)
2363 dnl We actually may need to replace more than this.
2364 AC_REPLACE_FUNCS(getopt getpeereid)
2366 if test "$ac_cv_func_getopt" != yes; then
2367 LIBSRCS="$LIBSRCS getopt.c"
2370 if test "$ac_cv_func_getpeereid" != yes; then
2371 AC_CHECK_FUNCS( getpeerucred )
2372 if test "$ac_cv_func_getpeerucred" != yes ; then
2373 AC_CHECK_MEMBERS([struct msghdr.msg_accrightslen],,,
2374 [$ac_includes_default
2375 #ifdef HAVE_SYS_SOCKET_H
2376 #include <sys/socket.h>
2378 if test "$ac_cv_member_struct_msghdr_msg_accrightslen" != yes; then
2379 AC_CHECK_MEMBERS([struct msghdr.msg_control],,,
2380 [$ac_includes_default
2381 #ifdef HAVE_SYS_SOCKET_H
2382 #include <sys/socket.h>
2385 AC_CHECK_MEMBERS([struct stat.st_fstype, struct stat.st_vfstype])
2386 if test "$ac_cv_member_struct_stat_st_fstype" = yes; then
2387 AC_COMPILE_IFELSE([struct stat st; char *ptr=st.st_fstype;],
2388 AC_DEFINE([HAVE_STRUCT_STAT_ST_FSTYPE_CHAR],1,[define to 1 if st_fstype is char *]),
2389 AC_DEFINE([HAVE_STRUCT_STAT_ST_FSTYPE_INT],1,[define to 1 if st_fstype is int]))
2392 LIBSRCS="$LIBSRCS getpeereid.c"
2395 if test "$ac_cv_func_snprintf" != yes ||
2396 test "$ac_cv_func_vsnprintf" != yes; then
2397 if test "$ac_cv_func_snprintf" != yes; then
2398 AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
2400 if test "$ac_cv_func_vsnprintf" != yes; then
2401 AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine])
2405 dnl ----------------------------------------------------------------
2406 dnl Sort out defines
2408 if test "$ol_enable_slapi" != no ; then
2409 dnl This check is done also if --enable-modules is used;
2410 dnl it is duplicated here, 'cause it'd be cached anyway
2411 AC_CHECK_HEADERS(ltdl.h)
2413 if test $ac_cv_header_ltdl_h != yes ; then
2414 AC_MSG_ERROR([could not locate <ltdl.h>])
2416 AC_CHECK_LIB(ltdl, lt_dlinit, [
2419 LIBSLAPITOOLS=../libslapi.a
2420 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
2421 ],[AC_MSG_ERROR([could not locate libtool -lltdl])])
2423 AC_DEFINE(LDAP_SLAPI,1, [define this to add SLAPI code])
2426 if test "$ol_enable_debug" != no ; then
2427 if test "$ol_enable_debug" = traditional; then
2428 AC_DEFINE(OLD_DEBUG,1,
2429 [define to use the original debug style])
2431 AC_DEFINE(LDAP_DEBUG,1,
2432 [define this to add debugging code])
2434 if test "$ol_enable_syslog" = yes ; then
2435 AC_DEFINE(LDAP_SYSLOG,1,
2436 [define this to add syslog code])
2438 if test "$ol_enable_proctitle" != no ; then
2439 AC_DEFINE(LDAP_PROCTITLE,1,
2440 [define this for LDAP process title support])
2442 if test "$ol_enable_referrals" != no ; then
2443 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION,
2444 [define to LDAP VENDOR VERSION])
2446 if test "$ol_enable_local" != no; then
2447 AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
2449 if test "$ol_link_ipv6" != no; then
2450 AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
2452 if test "$ol_enable_cleartext" != no ; then
2453 AC_DEFINE(SLAPD_CLEARTEXT,1,[define to support cleartext passwords])
2455 if test "$ol_enable_crypt" != no ; then
2456 AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords])
2458 if test "$ol_link_spasswd" != no ; then
2459 AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
2461 if test "$ol_enable_rlookups" != no ; then
2462 AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
2464 if test "$ol_enable_aci" != no ; then
2465 if test $ol_enable_dynacl = no ; then
2466 ol_enable_dynacl=yes
2467 AC_MSG_WARN([ACIs need dynacl])
2469 if test "$ol_enable_aci" = mod ; then
2470 MFLAG=SLAPD_MOD_DYNAMIC
2471 dnl remove this after moving servers/slapd/aci.c in contrib/slapd-modules/acl
2472 AC_MSG_ERROR([ACI build as dynamic module not supported (yet)])
2474 MFLAG=SLAPD_MOD_STATIC
2476 WITH_ACI_ENABLED=$ol_enable_aci
2477 AC_DEFINE_UNQUOTED(SLAPD_ACI_ENABLED,$MFLAG,[define to support per-object ACIs])
2481 if test "$ol_enable_dynacl" != no ; then
2482 AC_DEFINE(SLAP_DYNACL,1,[define to support run-time loadable ACL])
2485 if test "$ol_link_modules" != no ; then
2486 AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
2488 SLAPD_MODULES_LDFLAGS="-dlopen self"
2491 AC_DEFINE(SLAPD_MOD_STATIC,1,[statically linked module])
2492 AC_DEFINE(SLAPD_MOD_DYNAMIC,2,[dynamically linked module])
2494 dnl back-monitor goes first (well, after back-config)
2495 if test "$ol_enable_monitor" != no ; then
2497 BUILD_MONITOR=$ol_enable_monitor
2498 if test "$ol_enable_monitor" = mod ; then
2499 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
2500 MFLAG=SLAPD_MOD_DYNAMIC
2502 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
2503 MFLAG=SLAPD_MOD_STATIC
2505 AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
2508 if test "$ol_enable_bdb" != no ; then
2510 BUILD_BDB=$ol_enable_bdb
2511 if test "$ol_enable_bdb" = mod ; then
2512 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
2513 MFLAG=SLAPD_MOD_DYNAMIC
2515 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
2516 MFLAG=SLAPD_MOD_STATIC
2518 AC_DEFINE_UNQUOTED(SLAPD_BDB,$MFLAG,[define to support BDB backend])
2521 if test "$ol_enable_dnssrv" != no ; then
2523 BUILD_DNSSRV=$ol_enable_dnssrv
2524 if test "$ol_enable_dnssrv" = mod ; then
2525 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
2526 MFLAG=SLAPD_MOD_DYNAMIC
2528 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
2529 MFLAG=SLAPD_MOD_STATIC
2531 AC_DEFINE_UNQUOTED(SLAPD_DNSSRV,$MFLAG,[define to support DNS SRV backend])
2534 if test "$ol_enable_hdb" != no ; then
2536 BUILD_HDB=$ol_enable_hdb
2537 if test "$ol_enable_hdb" = mod ; then
2538 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-hdb"
2539 MFLAG=SLAPD_MOD_DYNAMIC
2541 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb"
2542 MFLAG=SLAPD_MOD_STATIC
2544 AC_DEFINE_UNQUOTED(SLAPD_HDB,$MFLAG,[define to support HDB backend])
2547 if test "$ol_enable_ldap" != no ; then
2549 BUILD_LDAP=$ol_enable_ldap
2550 if test "$ol_enable_ldap" = mod ; then
2551 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
2552 MFLAG=SLAPD_MOD_DYNAMIC
2554 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
2555 MFLAG=SLAPD_MOD_STATIC
2557 AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
2560 if test "$ol_enable_meta" != no ; then
2562 BUILD_META=$ol_enable_meta
2564 if test "$ol_enable_meta" = mod ; then
2565 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
2566 MFLAG=SLAPD_MOD_DYNAMIC
2568 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
2569 MFLAG=SLAPD_MOD_STATIC
2571 AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
2574 if test "$ol_enable_null" != no ; then
2576 BUILD_NULL=$ol_enable_null
2577 if test "$ol_enable_null" = mod ; then
2578 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
2579 MFLAG=SLAPD_MOD_DYNAMIC
2581 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
2582 MFLAG=SLAPD_MOD_STATIC
2584 AC_DEFINE_UNQUOTED(SLAPD_NULL,$MFLAG,[define to support NULL backend])
2587 if test "$ol_enable_passwd" != no ; then
2589 BUILD_PASSWD=$ol_enable_passwd
2590 if test "$ol_enable_passwd" = mod ; then
2591 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
2592 MFLAG=SLAPD_MOD_DYNAMIC
2594 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
2595 MFLAG=SLAPD_MOD_STATIC
2597 AC_DEFINE_UNQUOTED(SLAPD_PASSWD,$MFLAG,[define to support PASSWD backend])
2600 if test "$ol_link_perl" != no ; then
2602 BUILD_PERL=$ol_enable_perl
2603 if test "$ol_enable_perl" = mod ; then
2604 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
2605 MFLAG=SLAPD_MOD_DYNAMIC
2607 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
2608 MFLAG=SLAPD_MOD_STATIC
2610 AC_DEFINE_UNQUOTED(SLAPD_PERL,$MFLAG,[define to support PERL backend])
2613 if test "$ol_enable_relay" != no ; then
2615 BUILD_RELAY=$ol_enable_relay
2616 if test "$ol_enable_relay" = mod ; then
2617 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-relay"
2618 MFLAG=SLAPD_MOD_DYNAMIC
2620 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-relay"
2621 MFLAG=SLAPD_MOD_STATIC
2623 AC_DEFINE_UNQUOTED(SLAPD_RELAY,$MFLAG,[define to support relay backend])
2626 if test "$ol_enable_shell" != no ; then
2627 if test "$ol_link_threads" != no ; then
2628 AC_MSG_WARN([Use of --without-threads is recommended with back-shell])
2631 BUILD_SHELL=$ol_enable_shell
2632 if test "$ol_enable_shell" = mod ; then
2633 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
2634 MFLAG=SLAPD_MOD_DYNAMIC
2636 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
2637 MFLAG=SLAPD_MOD_STATIC
2639 AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend])
2642 if test "$ol_enable_sock" != no ; then
2644 BUILD_SOCK=$ol_enable_sock
2645 if test "$ol_enable_sock" = mod ; then
2646 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sock"
2647 MFLAG=SLAPD_MOD_DYNAMIC
2649 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sock"
2650 MFLAG=SLAPD_MOD_STATIC
2652 AC_DEFINE_UNQUOTED(SLAPD_SOCK,$MFLAG,[define to support SOCK backend])
2655 if test "$ol_link_sql" != no ; then
2657 BUILD_SQL=$ol_enable_sql
2658 if test "$ol_enable_sql" = mod; then
2659 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
2660 MFLAG=SLAPD_MOD_DYNAMIC
2662 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
2663 MFLAG=SLAPD_MOD_STATIC
2665 AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend])
2668 if test "$ol_enable_accesslog" != no ; then
2669 BUILD_ACCESSLOG=$ol_enable_accesslog
2670 if test "$ol_enable_accesslog" = mod ; then
2671 MFLAG=SLAPD_MOD_DYNAMIC
2672 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS accesslog.la"
2674 MFLAG=SLAPD_MOD_STATIC
2675 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS accesslog.o"
2677 AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay])
2680 if test "$ol_enable_auditlog" != no ; then
2681 BUILD_AUDITLOG=$ol_enable_auditlog
2682 if test "$ol_enable_auditlog" = mod ; then
2683 MFLAG=SLAPD_MOD_DYNAMIC
2684 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS auditlog.la"
2686 MFLAG=SLAPD_MOD_STATIC
2687 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS auditlog.o"
2689 AC_DEFINE_UNQUOTED(SLAPD_OVER_AUDITLOG,$MFLAG,[define for Audit Logging overlay])
2692 if test "$ol_enable_constraint" != no ; then
2693 BUILD_CONSTRAINT=$ol_enable_constraint
2694 if test "$ol_enable_constraint" = mod ; then
2695 MFLAG=SLAPD_MOD_DYNAMIC
2696 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS constraint.la"
2698 MFLAG=SLAPD_MOD_STATIC
2699 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS constraint.o"
2701 AC_DEFINE_UNQUOTED(SLAPD_OVER_CONSTRAINT,$MFLAG,[define for Attribute Constraint overlay])
2704 if test "$ol_enable_dds" != no ; then
2705 BUILD_DDS=$ol_enable_dds
2706 if test "$ol_enable_dds" = mod ; then
2707 MFLAG=SLAPD_MOD_DYNAMIC
2708 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dds.la"
2710 MFLAG=SLAPD_MOD_STATIC
2711 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dds.o"
2713 AC_DEFINE_UNQUOTED(SLAPD_OVER_DDS,$MFLAG,[define for Dynamic Directory Services overlay])
2716 if test "$ol_enable_dyngroup" != no ; then
2717 BUILD_DYNGROUP=$ol_enable_dyngroup
2718 if test "$ol_enable_dyngroup" = mod ; then
2719 MFLAG=SLAPD_MOD_DYNAMIC
2720 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dyngroup.la"
2722 MFLAG=SLAPD_MOD_STATIC
2723 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dyngroup.o"
2725 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay])
2728 if test "$ol_enable_dynlist" != no ; then
2729 BUILD_DYNLIST=$ol_enable_dynlist
2730 if test "$ol_enable_dynlist" = mod ; then
2731 MFLAG=SLAPD_MOD_DYNAMIC
2732 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dynlist.la"
2734 MFLAG=SLAPD_MOD_STATIC
2735 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dynlist.o"
2737 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNLIST,$MFLAG,[define for Dynamic List overlay])
2740 if test "$ol_enable_memberof" != no ; then
2741 BUILD_MEMBEROF=$ol_enable_memberof
2742 if test "$ol_enable_memberof" = mod ; then
2743 MFLAG=SLAPD_MOD_DYNAMIC
2744 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS memberof.la"
2746 MFLAG=SLAPD_MOD_STATIC
2747 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS memberof.o"
2749 AC_DEFINE_UNQUOTED(SLAPD_OVER_MEMBEROF,$MFLAG,[define for Reverse Group Membership overlay])
2752 if test "$ol_enable_ppolicy" != no ; then
2753 BUILD_PPOLICY=$ol_enable_ppolicy
2754 if test "$ol_enable_ppolicy" = mod ; then
2755 MFLAG=SLAPD_MOD_DYNAMIC
2756 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS ppolicy.la"
2758 MFLAG=SLAPD_MOD_STATIC
2759 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS ppolicy.o"
2761 AC_DEFINE_UNQUOTED(SLAPD_OVER_PPOLICY,$MFLAG,[define for Password Policy overlay])
2764 if test "$ol_enable_proxycache" != no ; then
2765 BUILD_PROXYCACHE=$ol_enable_proxycache
2766 if test "$ol_enable_proxycache" = mod ; then
2767 MFLAG=SLAPD_MOD_DYNAMIC
2768 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS pcache.la"
2770 MFLAG=SLAPD_MOD_STATIC
2771 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS pcache.o"
2773 AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay])
2776 if test "$ol_enable_refint" != no ; then
2777 BUILD_REFINT=$ol_enable_refint
2778 if test "$ol_enable_refint" = mod ; then
2779 MFLAG=SLAPD_MOD_DYNAMIC
2780 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la"
2782 MFLAG=SLAPD_MOD_STATIC
2783 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS refint.o"
2785 AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay])
2788 if test "$ol_enable_retcode" != no ; then
2789 BUILD_RETCODE=$ol_enable_retcode
2790 if test "$ol_enable_retcode" = mod ; then
2791 MFLAG=SLAPD_MOD_DYNAMIC
2792 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS retcode.la"
2794 MFLAG=SLAPD_MOD_STATIC
2795 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS retcode.o"
2797 AC_DEFINE_UNQUOTED(SLAPD_OVER_RETCODE,$MFLAG,[define for Referential Integrity overlay])
2800 if test "$ol_enable_rwm" != no ; then
2802 BUILD_RWM=$ol_enable_rwm
2803 if test "$ol_enable_rwm" = mod ; then
2804 MFLAG=SLAPD_MOD_DYNAMIC
2805 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS rwm.la"
2807 MFLAG=SLAPD_MOD_STATIC
2808 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS rwm_x.o"
2810 AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
2813 if test "$ol_enable_seqmod" != no ; then
2814 BUILD_SEQMOD=$ol_enable_seqmod
2815 if test "$ol_enable_seqmod" = mod ; then
2816 MFLAG=SLAPD_MOD_DYNAMIC
2817 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS seqmod.la"
2819 MFLAG=SLAPD_MOD_STATIC
2820 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS seqmod.o"
2822 AC_DEFINE_UNQUOTED(SLAPD_OVER_SEQMOD,$MFLAG,[define for Sequential Modify overlay])
2825 if test "$ol_enable_syncprov" != no ; then
2826 BUILD_SYNCPROV=$ol_enable_syncprov
2827 if test "$ol_enable_syncprov" = mod ; then
2828 MFLAG=SLAPD_MOD_DYNAMIC
2829 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS syncprov.la"
2831 MFLAG=SLAPD_MOD_STATIC
2832 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS syncprov.o"
2834 AC_DEFINE_UNQUOTED(SLAPD_OVER_SYNCPROV,$MFLAG,[define for Syncrepl Provider overlay])
2837 if test "$ol_enable_translucent" != no ; then
2838 BUILD_TRANSLUCENT=$ol_enable_translucent
2839 if test "$ol_enable_translucent" = mod ; then
2840 MFLAG=SLAPD_MOD_DYNAMIC
2841 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS translucent.la"
2843 MFLAG=SLAPD_MOD_STATIC
2844 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS translucent.o"
2846 AC_DEFINE_UNQUOTED(SLAPD_OVER_TRANSLUCENT,$MFLAG,[define for Translucent Proxy overlay])
2849 if test "$ol_enable_unique" != no ; then
2850 BUILD_UNIQUE=$ol_enable_unique
2851 if test "$ol_enable_unique" = mod ; then
2852 MFLAG=SLAPD_MOD_DYNAMIC
2853 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la"
2855 MFLAG=SLAPD_MOD_STATIC
2856 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS unique.o"
2858 AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay])
2861 if test "$ol_enable_valsort" != no ; then
2862 BUILD_VALSORT=$ol_enable_valsort
2863 if test "$ol_enable_valsort" = mod ; then
2864 MFLAG=SLAPD_MOD_DYNAMIC
2865 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS valsort.la"
2867 MFLAG=SLAPD_MOD_STATIC
2868 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS valsort.o"
2870 AC_DEFINE_UNQUOTED(SLAPD_OVER_VALSORT,$MFLAG,[define for Value Sorting overlay])
2873 if test "$ol_enable_rewrite" != no ; then
2874 AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta])
2878 if test "$ol_enable_slapi" != no ; then
2879 AC_DEFINE(ENABLE_SLAPI,1,[define to enable slapi library])
2881 SLAPD_SLAPI_DEPEND=libslapi.a
2884 dnl ----------------------------------------------------------------
2887 dnl For Windows build, we don't want to include -dlopen flags.
2888 dnl They hurt more than they help.
2891 if test "$ac_cv_mingw32" = yes ; then
2893 SLAPD_MODULES_LDFLAGS=
2902 AC_SUBST(WITH_MODULES_ENABLED)
2903 AC_SUBST(WITH_ACI_ENABLED)
2904 AC_SUBST(BUILD_THREAD)
2905 AC_SUBST(BUILD_LIBS_DYNAMIC)
2907 AC_SUBST(BUILD_SLAPD)
2909 AC_SUBST(BUILD_SLAPI)
2910 AC_SUBST(SLAPD_SLAPI_DEPEND)
2913 AC_SUBST(BUILD_DNSSRV)
2915 AC_SUBST(BUILD_LDAP)
2916 AC_SUBST(BUILD_META)
2917 AC_SUBST(BUILD_MONITOR)
2918 AC_SUBST(BUILD_NULL)
2919 AC_SUBST(BUILD_PASSWD)
2920 AC_SUBST(BUILD_RELAY)
2921 AC_SUBST(BUILD_PERL)
2922 AC_SUBST(BUILD_SHELL)
2923 AC_SUBST(BUILD_SOCK)
2926 AC_SUBST(BUILD_ACCESSLOG)
2927 AC_SUBST(BUILD_AUDITLOG)
2928 AC_SUBST(BUILD_CONSTRAINT)
2930 AC_SUBST(BUILD_DENYOP)
2931 AC_SUBST(BUILD_DYNGROUP)
2932 AC_SUBST(BUILD_DYNLIST)
2933 AC_SUBST(BUILD_LASTMOD)
2934 AC_SUBST(BUILD_PPOLICY)
2935 AC_SUBST(BUILD_PROXYCACHE)
2936 AC_SUBST(BUILD_REFINT)
2937 AC_SUBST(BUILD_RETCODE)
2939 AC_SUBST(BUILD_SEQMOD)
2940 AC_SUBST(BUILD_SYNCPROV)
2941 AC_SUBST(BUILD_TRANSLUCENT)
2942 AC_SUBST(BUILD_UNIQUE)
2943 AC_SUBST(BUILD_VALSORT)
2946 AC_SUBST(SLAPD_LIBS)
2948 AC_SUBST(LTHREAD_LIBS)
2949 AC_SUBST(LUTIL_LIBS)
2952 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
2953 AC_SUBST(SLAPD_MODULES_LDFLAGS)
2955 AC_SUBST(SLAPD_NO_STATIC)
2956 AC_SUBST(SLAPD_STATIC_BACKENDS)
2957 AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
2958 AC_SUBST(SLAPD_STATIC_OVERLAYS)
2959 AC_SUBST(SLAPD_DYNAMIC_OVERLAYS)
2961 AC_SUBST(PERL_CPPFLAGS)
2962 AC_SUBST(SLAPD_PERL_LDFLAGS)
2963 AC_SUBST(MOD_PERL_LDFLAGS)
2969 AC_SUBST(MODULES_LIBS)
2970 AC_SUBST(SLAPI_LIBS)
2972 AC_SUBST(LIBSLAPITOOLS)
2976 AC_SUBST(SLAPD_SLP_LIBS)
2977 AC_SUBST(SLAPD_GMP_LIBS)
2979 AC_SUBST(SLAPD_SQL_LDFLAGS)
2980 AC_SUBST(SLAPD_SQL_LIBS)
2981 AC_SUBST(SLAPD_SQL_INCLUDES)
2983 dnl ----------------------------------------------------------------
2984 dnl final help output
2985 AC_ARG_WITH(xxinstall,[
2986 See INSTALL file for further details.])
2988 dnl ----------------------------------------------------------------
2992 AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.mk]
2993 [doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk]
2994 [doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk]
2995 [doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk]
2996 [doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk]
2997 [doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk]
2998 [doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk]
2999 [clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk]
3000 [clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk]
3001 [include/Makefile:build/top.mk:include/Makefile.in]
3002 [libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk]
3003 [libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk]
3004 [libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk]
3005 [libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk]
3006 [libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk]
3007 [libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk]
3008 [libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk]
3009 [servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk]
3010 [servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk]
3011 [servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk]
3012 [servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk]
3013 [servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk]
3014 [servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk]
3015 [servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk]
3016 [servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk]
3017 [servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk]
3018 [servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk]
3019 [servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk]
3020 [servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk]
3021 [servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk]
3022 [servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk]
3023 [servers/slapd/back-sock/Makefile:build/top.mk:servers/slapd/back-sock/Makefile.in:build/mod.mk]
3024 [servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk]
3025 [servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk]
3026 [servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk]
3027 [servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk]
3028 [tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk]
3030 [tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk])
3032 AC_CONFIG_COMMANDS([default],[[
3035 BACKENDSC="servers/slapd/backends.c"
3036 echo "Making $BACKENDSC"
3038 cat > $BACKENDSC << ENDX
3039 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3041 * Copyright 1998-2007 The OpenLDAP Foundation.
3042 * All rights reserved.
3044 * Redistribution and use in source and binary forms, with or without
3045 * modification, are permitted only as authorized by the OpenLDAP
3048 * A copy of this license is available in the file LICENSE in the
3049 * top-level directory of the distribution or, alternatively, at
3050 * <http://www.OpenLDAP.org/license.html>.
3052 /* This file is automatically generated by configure; please do not edit. */
3054 #include "portable.h"
3058 if test "${STATIC_BACKENDS}"; then
3059 for b in config ${STATIC_BACKENDS}; do
3060 bb=`echo "${b}" | sed -e 's/back-//'`
3061 cat >> $BACKENDSC << ENDX
3062 extern BI_init ${bb}_back_initialize;
3066 cat >> $BACKENDSC << ENDX
3068 BackendInfo slap_binfo[] = {
3071 for b in config ${STATIC_BACKENDS}; do
3072 bb=`echo "${b}" | sed -e 's/back-//'`
3073 echo " Add ${bb} ..."
3074 cat >> $BACKENDSC << ENDX
3075 { "${bb}", ${bb}_back_initialize },
3079 cat >> $BACKENDSC << ENDX
3083 /* end of generated file */
3086 OVERLAYSC="servers/slapd/overlays/statover.c"
3087 echo "Making $OVERLAYSC"
3089 cat > $OVERLAYSC << ENDX
3090 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3092 * Copyright 1998-2007 The OpenLDAP Foundation.
3093 * All rights reserved.
3095 * Redistribution and use in source and binary forms, with or without
3096 * modification, are permitted only as authorized by the OpenLDAP
3099 * A copy of this license is available in the file LICENSE in the
3100 * top-level directory of the distribution or, alternatively, at
3101 * <http://www.OpenLDAP.org/license.html>.
3103 /* This file is automatically generated by configure; please do not edit. */
3105 #include "portable.h"
3109 if test "${STATIC_OVERLAYS}"; then
3110 for o in ${STATIC_OVERLAYS}; do
3111 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3112 cat >> $OVERLAYSC << ENDX
3113 extern OV_init ${oo}_initialize;
3118 cat >> $OVERLAYSC << ENDX
3120 OverlayInit slap_oinfo[] = {
3123 if test "${STATIC_OVERLAYS}"; then
3124 for o in ${STATIC_OVERLAYS}; do
3125 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3126 echo " Add ${oo} ..."
3127 cat >> $OVERLAYSC << ENDX
3128 { "${oo}", ${oo}_initialize },
3133 cat >> $OVERLAYSC << ENDX
3137 /* end of generated file */
3140 if test "${ol_cv_mkdep}" = no; then
3141 echo '(Do not "make depend"; we do not know how to build dependencies)'
3143 echo 'Please run "make depend" to build dependencies'
3146 STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"
3147 STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS"