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
147 #ifndef LDAP_NEEDS_PROTOTYPES
148 /* force LDAP_P to always include prototypes */
149 #define LDAP_NEEDS_PROTOTYPES 1
153 #if (LDAP_VENDOR_VERSION == 000000) && !defined(LDAP_DEVEL)
156 #if defined(LDAP_DEVEL) && !defined(LDAP_TEST)
166 /* ASCII/EBCDIC converting replacements for stdio funcs
167 * vsnprintf and snprintf are used too, but they are already
168 * checked by the configure script
170 #define fputs ber_pvt_fputs
171 #define fgets ber_pvt_fgets
172 #define printf ber_pvt_printf
173 #define fprintf ber_pvt_fprintf
174 #define vfprintf ber_pvt_vfprintf
175 #define vsprintf ber_pvt_vsprintf
178 #include "ac/fdset.h"
180 #include "ldap_cdefs.h"
181 #include "ldap_features.h"
183 #include "ac/assert.h"
184 #include "ac/localize.h"
186 #endif /* _LDAP_PORTABLE_H */
187 /* end of portable.h.post */
190 AC_CONFIG_HEADERS([include/portable.h:include/portable.hin])
191 AC_CONFIG_HEADERS([include/ldap_features.h:include/ldap_features.hin])
192 AC_CONFIG_HEADERS([include/lber_types.h:include/lber_types.hin])
194 dnl ================================================================
196 AC_MSG_CHECKING(configure arguments)
197 AC_PREFIX_DEFAULT(/usr/local)
200 AC_SUBST(top_builddir)dnl
202 dnl ----------------------------------------------------------------
204 ldap_subdir="/openldap"
207 [ --with-subdir=DIR change default subdirectory used for installs],
214 ldap_subdir="$withval"
217 ldap_subdir="/$withval"
222 AC_SUBST(ldap_subdir)dnl
224 dnl ----------------------------------------------------------------
225 dnl General "enable" options
226 dnl set default to traditional to enable the original debug style
227 OL_ARG_ENABLE(debug,[ --enable-debug enable debugging], yes, [no yes traditional])dnl
228 OL_ARG_ENABLE(dynamic,[ --enable-dynamic enable linking built binaries with dynamic libs], no)dnl
229 OL_ARG_ENABLE(syslog,[ --enable-syslog enable syslog support], auto)dnl
230 OL_ARG_ENABLE(proctitle,[ --enable-proctitle enable proctitle support], yes)dnl
231 dnl OL_ARG_ENABLE(referrals,[ --enable-referrals enable LDAPv2+ Referrals (experimental)], no)dnl
232 ol_enable_referrals=${ol_enable_referrals-no}
233 OL_ARG_ENABLE(ipv6,[ --enable-ipv6 enable IPv6 support], auto)dnl
234 OL_ARG_ENABLE(local,[ --enable-local enable AF_LOCAL (AF_UNIX) socket support], auto)dnl
236 dnl ----------------------------------------------------------------
237 dnl General "with" options
238 OL_ARG_WITH(cyrus_sasl,[ --with-cyrus-sasl with Cyrus SASL support],
239 auto, [auto yes no] )
240 OL_ARG_WITH(fetch,[ --with-fetch with fetch(3) URL support],
241 auto, [auto yes no] )
242 OL_ARG_WITH(threads,[ --with-threads with threads],
243 auto, [auto nt posix mach pth lwp yes no manual] )
244 OL_ARG_WITH(tls,[ --with-tls with TLS/SSL support],
245 auto, [auto openssl yes no] )
246 OL_ARG_WITH(yielding_select,
247 [ --with-yielding-select with implicitly yielding select],
248 auto, [auto yes no manual] )
250 [ --with-mp with multiple precision statistics auto|longlong|long|bignum|gmp],
251 auto, [auto longlong long bignum gmp yes no])
253 [ --with-odbc with specific ODBC support iodbc|unixodbc|auto],
254 auto, [auto iodbc unixodbc] )
256 dnl ----------------------------------------------------------------
258 dnl ----------------------------------------------------------------
260 dnl ----------------------------------------------------------------
262 AC_ARG_ENABLE(xxslapdoptions,[
263 SLAPD (Standalone LDAP Daemon) Options:])
264 OL_ARG_ENABLE(slapd,[ --enable-slapd enable building slapd], yes)dnl
265 OL_ARG_ENABLE(dynacl,[ --enable-dynacl enable run-time loadable ACL support (experimental)], no)dnl
266 OL_ARG_ENABLE(aci,[ --enable-aci enable per-object ACIs (experimental)], no, [no yes mod])dnl
267 OL_ARG_ENABLE(cleartext,[ --enable-cleartext enable cleartext passwords], yes)dnl
268 OL_ARG_ENABLE(crypt,[ --enable-crypt enable crypt(3) passwords], no)dnl
269 OL_ARG_ENABLE(lmpasswd,[ --enable-lmpasswd enable LAN Manager passwords], no)dnl
270 OL_ARG_ENABLE(spasswd,[ --enable-spasswd enable (Cyrus) SASL password verification], no)dnl
271 OL_ARG_ENABLE(modules,[ --enable-modules enable dynamic module support], no)dnl
272 OL_ARG_ENABLE(rewrite,[ --enable-rewrite enable DN rewriting in back-ldap and rwm overlay], auto)dnl
273 OL_ARG_ENABLE(rlookups,[ --enable-rlookups enable reverse lookups of client hostnames], no)dnl
274 OL_ARG_ENABLE(slapi,[ --enable-slapi enable SLAPI support (experimental)], no)dnl
275 OL_ARG_ENABLE(slp,[ --enable-slp enable SLPv2 support], no)dnl
276 OL_ARG_ENABLE(wrappers,[ --enable-wrappers enable tcp wrapper support], no)dnl
278 dnl ----------------------------------------------------------------
279 dnl SLAPD Backend Options
293 AC_ARG_ENABLE(xxslapbackends,[
294 SLAPD Backend Options:])
296 OL_ARG_ENABLE(backends,[ --enable-backends enable all available backends],
298 OL_ARG_ENABLE(bdb,[ --enable-bdb enable Berkeley DB backend],
299 yes, [no yes mod], ol_enable_backends)dnl
300 OL_ARG_ENABLE(dnssrv,[ --enable-dnssrv enable dnssrv backend],
301 no, [no yes mod], ol_enable_backends)dnl
302 OL_ARG_ENABLE(hdb,[ --enable-hdb enable Hierarchical DB backend],
303 yes, [no yes mod], ol_enable_backends)dnl
304 OL_ARG_ENABLE(ldap,[ --enable-ldap enable ldap backend],
305 no, [no yes mod], ol_enable_backends)dnl
306 OL_ARG_ENABLE(meta,[ --enable-meta enable metadirectory backend],
307 no, [no yes mod], ol_enable_backends)dnl
308 OL_ARG_ENABLE(monitor,[ --enable-monitor enable monitor backend],
309 yes, [no yes mod], ol_enable_backends)dnl
310 OL_ARG_ENABLE(null,[ --enable-null enable null backend],
311 no, [no yes mod], ol_enable_backends)dnl
312 OL_ARG_ENABLE(passwd,[ --enable-passwd enable passwd backend],
313 no, [no yes mod], ol_enable_backends)dnl
314 OL_ARG_ENABLE(perl,[ --enable-perl enable perl backend],
315 no, [no yes mod], ol_enable_backends)dnl
316 OL_ARG_ENABLE(relay,[ --enable-relay enable relay backend],
317 yes, [no yes mod], ol_enable_backends)dnl
318 OL_ARG_ENABLE(shell,[ --enable-shell enable shell backend],
319 no, [no yes mod], ol_enable_backends)dnl
320 OL_ARG_ENABLE(sql,[ --enable-sql enable sql backend],
321 no, [no yes mod], ol_enable_backends)dnl
323 dnl ----------------------------------------------------------------
324 dnl SLAPD Overlay Options
325 Overlays="accesslog \
342 AC_ARG_ENABLE(xxslapoverlays,[
343 SLAPD Overlay Options:])
345 OL_ARG_ENABLE(overlays,[ --enable-overlays enable all available overlays],
347 OL_ARG_ENABLE(accesslog,[ --enable-accesslog In-Directory Access Logging overlay],
348 no, [no yes mod], ol_enable_overlays)
349 OL_ARG_ENABLE(auditlog,[ --enable-auditlog Audit Logging overlay],
350 no, [no yes mod], ol_enable_overlays)
351 OL_ARG_ENABLE(constraint,[ --enable-constraint Attribute Constraint overlay],
352 no, [no yes mod], ol_enable_overlays)
353 OL_ARG_ENABLE(dds,[ --enable-dds Dynamic Directory Services overlay],
354 no, [no yes mod], ol_enable_overlays)
355 OL_ARG_ENABLE(dyngroup,[ --enable-dyngroup Dynamic Group overlay],
356 no, [no yes mod], ol_enable_overlays)
357 OL_ARG_ENABLE(dynlist,[ --enable-dynlist Dynamic List overlay],
358 no, [no yes mod], ol_enable_overlays)
359 OL_ARG_ENABLE(ppolicy,[ --enable-ppolicy Password Policy overlay],
360 no, [no yes mod], ol_enable_overlays)
361 OL_ARG_ENABLE(proxycache,[ --enable-proxycache Proxy Cache overlay],
362 no, [no yes mod], ol_enable_overlays)
363 OL_ARG_ENABLE(refint,[ --enable-refint Referential Integrity overlay],
364 no, [no yes mod], ol_enable_overlays)
365 OL_ARG_ENABLE(retcode,[ --enable-retcode Return Code testing overlay],
366 no, [no yes mod], ol_enable_overlays)
367 OL_ARG_ENABLE(rwm,[ --enable-rwm Rewrite/Remap overlay],
368 no, [no yes mod], ol_enable_overlays)
369 OL_ARG_ENABLE(seqmod,[ --enable-seqmod Sequential Modify overlay],
370 yes, [no yes mod], ol_enable_overlays)
371 OL_ARG_ENABLE(syncprov,[ --enable-syncprov Syncrepl Provider overlay],
372 yes, [no yes mod], ol_enable_overlays)
373 OL_ARG_ENABLE(translucent,[ --enable-translucent Translucent Proxy overlay],
374 no, [no yes mod], ol_enable_overlays)
375 OL_ARG_ENABLE(unique,[ --enable-unique Attribute Uniqueness overlay],
376 no, [no yes mod], ol_enable_overlays)
377 OL_ARG_ENABLE(valsort,[ --enable-valsort Value Sorting overlay],
378 no, [no yes mod], ol_enable_overlays)
380 dnl ----------------------------------------------------------------
381 AC_ARG_ENABLE(xxliboptions,[
382 Library Generation & Linking Options])
386 dnl ----------------------------------------------------------------
389 if test $ol_enable_slapd = no ; then
390 dnl SLAPD was specificallly disabled
391 if test $ol_enable_slapi = yes ; then
392 AC_MSG_WARN([slapd disabled, ignoring --enable-slapi argument])
394 case "$ol_enable_backends" in yes | mod)
395 AC_MSG_WARN([slapd disabled, ignoring --enable-backends argument])
397 for i in $Backends; do
398 eval "ol_tmp=\$ol_enable_$i"
399 if test $ol_tmp != no ; then
400 AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
401 eval "ol_enable_$i=no"
404 if test $ol_enable_modules = yes ; then
405 AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
407 if test $ol_enable_wrappers = yes ; then
408 AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
410 if test $ol_enable_rlookups = yes ; then
411 AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
413 if test $ol_enable_dynacl = yes ; then
414 AC_MSG_WARN([slapd disabled, ignoring --enable-dynacl argument])
416 if test $ol_enable_aci != no ; then
417 AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
419 if test $ol_enable_rewrite = yes ; then
420 AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
423 case "$ol_enable_overlays" in yes | mod)
424 AC_MSG_WARN([slapd disabled, ignoring --enable-overlays argument])
426 for i in $Overlays; do
427 eval "ol_tmp=\$ol_enable_$i"
428 if test $ol_tmp != no ; then
429 AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
430 eval "ol_enable_$i=no"
434 # force settings to no
440 ol_enable_rlookups=no
443 ol_enable_wrappers=no
447 elif test $ol_enable_modules != yes &&
448 test $ol_enable_bdb = no &&
449 test $ol_enable_dnssrv = no &&
450 test $ol_enable_hdb = no &&
451 test $ol_enable_ldap = no &&
452 test $ol_enable_meta = no &&
453 test $ol_enable_monitor = no &&
454 test $ol_enable_null = no &&
455 test $ol_enable_passwd = no &&
456 test $ol_enable_perl = no &&
457 test $ol_enable_relay = no &&
458 test $ol_enable_shell = no &&
459 test $ol_enable_sql = no ; then
462 if test $ol_enable_slapd = yes ; then
463 AC_MSG_ERROR([slapd requires a backend])
465 AC_MSG_WARN([skipping slapd, no backend specified])
470 if test $ol_enable_meta/$ol_enable_ldap = yes/no ; then
471 AC_MSG_ERROR([--enable-meta requires --enable-ldap])
474 if test $ol_enable_lmpasswd = yes ; then
475 if test $ol_with_tls = no ; then
476 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
480 if test $ol_enable_spasswd = yes ; then
481 if test $ol_with_cyrus_sasl = no ; then
482 AC_MSG_ERROR([options require --with-cyrus-sasl])
484 ol_with_cyrus_sasl=yes
489 dnl ----------------------------------------------------------------
537 SLAPD_STATIC_OVERLAYS=
538 SLAPD_DYNAMIC_OVERLAYS=
540 SLAPD_MODULES_LDFLAGS=
541 SLAPD_MODULES_CPPFLAGS=
543 SLAPD_STATIC_BACKENDS=back-ldif
544 SLAPD_DYNAMIC_BACKENDS=
568 dnl ================================================================
569 dnl Checks for programs
571 AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
573 dnl ----------------------------------------------------------------
575 dnl Determine which C translator to use
578 dnl AIX Thread requires we use cc_r or xlc_r.
579 dnl But only do this IF AIX and CC is not set
580 dnl and threads are auto|yes|posix.
582 dnl If we find cc_r|xlc_r, force pthreads and assume
583 dnl pthread_create is in $LIBS (ie: don't bring in
584 dnl any additional thread libraries)
585 dnl If we do not find cc_r|xlc_r, disable threads
589 *-*-aix*) dnl all AIX is not a good idea.
590 if test -z "$CC" ; then
591 case "$ol_with_threads" in
592 auto | yes | posix) ol_aix_threads=yes ;;
598 if test $ol_aix_threads = yes ; then
599 if test -z "${CC}" ; then
600 AC_CHECK_PROGS(CC,cc_r xlc_r cc)
602 if test "$CC" = cc ; then
603 dnl no CC! don't allow --with-threads
604 if test $ol_with_threads != auto ; then
605 AC_MSG_ERROR([--with-threads requires cc_r (or other suitable compiler) on AIX])
607 AC_MSG_WARN([disabling threads, no cc_r on AIX])
613 case ${CC} in cc_r | xlc_r)
614 ol_with_threads=posix
615 ol_cv_pthread_create=yes
620 if test -z "${CC}"; then
621 AC_CHECK_PROGS(CC,cc gcc,missing)
623 if test "${CC}" = "missing" ; then
624 AC_MSG_ERROR([Unable to locate cc(1) or suitable replacement. Check PATH or set CC.])
628 if test -z "${AR}"; then
629 AC_CHECK_PROGS(AR,ar gar,missing)
631 if test "${AR}" = "missing" ; then
632 AC_MSG_ERROR([Unable to locate ar(1) or suitable replacement. Check PATH or set AR.])
640 dnl ----------------------------------------------------------------
643 if test $ol_enable_perl != no ; then
644 AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)
646 if test "no$PERLBIN" = "no" ; then
647 if test $ol_enable_perl = yes ; then
648 AC_MSG_ERROR([could not locate perl])
652 PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
653 PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e 's/ -lc / /' -e 's/ -lc$//'`"
655 if test x"$ol_enable_perl" = "xyes" ; then
656 SLAPD_PERL_LDFLAGS="$PERL_LDFLAGS"
658 MOD_PERL_LDFLAGS="$PERL_LDFLAGS"
660 dnl should check perl version
667 dnl ----------------------------------------------------------------
668 dnl Checks for Windows NT
670 *mingw32* ) ac_cv_mingw32=yes ;;
671 *cygwin* ) ac_cv_cygwin=yes ;;
674 dnl ----------------------------------------------------------------
675 dnl Checks for file extensions
678 AC_DEFINE_UNQUOTED(EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
680 dnl ----------------------------------------------------------------
681 dnl BeOS requires -lbe -lroot -lnet
682 AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])
684 dnl ----------------------------------------------------------------
685 dnl OpenLDAP requires STDC features
687 if test "X${ac_cv_prog_cc_stdc}" = "Xno" ; then
688 AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
691 dnl ----------------------------------------------------------------
692 dnl Check cc depend flags
694 if test "${ol_cv_mkdep}" = no ; then
695 # this will soon become an error
696 AC_MSG_WARN([do not know how to generate dependencies])
699 dnl ----------------------------------------------------------------
700 dnl Check for AIX security library
701 AC_CHECK_LIB(s, afopen, [
703 AC_DEFINE(HAVE_AIX_SECURITY,1,[define if you have AIX security lib])
706 dnl ----------------------------------------------------------------
707 dnl Check for IBM OS/390
711 AC_DEFINE(BOTH_STRINGS_H,1,[define to use both <string.h> and <strings.h>])
715 dnl ----------------------------------------------------------------
716 dnl Check for module support
718 WITH_MODULES_ENABLED=no
719 if test $ol_enable_modules != no ; then
720 AC_CHECK_HEADERS(ltdl.h)
722 if test $ac_cv_header_ltdl_h = no ; then
723 AC_MSG_ERROR([could not locate libtool ltdl.h])
726 AC_CHECK_LIB(ltdl, lt_dlinit, [
728 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
731 if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then
732 AC_MSG_ERROR([could not locate libtool -lltdl])
735 WITH_MODULES_ENABLED=yes
738 for i in $Backends; do
739 eval "ol_tmp=\$ol_enable_$i"
740 if test $ol_tmp = mod ; then
741 AC_MSG_WARN([building static $i backend])
742 eval "ol_enable_$i=yes"
745 for i in $Overlays; do
746 eval "ol_tmp=\$ol_enable_$i"
747 if test $ol_tmp = mod ; then
748 AC_MSG_WARN([building static $i overlay])
749 eval "ol_enable_$i=yes"
754 dnl ----------------------------------------------------------------
755 dnl Checks for header files.
758 if test $ol_cv_header_stdc != yes; then
759 AC_MSG_WARN([could not locate Standard C compliant headers])
816 dnl Only check Winsock on MinGW
817 if test "$ac_cv_mingw32" = yes ; then
818 AC_CHECK_HEADERS( winsock.h winsock2.h )
821 AC_CHECK_HEADERS( resolv.h, [], [],
822 [$ac_includes_default
823 #include <netinet/in.h>
826 AC_CHECK_HEADERS( netinet/tcp.h, [], [],
827 [$ac_includes_default
828 #include <netinet/in.h>
831 AC_CHECK_HEADERS( sys/ucred.h, [], [],
832 [$ac_includes_default
833 #ifdef HAVE_SYS_PARAM_H
834 #include <sys/param.h>
838 dnl ----------------------------------------------------------------
839 dnl Checks for libraries
841 AC_CHECK_FUNCS( sigaction sigset )
843 dnl HP-UX requires -lV3
844 dnl this is not needed on newer versions of HP-UX
845 if test $ac_cv_func_sigaction = no && test $ac_cv_func_sigaction = no ; then
846 AC_CHECK_LIB(V3, sigset)
849 dnl The following is INTENTIONALLY scripted out because shell does not
850 dnl support variable names with the '@' character, which is what
851 dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
852 if test "$ac_cv_header_winsock_h" = yes; then
853 AC_CACHE_CHECK([for winsock], [ol_cv_winsock],
855 for curlib in ws2_32 wsock32; do
856 LIBS="$LIBS -l$curlib"
857 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <winsock.h>
860 select(0,NULL,NULL,NULL,NULL);
863 ]])],[ol_cv_winsock=yes],[ol_cv_winsock=no])
865 if test $ol_cv_winsock = yes; then
866 AC_DEFINE(HAVE_WINSOCK, 1, [define if you have winsock])
867 ac_cv_func_socket=yes
868 ac_cv_func_select=yes
869 ac_cv_func_closesocket=yes
870 ac_cv_func_gethostname=yes
871 if test $curlib = ws2_32; then
872 ol_cv_winsock=winsock2
873 AC_DEFINE(HAVE_WINSOCK2, 1,
874 [define if you have winsock2])
883 dnl Likely combinations:
884 dnl -lsocket [ -lnsl_s | -lnsl ]
887 AC_CHECK_FUNC(socket, :, [
888 dnl hopefully we won't include too many libraries
889 AC_CHECK_LIB(socket, main)
890 AC_CHECK_LIB(net, main)
891 AC_CHECK_LIB(nsl_s, main)
892 AC_CHECK_LIB(nsl, main)
893 AC_CHECK_LIB(inet, socket)
894 AC_CHECK_LIB(gen, main)
898 AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
900 if test "${ac_cv_header_winsock_h}" != yes; then
902 dnl (if this detection becomes permenent, it and the select() detection
903 dnl should be done before the yielding select test)
904 AC_FUNC_SELECT_ARGTYPES
907 dnl check to see if system call automatically restart
908 dnl AC_SYS_RESTARTABLE_SYSCALLS
910 dnl ----------------------------------------------------------------
911 AC_CHECK_FUNCS( poll )
912 if test $ac_cv_func_poll = yes; then
913 AC_CHECK_HEADERS( poll.h sys/poll.h )
916 dnl ----------------------------------------------------------------
917 AC_CHECK_HEADERS( sys/epoll.h )
918 if test "${ac_cv_header_sys_epoll_h}" = yes; then
919 AC_MSG_CHECKING(for epoll system call)
920 AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv)
922 int epfd = epoll_create(256);
923 exit (epfd == -1 ? 1 : 0);
924 }]])],[AC_MSG_RESULT(yes)
925 AC_DEFINE(HAVE_EPOLL,1, [define if your system supports epoll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
928 dnl ----------------------------------------------------------------
929 AC_CHECK_HEADERS( sys/devpoll.h )
930 dnl "/dev/poll" needs <sys/poll.h> as well...
931 if test "${ac_cv_header_sys_devpoll_h}" = yes \
932 -a "${ac_cv_header_poll_h}" = yes ; \
934 AC_MSG_CHECKING(for /dev/poll)
935 AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv)
937 int devpollfd = open("/dev/poll", /* O_RDWR */ 2);
938 exit (devpollfd == -1 ? 1 : 0);
939 }]])],[AC_MSG_RESULT(yes)
940 AC_DEFINE(HAVE_DEVPOLL,1, [define if your system supports /dev/poll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
943 dnl ----------------------------------------------------------------
947 dnl ----------------------------------------------------------------
948 dnl require POSIX regex
949 AC_CHECK_HEADERS( regex.h, [], [],
950 [$ac_includes_default
951 #ifdef HAVE_SYS_TYPES_H
952 #include <sys/types.h>
956 if test "$ac_cv_header_regex_h" != yes ; then
957 AC_MSG_ERROR([POSIX regex.h required.])
959 AC_SEARCH_LIBS(regfree, [regex gnuregex],
960 :, AC_MSG_ERROR([POSIX regex required.]))
963 if test "$ol_cv_c_posix_regex" = no ; then
964 AC_MSG_ERROR([broken POSIX regex!])
967 dnl ----------------------------------------------------------------
971 AC_CHECK_HEADERS(sys/uuid.h)
972 if test $ac_cv_header_sys_uuid_h = yes ; then
974 AC_SEARCH_LIBS([uuid_to_str], [uuid], [have_uuid=yes], :)
977 if test have_uuid = yes ; then
978 AC_DEFINE(HAVE_UUID_TO_STR,1,
979 [define if you have uuid_to_str()])
981 test "$ac_cv_search_uuid_to_str" = "none required" || \
982 SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_to_str"
986 dnl Look for uuid_generate
987 if test $have_uuid = no ; then
988 AC_CHECK_HEADERS(uuid/uuid.h)
989 if test $ac_cv_header_uuid_uuid_h = yes ; then
991 AC_SEARCH_LIBS([uuid_generate], [uuid], [have_uuid=yes], :)
994 if test have_uuid = yes ; then
995 AC_DEFINE(HAVE_UUID_GENERATE,1,
996 [define if you have uuid_generate()])
998 test "$ac_cv_search_uuid_generate" = "none required" || \
999 SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_generate"
1004 dnl For windows, check for the need of RPCRT for UUID function support
1005 if test $have_uuid = no ; then
1006 AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
1008 LIBS="$LIBS -lrpcrt4"
1009 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1010 int __stdcall UuidCreate(void *);
1011 int __stdcall UuidToStringA(void *,void **);
1015 ]])],[need_rpcrt=yes],[need_rpcrt=no])
1016 if test $need_rpcrt = yes; then
1017 SLAPD_LIBS="$SLAPD_LIBS -lrpcrt4"
1020 AC_MSG_RESULT($need_rpcrt)
1023 dnl ----------------------------------------------------------------
1024 dnl Check for resolver routines
1028 if test "$ol_cv_lib_resolver" != no ; then
1029 AC_DEFINE(HAVE_RES_QUERY,1,
1030 [define if you have res_query()])
1032 if test "$ol_enable_dnssrv" != no ; then
1036 if test "$ol_cv_lib_resolver" != yes ; then
1037 LIBS="$ol_cv_lib_resolver $LIBS"
1041 if test "$ol_enable_dnssrv" = yes || test "$ol_enable_dnssrv" = mod ; then
1042 if test "$ol_link_dnssrv" = no ; then
1043 AC_MSG_ERROR([DNSSRV requires res_query()])
1049 AC_CHECK_FUNCS( hstrerror )
1051 dnl ----------------------------------------------------------------
1052 dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
1053 dnl PF_LOCAL may use getaddrinfo in available
1054 AC_CHECK_FUNCS( getaddrinfo getnameinfo gai_strerror inet_ntop )
1057 if test $ac_cv_func_getaddrinfo = no || test $ac_cv_func_inet_ntop = no ; then
1058 if test $ol_enable_ipv6 = yes ; then
1059 AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
1061 elif test $ol_enable_ipv6 != no ; then
1062 AC_CACHE_CHECK([INET6_ADDRSTRLEN],[ol_cv_inet6_addrstrlen],[
1063 AC_EGREP_CPP(__has_inet6_addrstrlen__,[
1064 # include <netinet/in.h>
1065 # ifdef INET6_ADDRSTRLEN
1066 __has_inet6_addrstrlen__;
1068 ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])])
1071 AC_CACHE_CHECK([struct sockaddr_storage],ol_cv_struct_sockaddr_storage,[
1072 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1073 #include <sys/types.h>
1074 #include <sys/socket.h>
1076 struct sockaddr_storage ss;
1077 ]])],[ol_cv_struct_sockaddr_storage=yes],[ol_cv_struct_sockaddr_storage=no])])
1079 if test $ol_cv_inet6_addrstrlen = yes &&
1080 test $ol_cv_struct_sockaddr_storage = yes ; then
1082 elif test $ol_enable_ipv6 = yes &&
1083 test $ol_cv_inet6_addrstrlen = no ; then
1084 AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
1085 elif test $ol_enable_ipv6 = yes &&
1086 test $ol_cv_struct_sockaddr_storage = no ; then
1087 AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage])
1091 if test $ol_enable_local != no ; then
1092 AC_CHECK_HEADERS( sys/un.h )
1094 if test $ol_enable_local = auto ; then
1095 ol_enable_local=$ac_cv_header_sys_un_h
1096 elif test $ac_cv_header_sys_un_h = no ; then
1097 AC_MSG_ERROR([AF_LOCAL domain support requires sys/un.h])
1101 dnl ----------------------------------------------------------------
1104 if test $ol_with_tls = yes ; then
1109 if test $ol_with_tls = openssl || test $ol_with_tls = auto ; then
1110 AC_CHECK_HEADERS(openssl/ssl.h)
1112 if test $ac_cv_header_openssl_ssl_h = yes ; then
1113 AC_CHECK_LIB(ssl, SSL_library_init,
1115 need_rsaref=no], [have_openssl=no],
1118 if test $have_openssl = no ; then
1119 AC_CHECK_LIB(ssl, ssl3_accept,
1121 need_rsaref=yes], [have_openssl=no],
1122 [-lcrypto -lRSAglue -lrsaref])
1125 if test $have_openssl = yes ; then
1129 AC_DEFINE(HAVE_OPENSSL, 1,
1130 [define if you have OpenSSL])
1132 if test $need_rsaref = yes; then
1133 AC_DEFINE(HAVE_RSAREF, 1,
1134 [define if OpenSSL needs RSAref])
1136 TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
1138 TLS_LIBS="-lssl -lcrypto"
1142 if test $ol_cv_ssl_crl_compat = yes ; then
1143 AC_DEFINE(HAVE_OPENSSL_CRL, 1,
1144 [define if you have OpenSSL with CRL checking capability])
1151 if test $ol_link_tls = yes ; then
1152 AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
1154 elif test $ol_with_tls = auto ; then
1155 AC_MSG_WARN([Could not locate TLS/SSL package])
1156 AC_MSG_WARN([TLS data protection not supported!])
1157 elif test $ol_with_tls != no ; then
1158 AC_MSG_ERROR([Could not locate TLS/SSL package])
1160 AC_MSG_WARN([TLS data protection not supported!])
1163 dnl ----------------------------------------------------------------
1164 dnl LAN Manger password checking requires DES from OpenSSL
1165 if test $ol_enable_lmpasswd != no; then
1166 if test $ol_link_tls != yes ; then
1167 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
1170 AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
1173 dnl ----------------------------------------------------------------
1177 case $ol_with_threads in auto | yes | nt)
1181 if test "$ol_cv_nt_threads" = yes ; then
1183 ol_with_threads=found
1184 ol_with_yielding_select=yes
1186 AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager])
1187 AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log])
1190 if test $ol_with_threads = nt ; then
1191 AC_MSG_ERROR([could not locate NT Threads])
1196 case $ol_with_threads in auto | yes | posix)
1198 AC_CHECK_HEADERS(pthread.h)
1200 if test $ac_cv_header_pthread_h = yes ; then
1201 OL_POSIX_THREAD_VERSION
1203 if test $ol_cv_pthread_version != 0 ; then
1204 AC_DEFINE_UNQUOTED(HAVE_PTHREADS,$ol_cv_pthread_version,
1205 [define to pthreads API spec revision])
1207 AC_MSG_ERROR([unknown pthread version])
1210 # consider threads found
1211 ol_with_threads=found
1213 OL_HEADER_LINUX_THREADS
1214 OL_HEADER_GNU_PTH_PTHREAD_H
1216 if test $ol_cv_header_gnu_pth_pthread_h = no ; then
1217 AC_CHECK_HEADERS(sched.h)
1220 dnl Now the hard part, how to link?
1222 dnl currently supported checks:
1224 dnl Check for no flags
1225 dnl pthread_create() in $LIBS
1227 dnl Check special pthread (final) flags
1228 dnl [skipped] pthread_create() with -mt (Solaris) [disabled]
1229 dnl pthread_create() with -kthread (FreeBSD)
1230 dnl pthread_create() with -pthread (FreeBSD/Digital Unix)
1231 dnl pthread_create() with -pthreads (?)
1232 dnl pthread_create() with -mthreads (AIX)
1233 dnl pthread_create() with -thread (?)
1235 dnl Check pthread (final) libraries
1236 dnl pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
1237 dnl pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
1238 dnl [skipped] pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
1239 dnl pthread_join() -Wl,-woff,85 -lpthread (IRIX)
1240 dnl pthread_create() in -lpthread (many)
1241 dnl pthread_create() in -lc_r (FreeBSD)
1243 dnl Check pthread (draft4) flags (depreciated)
1244 dnl pthread_create() with -threads (OSF/1)
1246 dnl Check pthread (draft4) libraries (depreciated)
1247 dnl pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
1248 dnl pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
1249 dnl pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
1250 dnl pthread_create() in -lpthreads (many)
1253 dnl pthread_create in $LIBS
1254 AC_CACHE_CHECK([for pthread_create in default libraries],
1255 ol_cv_pthread_create,[
1256 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1257 [ol_cv_pthread_create=yes],
1258 [ol_cv_pthread_create=no],
1259 [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION,
1260 [ol_cv_pthread_create=yes],
1261 [ol_cv_pthread_create=no])])])
1263 if test $ol_cv_pthread_create != no ; then
1264 ol_link_threads=posix
1268 dnl OL_PTHREAD_TRY([-mt], [ol_cv_pthread_mt])
1269 OL_PTHREAD_TRY([-kthread], [ol_cv_pthread_kthread])
1270 OL_PTHREAD_TRY([-pthread], [ol_cv_pthread_pthread])
1271 OL_PTHREAD_TRY([-pthreads], [ol_cv_pthread_pthreads])
1272 OL_PTHREAD_TRY([-mthreads], [ol_cv_pthread_mthreads])
1273 OL_PTHREAD_TRY([-thread], [ol_cv_pthread_thread])
1275 OL_PTHREAD_TRY([-lpthread -lmach -lexc -lc_r],
1276 [ol_cv_pthread_lpthread_lmach_lexc_lc_r])
1277 OL_PTHREAD_TRY([-lpthread -lmach -lexc],
1278 [ol_cv_pthread_lpthread_lmach_lexc])
1279 dnl OL_PTHREAD_TRY([-lpthread -lexc],
1280 dnl [ol_cv_pthread_lpthread_lexc])
1282 OL_PTHREAD_TRY([-lpthread -Wl,-woff,85],
1283 [ol_cv_pthread_lib_lpthread_woff])
1285 OL_PTHREAD_TRY([-lpthread], [ol_cv_pthread_lpthread])
1286 OL_PTHREAD_TRY([-lc_r], [ol_cv_pthread_lc_r])
1288 OL_PTHREAD_TRY([-threads], [ol_cv_pthread_threads])
1290 OL_PTHREAD_TRY([-lpthreads -lmach -lexc -lc_r],
1291 [ol_cv_pthread_lpthreads_lmach_lexc_lc_r])
1292 OL_PTHREAD_TRY([-lpthreads -lmach -lexc],
1293 [ol_cv_pthread_lpthreads_lmach_lexc])
1294 OL_PTHREAD_TRY([-lpthreads -lexc],
1295 [ol_cv_pthread_lpthreads_lexc])
1297 OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
1299 if test $ol_link_threads != no ; then
1300 LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
1303 save_CPPFLAGS="$CPPFLAGS"
1305 LIBS="$LTHREAD_LIBS $LIBS"
1307 dnl All POSIX Thread (final) implementations should have
1308 dnl sched_yield instead of pthread yield.
1309 dnl check for both, and thr_yield for Solaris
1310 AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
1312 if test $ac_cv_func_sched_yield = no &&
1313 test $ac_cv_func_pthread_yield = no &&
1314 test $ac_cv_func_thr_yield = no ; then
1315 dnl Digital UNIX has sched_yield() in -lrt
1316 AC_CHECK_LIB(rt, sched_yield,
1317 [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
1318 AC_DEFINE(HAVE_SCHED_YIELD,1,
1319 [Define if you have the sched_yield function.])
1320 ac_cv_func_sched_yield=yes],
1321 [ac_cv_func_sched_yield=no])
1323 if test $ac_cv_func_sched_yield = no &&
1324 test $ac_cv_func_pthread_yield = no &&
1325 test "$ac_cv_func_thr_yield" = no ; then
1326 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
1329 dnl Check functions for compatibility
1330 AC_CHECK_FUNCS(pthread_kill)
1332 dnl Check for pthread_rwlock_destroy with <pthread.h>
1333 dnl as pthread_rwlock_t may not be defined.
1334 AC_CACHE_CHECK([for pthread_rwlock_destroy with <pthread.h>],
1335 [ol_cv_func_pthread_rwlock_destroy], [
1337 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1338 #include <pthread.h>
1339 pthread_rwlock_t rwlock;
1340 ]], [[pthread_rwlock_destroy(&rwlock);]])],[ol_cv_func_pthread_rwlock_destroy=yes],[ol_cv_func_pthread_rwlock_destroy=no])
1342 if test $ol_cv_func_pthread_rwlock_destroy = yes ; then
1343 AC_DEFINE(HAVE_PTHREAD_RWLOCK_DESTROY,1,
1344 [define if you have pthread_rwlock_destroy function])
1347 dnl Check for pthread_detach with <pthread.h> inclusion
1348 dnl as it's symbol may have been mangled.
1349 AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
1350 [ol_cv_func_pthread_detach], [
1352 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1353 #include <pthread.h>
1355 #define NULL (void*)0
1357 ]], [[pthread_detach(NULL);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
1360 if test $ol_cv_func_pthread_detach = no ; then
1361 AC_MSG_ERROR([could not locate pthread_detach()])
1364 AC_DEFINE(HAVE_PTHREAD_DETACH,1,
1365 [define if you have pthread_detach function])
1367 dnl Check for setconcurreny functions
1369 pthread_setconcurrency \
1370 pthread_getconcurrency \
1371 thr_setconcurrency \
1372 thr_getconcurrency \
1375 OL_SYS_LINUX_THREADS
1378 if test $ol_cv_linux_threads = error; then
1379 AC_MSG_ERROR([LinuxThreads header/library mismatch]);
1382 AC_CACHE_CHECK([if pthread_create() works],
1383 ol_cv_pthread_create_works,[
1384 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1385 [ol_cv_pthread_create_works=yes],
1386 [ol_cv_pthread_create_works=no],
1388 ol_cv_pthread_create_works=yes])])
1390 if test $ol_cv_pthread_create_works = no ; then
1391 AC_MSG_ERROR([pthread_create is not usable, check environment settings])
1394 ol_replace_broken_yield=no
1395 dnl case "$target" in
1397 dnl AC_CHECK_FUNCS(nanosleep)
1398 dnl ol_replace_broken_yield=yes
1402 if test $ol_replace_broken_yield = yes ; then
1403 AC_DEFINE([REPLACE_BROKEN_YIELD],1,
1404 [define if sched_yield yields the entire process])
1407 dnl Check if select causes an yield
1408 if test $ol_with_yielding_select = auto ; then
1409 AC_CACHE_CHECK([if select yields when using pthreads],
1410 ol_cv_pthread_select_yields,[
1411 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1412 #include <sys/types.h>
1413 #include <sys/time.h>
1415 #include <pthread.h>
1417 #define NULL (void*) 0
1420 static int fildes[2];
1422 static void *task(p)
1434 FD_SET(fildes[0], &rfds);
1436 /* we're not interested in any fds */
1437 i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
1444 exit(0); /* if we exit here, the select blocked the whole process */
1447 int main(argc, argv)
1453 /* create a pipe to select */
1454 if(pipe(&fildes[0])) {
1459 #ifdef HAVE_PTHREAD_SETCONCURRENCY
1460 (void) pthread_setconcurrency(2);
1462 #ifdef HAVE_THR_SETCONCURRENCY
1463 /* Set Solaris LWP concurrency to 2 */
1464 thr_setconcurrency(2);
1468 #if HAVE_PTHREADS < 6
1469 pthread_create(&t, pthread_attr_default, task, NULL);
1471 pthread_create(&t, NULL, task, NULL);
1474 /* make sure task runs first */
1475 #ifdef HAVE_THR_YIELD
1477 #elif defined( HAVE_SCHED_YIELD )
1479 #elif defined( HAVE_PTHREAD_YIELD )
1484 }]])],[ol_cv_pthread_select_yields=no],[ol_cv_pthread_select_yields=yes],[ol_cv_pthread_select_yields=cross])])
1486 if test $ol_cv_pthread_select_yields = cross ; then
1487 AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])
1490 if test $ol_cv_pthread_select_yields = yes ; then
1491 ol_with_yielding_select=yes
1496 CPPFLAGS="$save_CPPFLAGS"
1499 AC_MSG_ERROR([could not locate usable POSIX Threads])
1503 if test $ol_with_threads = posix ; then
1504 AC_MSG_ERROR([could not locate POSIX Threads])
1509 case $ol_with_threads in auto | yes | mach)
1511 dnl check for Mach CThreads
1512 AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
1513 if test $ac_cv_header_mach_cthreads_h = yes ; then
1514 ol_with_threads=found
1516 dnl check for cthreads support in current $LIBS
1517 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1519 if test $ol_link_threads = no ; then
1521 dnl this test needs work
1522 AC_CACHE_CHECK([for cthread_fork with -all_load],
1523 [ol_cv_cthread_all_load], [
1526 LIBS="-all_load $LIBS"
1527 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <mach/cthreads.h>]], [[
1528 cthread_fork((void *)0, (void *)0);
1529 ]])],[ol_cv_cthread_all_load=yes],[ol_cv_cthread_all_load=no])
1530 dnl restore the LIBS
1534 if test $ol_cv_cthread_all_load = yes ; then
1535 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
1536 ol_link_threads=mach
1537 ol_with_threads=found
1541 elif test $ac_cv_header_cthreads_h = yes ; then
1542 dnl Hurd variant of Mach Cthreads
1543 dnl uses <cthreads.h> and -lthreads
1545 ol_with_threads=found
1549 LIBS="$LIBS -lthreads"
1550 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1553 if test $ol_link_threads = yes ; then
1554 LTHREAD_LIBS="-lthreads"
1555 ol_link_threads=mach
1556 ol_with_threads=found
1558 AC_MSG_ERROR([could not link with Mach CThreads])
1561 elif test $ol_with_threads = mach ; then
1562 AC_MSG_ERROR([could not locate Mach CThreads])
1565 if test $ol_link_threads = mach ; then
1566 AC_DEFINE(HAVE_MACH_CTHREADS,1,
1567 [define if you have Mach Cthreads])
1568 elif test $ol_with_threads = found ; then
1569 AC_MSG_ERROR([could not link with Mach CThreads])
1574 case $ol_with_threads in auto | yes | pth)
1576 AC_CHECK_HEADERS(pth.h)
1578 if test $ac_cv_header_pth_h = yes ; then
1579 AC_CHECK_LIB(pth, pth_version, [have_pth=yes], [have_pth=no])
1581 if test $have_pth = yes ; then
1582 AC_DEFINE(HAVE_GNU_PTH,1,[if you have GNU Pth])
1583 LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
1585 ol_with_threads=found
1587 if test $ol_with_yielding_select = auto ; then
1588 ol_with_yielding_select=yes
1595 case $ol_with_threads in auto | yes | lwp)
1597 dnl check for SunOS5 LWP
1598 AC_CHECK_HEADERS(thread.h synch.h)
1599 if test $ac_cv_header_thread_h = yes &&
1600 test $ac_cv_header_synch_h = yes ; then
1601 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
1603 if test $have_thr = yes ; then
1604 AC_DEFINE(HAVE_THR,1,
1605 [if you have Solaris LWP (thr) package])
1606 LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
1609 if test $ol_with_yielding_select = auto ; then
1610 ol_with_yielding_select=yes
1613 dnl Check for setconcurreny functions
1615 thr_setconcurrency \
1616 thr_getconcurrency \
1621 dnl check for SunOS4 LWP
1622 AC_CHECK_HEADERS(lwp/lwp.h)
1623 if test $ac_cv_header_lwp_lwp_h = yes ; then
1624 AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
1626 if test $have_lwp = yes ; then
1627 AC_DEFINE(HAVE_LWP,1,
1628 [if you have SunOS LWP package])
1629 LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
1632 if test $ol_with_yielding_select = auto ; then
1633 ol_with_yielding_select=no
1640 if test $ol_with_yielding_select = yes ; then
1641 AC_DEFINE(HAVE_YIELDING_SELECT,1,
1642 [define if select implicitly yields])
1645 if test $ol_with_threads = manual ; then
1646 dnl User thinks he can manually configure threads.
1649 AC_MSG_WARN([thread defines and link options must be set manually])
1651 AC_CHECK_HEADERS(pthread.h sched.h)
1652 AC_CHECK_FUNCS(sched_yield pthread_yield)
1653 OL_HEADER_LINUX_THREADS
1655 AC_CHECK_HEADERS(mach/cthreads.h)
1656 AC_CHECK_HEADERS(lwp/lwp.h)
1657 AC_CHECK_HEADERS(thread.h synch.h)
1660 if test $ol_link_threads != no && test $ol_link_threads != nt ; then
1661 dnl needed to get reentrant/threadsafe versions
1663 AC_DEFINE(REENTRANT,1)
1664 AC_DEFINE(_REENTRANT,1)
1665 AC_DEFINE(THREAD_SAFE,1)
1666 AC_DEFINE(_THREAD_SAFE,1)
1667 AC_DEFINE(THREADSAFE,1)
1668 AC_DEFINE(_THREADSAFE,1)
1669 AC_DEFINE(_SGI_MP_SOURCE,1)
1671 dnl The errno declaration may dependent upon _REENTRANT.
1672 dnl If it does, we must link with thread support.
1673 AC_CACHE_CHECK([for thread specific errno],
1674 [ol_cv_errno_thread_specific], [
1675 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <errno.h>]], [[errno = 0;]])],[ol_cv_errno_thread_specific=yes],[ol_cv_errno_thread_specific=no])
1678 dnl The h_errno declaration may dependent upon _REENTRANT.
1679 dnl If it does, we must link with thread support.
1680 AC_CACHE_CHECK([for thread specific h_errno],
1681 [ol_cv_h_errno_thread_specific], [
1682 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])
1685 if test $ol_cv_errno_thread_specific != yes ||
1686 test $ol_cv_h_errno_thread_specific != yes ; then
1687 LIBS="$LTHREAD_LIBS $LIBS"
1691 dnl When in thread environment, use
1692 dnl #if defined( HAVE_REENTRANT_FUNCTIONS ) || defined( HAVE_FUNC_R )
1695 dnl # if defined( HAVE_THREADS )
1699 dnl # if defined( HAVE_THREADS )
1704 dnl HAVE_REENTRANT_FUNCTIONS is derived from:
1705 dnl _POSIX_REENTRANT_FUNCTIONS
1706 dnl _POSIX_THREAD_SAFE_FUNCTIONS
1707 dnl _POSIX_THREADSAFE_FUNCTIONS
1709 dnl and is currently defined in <ldap_pvt_thread.h>
1711 dnl HAVE_THREADS is defined by <ldap_pvt_thread.h> iff -UNO_THREADS
1713 dnl libldap/*.c should only include <ldap_pvt_thread.h> iff
1714 dnl LDAP_R_COMPILE is defined. ie:
1715 dnl #ifdef LDAP_R_COMPILE
1716 dnl # include <ldap_pvt_thread.h>
1719 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
1720 dnl specifically for compiling the threadsafe version of
1721 dnl the ldap library (-lldap_r).
1723 dnl dnl check for reentrant/threadsafe functions
1725 dnl dnl note: these should only be used when linking
1726 dnl dnl with $LTHREAD_LIBS
1728 dnl save_CPPFLAGS="$CPPFLAGS"
1729 dnl save_LIBS="$LIBS"
1730 dnl LIBS="$LTHREAD_LIBS $LIBS"
1731 dnl AC_CHECK_FUNCS( \
1733 dnl gethostbyaddr_r gethostbyname_r \
1734 dnl feof_unlocked unlocked_feof \
1735 dnl putc_unlocked unlocked_putc \
1736 dnl flockfile ftrylockfile \
1738 dnl CPPFLAGS="$save_CPPFLAGS"
1739 dnl LIBS="$save_LIBS"
1742 if test $ol_link_threads = no ; then
1743 if test $ol_with_threads = yes ; then
1744 AC_MSG_ERROR([no suitable thread support])
1747 if test $ol_with_threads = auto ; then
1748 AC_MSG_WARN([no suitable thread support, disabling threads])
1752 AC_DEFINE(NO_THREADS,1,
1753 [define if you have (or want) no threads])
1760 if test $ol_link_threads != no ; then
1761 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1,
1762 [define to 1 if library is thread safe])
1765 dnl ----------------------------------------------------------------
1766 dnl Tests for reentrant functions necessary to build -lldap_r
1769 gethostbyname_r gethostbyaddr_r \
1772 if test "$ac_cv_func_ctime_r" = no ; then
1773 ol_cv_func_ctime_r_nargs=0
1775 OL_FUNC_CTIME_R_NARGS
1776 dnl OL_FUNC_CTIME_R_TYPE
1779 if test "$ac_cv_func_gethostbyname_r" = yes ; then
1780 OL_FUNC_GETHOSTBYNAME_R_NARGS
1782 ol_cv_func_gethostbyname_r_nargs=0
1785 if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
1786 OL_FUNC_GETHOSTBYADDR_R_NARGS
1788 ol_cv_func_gethostbyaddr_r_nargs=0
1791 dnl ----------------------------------------------------------------
1794 if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
1797 if test $ol_cv_berkeley_db = no ; then
1798 AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
1801 AC_DEFINE(HAVE_BERKELEY_DB,1,
1802 [define this if Berkeley DB is available])
1804 dnl $ol_cv_lib_db should be yes or -ldb
1805 dnl (it could be no, but that would be an error
1806 if test $ol_cv_lib_db != yes ; then
1807 BDB_LIBS="$BDB_LIBS $ol_cv_lib_db"
1812 if test $ol_cv_bdb_compat != yes ; then
1813 AC_MSG_ERROR([BDB/HDB: BerkeleyDB version incompatible])
1816 SLAPD_LIBS="$SLAPD_LIBS \$(BDB_LIBS)"
1821 dnl ----------------------------------------------------------------
1823 if test $ol_enable_dynamic = yes && test $enable_shared = yes ; then
1824 BUILD_LIBS_DYNAMIC=shared
1825 AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
1828 BUILD_LIBS_DYNAMIC=static
1831 AC_SUBST(LTSTATIC)dnl
1833 dnl ----------------------------------------------------------------
1834 if test $ol_enable_wrappers != no ; then
1835 AC_CHECK_HEADERS(tcpd.h,[
1836 AC_MSG_CHECKING([for TCP wrappers library])
1839 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1841 int allow_severity = 0;
1842 int deny_severity = 0;
1844 struct request_info *req;
1847 ]])],[AC_MSG_RESULT([-lwrap])
1849 LIBS="$save_LIBS"],[
1854 int allow_severity = 0;
1855 int deny_severity = 0;
1857 struct request_info *req;
1860 ],[AC_MSG_RESULT([-lwrap -lnsl])
1862 LIBS="$save_LIBS -lnsl"],[
1865 LIBS=$save_LIBS])])],[have_wrappers=no])
1867 if test $have_wrappers = yes ; then
1868 AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
1870 elif test $ol_enable_wrappers = yes ; then
1871 AC_MSG_ERROR([could not find TCP wrappers, select apppropriate options or disable])
1873 AC_MSG_WARN([could not find TCP wrappers, support disabled])
1878 dnl ----------------------------------------------------------------
1879 if test $ol_enable_syslog != no ; then
1880 AC_CHECK_FUNC(openlog)
1881 if test $ac_cv_func_openlog = no && test $ol_enable_syslog = yes; then
1882 AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
1884 ol_enable_syslog=$ac_cv_func_openlog
1887 dnl ----------------------------------------------------------------
1890 if test $ol_enable_sql != no ; then
1891 AC_CHECK_HEADERS(sql.h sqlext.h,[],[
1892 AC_MSG_ERROR([could not locate SQL headers])
1896 LIBS="$LTHREAD_LIBS"
1898 if test $ol_with_odbc = auto ; then
1899 ol_with_odbc="iodbc unixodbc"
1902 for odbc in $ol_with_odbc ; do
1903 if test $ol_link_sql = no ; then
1906 AC_CHECK_LIB(iodbc, SQLDriverConnect, [have_iodbc=yes], [have_iodbc=no])
1907 if test $have_iodbc = yes ; then
1908 ol_link_sql="-liodbc"
1913 AC_CHECK_LIB(odbc, SQLDriverConnect, [have_odbc=yes], [have_odbc=no])
1914 if test $have_odbc = yes ; then
1915 ol_link_sql="-lodbc"
1920 AC_MSG_ERROR([unknown ODBC library])
1928 if test $ol_link_sql != no ; then
1929 SLAPD_SQL_LIBS="$ol_link_sql"
1931 elif test $ol_enable_sql != auto ; then
1932 AC_MSG_ERROR([could not locate suitable ODBC library])
1936 dnl ----------------------------------------------------------------
1937 dnl International Components for Unicode
1939 if test "$ol_icu" = no ; then
1940 AC_MSG_WARN([ICU not available])
1944 dnl ----------------------------------------------------------------
1946 dnl Check for Cyrus SASL
1951 if test $ol_with_cyrus_sasl != no ; then
1952 AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
1954 if test $ac_cv_header_sasl_sasl_h = yes ||
1955 test $ac_cv_header_sasl_h = yes; then
1956 AC_CHECK_LIB(sasl2, sasl_client_init,
1957 [ol_link_sasl="-lsasl2"],
1958 [AC_CHECK_LIB(sasl, sasl_client_init,
1959 [ol_link_sasl="-lsasl"])])
1962 if test $ol_link_sasl = no ; then
1963 if test $ol_with_cyrus_sasl != auto ; then
1964 AC_MSG_ERROR([Could not locate Cyrus SASL])
1966 AC_MSG_WARN([Could not locate Cyrus SASL])
1967 AC_MSG_WARN([SASL authentication not supported!])
1968 if test $ol_link_tls = no ; then
1969 AC_MSG_WARN([Strong authentication not supported!])
1974 if test $ol_cv_sasl_compat = no ; then
1976 AC_MSG_ERROR([Cyrus SASL library located but is incompatible])
1979 AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
1980 SASL_LIBS="$ol_link_sasl"
1981 if test $ol_enable_spasswd != no ; then
1985 ac_save_LIBS="$LIBS"
1986 LIBS="$LIBS $ol_link_sasl"
1987 AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1,
1988 [define if your SASL library has sasl_version()])])
1989 LIBS="$ac_save_LIBS"
1995 AC_MSG_WARN([SASL authentication not supported!])
1996 if test $ol_link_tls = no ; then
1997 AC_MSG_WARN([Strong authentication not supported!])
2001 dnl ----------------------------------------------------------------
2002 dnl Check for entropy sources
2003 if test $cross_compiling != yes && test "$ac_cv_mingw32" != yes ; then
2005 if test -r /dev/urandom ; then
2007 elif test -r /idev/urandom ; then
2008 dev="/idev/urandom";
2009 elif test -r /dev/srandom ; then
2011 elif test -r /dev/random ; then
2013 elif test -r /idev/random ; then
2017 if test $dev != no ; then
2018 AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
2022 dnl ----------------------------------------------------------------
2024 dnl Check for fetch URL support
2025 dnl should be extended to support other fetch URL APIs
2028 if test $ol_with_fetch != no ; then
2031 if test $ol_cv_lib_fetch != no ; then
2032 LUTIL_LIBS="$LUTIL_LIBS $ol_link_fetch"
2033 ol_link_fetch=freebsd
2035 elif test $ol_with_fetch != auto ; then
2036 AC_MSG_ERROR(no suitable API for --with-fetch=$ol_with_fetch)
2040 dnl ----------------------------------------------------------------
2041 dnl FreeBSD (and others) have crypt(3) in -lcrypt
2042 if test $ol_enable_crypt != no ; then
2044 LIBS="$TLS_LIBS $LIBS"
2046 AC_CHECK_FUNC(crypt, [have_crypt=yes], [
2048 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
2049 have_crypt=yes], [have_crypt=no])])
2053 if test $have_crypt = yes ; then
2054 AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
2056 AC_MSG_WARN([could not find crypt])
2057 if test $ol_enable_crypt = yes ; then
2058 AC_MSG_ERROR([could not find crypt, select appropriate options or disable])
2061 AC_MSG_WARN([disabling crypt support])
2066 dnl ----------------------------------------------------------------
2067 dnl FreeBSD (and others) have setproctitle(3) in -lutil
2068 if test $ol_enable_proctitle != no ; then
2069 AC_CHECK_FUNC(setproctitle, [have_setproctitle=yes], [
2070 AC_CHECK_LIB(util, setproctitle,
2071 [have_setproctitle=yes
2072 LUTIL_LIBS="$LUTIL_LIBS -lutil"],
2073 [have_setproctitle=no
2074 AC_LIBOBJ(setproctitle)
2075 LIBSRCS="$LIBSRCS setproctitle.c"])])
2077 if test $have_setproctitle = yes ; then
2078 AC_DEFINE(HAVE_SETPROCTITLE,1,
2079 [define if setproctitle(3) is available])
2083 dnl ----------------------------------------------------------------
2084 if test $ol_enable_slp != no ; then
2085 AC_CHECK_HEADERS( slp.h )
2087 if test $ac_cv_header_slp_h = yes ; then
2088 AC_CHECK_LIB(slp, SLPOpen, [have_slp=yes], [have_slp=no])
2089 if test $have_slp = yes ; then
2090 AC_DEFINE(HAVE_SLP, 1, [define if you have -lslp])
2091 SLAPD_SLP_LIBS=-lslp
2094 elif test $ol_enable_slp = yes ; then
2095 AC_MSG_ERROR([SLP not found])
2099 dnl ----------------------------------------------------------------
2100 dnl Checks for typedefs, structures, and compiler characteristics.
2102 AC_CHECK_TYPE(mode_t, int)
2103 AC_CHECK_TYPE(off_t, long)
2104 AC_CHECK_TYPE(pid_t, int)
2105 AC_CHECK_TYPE(ssize_t, [signed int])
2106 AC_CHECK_TYPE(caddr_t, [char *])
2107 AC_CHECK_TYPE(size_t, unsigned)
2109 AC_CHECK_TYPES([long long])
2110 AC_CHECK_TYPES([ptrdiff_t])
2112 AC_CHECK_TYPE([socklen_t],,
2113 [AC_DEFINE_UNQUOTED([socklen_t], [int],
2114 [Define to `int' if <sys/socket.h> does not define.])],
2115 [$ac_includes_default
2116 #ifdef HAVE_SYS_SOCKET_H
2117 #include <sys/socket.h>
2123 AC_CHECK_TYPE([sig_atomic_t],,
2124 [AC_DEFINE_UNQUOTED([sig_atomic_t], [int],
2125 [Define to `int' if <signal.h> does not define.])],
2126 [$ac_includes_default
2134 AC_CHECK_MEMBERS([struct stat.st_blksize])
2135 AC_CHECK_MEMBERS([struct passwd.pw_gecos],,,[$ac_includes_default
2137 AC_CHECK_MEMBERS([struct passwd.pw_passwd],,,[$ac_includes_default
2144 if test $cross_compiling = yes ; then
2145 AC_MSG_WARN([Crossing compiling... all bets are off!])
2146 AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
2151 AC_CHECK_SIZEOF(short)
2152 AC_CHECK_SIZEOF(int)
2153 AC_CHECK_SIZEOF(long)
2154 AC_CHECK_SIZEOF(long long)
2155 AC_CHECK_SIZEOF(wchar_t)
2157 if test "$ac_cv_sizeof_int" -lt 4 ; then
2158 AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
2160 AC_DEFINE(LBER_INT_T,long,[define to 32-bit or greater integer type])
2162 AC_DEFINE(LBER_INT_T,int,[define to 32-bit or greater integer type])
2165 AC_DEFINE(LBER_LEN_T,long,[define to large integer type])
2166 AC_DEFINE(LBER_SOCKET_T,int,[define to socket descriptor type])
2167 AC_DEFINE(LBER_TAG_T,long,[define to large integer type])
2169 dnl ----------------------------------------------------------------
2170 dnl Check for multiple precision support
2171 if test $ol_with_mp = longlong || test $ol_with_mp = auto ; then
2172 if test $ac_cv_sizeof_long_long -gt 4 ; then
2174 AC_DEFINE(USE_MP_LONG_LONG,1,[define to use 'long long' for MP])
2175 elif test $ol_with_mp = longlong ; then
2176 AC_MSG_ERROR([long long unusable for multiple precision])
2179 if test $ol_with_mp = long || test $ol_with_mp = auto ; then
2180 if test $ac_cv_sizeof_long -gt 4 ; then
2182 AC_DEFINE(USE_MP_LONG,1,[define to use 'long' for MP])
2183 elif test $ol_with_mp = long ; then
2184 AC_MSG_ERROR([long unusable for multiple precision])
2187 if test $ol_with_mp = bignum || test $ol_with_mp = auto ; then
2188 AC_CHECK_HEADERS(openssl/bn.h)
2189 AC_CHECK_HEADERS(openssl/crypto.h)
2190 if test "$ac_cv_header_openssl_bn_h" = "yes" &&
2191 test "$ac_cv_header_openssl_crypto_h" = "yes" &&
2192 test "$ol_with_tls" = "found" ; then
2194 AC_DEFINE(USE_MP_BIGNUM,1,[define to use OpenSSL BIGNUM for MP])
2195 elif test $ol_with_mp = bignum ; then
2196 AC_MSG_ERROR([bignum not available])
2199 if test $ol_with_mp = gmp || test $ol_with_mp = auto ; then
2200 AC_CHECK_HEADERS(gmp.h)
2201 AC_CHECK_LIB(gmp, __gmpz_add_ui)
2202 if test $ac_cv_header_gmp_h = yes && test $ac_cv_lib_gmp___gmpz_add_ui = yes ; then
2203 AC_DEFINE(USE_MP_GMP,1,[define to use GMP for MP])
2205 elif test $ol_with_mp = gmp ; then
2206 AC_MSG_ERROR([gmp not available])
2209 if test $ol_with_mp = auto ; then
2213 dnl ----------------------------------------------------------------
2214 dnl Checks for library functions.
2217 if test $ac_cv_func_memcmp_working = no ; then
2218 AC_DEFINE(NEED_MEMCMP_REPLACEMENT,1,
2219 [define if memcmp is not 8-bit clean or is otherwise broken])
2226 dnl Check for NT specific routines
2227 AC_CHECK_FUNC(_spawnlp, AC_DEFINE(HAVE_SPAWNLP,1,[if you have spawnlp()]))
2229 AC_CHECK_FUNC(_snprintf, [ac_cv_func_snprintf=yes
2230 AC_DEFINE(snprintf, _snprintf, [define to snprintf routine])
2233 AC_CHECK_FUNC(_vsnprintf, [ac_cv_func_vsnprintf=yes
2234 AC_DEFINE(vsnprintf, _vsnprintf, [define to vsnprintf routine])
2239 if test $ac_cv_func_vprintf = yes ; then
2240 dnl check for vsnprintf
2241 AC_CHECK_FUNCS(snprintf vsnprintf)
2302 dnl We actually may need to replace more than this.
2303 AC_REPLACE_FUNCS(getopt getpeereid)
2305 if test "$ac_cv_func_getopt" != yes; then
2306 LIBSRCS="$LIBSRCS getopt.c"
2309 if test "$ac_cv_func_getpeereid" != yes; then
2310 AC_CHECK_FUNCS( getpeerucred )
2311 if test "$ac_cv_func_getpeerucred" != yes ; then
2312 AC_CHECK_MEMBERS([struct msghdr.msg_accrightslen],,,
2313 [$ac_includes_default
2314 #ifdef HAVE_SYS_SOCKET_H
2315 #include <sys/socket.h>
2317 if test "$ac_cv_member_struct_msghdr_msg_accrightslen" != yes; then
2318 AC_CHECK_MEMBERS([struct msghdr.msg_control],,,
2319 [$ac_includes_default
2320 #ifdef HAVE_SYS_SOCKET_H
2321 #include <sys/socket.h>
2324 AC_CHECK_MEMBERS([struct stat.st_fstype, struct stat.st_vfstype])
2325 if test "$ac_cv_member_struct_stat_st_fstype" = yes; then
2326 AC_COMPILE_IFELSE([struct stat st; char *ptr=st.st_fstype;],
2327 AC_DEFINE([HAVE_STRUCT_STAT_ST_FSTYPE_CHAR]),
2328 AC_DEFINE([HAVE_STRUCT_STAT_ST_FSTYPE_INT]))
2331 LIBSRCS="$LIBSRCS getpeereid.c"
2334 if test "$ac_cv_func_snprintf" != yes ||
2335 test "$ac_cv_func_vsnprintf" != yes; then
2336 if test "$ac_cv_func_snprintf" != yes; then
2337 AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
2339 if test "$ac_cv_func_vsnprintf" != yes; then
2340 AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine])
2344 dnl ----------------------------------------------------------------
2345 dnl Sort out defines
2347 if test "$ol_enable_slapi" != no ; then
2348 dnl This check is done also if --enable-modules is used;
2349 dnl it is duplicated here, 'cause it'd be cached anyway
2350 AC_CHECK_HEADERS(ltdl.h)
2352 if test $ac_cv_header_ltdl_h != yes ; then
2353 AC_MSG_ERROR([could not locate <ltdl.h>])
2355 AC_CHECK_LIB(ltdl, lt_dlinit, [
2358 LIBSLAPITOOLS=../libslapi.a
2359 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
2360 ],[AC_MSG_ERROR([could not locate libtool -lltdl])])
2362 AC_DEFINE(LDAP_SLAPI,1, [define this to add SLAPI code])
2365 if test "$ol_enable_debug" != no ; then
2366 if test "$ol_enable_debug" = traditional; then
2367 AC_DEFINE(OLD_DEBUG,1,
2368 [define to use the original debug style])
2370 AC_DEFINE(LDAP_DEBUG,1,
2371 [define this to add debugging code])
2373 if test "$ol_enable_syslog" = yes ; then
2374 AC_DEFINE(LDAP_SYSLOG,1,
2375 [define this to add syslog code])
2377 if test "$ol_enable_proctitle" != no ; then
2378 AC_DEFINE(LDAP_PROCTITLE,1,
2379 [define this for LDAP process title support])
2381 if test "$ol_enable_referrals" != no ; then
2382 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION,
2383 [define to LDAP VENDOR VERSION])
2385 if test "$ol_enable_local" != no; then
2386 AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
2388 if test "$ol_link_ipv6" != no; then
2389 AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
2391 if test "$ol_enable_cleartext" != no ; then
2392 AC_DEFINE(SLAPD_CLEARTEXT,1,[define to support cleartext passwords])
2394 if test "$ol_enable_crypt" != no ; then
2395 AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords])
2397 if test "$ol_link_spasswd" != no ; then
2398 AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
2400 if test "$ol_enable_rlookups" != no ; then
2401 AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
2403 if test "$ol_enable_aci" != no ; then
2404 if test $ol_enable_dynacl = no ; then
2405 ol_enable_dynacl=yes
2406 AC_MSG_WARN([ACIs need dynacl])
2408 if test "$ol_enable_aci" = mod ; then
2409 MFLAG=SLAPD_MOD_DYNAMIC
2410 dnl remove this after moving servers/slapd/aci.c in contrib/slapd-modules/acl
2411 AC_MSG_ERROR([ACI build as dynamic module not supported (yet)])
2413 MFLAG=SLAPD_MOD_STATIC
2415 WITH_ACI_ENABLED=$ol_enable_aci
2416 AC_DEFINE_UNQUOTED(SLAPD_ACI_ENABLED,$MFLAG,[define to support per-object ACIs])
2420 if test "$ol_enable_dynacl" != no ; then
2421 AC_DEFINE(SLAP_DYNACL,1,[define to support run-time loadable ACL])
2424 if test "$ol_link_modules" != no ; then
2425 AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
2427 SLAPD_MODULES_LDFLAGS="-dlopen self"
2430 AC_DEFINE(SLAPD_MOD_STATIC,1,[statically linked module])
2431 AC_DEFINE(SLAPD_MOD_DYNAMIC,2,[dynamically linked module])
2433 dnl back-monitor goes first (well, after back-config)
2434 if test "$ol_enable_monitor" != no ; then
2436 BUILD_MONITOR=$ol_enable_monitor
2437 if test "$ol_enable_monitor" = mod ; then
2438 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
2439 MFLAG=SLAPD_MOD_DYNAMIC
2441 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
2442 MFLAG=SLAPD_MOD_STATIC
2444 AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
2447 if test "$ol_enable_bdb" != no ; then
2449 BUILD_BDB=$ol_enable_bdb
2450 if test "$ol_enable_bdb" = mod ; then
2451 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
2452 MFLAG=SLAPD_MOD_DYNAMIC
2454 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
2455 MFLAG=SLAPD_MOD_STATIC
2457 AC_DEFINE_UNQUOTED(SLAPD_BDB,$MFLAG,[define to support BDB backend])
2460 if test "$ol_enable_dnssrv" != no ; then
2462 BUILD_DNSSRV=$ol_enable_dnssrv
2463 if test "$ol_enable_dnssrv" = mod ; then
2464 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
2465 MFLAG=SLAPD_MOD_DYNAMIC
2467 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
2468 MFLAG=SLAPD_MOD_STATIC
2470 AC_DEFINE_UNQUOTED(SLAPD_DNSSRV,$MFLAG,[define to support DNS SRV backend])
2473 if test "$ol_enable_hdb" != no ; then
2475 BUILD_HDB=$ol_enable_hdb
2476 if test "$ol_enable_hdb" = mod ; then
2477 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-hdb"
2478 MFLAG=SLAPD_MOD_DYNAMIC
2480 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb"
2481 MFLAG=SLAPD_MOD_STATIC
2483 AC_DEFINE_UNQUOTED(SLAPD_HDB,$MFLAG,[define to support HDB backend])
2486 if test "$ol_enable_ldap" != no ; then
2488 BUILD_LDAP=$ol_enable_ldap
2489 if test "$ol_enable_ldap" = mod ; then
2490 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
2491 MFLAG=SLAPD_MOD_DYNAMIC
2493 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
2494 MFLAG=SLAPD_MOD_STATIC
2496 AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
2499 if test "$ol_enable_meta" != no ; then
2501 BUILD_META=$ol_enable_meta
2503 if test "$ol_enable_meta" = mod ; then
2504 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
2505 MFLAG=SLAPD_MOD_DYNAMIC
2507 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
2508 MFLAG=SLAPD_MOD_STATIC
2510 AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
2513 if test "$ol_enable_null" != no ; then
2515 BUILD_NULL=$ol_enable_null
2516 if test "$ol_enable_null" = mod ; then
2517 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
2518 MFLAG=SLAPD_MOD_DYNAMIC
2520 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
2521 MFLAG=SLAPD_MOD_STATIC
2523 AC_DEFINE_UNQUOTED(SLAPD_NULL,$MFLAG,[define to support NULL backend])
2526 if test "$ol_enable_passwd" != no ; then
2528 BUILD_PASSWD=$ol_enable_passwd
2529 if test "$ol_enable_passwd" = mod ; then
2530 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
2531 MFLAG=SLAPD_MOD_DYNAMIC
2533 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
2534 MFLAG=SLAPD_MOD_STATIC
2536 AC_DEFINE_UNQUOTED(SLAPD_PASSWD,$MFLAG,[define to support PASSWD backend])
2539 if test "$ol_link_perl" != no ; then
2541 BUILD_PERL=$ol_enable_perl
2542 if test "$ol_enable_perl" = mod ; then
2543 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
2544 MFLAG=SLAPD_MOD_DYNAMIC
2546 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
2547 MFLAG=SLAPD_MOD_STATIC
2549 AC_DEFINE_UNQUOTED(SLAPD_PERL,$MFLAG,[define to support PERL backend])
2552 if test "$ol_enable_relay" != no ; then
2554 BUILD_RELAY=$ol_enable_relay
2555 if test "$ol_enable_relay" = mod ; then
2556 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-relay"
2557 MFLAG=SLAPD_MOD_DYNAMIC
2559 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-relay"
2560 MFLAG=SLAPD_MOD_STATIC
2562 AC_DEFINE_UNQUOTED(SLAPD_RELAY,$MFLAG,[define to support relay backend])
2565 if test "$ol_enable_shell" != no ; then
2566 if test "$ol_link_threads" != no ; then
2567 AC_MSG_WARN([Use of --without-threads is recommended with back-shell])
2570 BUILD_SHELL=$ol_enable_shell
2571 if test "$ol_enable_shell" = mod ; then
2572 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
2573 MFLAG=SLAPD_MOD_DYNAMIC
2575 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
2576 MFLAG=SLAPD_MOD_STATIC
2578 AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend])
2581 if test "$ol_link_sql" != no ; then
2583 BUILD_SQL=$ol_enable_sql
2584 if test "$ol_enable_sql" = mod; then
2585 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
2586 MFLAG=SLAPD_MOD_DYNAMIC
2588 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
2589 MFLAG=SLAPD_MOD_STATIC
2591 AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend])
2594 if test "$ol_enable_accesslog" != no ; then
2595 BUILD_ACCESSLOG=$ol_enable_accesslog
2596 if test "$ol_enable_accesslog" = mod ; then
2597 MFLAG=SLAPD_MOD_DYNAMIC
2598 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS accesslog.la"
2600 MFLAG=SLAPD_MOD_STATIC
2601 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS accesslog.o"
2603 AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay])
2606 if test "$ol_enable_auditlog" != no ; then
2607 BUILD_AUDITLOG=$ol_enable_auditlog
2608 if test "$ol_enable_auditlog" = mod ; then
2609 MFLAG=SLAPD_MOD_DYNAMIC
2610 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS auditlog.la"
2612 MFLAG=SLAPD_MOD_STATIC
2613 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS auditlog.o"
2615 AC_DEFINE_UNQUOTED(SLAPD_OVER_AUDITLOG,$MFLAG,[define for Audit Logging overlay])
2618 if test "$ol_enable_constraint" != no ; then
2619 BUILD_CONSTRAINT=$ol_enable_constraint
2620 if test "$ol_enable_constraint" = mod ; then
2621 MFLAG=SLAPD_MOD_DYNAMIC
2622 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS constraint.la"
2624 MFLAG=SLAPD_MOD_STATIC
2625 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS constraint.o"
2627 AC_DEFINE_UNQUOTED(SLAPD_OVER_CONSTRAINT,$MFLAG,[define for Attribute Constraint overlay])
2630 if test "$ol_enable_dds" != no ; then
2631 BUILD_DDS=$ol_enable_dds
2632 if test "$ol_enable_dds" = mod ; then
2633 MFLAG=SLAPD_MOD_DYNAMIC
2634 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dds.la"
2636 MFLAG=SLAPD_MOD_STATIC
2637 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dds.o"
2639 AC_DEFINE_UNQUOTED(SLAPD_OVER_DDS,$MFLAG,[define for Dynamic Directory Services overlay])
2642 if test "$ol_enable_dyngroup" != no ; then
2643 BUILD_DYNGROUP=$ol_enable_dyngroup
2644 if test "$ol_enable_dyngroup" = mod ; then
2645 MFLAG=SLAPD_MOD_DYNAMIC
2646 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dyngroup.la"
2648 MFLAG=SLAPD_MOD_STATIC
2649 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dyngroup.o"
2651 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay])
2654 if test "$ol_enable_dynlist" != no ; then
2655 BUILD_DYNLIST=$ol_enable_dynlist
2656 if test "$ol_enable_dynlist" = mod ; then
2657 MFLAG=SLAPD_MOD_DYNAMIC
2658 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dynlist.la"
2660 MFLAG=SLAPD_MOD_STATIC
2661 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dynlist.o"
2663 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNLIST,$MFLAG,[define for Dynamic List overlay])
2666 if test "$ol_enable_ppolicy" != no ; then
2667 BUILD_PPOLICY=$ol_enable_ppolicy
2668 if test "$ol_enable_ppolicy" = mod ; then
2669 MFLAG=SLAPD_MOD_DYNAMIC
2670 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS ppolicy.la"
2672 MFLAG=SLAPD_MOD_STATIC
2673 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS ppolicy.o"
2675 AC_DEFINE_UNQUOTED(SLAPD_OVER_PPOLICY,$MFLAG,[define for Password Policy overlay])
2678 if test "$ol_enable_proxycache" != no ; then
2679 BUILD_PROXYCACHE=$ol_enable_proxycache
2680 if test "$ol_enable_proxycache" = mod ; then
2681 MFLAG=SLAPD_MOD_DYNAMIC
2682 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS pcache.la"
2684 MFLAG=SLAPD_MOD_STATIC
2685 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS pcache.o"
2687 AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay])
2690 if test "$ol_enable_refint" != no ; then
2691 BUILD_REFINT=$ol_enable_refint
2692 if test "$ol_enable_refint" = mod ; then
2693 MFLAG=SLAPD_MOD_DYNAMIC
2694 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la"
2696 MFLAG=SLAPD_MOD_STATIC
2697 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS refint.o"
2699 AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay])
2702 if test "$ol_enable_retcode" != no ; then
2703 BUILD_RETCODE=$ol_enable_retcode
2704 if test "$ol_enable_retcode" = mod ; then
2705 MFLAG=SLAPD_MOD_DYNAMIC
2706 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS retcode.la"
2708 MFLAG=SLAPD_MOD_STATIC
2709 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS retcode.o"
2711 AC_DEFINE_UNQUOTED(SLAPD_OVER_RETCODE,$MFLAG,[define for Referential Integrity overlay])
2714 if test "$ol_enable_rwm" != no ; then
2716 BUILD_RWM=$ol_enable_rwm
2717 if test "$ol_enable_rwm" = mod ; then
2718 MFLAG=SLAPD_MOD_DYNAMIC
2719 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS rwm.la"
2721 MFLAG=SLAPD_MOD_STATIC
2722 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS rwm_x.o"
2724 AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
2727 if test "$ol_enable_seqmod" != no ; then
2728 BUILD_SEQMOD=$ol_enable_seqmod
2729 if test "$ol_enable_seqmod" = mod ; then
2730 MFLAG=SLAPD_MOD_DYNAMIC
2731 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS seqmod.la"
2733 MFLAG=SLAPD_MOD_STATIC
2734 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS seqmod.o"
2736 AC_DEFINE_UNQUOTED(SLAPD_OVER_SEQMOD,$MFLAG,[define for Sequential Modify overlay])
2739 if test "$ol_enable_syncprov" != no ; then
2740 BUILD_SYNCPROV=$ol_enable_syncprov
2741 if test "$ol_enable_syncprov" = mod ; then
2742 MFLAG=SLAPD_MOD_DYNAMIC
2743 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS syncprov.la"
2745 MFLAG=SLAPD_MOD_STATIC
2746 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS syncprov.o"
2748 AC_DEFINE_UNQUOTED(SLAPD_OVER_SYNCPROV,$MFLAG,[define for Syncrepl Provider overlay])
2751 if test "$ol_enable_translucent" != no ; then
2752 BUILD_TRANSLUCENT=$ol_enable_translucent
2753 if test "$ol_enable_translucent" = mod ; then
2754 MFLAG=SLAPD_MOD_DYNAMIC
2755 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS translucent.la"
2757 MFLAG=SLAPD_MOD_STATIC
2758 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS translucent.o"
2760 AC_DEFINE_UNQUOTED(SLAPD_OVER_TRANSLUCENT,$MFLAG,[define for Translucent Proxy overlay])
2763 if test "$ol_enable_unique" != no ; then
2764 BUILD_UNIQUE=$ol_enable_unique
2765 if test "$ol_enable_unique" = mod ; then
2766 MFLAG=SLAPD_MOD_DYNAMIC
2767 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la"
2769 MFLAG=SLAPD_MOD_STATIC
2770 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS unique.o"
2772 AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay])
2775 if test "$ol_enable_valsort" != no ; then
2776 BUILD_VALSORT=$ol_enable_valsort
2777 if test "$ol_enable_valsort" = mod ; then
2778 MFLAG=SLAPD_MOD_DYNAMIC
2779 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS valsort.la"
2781 MFLAG=SLAPD_MOD_STATIC
2782 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS valsort.o"
2784 AC_DEFINE_UNQUOTED(SLAPD_OVER_VALSORT,$MFLAG,[define for Value Sorting overlay])
2787 if test "$ol_enable_rewrite" != no ; then
2788 AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta])
2792 if test "$ol_enable_slapi" != no ; then
2793 AC_DEFINE(ENABLE_SLAPI,1,[define to enable slapi library])
2795 SLAPD_SLAPI_DEPEND=libslapi.a
2798 dnl ----------------------------------------------------------------
2801 dnl For Windows build, we don't want to include -dlopen flags.
2802 dnl They hurt more than they help.
2805 if test "$ac_cv_mingw32" = yes ; then
2807 SLAPD_MODULES_LDFLAGS=
2816 AC_SUBST(WITH_MODULES_ENABLED)
2817 AC_SUBST(WITH_ACI_ENABLED)
2818 AC_SUBST(BUILD_THREAD)
2819 AC_SUBST(BUILD_LIBS_DYNAMIC)
2821 AC_SUBST(BUILD_SLAPD)
2823 AC_SUBST(BUILD_SLAPI)
2824 AC_SUBST(SLAPD_SLAPI_DEPEND)
2827 AC_SUBST(BUILD_DNSSRV)
2829 AC_SUBST(BUILD_LDAP)
2830 AC_SUBST(BUILD_META)
2831 AC_SUBST(BUILD_MONITOR)
2832 AC_SUBST(BUILD_NULL)
2833 AC_SUBST(BUILD_PASSWD)
2834 AC_SUBST(BUILD_RELAY)
2835 AC_SUBST(BUILD_PERL)
2836 AC_SUBST(BUILD_SHELL)
2839 AC_SUBST(BUILD_ACCESSLOG)
2840 AC_SUBST(BUILD_AUDITLOG)
2841 AC_SUBST(BUILD_CONSTRAINT)
2843 AC_SUBST(BUILD_DENYOP)
2844 AC_SUBST(BUILD_DYNGROUP)
2845 AC_SUBST(BUILD_DYNLIST)
2846 AC_SUBST(BUILD_LASTMOD)
2847 AC_SUBST(BUILD_PPOLICY)
2848 AC_SUBST(BUILD_PROXYCACHE)
2849 AC_SUBST(BUILD_REFINT)
2850 AC_SUBST(BUILD_RETCODE)
2852 AC_SUBST(BUILD_SEQMOD)
2853 AC_SUBST(BUILD_SYNCPROV)
2854 AC_SUBST(BUILD_TRANSLUCENT)
2855 AC_SUBST(BUILD_UNIQUE)
2856 AC_SUBST(BUILD_VALSORT)
2859 AC_SUBST(SLAPD_LIBS)
2861 AC_SUBST(LTHREAD_LIBS)
2862 AC_SUBST(LUTIL_LIBS)
2865 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
2866 AC_SUBST(SLAPD_MODULES_LDFLAGS)
2868 AC_SUBST(SLAPD_NO_STATIC)
2869 AC_SUBST(SLAPD_STATIC_BACKENDS)
2870 AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
2871 AC_SUBST(SLAPD_STATIC_OVERLAYS)
2872 AC_SUBST(SLAPD_DYNAMIC_OVERLAYS)
2874 AC_SUBST(PERL_CPPFLAGS)
2875 AC_SUBST(SLAPD_PERL_LDFLAGS)
2876 AC_SUBST(MOD_PERL_LDFLAGS)
2882 AC_SUBST(MODULES_LIBS)
2883 AC_SUBST(SLAPI_LIBS)
2885 AC_SUBST(LIBSLAPITOOLS)
2889 AC_SUBST(SLAPD_SLP_LIBS)
2890 AC_SUBST(SLAPD_GMP_LIBS)
2892 AC_SUBST(SLAPD_SQL_LDFLAGS)
2893 AC_SUBST(SLAPD_SQL_LIBS)
2894 AC_SUBST(SLAPD_SQL_INCLUDES)
2896 dnl ----------------------------------------------------------------
2897 dnl final help output
2898 AC_ARG_WITH(xxinstall,[
2899 See INSTALL file for further details.])
2901 dnl ----------------------------------------------------------------
2905 AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.mk]
2906 [doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk]
2907 [doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk]
2908 [doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk]
2909 [doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk]
2910 [doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk]
2911 [doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk]
2912 [clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk]
2913 [clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk]
2914 [include/Makefile:build/top.mk:include/Makefile.in]
2915 [libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk]
2916 [libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk]
2917 [libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk]
2918 [libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk]
2919 [libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk]
2920 [libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk]
2921 [libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk]
2922 [servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk]
2923 [servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk]
2924 [servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk]
2925 [servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk]
2926 [servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk]
2927 [servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk]
2928 [servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk]
2929 [servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk]
2930 [servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk]
2931 [servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk]
2932 [servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk]
2933 [servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk]
2934 [servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk]
2935 [servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk]
2936 [servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk]
2937 [servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk]
2938 [servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk]
2939 [servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk]
2940 [tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk]
2942 [tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk])
2944 AC_CONFIG_COMMANDS([default],[[
2947 BACKENDSC="servers/slapd/backends.c"
2948 echo "Making $BACKENDSC"
2950 cat > $BACKENDSC << ENDX
2951 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
2953 * Copyright 1998-2007 The OpenLDAP Foundation.
2954 * All rights reserved.
2956 * Redistribution and use in source and binary forms, with or without
2957 * modification, are permitted only as authorized by the OpenLDAP
2960 * A copy of this license is available in the file LICENSE in the
2961 * top-level directory of the distribution or, alternatively, at
2962 * <http://www.OpenLDAP.org/license.html>.
2964 /* This file is automatically generated by configure; please do not edit. */
2966 #include "portable.h"
2970 if test "${STATIC_BACKENDS}"; then
2971 for b in config ${STATIC_BACKENDS}; do
2972 bb=`echo "${b}" | sed -e 's/back-//'`
2973 cat >> $BACKENDSC << ENDX
2974 extern BI_init ${bb}_back_initialize;
2978 cat >> $BACKENDSC << ENDX
2980 BackendInfo slap_binfo[] = {
2983 for b in config ${STATIC_BACKENDS}; do
2984 bb=`echo "${b}" | sed -e 's/back-//'`
2985 echo " Add ${bb} ..."
2986 cat >> $BACKENDSC << ENDX
2987 { "${bb}", ${bb}_back_initialize },
2991 cat >> $BACKENDSC << ENDX
2995 /* end of generated file */
2998 OVERLAYSC="servers/slapd/overlays/statover.c"
2999 echo "Making $OVERLAYSC"
3001 cat > $OVERLAYSC << ENDX
3002 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3004 * Copyright 1998-2007 The OpenLDAP Foundation.
3005 * All rights reserved.
3007 * Redistribution and use in source and binary forms, with or without
3008 * modification, are permitted only as authorized by the OpenLDAP
3011 * A copy of this license is available in the file LICENSE in the
3012 * top-level directory of the distribution or, alternatively, at
3013 * <http://www.OpenLDAP.org/license.html>.
3015 /* This file is automatically generated by configure; please do not edit. */
3017 #include "portable.h"
3021 if test "${STATIC_OVERLAYS}"; then
3022 for o in ${STATIC_OVERLAYS}; do
3023 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3024 cat >> $OVERLAYSC << ENDX
3025 extern OV_init ${oo}_initialize;
3030 cat >> $OVERLAYSC << ENDX
3032 OverlayInit slap_oinfo[] = {
3035 if test "${STATIC_OVERLAYS}"; then
3036 for o in ${STATIC_OVERLAYS}; do
3037 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3038 echo " Add ${oo} ..."
3039 cat >> $OVERLAYSC << ENDX
3040 { "${oo}", ${oo}_initialize },
3045 cat >> $OVERLAYSC << ENDX
3049 /* end of generated file */
3052 echo Please run \"make depend\" to build dependencies
3054 STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"
3055 STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS"