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
53 TB="`$SHTOOL echo -e '%B' 2>/dev/null`"
54 TN="`$SHTOOL echo -e '%b' 2>/dev/null`"
57 if test -d $ac_aux_dir/CVS; then
58 OPENLDAP_CVS="(from CVS sources) "
61 echo "Configuring ${TB}${OL_STRING}${TN} ${OPENLDAP_CVS}..."
63 dnl Determine host platform
64 dnl we try not to use this for much
65 AC_CANONICAL_TARGET([])
67 AM_INIT_AUTOMAKE([$OL_PACKAGE],[$OL_VERSION], [no defines])dnl
70 AC_DEFINE_UNQUOTED(OPENLDAP_PACKAGE,"$PACKAGE",Package)
71 AC_DEFINE_UNQUOTED(OPENLDAP_VERSION,"$VERSION",Version)
73 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION,$OL_API_INC,Version)
74 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MAJOR,$OL_MAJOR,Major)
75 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MINOR,$OL_MINOR,Minor)
76 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_PATCH,$OL_PATCH,Patch)
78 OPENLDAP_LIBRELEASE=$OL_API_LIB_RELEASE
79 AC_SUBST(OPENLDAP_LIBRELEASE)dnl
81 OPENLDAP_LIBVERSION=$OL_API_LIB_VERSION
82 AC_SUBST(OPENLDAP_LIBVERSION)dnl
84 OPENLDAP_RELEASE_DATE="$OL_RELEASE_DATE"
85 AC_SUBST(OPENLDAP_RELEASE_DATE)dnl
87 dnl We use autoconf features new to 2.59. Later versions like won't work.
88 dnl aclocal.m4 should be built using aclocal from automake 1.5
89 dnl libtool 1.5 should be installed.
90 AC_PREREQ(2.59)dnl Required Autoconf version
93 /* begin of portable.h.pre */
94 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
96 * Copyright 1998-2007 The OpenLDAP Foundation
97 * All rights reserved.
99 * Redistribution and use in source and binary forms, with or without
100 * modification, are permitted only as authorized by the OpenLDAP
103 * A copy of this license is available in the file LICENSE in the
104 * top-level directory of the distribution or, alternatively, at
105 * <http://www.OpenLDAP.org/license.html>.
108 #ifndef _LDAP_PORTABLE_H
109 #define _LDAP_PORTABLE_H
111 /* define this if needed to get reentrant functions */
119 /* define this if needed to get threadsafe functions */
133 #ifndef _SGI_MP_SOURCE
134 #undef _SGI_MP_SOURCE
137 /* end of portable.h.pre */
140 /* begin of portable.h.post */
143 /* don't suck in all of the win32 api */
144 # define WIN32_LEAN_AND_MEAN 1
148 #if !defined(HAVE_GETPEEREID) && \
149 !defined(HAVE_GETPEERUCRED) && \
150 !defined(SO_PEERCRED) && !defined(LOCAL_PEERCRED) && \
151 defined(HAVE_SENDMSG) && (defined(HAVE_STRUCT_MSGHDR_MSG_ACCRIGHTSLEN) || \
152 defined(HAVE_STRUCT_MSGHDR_MSG_CONTROL))
153 # define LDAP_PF_LOCAL_SENDMSG 1
156 #ifndef LDAP_NEEDS_PROTOTYPES
157 /* force LDAP_P to always include prototypes */
158 #define LDAP_NEEDS_PROTOTYPES 1
162 #if (LDAP_VENDOR_VERSION == 000000) && !defined(LDAP_DEVEL)
165 #if defined(LDAP_DEVEL) && !defined(LDAP_TEST)
175 /* ASCII/EBCDIC converting replacements for stdio funcs
176 * vsnprintf and snprintf are used too, but they are already
177 * checked by the configure script
179 #define fputs ber_pvt_fputs
180 #define fgets ber_pvt_fgets
181 #define printf ber_pvt_printf
182 #define fprintf ber_pvt_fprintf
183 #define vfprintf ber_pvt_vfprintf
184 #define vsprintf ber_pvt_vsprintf
187 #include "ac/fdset.h"
189 #include "ldap_cdefs.h"
190 #include "ldap_features.h"
192 #include "ac/assert.h"
193 #include "ac/localize.h"
195 #endif /* _LDAP_PORTABLE_H */
196 /* end of portable.h.post */
199 AC_CONFIG_HEADERS([include/portable.h:include/portable.hin])
200 AC_CONFIG_HEADERS([include/ldap_features.h:include/ldap_features.hin])
201 AC_CONFIG_HEADERS([include/lber_types.h:include/lber_types.hin])
203 dnl ================================================================
205 AC_MSG_CHECKING(configure arguments)
206 AC_PREFIX_DEFAULT(/usr/local)
209 AC_SUBST(top_builddir)dnl
211 dnl ----------------------------------------------------------------
213 ldap_subdir="/openldap"
216 [ --with-subdir=DIR change default subdirectory used for installs],
223 ldap_subdir="$withval"
226 ldap_subdir="/$withval"
231 AC_SUBST(ldap_subdir)dnl
233 dnl ----------------------------------------------------------------
234 dnl General "enable" options
235 dnl set default to traditional to enable the original debug style
236 OL_ARG_ENABLE(debug,[ --enable-debug enable debugging], yes, [no yes traditional])dnl
237 OL_ARG_ENABLE(dynamic,[ --enable-dynamic enable linking built binaries with dynamic libs], no)dnl
238 OL_ARG_ENABLE(syslog,[ --enable-syslog enable syslog support], auto)dnl
239 OL_ARG_ENABLE(proctitle,[ --enable-proctitle enable proctitle support], yes)dnl
240 dnl OL_ARG_ENABLE(referrals,[ --enable-referrals enable LDAPv2+ Referrals (experimental)], no)dnl
241 ol_enable_referrals=${ol_enable_referrals-no}
242 OL_ARG_ENABLE(ipv6,[ --enable-ipv6 enable IPv6 support], auto)dnl
243 OL_ARG_ENABLE(local,[ --enable-local enable AF_LOCAL (AF_UNIX) socket support], auto)dnl
245 dnl ----------------------------------------------------------------
246 dnl General "with" options
247 OL_ARG_WITH(cyrus_sasl,[ --with-cyrus-sasl with Cyrus SASL support],
248 auto, [auto yes no] )
249 OL_ARG_WITH(fetch,[ --with-fetch with fetch(3) URL support],
250 auto, [auto yes no] )
251 OL_ARG_WITH(threads,[ --with-threads with threads],
252 auto, [auto nt posix mach pth lwp yes no manual] )
253 OL_ARG_WITH(tls,[ --with-tls with TLS/SSL support],
254 auto, [auto openssl yes no] )
255 OL_ARG_WITH(yielding_select,
256 [ --with-yielding-select with implicitly yielding select],
257 auto, [auto yes no manual] )
259 [ --with-mp with multiple precision statistics auto|longlong|long|bignum|gmp],
260 auto, [auto longlong long bignum gmp yes no])
262 [ --with-odbc with specific ODBC support iodbc|unixodbc|auto],
263 auto, [auto iodbc unixodbc] )
265 dnl ----------------------------------------------------------------
267 dnl ----------------------------------------------------------------
269 dnl ----------------------------------------------------------------
271 AC_ARG_ENABLE(xxslapdoptions,[
272 SLAPD (Standalone LDAP Daemon) Options:])
273 OL_ARG_ENABLE(slapd,[ --enable-slapd enable building slapd], yes)dnl
274 OL_ARG_ENABLE(dynacl,[ --enable-dynacl enable run-time loadable ACL support (experimental)], no)dnl
275 OL_ARG_ENABLE(aci,[ --enable-aci enable per-object ACIs (experimental)], no, [no yes mod])dnl
276 OL_ARG_ENABLE(cleartext,[ --enable-cleartext enable cleartext passwords], yes)dnl
277 OL_ARG_ENABLE(crypt,[ --enable-crypt enable crypt(3) passwords], no)dnl
278 OL_ARG_ENABLE(lmpasswd,[ --enable-lmpasswd enable LAN Manager passwords], no)dnl
279 OL_ARG_ENABLE(spasswd,[ --enable-spasswd enable (Cyrus) SASL password verification], no)dnl
280 OL_ARG_ENABLE(modules,[ --enable-modules enable dynamic module support], no)dnl
281 OL_ARG_ENABLE(rewrite,[ --enable-rewrite enable DN rewriting in back-ldap and rwm overlay], auto)dnl
282 OL_ARG_ENABLE(rlookups,[ --enable-rlookups enable reverse lookups of client hostnames], no)dnl
283 OL_ARG_ENABLE(slapi,[ --enable-slapi enable SLAPI support (experimental)], no)dnl
284 OL_ARG_ENABLE(slp,[ --enable-slp enable SLPv2 support], no)dnl
285 OL_ARG_ENABLE(wrappers,[ --enable-wrappers enable tcp wrapper support], no)dnl
287 dnl ----------------------------------------------------------------
288 dnl SLAPD Backend Options
302 AC_ARG_ENABLE(xxslapbackends,[
303 SLAPD Backend Options:])
305 OL_ARG_ENABLE(backends,[ --enable-backends enable all available backends],
307 OL_ARG_ENABLE(bdb,[ --enable-bdb enable Berkeley DB backend],
308 yes, [no yes mod], ol_enable_backends)dnl
309 OL_ARG_ENABLE(dnssrv,[ --enable-dnssrv enable dnssrv backend],
310 no, [no yes mod], ol_enable_backends)dnl
311 OL_ARG_ENABLE(hdb,[ --enable-hdb enable Hierarchical DB backend],
312 yes, [no yes mod], ol_enable_backends)dnl
313 OL_ARG_ENABLE(ldap,[ --enable-ldap enable ldap backend],
314 no, [no yes mod], ol_enable_backends)dnl
315 OL_ARG_ENABLE(meta,[ --enable-meta enable metadirectory backend],
316 no, [no yes mod], ol_enable_backends)dnl
317 OL_ARG_ENABLE(monitor,[ --enable-monitor enable monitor backend],
318 yes, [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(sql,[ --enable-sql enable sql backend],
330 no, [no yes mod], ol_enable_backends)dnl
332 dnl ----------------------------------------------------------------
333 dnl SLAPD Overlay Options
334 Overlays="accesslog \
351 AC_ARG_ENABLE(xxslapoverlays,[
352 SLAPD Overlay Options:])
354 OL_ARG_ENABLE(overlays,[ --enable-overlays enable all available overlays],
356 OL_ARG_ENABLE(accesslog,[ --enable-accesslog In-Directory Access Logging overlay],
357 no, [no yes mod], ol_enable_overlays)
358 OL_ARG_ENABLE(auditlog,[ --enable-auditlog Audit Logging overlay],
359 no, [no yes mod], ol_enable_overlays)
360 OL_ARG_ENABLE(constraint,[ --enable-constraint Attribute Constraint overlay],
361 no, [no yes mod], ol_enable_overlays)
362 OL_ARG_ENABLE(dds,[ --enable-dds Dynamic Directory Services overlay],
363 no, [no yes mod], ol_enable_overlays)
364 OL_ARG_ENABLE(dyngroup,[ --enable-dyngroup Dynamic Group overlay],
365 no, [no yes mod], ol_enable_overlays)
366 OL_ARG_ENABLE(dynlist,[ --enable-dynlist Dynamic List overlay],
367 no, [no yes mod], ol_enable_overlays)
368 OL_ARG_ENABLE(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 ----------------------------------------------------------------
391 AC_ARG_ENABLE(xxslurpdoptions,[
392 SLURPD (Replication Daemon) Options:])
393 OL_ARG_ENABLE(slurpd,[ --enable-slurpd enable building slurpd], auto)dnl
395 dnl ----------------------------------------------------------------
396 AC_ARG_ENABLE(xxliboptions,[
397 Library Generation & Linking Options])
401 dnl ----------------------------------------------------------------
404 if test $ol_enable_slapd = no ; then
405 dnl SLAPD was specificallly disabled
406 if test $ol_enable_slapi = yes ; then
407 AC_MSG_WARN([slapd disabled, ignoring --enable-slapi argument])
409 case "$ol_enable_backends" in yes | mod)
410 AC_MSG_WARN([slapd disabled, ignoring --enable-backends argument])
412 for i in $Backends; do
413 eval "ol_tmp=\$ol_enable_$i"
414 if test $ol_tmp != no ; then
415 AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
416 eval "ol_enable_$i=no"
419 if test $ol_enable_modules = yes ; then
420 AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
422 if test $ol_enable_wrappers = yes ; then
423 AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
425 if test $ol_enable_rlookups = yes ; then
426 AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
428 if test $ol_enable_dynacl = yes ; then
429 AC_MSG_WARN([slapd disabled, ignoring --enable-dynacl argument])
431 if test $ol_enable_aci != no ; then
432 AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
434 if test $ol_enable_slurpd = yes ; then
435 AC_MSG_ERROR([slurpd requires slapd])
437 if test $ol_enable_rewrite = yes ; then
438 AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
441 case "$ol_enable_overlays" in yes | mod)
442 AC_MSG_WARN([slapd disabled, ignoring --enable-overlays argument])
444 for i in $Overlays; do
445 eval "ol_tmp=\$ol_enable_$i"
446 if test $ol_tmp != no ; then
447 AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
448 eval "ol_enable_$i=no"
452 # force settings to no
458 ol_enable_rlookups=no
461 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_null = no &&
475 test $ol_enable_passwd = no &&
476 test $ol_enable_perl = no &&
477 test $ol_enable_relay = no &&
478 test $ol_enable_shell = no &&
479 test $ol_enable_sql = no ; then
482 if test $ol_enable_slapd = yes ; then
483 AC_MSG_ERROR([slapd requires a backend])
485 AC_MSG_WARN([skipping slapd, no backend specified])
490 if test $ol_enable_meta/$ol_enable_ldap = yes/no ; then
491 AC_MSG_ERROR([--enable-meta requires --enable-ldap])
494 if test $ol_enable_slurpd = yes ; then
495 dnl SLURPD was specifically enabled
496 if test $ol_with_threads = no ; then
497 AC_MSG_ERROR([slurpd requires threads])
501 if test $ol_enable_lmpasswd = yes ; then
502 if test $ol_with_tls = no ; then
503 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
507 if test $ol_enable_spasswd = yes ; then
508 if test $ol_with_cyrus_sasl = no ; then
509 AC_MSG_ERROR([options require --with-cyrus-sasl])
511 ol_with_cyrus_sasl=yes
516 dnl ----------------------------------------------------------------
566 SLAPD_STATIC_OVERLAYS=
567 SLAPD_DYNAMIC_OVERLAYS=
569 SLAPD_MODULES_LDFLAGS=
570 SLAPD_MODULES_CPPFLAGS=
572 SLAPD_STATIC_BACKENDS=back-ldif
573 SLAPD_DYNAMIC_BACKENDS=
597 dnl ================================================================
598 dnl Checks for programs
600 AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
602 dnl ----------------------------------------------------------------
604 dnl Determine which C translator to use
607 dnl AIX Thread requires we use cc_r or xlc_r.
608 dnl But only do this IF AIX and CC is not set
609 dnl and threads are auto|yes|posix.
611 dnl If we find cc_r|xlc_r, force pthreads and assume
612 dnl pthread_create is in $LIBS (ie: don't bring in
613 dnl any additional thread libraries)
614 dnl If we do not find cc_r|xlc_r, disable threads
618 *-*-aix*) dnl all AIX is not a good idea.
619 if test -z "$CC" ; then
620 case "$ol_with_threads" in
621 auto | yes | posix) ol_aix_threads=yes ;;
627 if test $ol_aix_threads = yes ; then
628 if test -z "${CC}" ; then
629 AC_CHECK_PROGS(CC,cc_r xlc_r cc)
631 if test "$CC" = cc ; then
632 dnl no CC! don't allow --with-threads
633 if test $ol_with_threads != auto ; then
634 AC_MSG_ERROR([--with-threads requires cc_r (or other suitable compiler) on AIX])
636 AC_MSG_WARN([disabling threads, no cc_r on AIX])
642 case ${CC} in cc_r | xlc_r)
643 ol_with_threads=posix
644 ol_cv_pthread_create=yes
649 if test -z "${CC}"; then
650 AC_CHECK_PROGS(CC,cc gcc,missing)
652 if test "${CC}" = "missing" ; then
653 AC_MSG_ERROR([Unable to locate cc(1) or suitable replacement. Check PATH or set CC.])
657 if test -z "${AR}"; then
658 AC_CHECK_PROGS(AR,ar gar,missing)
660 if test "${AR}" = "missing" ; then
661 AC_MSG_ERROR([Unable to locate ar(1) or suitable replacement. Check PATH or set AR.])
669 dnl ----------------------------------------------------------------
672 if test $ol_enable_perl != no ; then
673 AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)
675 if test "no$PERLBIN" = "no" ; then
676 if test $ol_enable_perl = yes ; then
677 AC_MSG_ERROR([could not locate perl])
681 PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
682 PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e 's/ -lc / /' -e 's/ -lc$//'`"
684 if test x"$ol_enable_perl" = "xyes" ; then
685 SLAPD_PERL_LDFLAGS="$PERL_LDFLAGS"
687 MOD_PERL_LDFLAGS="$PERL_LDFLAGS"
689 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])
842 dnl Only check Winsock on MinGW
843 if test "$ac_cv_mingw32" = yes ; then
844 AC_CHECK_HEADERS( winsock.h winsock2.h )
847 AC_CHECK_HEADERS( resolv.h, [], [],
848 [$ac_includes_default
849 #include <netinet/in.h>
852 AC_CHECK_HEADERS( netinet/tcp.h, [], [],
853 [$ac_includes_default
854 #include <netinet/in.h>
857 AC_CHECK_HEADERS( sys/ucred.h, [], [],
858 [$ac_includes_default
859 #ifdef HAVE_SYS_PARAM_H
860 #include <sys/param.h>
864 dnl ----------------------------------------------------------------
865 dnl Checks for libraries
867 AC_CHECK_FUNCS( sigaction sigset )
869 dnl HP-UX requires -lV3
870 dnl this is not needed on newer versions of HP-UX
871 if test $ac_cv_func_sigaction = no && test $ac_cv_func_sigaction = no ; then
872 AC_CHECK_LIB(V3, sigset)
875 dnl The following is INTENTIONALLY scripted out because shell does not
876 dnl support variable names with the '@' character, which is what
877 dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
878 if test "$ac_cv_header_winsock_h" = yes; then
879 AC_CACHE_CHECK([for winsock], [ol_cv_winsock],
881 for curlib in ws2_32 wsock32; do
882 LIBS="$LIBS -l$curlib"
883 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <winsock.h>
886 select(0,NULL,NULL,NULL,NULL);
889 ]])],[ol_cv_winsock=yes],[ol_cv_winsock=no])
891 if test $ol_cv_winsock = yes; then
892 AC_DEFINE(HAVE_WINSOCK, 1, [define if you have winsock])
893 ac_cv_func_socket=yes
894 ac_cv_func_select=yes
895 ac_cv_func_closesocket=yes
896 ac_cv_func_gethostname=yes
897 if test $curlib = ws2_32; then
898 ol_cv_winsock=winsock2
899 AC_DEFINE(HAVE_WINSOCK2, 1,
900 [define if you have winsock2])
909 dnl Likely combinations:
910 dnl -lsocket [ -lnsl_s | -lnsl ]
913 AC_CHECK_FUNC(socket, :, [
914 dnl hopefully we won't include too many libraries
915 AC_CHECK_LIB(socket, main)
916 AC_CHECK_LIB(net, main)
917 AC_CHECK_LIB(nsl_s, main)
918 AC_CHECK_LIB(nsl, main)
919 AC_CHECK_LIB(inet, socket)
920 AC_CHECK_LIB(gen, main)
924 AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
926 if test "${ac_cv_header_winsock_h}" != yes; then
928 dnl (if this detection becomes permenent, it and the select() detection
929 dnl should be done before the yielding select test)
930 AC_FUNC_SELECT_ARGTYPES
933 dnl check to see if system call automatically restart
934 dnl AC_SYS_RESTARTABLE_SYSCALLS
936 dnl ----------------------------------------------------------------
937 AC_CHECK_FUNCS( poll )
938 if test $ac_cv_func_poll = yes; then
939 AC_CHECK_HEADERS( poll.h sys/poll.h )
942 dnl ----------------------------------------------------------------
943 AC_CHECK_HEADERS( sys/epoll.h )
944 if test "${ac_cv_header_sys_epoll_h}" = yes; then
945 AC_MSG_CHECKING(for epoll system call)
946 AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv)
948 int epfd = epoll_create(256);
949 exit (epfd == -1 ? 1 : 0);
950 }]])],[AC_MSG_RESULT(yes)
951 AC_DEFINE(HAVE_EPOLL,1, [define if your system supports epoll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
954 dnl ----------------------------------------------------------------
955 AC_CHECK_HEADERS( sys/devpoll.h )
956 dnl "/dev/poll" needs <sys/poll.h> as well...
957 if test "${ac_cv_header_sys_devpoll_h}" = yes \
958 -a "${ac_cv_header_poll_h}" = yes ; \
960 AC_MSG_CHECKING(for /dev/poll)
961 AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv)
963 int devpollfd = open("/dev/poll", /* O_RDWR */ 2);
964 exit (devpollfd == -1 ? 1 : 0);
965 }]])],[AC_MSG_RESULT(yes)
966 AC_DEFINE(HAVE_DEVPOLL,1, [define if your system supports /dev/poll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
969 dnl ----------------------------------------------------------------
973 dnl ----------------------------------------------------------------
974 dnl require POSIX regex
975 AC_CHECK_HEADERS( regex.h, [], [],
976 [$ac_includes_default
977 #ifdef HAVE_SYS_TYPES_H
978 #include <sys/types.h>
982 if test "$ac_cv_header_regex_h" != yes ; then
983 AC_MSG_ERROR([POSIX regex.h required.])
985 AC_SEARCH_LIBS(regfree, [regex gnuregex],
986 :, AC_MSG_ERROR([POSIX regex required.]))
989 if test "$ol_cv_c_posix_regex" = no ; then
990 AC_MSG_ERROR([broken POSIX regex!])
993 dnl ----------------------------------------------------------------
997 AC_CHECK_HEADERS(sys/uuid.h)
998 if test $ac_cv_header_sys_uuid_h = yes ; then
1000 AC_SEARCH_LIBS([uuid_to_str], [uuid], [have_uuid=yes], :)
1003 if test have_uuid = yes ; then
1004 AC_DEFINE(HAVE_UUID_TO_STR,1,
1005 [define if you have uuid_to_str()])
1007 test "$ac_cv_search_uuid_to_str" = "none required" || \
1008 SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_to_str"
1012 dnl Look for uuid_generate
1013 if test $have_uuid = no ; then
1014 AC_CHECK_HEADERS(uuid/uuid.h)
1015 if test $ac_cv_header_uuid_uuid_h = yes ; then
1017 AC_SEARCH_LIBS([uuid_generate], [uuid], [have_uuid=yes], :)
1020 if test have_uuid = yes ; then
1021 AC_DEFINE(HAVE_UUID_GENERATE,1,
1022 [define if you have uuid_generate()])
1024 test "$ac_cv_search_uuid_generate" = "none required" || \
1025 SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_generate"
1030 dnl For windows, check for the need of RPCRT for UUID function support
1031 if test $have_uuid = no ; then
1032 AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
1034 LIBS="$LIBS -lrpcrt4"
1035 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1036 int __stdcall UuidCreate(void *);
1037 int __stdcall UuidToStringA(void *,void **);
1041 ]])],[need_rpcrt=yes],[need_rpcrt=no])
1042 if test $need_rpcrt = yes; then
1043 SLAPD_LIBS="$SLAPD_LIBS -lrpcrt4"
1046 AC_MSG_RESULT($need_rpcrt)
1049 dnl ----------------------------------------------------------------
1050 dnl Check for resolver routines
1054 if test "$ol_cv_lib_resolver" != no ; then
1055 AC_DEFINE(HAVE_RES_QUERY,1,
1056 [define if you have res_query()])
1058 if test "$ol_enable_dnssrv" != no ; then
1062 if test "$ol_cv_lib_resolver" != yes ; then
1063 LIBS="$ol_cv_lib_resolver $LIBS"
1067 if test "$ol_enable_dnssrv" = yes || test "$ol_enable_dnssrv" = mod ; then
1068 if test "$ol_link_dnssrv" = no ; then
1069 AC_MSG_ERROR([DNSSRV requires res_query()])
1075 AC_CHECK_FUNCS( hstrerror )
1077 dnl ----------------------------------------------------------------
1078 dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
1079 dnl PF_LOCAL may use getaddrinfo in available
1080 AC_CHECK_FUNCS( getaddrinfo getnameinfo gai_strerror inet_ntop )
1083 if test $ac_cv_func_getaddrinfo = no || test $ac_cv_func_inet_ntop = no ; then
1084 if test $ol_enable_ipv6 = yes ; then
1085 AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
1087 elif test $ol_enable_ipv6 != no ; then
1088 AC_CACHE_CHECK([INET6_ADDRSTRLEN],[ol_cv_inet6_addrstrlen],[
1089 AC_EGREP_CPP(__has_inet6_addrstrlen__,[
1090 # include <netinet/in.h>
1091 # ifdef INET6_ADDRSTRLEN
1092 __has_inet6_addrstrlen__;
1094 ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])])
1097 AC_CACHE_CHECK([struct sockaddr_storage],ol_cv_struct_sockaddr_storage,[
1098 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1099 #include <sys/types.h>
1100 #include <sys/socket.h>
1102 struct sockaddr_storage ss;
1103 ]])],[ol_cv_struct_sockaddr_storage=yes],[ol_cv_struct_sockaddr_storage=no])])
1105 if test $ol_cv_inet6_addrstrlen = yes &&
1106 test $ol_cv_struct_sockaddr_storage = yes ; then
1108 elif test $ol_enable_ipv6 = yes &&
1109 test $ol_cv_inet6_addrstrlen = no ; then
1110 AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
1111 elif test $ol_enable_ipv6 = yes &&
1112 test $ol_cv_struct_sockaddr_storage = no ; then
1113 AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage])
1117 if test $ol_enable_local != no ; then
1118 AC_CHECK_HEADERS( sys/un.h )
1120 if test $ol_enable_local = auto ; then
1121 ol_enable_local=$ac_cv_header_sys_un_h
1122 elif test $ac_cv_header_sys_un_h = no ; then
1123 AC_MSG_ERROR([AF_LOCAL domain support requires sys/un.h])
1127 dnl ----------------------------------------------------------------
1130 if test $ol_with_tls = yes ; then
1135 if test $ol_with_tls = openssl || test $ol_with_tls = auto ; then
1136 AC_CHECK_HEADERS(openssl/ssl.h)
1138 if test $ac_cv_header_openssl_ssl_h = yes ; then
1139 AC_CHECK_LIB(ssl, SSL_library_init,
1141 need_rsaref=no], [have_openssl=no],
1144 if test $have_openssl = no ; then
1145 AC_CHECK_LIB(ssl, ssl3_accept,
1147 need_rsaref=yes], [have_openssl=no],
1148 [-lcrypto -lRSAglue -lrsaref])
1151 if test $have_openssl = yes ; then
1155 AC_DEFINE(HAVE_OPENSSL, 1,
1156 [define if you have OpenSSL])
1158 if test $need_rsaref = yes; then
1159 AC_DEFINE(HAVE_RSAREF, 1,
1160 [define if OpenSSL needs RSAref])
1162 TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
1164 TLS_LIBS="-lssl -lcrypto"
1168 if test $ol_cv_ssl_crl_compat = yes ; then
1169 AC_DEFINE(HAVE_OPENSSL_CRL, 1,
1170 [define if you have OpenSSL with CRL checking capability])
1177 if test $ol_link_tls = yes ; then
1178 AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
1180 elif test $ol_with_tls = auto ; then
1181 AC_MSG_WARN([Could not locate TLS/SSL package])
1182 AC_MSG_WARN([TLS data protection not supported!])
1183 elif test $ol_with_tls != no ; then
1184 AC_MSG_ERROR([Could not locate TLS/SSL package])
1186 AC_MSG_WARN([TLS data protection not supported!])
1189 dnl ----------------------------------------------------------------
1190 dnl LAN Manger password checking requires DES from OpenSSL
1191 if test $ol_enable_lmpasswd != no; then
1192 if test $ol_link_tls != yes ; then
1193 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
1196 AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
1199 dnl ----------------------------------------------------------------
1203 case $ol_with_threads in auto | yes | nt)
1207 if test "$ol_cv_nt_threads" = yes ; then
1209 ol_with_threads=found
1210 ol_with_yielding_select=yes
1212 AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager])
1213 AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log])
1216 if test $ol_with_threads = nt ; then
1217 AC_MSG_ERROR([could not locate NT Threads])
1222 case $ol_with_threads in auto | yes | posix)
1224 AC_CHECK_HEADERS(pthread.h)
1226 if test $ac_cv_header_pthread_h = yes ; then
1227 OL_POSIX_THREAD_VERSION
1229 if test $ol_cv_pthread_version != 0 ; then
1230 AC_DEFINE_UNQUOTED(HAVE_PTHREADS,$ol_cv_pthread_version,
1231 [define to pthreads API spec revision])
1233 AC_MSG_ERROR([unknown pthread version])
1236 # consider threads found
1237 ol_with_threads=found
1239 OL_HEADER_LINUX_THREADS
1240 OL_HEADER_GNU_PTH_PTHREAD_H
1242 if test $ol_cv_header_gnu_pth_pthread_h = no ; then
1243 AC_CHECK_HEADERS(sched.h)
1246 dnl Now the hard part, how to link?
1248 dnl currently supported checks:
1250 dnl Check for no flags
1251 dnl pthread_create() in $LIBS
1253 dnl Check special pthread (final) flags
1254 dnl [skipped] pthread_create() with -mt (Solaris) [disabled]
1255 dnl pthread_create() with -kthread (FreeBSD)
1256 dnl pthread_create() with -pthread (FreeBSD/Digital Unix)
1257 dnl pthread_create() with -pthreads (?)
1258 dnl pthread_create() with -mthreads (AIX)
1259 dnl pthread_create() with -thread (?)
1261 dnl Check pthread (final) libraries
1262 dnl pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
1263 dnl pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
1264 dnl [skipped] pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
1265 dnl pthread_join() -Wl,-woff,85 -lpthread (IRIX)
1266 dnl pthread_create() in -lpthread (many)
1267 dnl pthread_create() in -lc_r (FreeBSD)
1269 dnl Check pthread (draft4) flags (depreciated)
1270 dnl pthread_create() with -threads (OSF/1)
1272 dnl Check pthread (draft4) libraries (depreciated)
1273 dnl pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
1274 dnl pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
1275 dnl pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
1276 dnl pthread_create() in -lpthreads (many)
1279 dnl pthread_create in $LIBS
1280 AC_CACHE_CHECK([for pthread_create in default libraries],
1281 ol_cv_pthread_create,[
1282 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1283 [ol_cv_pthread_create=yes],
1284 [ol_cv_pthread_create=no],
1285 [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION,
1286 [ol_cv_pthread_create=yes],
1287 [ol_cv_pthread_create=no])])])
1289 if test $ol_cv_pthread_create != no ; then
1290 ol_link_threads=posix
1294 dnl OL_PTHREAD_TRY([-mt], [ol_cv_pthread_mt])
1295 OL_PTHREAD_TRY([-kthread], [ol_cv_pthread_kthread])
1296 OL_PTHREAD_TRY([-pthread], [ol_cv_pthread_pthread])
1297 OL_PTHREAD_TRY([-pthreads], [ol_cv_pthread_pthreads])
1298 OL_PTHREAD_TRY([-mthreads], [ol_cv_pthread_mthreads])
1299 OL_PTHREAD_TRY([-thread], [ol_cv_pthread_thread])
1301 OL_PTHREAD_TRY([-lpthread -lmach -lexc -lc_r],
1302 [ol_cv_pthread_lpthread_lmach_lexc_lc_r])
1303 OL_PTHREAD_TRY([-lpthread -lmach -lexc],
1304 [ol_cv_pthread_lpthread_lmach_lexc])
1305 dnl OL_PTHREAD_TRY([-lpthread -lexc],
1306 dnl [ol_cv_pthread_lpthread_lexc])
1308 OL_PTHREAD_TRY([-lpthread -Wl,-woff,85],
1309 [ol_cv_pthread_lib_lpthread_woff])
1311 OL_PTHREAD_TRY([-lpthread], [ol_cv_pthread_lpthread])
1312 OL_PTHREAD_TRY([-lc_r], [ol_cv_pthread_lc_r])
1314 OL_PTHREAD_TRY([-threads], [ol_cv_pthread_threads])
1316 OL_PTHREAD_TRY([-lpthreads -lmach -lexc -lc_r],
1317 [ol_cv_pthread_lpthreads_lmach_lexc_lc_r])
1318 OL_PTHREAD_TRY([-lpthreads -lmach -lexc],
1319 [ol_cv_pthread_lpthreads_lmach_lexc])
1320 OL_PTHREAD_TRY([-lpthreads -lexc],
1321 [ol_cv_pthread_lpthreads_lexc])
1323 OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
1325 if test $ol_link_threads != no ; then
1326 LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
1329 save_CPPFLAGS="$CPPFLAGS"
1331 LIBS="$LTHREAD_LIBS $LIBS"
1333 dnl All POSIX Thread (final) implementations should have
1334 dnl sched_yield instead of pthread yield.
1335 dnl check for both, and thr_yield for Solaris
1336 AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
1338 if test $ac_cv_func_sched_yield = no &&
1339 test $ac_cv_func_pthread_yield = no &&
1340 test $ac_cv_func_thr_yield = no ; then
1341 dnl Digital UNIX has sched_yield() in -lrt
1342 AC_CHECK_LIB(rt, sched_yield,
1343 [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
1344 AC_DEFINE(HAVE_SCHED_YIELD,1,
1345 [Define if you have the sched_yield function.])
1346 ac_cv_func_sched_yield=yes],
1347 [ac_cv_func_sched_yield=no])
1349 if test $ac_cv_func_sched_yield = no &&
1350 test $ac_cv_func_pthread_yield = no &&
1351 test "$ac_cv_func_thr_yield" = no ; then
1352 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
1355 dnl Check functions for compatibility
1356 AC_CHECK_FUNCS(pthread_kill)
1358 dnl Check for pthread_rwlock_destroy with <pthread.h>
1359 dnl as pthread_rwlock_t may not be defined.
1360 AC_CACHE_CHECK([for pthread_rwlock_destroy with <pthread.h>],
1361 [ol_cv_func_pthread_rwlock_destroy], [
1363 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1364 #include <pthread.h>
1365 pthread_rwlock_t rwlock;
1366 ]], [[pthread_rwlock_destroy(&rwlock);]])],[ol_cv_func_pthread_rwlock_destroy=yes],[ol_cv_func_pthread_rwlock_destroy=no])
1368 if test $ol_cv_func_pthread_rwlock_destroy = yes ; then
1369 AC_DEFINE(HAVE_PTHREAD_RWLOCK_DESTROY,1,
1370 [define if you have pthread_rwlock_destroy function])
1373 dnl Check for pthread_detach with <pthread.h> inclusion
1374 dnl as it's symbol may have been mangled.
1375 AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
1376 [ol_cv_func_pthread_detach], [
1378 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1379 #include <pthread.h>
1381 #define NULL (void*)0
1383 ]], [[pthread_detach(NULL);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
1386 if test $ol_cv_func_pthread_detach = no ; then
1387 AC_MSG_ERROR([could not locate pthread_detach()])
1390 AC_DEFINE(HAVE_PTHREAD_DETACH,1,
1391 [define if you have pthread_detach function])
1393 dnl Check for setconcurreny functions
1395 pthread_setconcurrency \
1396 pthread_getconcurrency \
1397 thr_setconcurrency \
1398 thr_getconcurrency \
1401 OL_SYS_LINUX_THREADS
1404 if test $ol_cv_linux_threads = error; then
1405 AC_MSG_ERROR([LinuxThreads header/library mismatch]);
1408 AC_CACHE_CHECK([if pthread_create() works],
1409 ol_cv_pthread_create_works,[
1410 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1411 [ol_cv_pthread_create_works=yes],
1412 [ol_cv_pthread_create_works=no],
1414 ol_cv_pthread_create_works=yes])])
1416 if test $ol_cv_pthread_create_works = no ; then
1417 AC_MSG_ERROR([pthread_create is not usable, check environment settings])
1420 ol_replace_broken_yield=no
1421 dnl case "$target" in
1423 dnl AC_CHECK_FUNCS(nanosleep)
1424 dnl ol_replace_broken_yield=yes
1428 if test $ol_replace_broken_yield = yes ; then
1429 AC_DEFINE([REPLACE_BROKEN_YIELD],1,
1430 [define if sched_yield yields the entire process])
1433 dnl Check if select causes an yield
1434 if test $ol_with_yielding_select = auto ; then
1435 AC_CACHE_CHECK([if select yields when using pthreads],
1436 ol_cv_pthread_select_yields,[
1437 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1438 #include <sys/types.h>
1439 #include <sys/time.h>
1441 #include <pthread.h>
1443 #define NULL (void*) 0
1446 static int fildes[2];
1448 static void *task(p)
1460 FD_SET(fildes[0], &rfds);
1462 /* we're not interested in any fds */
1463 i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
1470 exit(0); /* if we exit here, the select blocked the whole process */
1473 int main(argc, argv)
1479 /* create a pipe to select */
1480 if(pipe(&fildes[0])) {
1485 #ifdef HAVE_PTHREAD_SETCONCURRENCY
1486 (void) pthread_setconcurrency(2);
1488 #ifdef HAVE_THR_SETCONCURRENCY
1489 /* Set Solaris LWP concurrency to 2 */
1490 thr_setconcurrency(2);
1494 #if HAVE_PTHREADS < 6
1495 pthread_create(&t, pthread_attr_default, task, NULL);
1497 pthread_create(&t, NULL, task, NULL);
1500 /* make sure task runs first */
1503 #elif defined( HAVE_SCHED_YIELD )
1505 #elif defined( HAVE_PTHREAD_YIELD )
1510 }]])],[ol_cv_pthread_select_yields=no],[ol_cv_pthread_select_yields=yes],[ol_cv_pthread_select_yields=cross])])
1512 if test $ol_cv_pthread_select_yields = cross ; then
1513 AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])
1516 if test $ol_cv_pthread_select_yields = yes ; then
1517 ol_with_yielding_select=yes
1522 CPPFLAGS="$save_CPPFLAGS"
1525 AC_MSG_ERROR([could not locate usable POSIX Threads])
1529 if test $ol_with_threads = posix ; then
1530 AC_MSG_ERROR([could not locate POSIX Threads])
1535 case $ol_with_threads in auto | yes | mach)
1537 dnl check for Mach CThreads
1538 AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
1539 if test $ac_cv_header_mach_cthreads_h = yes ; then
1540 ol_with_threads=found
1542 dnl check for cthreads support in current $LIBS
1543 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1545 if test $ol_link_threads = no ; then
1547 dnl this test needs work
1548 AC_CACHE_CHECK([for cthread_fork with -all_load],
1549 [ol_cv_cthread_all_load], [
1552 LIBS="-all_load $LIBS"
1553 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <mach/cthreads.h>]], [[
1554 cthread_fork((void *)0, (void *)0);
1555 ]])],[ol_cv_cthread_all_load=yes],[ol_cv_cthread_all_load=no])
1556 dnl restore the LIBS
1560 if test $ol_cv_cthread_all_load = yes ; then
1561 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
1562 ol_link_threads=mach
1563 ol_with_threads=found
1567 elif test $ac_cv_header_cthreads_h = yes ; then
1568 dnl Hurd variant of Mach Cthreads
1569 dnl uses <cthreads.h> and -lthreads
1571 ol_with_threads=found
1575 LIBS="$LIBS -lthreads"
1576 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1579 if test $ol_link_threads = yes ; then
1580 LTHREAD_LIBS="-lthreads"
1581 ol_link_threads=mach
1582 ol_with_threads=found
1584 AC_MSG_ERROR([could not link with Mach CThreads])
1587 elif test $ol_with_threads = mach ; then
1588 AC_MSG_ERROR([could not locate Mach CThreads])
1591 if test $ol_link_threads = mach ; then
1592 AC_DEFINE(HAVE_MACH_CTHREADS,1,
1593 [define if you have Mach Cthreads])
1594 elif test $ol_with_threads = found ; then
1595 AC_MSG_ERROR([could not link with Mach CThreads])
1600 case $ol_with_threads in auto | yes | pth)
1602 AC_CHECK_HEADERS(pth.h)
1604 if test $ac_cv_header_pth_h = yes ; then
1605 AC_CHECK_LIB(pth, pth_version, [have_pth=yes], [have_pth=no])
1607 if test $have_pth = yes ; then
1608 AC_DEFINE(HAVE_GNU_PTH,1,[if you have GNU Pth])
1609 LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
1611 ol_with_threads=found
1613 if test $ol_with_yielding_select = auto ; then
1614 ol_with_yielding_select=yes
1621 case $ol_with_threads in auto | yes | lwp)
1623 dnl check for SunOS5 LWP
1624 AC_CHECK_HEADERS(thread.h synch.h)
1625 if test $ac_cv_header_thread_h = yes &&
1626 test $ac_cv_header_synch_h = yes ; then
1627 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
1629 if test $have_thr = yes ; then
1630 AC_DEFINE(HAVE_THR,1,
1631 [if you have Solaris LWP (thr) package])
1632 LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
1635 if test $ol_with_yielding_select = auto ; then
1636 ol_with_yielding_select=yes
1639 dnl Check for setconcurreny functions
1641 thr_setconcurrency \
1642 thr_getconcurrency \
1647 dnl check for SunOS4 LWP
1648 AC_CHECK_HEADERS(lwp/lwp.h)
1649 if test $ac_cv_header_lwp_lwp_h = yes ; then
1650 AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
1652 if test $have_lwp = yes ; then
1653 AC_DEFINE(HAVE_LWP,1,
1654 [if you have SunOS LWP package])
1655 LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
1658 if test $ol_with_yielding_select = auto ; then
1659 ol_with_yielding_select=no
1666 if test $ol_with_yielding_select = yes ; then
1667 AC_DEFINE(HAVE_YIELDING_SELECT,1,
1668 [define if select implicitly yields])
1671 if test $ol_with_threads = manual ; then
1672 dnl User thinks he can manually configure threads.
1675 AC_MSG_WARN([thread defines and link options must be set manually])
1677 AC_CHECK_HEADERS(pthread.h sched.h)
1678 AC_CHECK_FUNCS(sched_yield pthread_yield)
1679 OL_HEADER_LINUX_THREADS
1681 AC_CHECK_HEADERS(mach/cthreads.h)
1682 AC_CHECK_HEADERS(lwp/lwp.h)
1683 AC_CHECK_HEADERS(thread.h synch.h)
1686 if test $ol_link_threads != no && test $ol_link_threads != nt ; then
1687 dnl needed to get reentrant/threadsafe versions
1689 AC_DEFINE(REENTRANT,1)
1690 AC_DEFINE(_REENTRANT,1)
1691 AC_DEFINE(THREAD_SAFE,1)
1692 AC_DEFINE(_THREAD_SAFE,1)
1693 AC_DEFINE(THREADSAFE,1)
1694 AC_DEFINE(_THREADSAFE,1)
1695 AC_DEFINE(_SGI_MP_SOURCE,1)
1697 dnl The errno declaration may dependent upon _REENTRANT.
1698 dnl If it does, we must link with thread support.
1699 AC_CACHE_CHECK([for thread specific errno],
1700 [ol_cv_errno_thread_specific], [
1701 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <errno.h>]], [[errno = 0;]])],[ol_cv_errno_thread_specific=yes],[ol_cv_errno_thread_specific=no])
1704 dnl The h_errno declaration may dependent upon _REENTRANT.
1705 dnl If it does, we must link with thread support.
1706 AC_CACHE_CHECK([for thread specific h_errno],
1707 [ol_cv_h_errno_thread_specific], [
1708 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])
1711 if test $ol_cv_errno_thread_specific != yes ||
1712 test $ol_cv_h_errno_thread_specific != yes ; then
1713 LIBS="$LTHREAD_LIBS $LIBS"
1717 dnl When in thread environment, use
1718 dnl #if defined( HAVE_REENTRANT_FUNCTIONS ) || defined( HAVE_FUNC_R )
1721 dnl # if defined( HAVE_THREADS )
1725 dnl # if defined( HAVE_THREADS )
1730 dnl HAVE_REENTRANT_FUNCTIONS is derived from:
1731 dnl _POSIX_REENTRANT_FUNCTIONS
1732 dnl _POSIX_THREAD_SAFE_FUNCTIONS
1733 dnl _POSIX_THREADSAFE_FUNCTIONS
1735 dnl and is currently defined in <ldap_pvt_thread.h>
1737 dnl HAVE_THREADS is defined by <ldap_pvt_thread.h> iff -UNO_THREADS
1739 dnl libldap/*.c should only include <ldap_pvt_thread.h> iff
1740 dnl LDAP_R_COMPILE is defined. ie:
1741 dnl #ifdef LDAP_R_COMPILE
1742 dnl # include <ldap_pvt_thread.h>
1745 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
1746 dnl specifically for compiling the threadsafe version of
1747 dnl the ldap library (-lldap_r).
1749 dnl dnl check for reentrant/threadsafe functions
1751 dnl dnl note: these should only be used when linking
1752 dnl dnl with $LTHREAD_LIBS
1754 dnl save_CPPFLAGS="$CPPFLAGS"
1755 dnl save_LIBS="$LIBS"
1756 dnl LIBS="$LTHREAD_LIBS $LIBS"
1757 dnl AC_CHECK_FUNCS( \
1759 dnl gethostbyaddr_r gethostbyname_r \
1760 dnl feof_unlocked unlocked_feof \
1761 dnl putc_unlocked unlocked_putc \
1762 dnl flockfile ftrylockfile \
1764 dnl CPPFLAGS="$save_CPPFLAGS"
1765 dnl LIBS="$save_LIBS"
1768 if test $ol_link_threads = no ; then
1769 if test $ol_with_threads = yes ; then
1770 AC_MSG_ERROR([no suitable thread support])
1773 if test $ol_with_threads = auto ; then
1774 AC_MSG_WARN([no suitable thread support, disabling threads])
1778 AC_DEFINE(NO_THREADS,1,
1779 [define if you have (or want) no threads])
1786 if test $ol_link_threads != no ; then
1787 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1,
1788 [define to 1 if library is thread safe])
1791 dnl ----------------------------------------------------------------
1792 dnl Tests for reentrant functions necessary to build -lldap_r
1795 gethostbyname_r gethostbyaddr_r \
1798 if test "$ac_cv_func_ctime_r" = no ; then
1799 ol_cv_func_ctime_r_nargs=0
1801 OL_FUNC_CTIME_R_NARGS
1802 dnl OL_FUNC_CTIME_R_TYPE
1805 if test "$ac_cv_func_gethostbyname_r" = yes ; then
1806 OL_FUNC_GETHOSTBYNAME_R_NARGS
1808 ol_cv_func_gethostbyname_r_nargs=0
1811 if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
1812 OL_FUNC_GETHOSTBYADDR_R_NARGS
1814 ol_cv_func_gethostbyaddr_r_nargs=0
1817 dnl ----------------------------------------------------------------
1820 if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
1823 if test $ol_cv_berkeley_db = no ; then
1824 AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
1827 AC_DEFINE(HAVE_BERKELEY_DB,1,
1828 [define this if Berkeley DB is available])
1830 dnl $ol_cv_lib_db should be yes or -ldb
1831 dnl (it could be no, but that would be an error
1832 if test $ol_cv_lib_db != yes ; then
1833 BDB_LIBS="$BDB_LIBS $ol_cv_lib_db"
1838 if test $ol_cv_bdb_compat != yes ; then
1839 AC_MSG_ERROR([BDB/HDB: BerkeleyDB version incompatible])
1842 SLAPD_LIBS="$SLAPD_LIBS \$(BDB_LIBS)"
1847 dnl ----------------------------------------------------------------
1849 if test $ol_enable_dynamic = yes && test $enable_shared = yes ; then
1850 BUILD_LIBS_DYNAMIC=shared
1851 AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
1854 BUILD_LIBS_DYNAMIC=static
1857 AC_SUBST(LTSTATIC)dnl
1859 dnl ----------------------------------------------------------------
1860 if test $ol_enable_wrappers != no ; then
1861 AC_CHECK_HEADERS(tcpd.h,[
1862 AC_MSG_CHECKING([for TCP wrappers library])
1865 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1867 int allow_severity = 0;
1868 int deny_severity = 0;
1870 struct request_info *req;
1873 ]])],[AC_MSG_RESULT([-lwrap])
1875 LIBS="$save_LIBS"],[
1880 int allow_severity = 0;
1881 int deny_severity = 0;
1883 struct request_info *req;
1886 ],[AC_MSG_RESULT([-lwrap -lnsl])
1888 LIBS="$save_LIBS -lnsl"],[
1891 LIBS=$save_LIBS])])],[have_wrappers=no])
1893 if test $have_wrappers = yes ; then
1894 AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
1896 elif test $ol_enable_wrappers = yes ; then
1897 AC_MSG_ERROR([could not find TCP wrappers, select apppropriate options or disable])
1899 AC_MSG_WARN([could not find TCP wrappers, support disabled])
1904 dnl ----------------------------------------------------------------
1905 if test $ol_enable_syslog != no ; then
1906 AC_CHECK_FUNC(openlog)
1907 if test $ac_cv_func_openlog = no && test $ol_enable_syslog = yes; then
1908 AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
1910 ol_enable_syslog=$ac_cv_func_openlog
1913 dnl ----------------------------------------------------------------
1916 if test $ol_enable_sql != no ; then
1917 AC_CHECK_HEADERS(sql.h sqlext.h,[],[
1918 AC_MSG_ERROR([could not locate SQL headers])
1922 LIBS="$LTHREAD_LIBS"
1924 if test $ol_with_odbc = auto ; then
1925 ol_with_odbc="iodbc unixodbc"
1928 for odbc in $ol_with_odbc ; do
1929 if test $ol_link_sql = no ; then
1932 AC_CHECK_LIB(iodbc, SQLDriverConnect, [have_iodbc=yes], [have_iodbc=no])
1933 if test $have_iodbc = yes ; then
1934 ol_link_sql="-liodbc"
1939 AC_CHECK_LIB(odbc, SQLDriverConnect, [have_odbc=yes], [have_odbc=no])
1940 if test $have_odbc = yes ; then
1941 ol_link_sql="-lodbc"
1946 AC_MSG_ERROR([unknown ODBC library])
1954 if test $ol_link_sql != no ; then
1955 SLAPD_SQL_LIBS="$ol_link_sql"
1957 elif test $ol_enable_sql != auto ; then
1958 AC_MSG_ERROR([could not locate suitable ODBC library])
1962 dnl ----------------------------------------------------------------
1963 dnl International Components for Unicode
1965 if test "$ol_icu" = no ; then
1966 AC_MSG_WARN([ICU not available])
1970 dnl ----------------------------------------------------------------
1972 dnl Check for Cyrus SASL
1977 if test $ol_with_cyrus_sasl != no ; then
1978 AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
1980 if test $ac_cv_header_sasl_sasl_h = yes ||
1981 test $ac_cv_header_sasl_h = yes; then
1982 AC_CHECK_LIB(sasl2, sasl_client_init,
1983 [ol_link_sasl="-lsasl2"],
1984 [AC_CHECK_LIB(sasl, sasl_client_init,
1985 [ol_link_sasl="-lsasl"])])
1988 if test $ol_link_sasl = no ; then
1989 if test $ol_with_cyrus_sasl != auto ; then
1990 AC_MSG_ERROR([Could not locate Cyrus SASL])
1992 AC_MSG_WARN([Could not locate Cyrus SASL])
1993 AC_MSG_WARN([SASL authentication not supported!])
1994 if test $ol_link_tls = no ; then
1995 AC_MSG_WARN([Strong authentication not supported!])
2000 if test $ol_cv_sasl_compat = no ; then
2002 AC_MSG_ERROR([Cyrus SASL library located but is incompatible])
2005 AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
2006 SASL_LIBS="$ol_link_sasl"
2007 if test $ol_enable_spasswd != no ; then
2011 ac_save_LIBS="$LIBS"
2012 LIBS="$LIBS $ol_link_sasl"
2013 AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1,
2014 [define if your SASL library has sasl_version()])])
2015 LIBS="$ac_save_LIBS"
2021 AC_MSG_WARN([SASL authentication not supported!])
2022 if test $ol_link_tls = no ; then
2023 AC_MSG_WARN([Strong authentication not supported!])
2027 dnl ----------------------------------------------------------------
2028 dnl Check for entropy sources
2029 if test $cross_compiling != yes && test "$ac_cv_mingw32" != yes ; then
2031 if test -r /dev/urandom ; then
2033 elif test -r /idev/urandom ; then
2034 dev="/idev/urandom";
2035 elif test -r /dev/srandom ; then
2037 elif test -r /dev/random ; then
2039 elif test -r /idev/random ; then
2043 if test $dev != no ; then
2044 AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
2048 dnl ----------------------------------------------------------------
2050 dnl Check for fetch URL support
2051 dnl should be extended to support other fetch URL APIs
2054 if test $ol_with_fetch != no ; then
2057 if test $ol_cv_lib_fetch != no ; then
2058 LUTIL_LIBS="$LUTIL_LIBS $ol_link_fetch"
2059 ol_link_fetch=freebsd
2061 elif test $ol_with_fetch != auto ; then
2062 AC_MSG_ERROR(no suitable API for --with-fetch=$ol_with_fetch)
2066 dnl ----------------------------------------------------------------
2067 dnl FreeBSD (and others) have crypt(3) in -lcrypt
2068 if test $ol_enable_crypt != no ; then
2070 LIBS="$TLS_LIBS $LIBS"
2072 AC_CHECK_FUNC(crypt, [have_crypt=yes], [
2074 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
2075 have_crypt=yes], [have_crypt=no])])
2079 if test $have_crypt = yes ; then
2080 AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
2082 AC_MSG_WARN([could not find crypt])
2083 if test $ol_enable_crypt = yes ; then
2084 AC_MSG_ERROR([could not find crypt, select appropriate options or disable])
2087 AC_MSG_WARN([disabling crypt support])
2092 dnl ----------------------------------------------------------------
2093 dnl FreeBSD (and others) have setproctitle(3) in -lutil
2094 if test $ol_enable_proctitle != no ; then
2095 AC_CHECK_FUNC(setproctitle, [have_setproctitle=yes], [
2096 AC_CHECK_LIB(util, setproctitle,
2097 [have_setproctitle=yes
2098 LUTIL_LIBS="$LUTIL_LIBS -lutil"],
2099 [have_setproctitle=no
2100 AC_LIBOBJ(setproctitle)
2101 LIBSRCS="$LIBSRCS setproctitle.c"])])
2103 if test $have_setproctitle = yes ; then
2104 AC_DEFINE(HAVE_SETPROCTITLE,1,
2105 [define if setproctitle(3) is available])
2109 dnl ----------------------------------------------------------------
2110 if test $ol_enable_slp != no ; then
2111 AC_CHECK_HEADERS( slp.h )
2113 if test $ac_cv_header_slp_h = yes ; then
2114 AC_CHECK_LIB(slp, SLPOpen, [have_slp=yes], [have_slp=no])
2115 if test $have_slp = yes ; then
2116 AC_DEFINE(HAVE_SLP, 1, [define if you have -lslp])
2117 SLAPD_SLP_LIBS=-lslp
2120 elif test $ol_enable_slp = yes ; then
2121 AC_MSG_ERROR([SLP not found])
2125 dnl ----------------------------------------------------------------
2126 dnl Checks for typedefs, structures, and compiler characteristics.
2128 AC_CHECK_TYPE(mode_t, int)
2129 AC_CHECK_TYPE(off_t, long)
2130 AC_CHECK_TYPE(pid_t, int)
2131 AC_CHECK_TYPE(ssize_t, [signed int])
2132 AC_CHECK_TYPE(caddr_t, [char *])
2133 AC_CHECK_TYPE(size_t, unsigned)
2135 AC_CHECK_TYPES([long long])
2136 AC_CHECK_TYPES([ptrdiff_t])
2138 AC_CHECK_TYPE([socklen_t],,
2139 [AC_DEFINE_UNQUOTED([socklen_t], [int],
2140 [Define to `int' if <sys/socket.h> does not define.])],
2141 [$ac_includes_default
2142 #ifdef HAVE_SYS_SOCKET_H
2143 #include <sys/socket.h>
2149 AC_CHECK_TYPE([sig_atomic_t],,
2150 [AC_DEFINE_UNQUOTED([sig_atomic_t], [int],
2151 [Define to `int' if <signal.h> does not define.])],
2152 [$ac_includes_default
2160 AC_CHECK_MEMBERS([struct stat.st_blksize])
2161 AC_CHECK_MEMBERS([struct passwd.pw_gecos],,,[$ac_includes_default
2163 AC_CHECK_MEMBERS([struct passwd.pw_passwd],,,[$ac_includes_default
2170 if test $cross_compiling = yes ; then
2171 AC_MSG_WARN([Crossing compiling... all bets are off!])
2172 AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
2177 AC_CHECK_SIZEOF(short)
2178 AC_CHECK_SIZEOF(int)
2179 AC_CHECK_SIZEOF(long)
2180 AC_CHECK_SIZEOF(long long)
2181 AC_CHECK_SIZEOF(wchar_t)
2183 if test "$ac_cv_sizeof_int" -lt 4 ; then
2184 AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
2186 AC_DEFINE(LBER_INT_T,long,[define to 32-bit or greater integer type])
2188 AC_DEFINE(LBER_INT_T,int,[define to 32-bit or greater integer type])
2191 AC_DEFINE(LBER_LEN_T,long,[define to large integer type])
2192 AC_DEFINE(LBER_SOCKET_T,int,[define to socket descriptor type])
2193 AC_DEFINE(LBER_TAG_T,long,[define to large integer type])
2195 dnl ----------------------------------------------------------------
2196 dnl Check for multiple precision support
2197 if test $ol_with_mp = longlong || test $ol_with_mp = auto ; then
2198 if test $ac_cv_sizeof_long_long -gt 4 ; then
2200 AC_DEFINE(USE_MP_LONG_LONG,1,[define to use 'long long' for MP])
2201 elif test $ol_with_mp = longlong ; then
2202 AC_MSG_ERROR([long long unusable for multiple precision])
2205 if test $ol_with_mp = long || test $ol_with_mp = auto ; then
2206 if test $ac_cv_sizeof_long -gt 4 ; then
2208 AC_DEFINE(USE_MP_LONG,1,[define to use 'long' for MP])
2209 elif test $ol_with_mp = long ; then
2210 AC_MSG_ERROR([long unusable for multiple precision])
2213 if test $ol_with_mp = bignum || test $ol_with_mp = auto ; then
2214 AC_CHECK_HEADERS(openssl/bn.h)
2215 AC_CHECK_HEADERS(openssl/crypto.h)
2216 if test "$ac_cv_header_openssl_bn_h" = "yes" &&
2217 test "$ac_cv_header_openssl_crypto_h" = "yes" &&
2218 test "$ol_with_tls" = "found" ; then
2220 AC_DEFINE(USE_MP_BIGNUM,1,[define to use OpenSSL BIGNUM for MP])
2221 elif test $ol_with_mp = bignum ; then
2222 AC_MSG_ERROR([bignum not available])
2225 if test $ol_with_mp = gmp || test $ol_with_mp = auto ; then
2226 AC_CHECK_HEADERS(gmp.h)
2227 AC_CHECK_LIB(gmp, __gmpz_add_ui)
2228 if test $ac_cv_header_gmp_h = yes && test $ac_cv_lib_gmp___gmpz_add_ui = yes ; then
2229 AC_DEFINE(USE_MP_GMP,1,[define to use GMP for MP])
2231 elif test $ol_with_mp = gmp ; then
2232 AC_MSG_ERROR([gmp not available])
2235 if test $ol_with_mp = auto ; then
2239 dnl ----------------------------------------------------------------
2240 dnl Checks for library functions.
2243 if test $ac_cv_func_memcmp_working = no ; then
2244 AC_DEFINE(NEED_MEMCMP_REPLACEMENT,1,
2245 [define if memcmp is not 8-bit clean or is otherwise broken])
2252 dnl Check for NT specific routines
2253 AC_CHECK_FUNC(_spawnlp, AC_DEFINE(HAVE_SPAWNLP,1,[if you have spawnlp()]))
2255 AC_CHECK_FUNC(_snprintf, [ac_cv_func_snprintf=yes
2256 AC_DEFINE(snprintf, _snprintf, [define to snprintf routine])
2259 AC_CHECK_FUNC(_vsnprintf, [ac_cv_func_vsnprintf=yes
2260 AC_DEFINE(vsnprintf, _vsnprintf, [define to vsnprintf routine])
2265 if test $ac_cv_func_vprintf = yes ; then
2266 dnl check for vsnprintf
2267 AC_CHECK_FUNCS(snprintf vsnprintf)
2328 dnl We actually may need to replace more than this.
2329 AC_REPLACE_FUNCS(getopt getpeereid)
2331 if test "$ac_cv_func_getopt" != yes; then
2332 LIBSRCS="$LIBSRCS getopt.c"
2335 if test "$ac_cv_func_getpeereid" != yes; then
2336 AC_CHECK_FUNCS( getpeerucred )
2337 if test "$ac_cv_func_getpeerucred" != yes ; then
2338 AC_CHECK_MEMBERS([struct msghdr.msg_accrightslen],,,
2339 [$ac_includes_default
2340 #ifdef HAVE_SYS_SOCKET_H
2341 #include <sys/socket.h>
2343 if test "$ac_cv_member_struct_msghdr_msg_accrightslen" != yes; then
2344 AC_CHECK_MEMBERS([struct msghdr.msg_control],,,
2345 [$ac_includes_default
2346 #ifdef HAVE_SYS_SOCKET_H
2347 #include <sys/socket.h>
2351 LIBSRCS="$LIBSRCS getpeereid.c"
2354 if test "$ac_cv_func_snprintf" != yes ||
2355 test "$ac_cv_func_vsnprintf" != yes; then
2356 if test "$ac_cv_func_snprintf" != yes; then
2357 AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
2359 if test "$ac_cv_func_vsnprintf" != yes; then
2360 AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine])
2364 dnl ----------------------------------------------------------------
2365 dnl Sort out defines
2367 if test "$ol_enable_slapi" != no ; then
2368 dnl This check is done also if --enable-modules is used;
2369 dnl it is duplicated here, 'cause it'd be cached anyway
2370 AC_CHECK_HEADERS(ltdl.h)
2372 if test $ac_cv_header_ltdl_h != yes ; then
2373 AC_MSG_ERROR([could not locate <ltdl.h>])
2375 AC_CHECK_LIB(ltdl, lt_dlinit, [
2378 LIBSLAPITOOLS=../libslapi.a
2379 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
2380 ],[AC_MSG_ERROR([could not locate libtool -lltdl])])
2382 AC_DEFINE(LDAP_SLAPI,1, [define this to add SLAPI code])
2385 if test "$ol_enable_debug" != no ; then
2386 if test "$ol_enable_debug" = traditional; then
2387 AC_DEFINE(OLD_DEBUG,1,
2388 [define to use the original debug style])
2390 AC_DEFINE(LDAP_DEBUG,1,
2391 [define this to add debugging code])
2393 if test "$ol_enable_syslog" = yes ; then
2394 AC_DEFINE(LDAP_SYSLOG,1,
2395 [define this to add syslog code])
2397 if test "$ol_enable_proctitle" != no ; then
2398 AC_DEFINE(LDAP_PROCTITLE,1,
2399 [define this for LDAP process title support])
2401 if test "$ol_enable_referrals" != no ; then
2402 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION,
2403 [define to LDAP VENDOR VERSION])
2405 if test "$ol_enable_local" != no; then
2406 AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
2408 if test "$ol_link_ipv6" != no; then
2409 AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
2411 if test "$ol_enable_cleartext" != no ; then
2412 AC_DEFINE(SLAPD_CLEARTEXT,1,[define to support cleartext passwords])
2414 if test "$ol_enable_crypt" != no ; then
2415 AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords])
2417 if test "$ol_link_spasswd" != no ; then
2418 AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
2420 if test "$ol_enable_rlookups" != no ; then
2421 AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
2423 if test "$ol_enable_aci" != no ; then
2424 if test $ol_enable_dynacl = no ; then
2425 ol_enable_dynacl=yes
2426 AC_MSG_WARN([ACIs need dynacl])
2428 if test "$ol_enable_aci" = mod ; then
2429 MFLAG=SLAPD_MOD_DYNAMIC
2430 dnl remove this after moving servers/slapd/aci.c in contrib/slapd-modules/acl
2431 AC_MSG_ERROR([ACI build as dynamic module not supported (yet)])
2433 MFLAG=SLAPD_MOD_STATIC
2435 WITH_ACI_ENABLED=$ol_enable_aci
2436 AC_DEFINE_UNQUOTED(SLAPD_ACI_ENABLED,$MFLAG,[define to support per-object ACIs])
2440 if test "$ol_enable_dynacl" != no ; then
2441 AC_DEFINE(SLAP_DYNACL,1,[define to support run-time loadable ACL])
2444 if test "$ol_link_modules" != no ; then
2445 AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
2447 SLAPD_MODULES_LDFLAGS="-dlopen self"
2450 AC_DEFINE(SLAPD_MOD_STATIC,1,[statically linked module])
2451 AC_DEFINE(SLAPD_MOD_DYNAMIC,2,[dynamically linked module])
2453 dnl back-monitor goes first (well, after back-config)
2454 if test "$ol_enable_monitor" != no ; then
2456 BUILD_MONITOR=$ol_enable_monitor
2457 if test "$ol_enable_monitor" = mod ; then
2458 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
2459 MFLAG=SLAPD_MOD_DYNAMIC
2461 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
2462 MFLAG=SLAPD_MOD_STATIC
2464 AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
2467 if test "$ol_enable_bdb" != no ; then
2469 BUILD_BDB=$ol_enable_bdb
2470 if test "$ol_enable_bdb" = mod ; then
2471 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
2472 MFLAG=SLAPD_MOD_DYNAMIC
2474 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
2475 MFLAG=SLAPD_MOD_STATIC
2477 AC_DEFINE_UNQUOTED(SLAPD_BDB,$MFLAG,[define to support BDB backend])
2480 if test "$ol_enable_dnssrv" != no ; then
2482 BUILD_DNSSRV=$ol_enable_dnssrv
2483 if test "$ol_enable_dnssrv" = mod ; then
2484 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
2485 MFLAG=SLAPD_MOD_DYNAMIC
2487 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
2488 MFLAG=SLAPD_MOD_STATIC
2490 AC_DEFINE_UNQUOTED(SLAPD_DNSSRV,$MFLAG,[define to support DNS SRV backend])
2493 if test "$ol_enable_hdb" != no ; then
2495 BUILD_HDB=$ol_enable_hdb
2496 if test "$ol_enable_hdb" = mod ; then
2497 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-hdb"
2498 MFLAG=SLAPD_MOD_DYNAMIC
2500 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb"
2501 MFLAG=SLAPD_MOD_STATIC
2503 AC_DEFINE_UNQUOTED(SLAPD_HDB,$MFLAG,[define to support HDB backend])
2506 if test "$ol_enable_ldap" != no ; then
2508 BUILD_LDAP=$ol_enable_ldap
2509 if test "$ol_enable_ldap" = mod ; then
2510 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
2511 MFLAG=SLAPD_MOD_DYNAMIC
2513 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
2514 MFLAG=SLAPD_MOD_STATIC
2516 AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
2519 if test "$ol_enable_meta" != no ; then
2521 BUILD_META=$ol_enable_meta
2523 if test "$ol_enable_meta" = mod ; then
2524 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
2525 MFLAG=SLAPD_MOD_DYNAMIC
2527 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
2528 MFLAG=SLAPD_MOD_STATIC
2530 AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
2533 if test "$ol_enable_null" != no ; then
2535 BUILD_NULL=$ol_enable_null
2536 if test "$ol_enable_null" = mod ; then
2537 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
2538 MFLAG=SLAPD_MOD_DYNAMIC
2540 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
2541 MFLAG=SLAPD_MOD_STATIC
2543 AC_DEFINE_UNQUOTED(SLAPD_NULL,$MFLAG,[define to support NULL backend])
2546 if test "$ol_enable_passwd" != no ; then
2548 BUILD_PASSWD=$ol_enable_passwd
2549 if test "$ol_enable_passwd" = mod ; then
2550 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
2551 MFLAG=SLAPD_MOD_DYNAMIC
2553 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
2554 MFLAG=SLAPD_MOD_STATIC
2556 AC_DEFINE_UNQUOTED(SLAPD_PASSWD,$MFLAG,[define to support PASSWD backend])
2559 if test "$ol_link_perl" != no ; then
2561 BUILD_PERL=$ol_enable_perl
2562 if test "$ol_enable_perl" = mod ; then
2563 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
2564 MFLAG=SLAPD_MOD_DYNAMIC
2566 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
2567 MFLAG=SLAPD_MOD_STATIC
2569 AC_DEFINE_UNQUOTED(SLAPD_PERL,$MFLAG,[define to support PERL backend])
2572 if test "$ol_enable_relay" != no ; then
2574 BUILD_RELAY=$ol_enable_relay
2575 if test "$ol_enable_relay" = mod ; then
2576 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-relay"
2577 MFLAG=SLAPD_MOD_DYNAMIC
2579 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-relay"
2580 MFLAG=SLAPD_MOD_STATIC
2582 AC_DEFINE_UNQUOTED(SLAPD_RELAY,$MFLAG,[define to support relay backend])
2585 if test "$ol_enable_shell" != no ; then
2586 if test "$ol_link_threads" != no ; then
2587 AC_MSG_WARN([Use of --without-threads is recommended with back-shell])
2590 BUILD_SHELL=$ol_enable_shell
2591 if test "$ol_enable_shell" = mod ; then
2592 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
2593 MFLAG=SLAPD_MOD_DYNAMIC
2595 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
2596 MFLAG=SLAPD_MOD_STATIC
2598 AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend])
2601 if test "$ol_link_sql" != no ; then
2603 BUILD_SQL=$ol_enable_sql
2604 if test "$ol_enable_sql" = mod; then
2605 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
2606 MFLAG=SLAPD_MOD_DYNAMIC
2608 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
2609 MFLAG=SLAPD_MOD_STATIC
2611 AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend])
2614 if test "$ol_enable_accesslog" != no ; then
2615 BUILD_ACCESSLOG=$ol_enable_accesslog
2616 if test "$ol_enable_accesslog" = mod ; then
2617 MFLAG=SLAPD_MOD_DYNAMIC
2618 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS accesslog.la"
2620 MFLAG=SLAPD_MOD_STATIC
2621 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS accesslog.o"
2623 AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay])
2626 if test "$ol_enable_auditlog" != no ; then
2627 BUILD_AUDITLOG=$ol_enable_auditlog
2628 if test "$ol_enable_auditlog" = mod ; then
2629 MFLAG=SLAPD_MOD_DYNAMIC
2630 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS auditlog.la"
2632 MFLAG=SLAPD_MOD_STATIC
2633 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS auditlog.o"
2635 AC_DEFINE_UNQUOTED(SLAPD_OVER_AUDITLOG,$MFLAG,[define for Audit Logging overlay])
2638 if test "$ol_enable_constraint" != no ; then
2639 BUILD_CONSTRAINT=$ol_enable_constraint
2640 if test "$ol_enable_constraint" = mod ; then
2641 MFLAG=SLAPD_MOD_DYNAMIC
2642 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS constraint.la"
2644 MFLAG=SLAPD_MOD_STATIC
2645 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS constraint.o"
2647 AC_DEFINE_UNQUOTED(SLAPD_OVER_CONSTRAINT,$MFLAG,[define for Attribute Constraint overlay])
2650 if test "$ol_enable_dds" != no ; then
2651 BUILD_DDS=$ol_enable_dds
2652 if test "$ol_enable_dds" = mod ; then
2653 MFLAG=SLAPD_MOD_DYNAMIC
2654 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dds.la"
2656 MFLAG=SLAPD_MOD_STATIC
2657 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dds.o"
2659 AC_DEFINE_UNQUOTED(SLAPD_OVER_DDS,$MFLAG,[define for Dynamic Directory Services overlay])
2662 if test "$ol_enable_dyngroup" != no ; then
2663 BUILD_DYNGROUP=$ol_enable_dyngroup
2664 if test "$ol_enable_dyngroup" = mod ; then
2665 MFLAG=SLAPD_MOD_DYNAMIC
2666 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dyngroup.la"
2668 MFLAG=SLAPD_MOD_STATIC
2669 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dyngroup.o"
2671 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay])
2674 if test "$ol_enable_dynlist" != no ; then
2675 BUILD_DYNLIST=$ol_enable_dynlist
2676 if test "$ol_enable_dynlist" = mod ; then
2677 MFLAG=SLAPD_MOD_DYNAMIC
2678 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dynlist.la"
2680 MFLAG=SLAPD_MOD_STATIC
2681 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dynlist.o"
2683 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNLIST,$MFLAG,[define for Dynamic List overlay])
2686 if test "$ol_enable_ppolicy" != no ; then
2687 BUILD_PPOLICY=$ol_enable_ppolicy
2688 if test "$ol_enable_ppolicy" = mod ; then
2689 MFLAG=SLAPD_MOD_DYNAMIC
2690 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS ppolicy.la"
2692 MFLAG=SLAPD_MOD_STATIC
2693 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS ppolicy.o"
2695 AC_DEFINE_UNQUOTED(SLAPD_OVER_PPOLICY,$MFLAG,[define for Password Policy overlay])
2698 if test "$ol_enable_proxycache" != no ; then
2699 BUILD_PROXYCACHE=$ol_enable_proxycache
2700 if test "$ol_enable_proxycache" = mod ; then
2701 MFLAG=SLAPD_MOD_DYNAMIC
2702 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS pcache.la"
2704 MFLAG=SLAPD_MOD_STATIC
2705 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS pcache.o"
2707 AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay])
2710 if test "$ol_enable_refint" != no ; then
2711 BUILD_REFINT=$ol_enable_refint
2712 if test "$ol_enable_refint" = mod ; then
2713 MFLAG=SLAPD_MOD_DYNAMIC
2714 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la"
2716 MFLAG=SLAPD_MOD_STATIC
2717 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS refint.o"
2719 AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay])
2722 if test "$ol_enable_retcode" != no ; then
2723 BUILD_RETCODE=$ol_enable_retcode
2724 if test "$ol_enable_retcode" = mod ; then
2725 MFLAG=SLAPD_MOD_DYNAMIC
2726 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS retcode.la"
2728 MFLAG=SLAPD_MOD_STATIC
2729 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS retcode.o"
2731 AC_DEFINE_UNQUOTED(SLAPD_OVER_RETCODE,$MFLAG,[define for Referential Integrity overlay])
2734 if test "$ol_enable_rwm" != no ; then
2736 BUILD_RWM=$ol_enable_rwm
2737 if test "$ol_enable_rwm" = mod ; then
2738 MFLAG=SLAPD_MOD_DYNAMIC
2739 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS rwm.la"
2741 MFLAG=SLAPD_MOD_STATIC
2742 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS rwm_x.o"
2744 AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
2747 if test "$ol_enable_seqmod" != no ; then
2748 BUILD_SEQMOD=$ol_enable_seqmod
2749 if test "$ol_enable_seqmod" = mod ; then
2750 MFLAG=SLAPD_MOD_DYNAMIC
2751 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS seqmod.la"
2753 MFLAG=SLAPD_MOD_STATIC
2754 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS seqmod.o"
2756 AC_DEFINE_UNQUOTED(SLAPD_OVER_SEQMOD,$MFLAG,[define for Sequential Modify overlay])
2759 if test "$ol_enable_syncprov" != no ; then
2760 BUILD_SYNCPROV=$ol_enable_syncprov
2761 if test "$ol_enable_syncprov" = mod ; then
2762 MFLAG=SLAPD_MOD_DYNAMIC
2763 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS syncprov.la"
2765 MFLAG=SLAPD_MOD_STATIC
2766 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS syncprov.o"
2768 AC_DEFINE_UNQUOTED(SLAPD_OVER_SYNCPROV,$MFLAG,[define for Syncrepl Provider overlay])
2771 if test "$ol_enable_translucent" != no ; then
2772 BUILD_TRANSLUCENT=$ol_enable_translucent
2773 if test "$ol_enable_translucent" = mod ; then
2774 MFLAG=SLAPD_MOD_DYNAMIC
2775 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS translucent.la"
2777 MFLAG=SLAPD_MOD_STATIC
2778 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS translucent.o"
2780 AC_DEFINE_UNQUOTED(SLAPD_OVER_TRANSLUCENT,$MFLAG,[define for Translucent Proxy overlay])
2783 if test "$ol_enable_unique" != no ; then
2784 BUILD_UNIQUE=$ol_enable_unique
2785 if test "$ol_enable_unique" = mod ; then
2786 MFLAG=SLAPD_MOD_DYNAMIC
2787 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la"
2789 MFLAG=SLAPD_MOD_STATIC
2790 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS unique.o"
2792 AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay])
2795 if test "$ol_enable_valsort" != no ; then
2796 BUILD_VALSORT=$ol_enable_valsort
2797 if test "$ol_enable_valsort" = mod ; then
2798 MFLAG=SLAPD_MOD_DYNAMIC
2799 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS valsort.la"
2801 MFLAG=SLAPD_MOD_STATIC
2802 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS valsort.o"
2804 AC_DEFINE_UNQUOTED(SLAPD_OVER_VALSORT,$MFLAG,[define for Value Sorting overlay])
2807 if test "$ol_enable_slurpd" != no &&
2808 test "$ol_link_threads" != no &&
2809 test $BUILD_SLAPD = yes ; then
2813 if test "$ol_enable_rewrite" != no ; then
2814 AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta])
2818 if test "$ol_enable_slapi" != no ; then
2819 AC_DEFINE(ENABLE_SLAPI,1,[define to enable slapi library])
2821 SLAPD_SLAPI_DEPEND=libslapi.a
2824 dnl ----------------------------------------------------------------
2827 dnl For Windows build, we don't want to include -dlopen flags.
2828 dnl They hurt more than they help.
2831 if test "$ac_cv_mingw32" = yes ; then
2833 SLAPD_MODULES_LDFLAGS=
2842 AC_SUBST(WITH_MODULES_ENABLED)
2843 AC_SUBST(WITH_ACI_ENABLED)
2844 AC_SUBST(BUILD_THREAD)
2845 AC_SUBST(BUILD_LIBS_DYNAMIC)
2847 AC_SUBST(BUILD_SLAPD)
2849 AC_SUBST(BUILD_SLAPI)
2850 AC_SUBST(SLAPD_SLAPI_DEPEND)
2853 AC_SUBST(BUILD_DNSSRV)
2855 AC_SUBST(BUILD_LDAP)
2856 AC_SUBST(BUILD_META)
2857 AC_SUBST(BUILD_MONITOR)
2858 AC_SUBST(BUILD_NULL)
2859 AC_SUBST(BUILD_PASSWD)
2860 AC_SUBST(BUILD_RELAY)
2861 AC_SUBST(BUILD_PERL)
2862 AC_SUBST(BUILD_SHELL)
2865 AC_SUBST(BUILD_ACCESSLOG)
2866 AC_SUBST(BUILD_AUDITLOG)
2867 AC_SUBST(BUILD_CONSTRAINT)
2869 AC_SUBST(BUILD_DENYOP)
2870 AC_SUBST(BUILD_DYNGROUP)
2871 AC_SUBST(BUILD_DYNLIST)
2872 AC_SUBST(BUILD_LASTMOD)
2873 AC_SUBST(BUILD_PPOLICY)
2874 AC_SUBST(BUILD_PROXYCACHE)
2875 AC_SUBST(BUILD_REFINT)
2876 AC_SUBST(BUILD_RETCODE)
2878 AC_SUBST(BUILD_SEQMOD)
2879 AC_SUBST(BUILD_SYNCPROV)
2880 AC_SUBST(BUILD_TRANSLUCENT)
2881 AC_SUBST(BUILD_UNIQUE)
2882 AC_SUBST(BUILD_VALSORT)
2883 AC_SUBST(BUILD_SLURPD)
2886 AC_SUBST(SLAPD_LIBS)
2887 AC_SUBST(SLURPD_LIBS)
2889 AC_SUBST(LTHREAD_LIBS)
2890 AC_SUBST(LUTIL_LIBS)
2893 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
2894 AC_SUBST(SLAPD_MODULES_LDFLAGS)
2896 AC_SUBST(SLAPD_NO_STATIC)
2897 AC_SUBST(SLAPD_STATIC_BACKENDS)
2898 AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
2899 AC_SUBST(SLAPD_STATIC_OVERLAYS)
2900 AC_SUBST(SLAPD_DYNAMIC_OVERLAYS)
2902 AC_SUBST(PERL_CPPFLAGS)
2903 AC_SUBST(SLAPD_PERL_LDFLAGS)
2904 AC_SUBST(MOD_PERL_LDFLAGS)
2910 AC_SUBST(MODULES_LIBS)
2911 AC_SUBST(SLAPI_LIBS)
2913 AC_SUBST(LIBSLAPITOOLS)
2917 AC_SUBST(SLAPD_SLP_LIBS)
2918 AC_SUBST(SLAPD_GMP_LIBS)
2920 AC_SUBST(SLAPD_SQL_LDFLAGS)
2921 AC_SUBST(SLAPD_SQL_LIBS)
2922 AC_SUBST(SLAPD_SQL_INCLUDES)
2924 dnl ----------------------------------------------------------------
2925 dnl final help output
2926 AC_ARG_WITH(xxinstall,[
2927 See INSTALL file for further details.])
2929 dnl ----------------------------------------------------------------
2933 AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.mk]
2934 [doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk]
2935 [doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk]
2936 [doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk]
2937 [doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk]
2938 [doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk]
2939 [doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk]
2940 [clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk]
2941 [clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk]
2942 [include/Makefile:build/top.mk:include/Makefile.in]
2943 [libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk]
2944 [libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk]
2945 [libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk]
2946 [libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk]
2947 [libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk]
2948 [libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk]
2949 [libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk]
2950 [servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk]
2951 [servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk]
2952 [servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk]
2953 [servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk]
2954 [servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk]
2955 [servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk]
2956 [servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk]
2957 [servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk]
2958 [servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk]
2959 [servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk]
2960 [servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk]
2961 [servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk]
2962 [servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk]
2963 [servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk]
2964 [servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk]
2965 [servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk]
2966 [servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk]
2967 [servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk]
2968 [servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk]
2969 [tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk]
2971 [tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk])
2973 AC_CONFIG_COMMANDS([default],[[
2976 BACKENDSC="servers/slapd/backends.c"
2977 echo "Making $BACKENDSC"
2979 cat > $BACKENDSC << ENDX
2980 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
2982 * Copyright 1998-2007 The OpenLDAP Foundation.
2983 * All rights reserved.
2985 * Redistribution and use in source and binary forms, with or without
2986 * modification, are permitted only as authorized by the OpenLDAP
2989 * A copy of this license is available in the file LICENSE in the
2990 * top-level directory of the distribution or, alternatively, at
2991 * <http://www.OpenLDAP.org/license.html>.
2993 /* This file is automatically generated by configure; please do not edit. */
2995 #include "portable.h"
2999 if test "${STATIC_BACKENDS}"; then
3000 for b in config ${STATIC_BACKENDS}; do
3001 bb=`echo "${b}" | sed -e 's/back-//'`
3002 cat >> $BACKENDSC << ENDX
3003 extern BI_init ${bb}_back_initialize;
3007 cat >> $BACKENDSC << ENDX
3009 BackendInfo slap_binfo[] = {
3012 for b in config ${STATIC_BACKENDS}; do
3013 bb=`echo "${b}" | sed -e 's/back-//'`
3014 echo " Add ${bb} ..."
3015 cat >> $BACKENDSC << ENDX
3016 { "${bb}", ${bb}_back_initialize },
3020 cat >> $BACKENDSC << ENDX
3024 /* end of generated file */
3027 OVERLAYSC="servers/slapd/overlays/statover.c"
3028 echo "Making $OVERLAYSC"
3030 cat > $OVERLAYSC << ENDX
3031 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3033 * Copyright 1998-2007 The OpenLDAP Foundation.
3034 * All rights reserved.
3036 * Redistribution and use in source and binary forms, with or without
3037 * modification, are permitted only as authorized by the OpenLDAP
3040 * A copy of this license is available in the file LICENSE in the
3041 * top-level directory of the distribution or, alternatively, at
3042 * <http://www.OpenLDAP.org/license.html>.
3044 /* This file is automatically generated by configure; please do not edit. */
3046 #include "portable.h"
3050 if test "${STATIC_OVERLAYS}"; then
3051 for o in ${STATIC_OVERLAYS}; do
3052 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3053 cat >> $OVERLAYSC << ENDX
3054 extern OV_init ${oo}_initialize;
3059 cat >> $OVERLAYSC << ENDX
3061 OverlayInit slap_oinfo[] = {
3064 if test "${STATIC_OVERLAYS}"; then
3065 for o in ${STATIC_OVERLAYS}; do
3066 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3067 echo " Add ${oo} ..."
3068 cat >> $OVERLAYSC << ENDX
3069 { "${oo}", ${oo}_initialize },
3074 cat >> $OVERLAYSC << ENDX
3078 /* end of generated file */
3081 echo Please run \"make depend\" to build dependencies
3083 STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"
3084 STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS"