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 auto|openssl|gnutls],
245 auto, [auto openssl gnutls 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])
1150 if test $ol_link_tls = no ; then
1151 if test $ol_with_tls = gnutls || test $ol_with_tls = auto ; then
1152 AC_CHECK_HEADERS(gnutls/gnutls.h)
1154 if test $ac_cv_header_gnutls_gnutls_h = yes ; then
1155 AC_CHECK_LIB(gnutls, gnutls_init,
1156 [have_gnutls=yes], [have_gnutls=no])
1158 if test $have_gnutls = yes ; then
1162 AC_DEFINE(HAVE_GNUTLS, 1,
1163 [define if you have GNUtls])
1170 if test $ol_link_tls = yes ; then
1171 AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
1173 elif test $ol_with_tls = auto ; then
1174 AC_MSG_WARN([Could not locate TLS/SSL package])
1175 AC_MSG_WARN([TLS data protection not supported!])
1176 elif test $ol_with_tls != no ; then
1177 AC_MSG_ERROR([Could not locate TLS/SSL package])
1179 AC_MSG_WARN([TLS data protection not supported!])
1182 dnl ----------------------------------------------------------------
1183 dnl LAN Manger password checking requires DES from OpenSSL
1184 if test $ol_enable_lmpasswd != no; then
1185 if test $ol_link_tls != yes ; then
1186 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
1189 AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
1192 dnl ----------------------------------------------------------------
1196 case $ol_with_threads in auto | yes | nt)
1200 if test "$ol_cv_nt_threads" = yes ; then
1202 ol_with_threads=found
1203 ol_with_yielding_select=yes
1205 AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager])
1206 AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log])
1209 if test $ol_with_threads = nt ; then
1210 AC_MSG_ERROR([could not locate NT Threads])
1215 case $ol_with_threads in auto | yes | posix)
1217 AC_CHECK_HEADERS(pthread.h)
1219 if test $ac_cv_header_pthread_h = yes ; then
1220 OL_POSIX_THREAD_VERSION
1222 if test $ol_cv_pthread_version != 0 ; then
1223 AC_DEFINE_UNQUOTED(HAVE_PTHREADS,$ol_cv_pthread_version,
1224 [define to pthreads API spec revision])
1226 AC_MSG_ERROR([unknown pthread version])
1229 # consider threads found
1230 ol_with_threads=found
1232 OL_HEADER_LINUX_THREADS
1233 OL_HEADER_GNU_PTH_PTHREAD_H
1235 if test $ol_cv_header_gnu_pth_pthread_h = no ; then
1236 AC_CHECK_HEADERS(sched.h)
1239 dnl Now the hard part, how to link?
1241 dnl currently supported checks:
1243 dnl Check for no flags
1244 dnl pthread_create() in $LIBS
1246 dnl Check special pthread (final) flags
1247 dnl [skipped] pthread_create() with -mt (Solaris) [disabled]
1248 dnl pthread_create() with -kthread (FreeBSD)
1249 dnl pthread_create() with -pthread (FreeBSD/Digital Unix)
1250 dnl pthread_create() with -pthreads (?)
1251 dnl pthread_create() with -mthreads (AIX)
1252 dnl pthread_create() with -thread (?)
1254 dnl Check pthread (final) libraries
1255 dnl pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
1256 dnl pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
1257 dnl [skipped] pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
1258 dnl pthread_join() -Wl,-woff,85 -lpthread (IRIX)
1259 dnl pthread_create() in -lpthread (many)
1260 dnl pthread_create() in -lc_r (FreeBSD)
1262 dnl Check pthread (draft4) flags (depreciated)
1263 dnl pthread_create() with -threads (OSF/1)
1265 dnl Check pthread (draft4) libraries (depreciated)
1266 dnl pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
1267 dnl pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
1268 dnl pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
1269 dnl pthread_create() in -lpthreads (many)
1272 dnl pthread_create in $LIBS
1273 AC_CACHE_CHECK([for pthread_create in default libraries],
1274 ol_cv_pthread_create,[
1275 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1276 [ol_cv_pthread_create=yes],
1277 [ol_cv_pthread_create=no],
1278 [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION,
1279 [ol_cv_pthread_create=yes],
1280 [ol_cv_pthread_create=no])])])
1282 if test $ol_cv_pthread_create != no ; then
1283 ol_link_threads=posix
1287 dnl OL_PTHREAD_TRY([-mt], [ol_cv_pthread_mt])
1288 OL_PTHREAD_TRY([-kthread], [ol_cv_pthread_kthread])
1289 OL_PTHREAD_TRY([-pthread], [ol_cv_pthread_pthread])
1290 OL_PTHREAD_TRY([-pthreads], [ol_cv_pthread_pthreads])
1291 OL_PTHREAD_TRY([-mthreads], [ol_cv_pthread_mthreads])
1292 OL_PTHREAD_TRY([-thread], [ol_cv_pthread_thread])
1294 OL_PTHREAD_TRY([-lpthread -lmach -lexc -lc_r],
1295 [ol_cv_pthread_lpthread_lmach_lexc_lc_r])
1296 OL_PTHREAD_TRY([-lpthread -lmach -lexc],
1297 [ol_cv_pthread_lpthread_lmach_lexc])
1298 dnl OL_PTHREAD_TRY([-lpthread -lexc],
1299 dnl [ol_cv_pthread_lpthread_lexc])
1301 OL_PTHREAD_TRY([-lpthread -Wl,-woff,85],
1302 [ol_cv_pthread_lib_lpthread_woff])
1304 OL_PTHREAD_TRY([-lpthread], [ol_cv_pthread_lpthread])
1305 OL_PTHREAD_TRY([-lc_r], [ol_cv_pthread_lc_r])
1307 OL_PTHREAD_TRY([-threads], [ol_cv_pthread_threads])
1309 OL_PTHREAD_TRY([-lpthreads -lmach -lexc -lc_r],
1310 [ol_cv_pthread_lpthreads_lmach_lexc_lc_r])
1311 OL_PTHREAD_TRY([-lpthreads -lmach -lexc],
1312 [ol_cv_pthread_lpthreads_lmach_lexc])
1313 OL_PTHREAD_TRY([-lpthreads -lexc],
1314 [ol_cv_pthread_lpthreads_lexc])
1316 OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
1318 if test $ol_link_threads != no ; then
1319 LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
1322 save_CPPFLAGS="$CPPFLAGS"
1324 LIBS="$LTHREAD_LIBS $LIBS"
1326 dnl All POSIX Thread (final) implementations should have
1327 dnl sched_yield instead of pthread yield.
1328 dnl check for both, and thr_yield for Solaris
1329 AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
1331 if test $ac_cv_func_sched_yield = no &&
1332 test $ac_cv_func_pthread_yield = no &&
1333 test $ac_cv_func_thr_yield = no ; then
1334 dnl Digital UNIX has sched_yield() in -lrt
1335 AC_CHECK_LIB(rt, sched_yield,
1336 [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
1337 AC_DEFINE(HAVE_SCHED_YIELD,1,
1338 [Define if you have the sched_yield function.])
1339 ac_cv_func_sched_yield=yes],
1340 [ac_cv_func_sched_yield=no])
1342 if test $ac_cv_func_sched_yield = no &&
1343 test $ac_cv_func_pthread_yield = no &&
1344 test "$ac_cv_func_thr_yield" = no ; then
1345 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
1348 dnl Check functions for compatibility
1349 AC_CHECK_FUNCS(pthread_kill)
1351 dnl Check for pthread_rwlock_destroy with <pthread.h>
1352 dnl as pthread_rwlock_t may not be defined.
1353 AC_CACHE_CHECK([for pthread_rwlock_destroy with <pthread.h>],
1354 [ol_cv_func_pthread_rwlock_destroy], [
1356 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1357 #include <pthread.h>
1358 pthread_rwlock_t rwlock;
1359 ]], [[pthread_rwlock_destroy(&rwlock);]])],[ol_cv_func_pthread_rwlock_destroy=yes],[ol_cv_func_pthread_rwlock_destroy=no])
1361 if test $ol_cv_func_pthread_rwlock_destroy = yes ; then
1362 AC_DEFINE(HAVE_PTHREAD_RWLOCK_DESTROY,1,
1363 [define if you have pthread_rwlock_destroy function])
1366 dnl Check for pthread_detach with <pthread.h> inclusion
1367 dnl as it's symbol may have been mangled.
1368 AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
1369 [ol_cv_func_pthread_detach], [
1371 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1372 #include <pthread.h>
1374 #define NULL (void*)0
1376 ]], [[pthread_detach(NULL);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
1379 if test $ol_cv_func_pthread_detach = no ; then
1380 AC_MSG_ERROR([could not locate pthread_detach()])
1383 AC_DEFINE(HAVE_PTHREAD_DETACH,1,
1384 [define if you have pthread_detach function])
1386 dnl Check for setconcurreny functions
1388 pthread_setconcurrency \
1389 pthread_getconcurrency \
1390 thr_setconcurrency \
1391 thr_getconcurrency \
1394 OL_SYS_LINUX_THREADS
1397 if test $ol_cv_linux_threads = error; then
1398 AC_MSG_ERROR([LinuxThreads header/library mismatch]);
1401 AC_CACHE_CHECK([if pthread_create() works],
1402 ol_cv_pthread_create_works,[
1403 AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1404 [ol_cv_pthread_create_works=yes],
1405 [ol_cv_pthread_create_works=no],
1407 ol_cv_pthread_create_works=yes])])
1409 if test $ol_cv_pthread_create_works = no ; then
1410 AC_MSG_ERROR([pthread_create is not usable, check environment settings])
1413 ol_replace_broken_yield=no
1414 dnl case "$target" in
1416 dnl AC_CHECK_FUNCS(nanosleep)
1417 dnl ol_replace_broken_yield=yes
1421 if test $ol_replace_broken_yield = yes ; then
1422 AC_DEFINE([REPLACE_BROKEN_YIELD],1,
1423 [define if sched_yield yields the entire process])
1426 dnl Check if select causes an yield
1427 if test $ol_with_yielding_select = auto ; then
1428 AC_CACHE_CHECK([if select yields when using pthreads],
1429 ol_cv_pthread_select_yields,[
1430 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1431 #include <sys/types.h>
1432 #include <sys/time.h>
1434 #include <pthread.h>
1436 #define NULL (void*) 0
1439 static int fildes[2];
1441 static void *task(p)
1453 FD_SET(fildes[0], &rfds);
1455 /* we're not interested in any fds */
1456 i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
1463 exit(0); /* if we exit here, the select blocked the whole process */
1466 int main(argc, argv)
1472 /* create a pipe to select */
1473 if(pipe(&fildes[0])) {
1478 #ifdef HAVE_PTHREAD_SETCONCURRENCY
1479 (void) pthread_setconcurrency(2);
1481 #ifdef HAVE_THR_SETCONCURRENCY
1482 /* Set Solaris LWP concurrency to 2 */
1483 thr_setconcurrency(2);
1487 #if HAVE_PTHREADS < 6
1488 pthread_create(&t, pthread_attr_default, task, NULL);
1490 pthread_create(&t, NULL, task, NULL);
1493 /* make sure task runs first */
1494 #ifdef HAVE_THR_YIELD
1496 #elif defined( HAVE_SCHED_YIELD )
1498 #elif defined( HAVE_PTHREAD_YIELD )
1503 }]])],[ol_cv_pthread_select_yields=no],[ol_cv_pthread_select_yields=yes],[ol_cv_pthread_select_yields=cross])])
1505 if test $ol_cv_pthread_select_yields = cross ; then
1506 AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])
1509 if test $ol_cv_pthread_select_yields = yes ; then
1510 ol_with_yielding_select=yes
1515 CPPFLAGS="$save_CPPFLAGS"
1518 AC_MSG_ERROR([could not locate usable POSIX Threads])
1522 if test $ol_with_threads = posix ; then
1523 AC_MSG_ERROR([could not locate POSIX Threads])
1528 case $ol_with_threads in auto | yes | mach)
1530 dnl check for Mach CThreads
1531 AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
1532 if test $ac_cv_header_mach_cthreads_h = yes ; then
1533 ol_with_threads=found
1535 dnl check for cthreads support in current $LIBS
1536 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1538 if test $ol_link_threads = no ; then
1540 dnl this test needs work
1541 AC_CACHE_CHECK([for cthread_fork with -all_load],
1542 [ol_cv_cthread_all_load], [
1545 LIBS="-all_load $LIBS"
1546 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <mach/cthreads.h>]], [[
1547 cthread_fork((void *)0, (void *)0);
1548 ]])],[ol_cv_cthread_all_load=yes],[ol_cv_cthread_all_load=no])
1549 dnl restore the LIBS
1553 if test $ol_cv_cthread_all_load = yes ; then
1554 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
1555 ol_link_threads=mach
1556 ol_with_threads=found
1560 elif test $ac_cv_header_cthreads_h = yes ; then
1561 dnl Hurd variant of Mach Cthreads
1562 dnl uses <cthreads.h> and -lthreads
1564 ol_with_threads=found
1568 LIBS="$LIBS -lthreads"
1569 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1572 if test $ol_link_threads = yes ; then
1573 LTHREAD_LIBS="-lthreads"
1574 ol_link_threads=mach
1575 ol_with_threads=found
1577 AC_MSG_ERROR([could not link with Mach CThreads])
1580 elif test $ol_with_threads = mach ; then
1581 AC_MSG_ERROR([could not locate Mach CThreads])
1584 if test $ol_link_threads = mach ; then
1585 AC_DEFINE(HAVE_MACH_CTHREADS,1,
1586 [define if you have Mach Cthreads])
1587 elif test $ol_with_threads = found ; then
1588 AC_MSG_ERROR([could not link with Mach CThreads])
1593 case $ol_with_threads in auto | yes | pth)
1595 AC_CHECK_HEADERS(pth.h)
1597 if test $ac_cv_header_pth_h = yes ; then
1598 AC_CHECK_LIB(pth, pth_version, [have_pth=yes], [have_pth=no])
1600 if test $have_pth = yes ; then
1601 AC_DEFINE(HAVE_GNU_PTH,1,[if you have GNU Pth])
1602 LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
1604 ol_with_threads=found
1606 if test $ol_with_yielding_select = auto ; then
1607 ol_with_yielding_select=yes
1614 case $ol_with_threads in auto | yes | lwp)
1616 dnl check for SunOS5 LWP
1617 AC_CHECK_HEADERS(thread.h synch.h)
1618 if test $ac_cv_header_thread_h = yes &&
1619 test $ac_cv_header_synch_h = yes ; then
1620 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
1622 if test $have_thr = yes ; then
1623 AC_DEFINE(HAVE_THR,1,
1624 [if you have Solaris LWP (thr) package])
1625 LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
1628 if test $ol_with_yielding_select = auto ; then
1629 ol_with_yielding_select=yes
1632 dnl Check for setconcurreny functions
1634 thr_setconcurrency \
1635 thr_getconcurrency \
1640 dnl check for SunOS4 LWP
1641 AC_CHECK_HEADERS(lwp/lwp.h)
1642 if test $ac_cv_header_lwp_lwp_h = yes ; then
1643 AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
1645 if test $have_lwp = yes ; then
1646 AC_DEFINE(HAVE_LWP,1,
1647 [if you have SunOS LWP package])
1648 LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
1651 if test $ol_with_yielding_select = auto ; then
1652 ol_with_yielding_select=no
1659 if test $ol_with_yielding_select = yes ; then
1660 AC_DEFINE(HAVE_YIELDING_SELECT,1,
1661 [define if select implicitly yields])
1664 if test $ol_with_threads = manual ; then
1665 dnl User thinks he can manually configure threads.
1668 AC_MSG_WARN([thread defines and link options must be set manually])
1670 AC_CHECK_HEADERS(pthread.h sched.h)
1671 AC_CHECK_FUNCS(sched_yield pthread_yield)
1672 OL_HEADER_LINUX_THREADS
1674 AC_CHECK_HEADERS(mach/cthreads.h)
1675 AC_CHECK_HEADERS(lwp/lwp.h)
1676 AC_CHECK_HEADERS(thread.h synch.h)
1679 if test $ol_link_threads != no && test $ol_link_threads != nt ; then
1680 dnl needed to get reentrant/threadsafe versions
1682 AC_DEFINE(REENTRANT,1)
1683 AC_DEFINE(_REENTRANT,1)
1684 AC_DEFINE(THREAD_SAFE,1)
1685 AC_DEFINE(_THREAD_SAFE,1)
1686 AC_DEFINE(THREADSAFE,1)
1687 AC_DEFINE(_THREADSAFE,1)
1688 AC_DEFINE(_SGI_MP_SOURCE,1)
1690 dnl The errno declaration may dependent upon _REENTRANT.
1691 dnl If it does, we must link with thread support.
1692 AC_CACHE_CHECK([for thread specific errno],
1693 [ol_cv_errno_thread_specific], [
1694 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <errno.h>]], [[errno = 0;]])],[ol_cv_errno_thread_specific=yes],[ol_cv_errno_thread_specific=no])
1697 dnl The h_errno declaration may dependent upon _REENTRANT.
1698 dnl If it does, we must link with thread support.
1699 AC_CACHE_CHECK([for thread specific h_errno],
1700 [ol_cv_h_errno_thread_specific], [
1701 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])
1704 if test $ol_cv_errno_thread_specific != yes ||
1705 test $ol_cv_h_errno_thread_specific != yes ; then
1706 LIBS="$LTHREAD_LIBS $LIBS"
1710 dnl When in thread environment, use
1711 dnl #if defined( HAVE_REENTRANT_FUNCTIONS ) || defined( HAVE_FUNC_R )
1714 dnl # if defined( HAVE_THREADS )
1718 dnl # if defined( HAVE_THREADS )
1723 dnl HAVE_REENTRANT_FUNCTIONS is derived from:
1724 dnl _POSIX_REENTRANT_FUNCTIONS
1725 dnl _POSIX_THREAD_SAFE_FUNCTIONS
1726 dnl _POSIX_THREADSAFE_FUNCTIONS
1728 dnl and is currently defined in <ldap_pvt_thread.h>
1730 dnl HAVE_THREADS is defined by <ldap_pvt_thread.h> iff -UNO_THREADS
1732 dnl libldap/*.c should only include <ldap_pvt_thread.h> iff
1733 dnl LDAP_R_COMPILE is defined. ie:
1734 dnl #ifdef LDAP_R_COMPILE
1735 dnl # include <ldap_pvt_thread.h>
1738 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
1739 dnl specifically for compiling the threadsafe version of
1740 dnl the ldap library (-lldap_r).
1742 dnl dnl check for reentrant/threadsafe functions
1744 dnl dnl note: these should only be used when linking
1745 dnl dnl with $LTHREAD_LIBS
1747 dnl save_CPPFLAGS="$CPPFLAGS"
1748 dnl save_LIBS="$LIBS"
1749 dnl LIBS="$LTHREAD_LIBS $LIBS"
1750 dnl AC_CHECK_FUNCS( \
1752 dnl gethostbyaddr_r gethostbyname_r \
1753 dnl feof_unlocked unlocked_feof \
1754 dnl putc_unlocked unlocked_putc \
1755 dnl flockfile ftrylockfile \
1757 dnl CPPFLAGS="$save_CPPFLAGS"
1758 dnl LIBS="$save_LIBS"
1761 if test $ol_link_threads = no ; then
1762 if test $ol_with_threads = yes ; then
1763 AC_MSG_ERROR([no suitable thread support])
1766 if test $ol_with_threads = auto ; then
1767 AC_MSG_WARN([no suitable thread support, disabling threads])
1771 AC_DEFINE(NO_THREADS,1,
1772 [define if you have (or want) no threads])
1779 if test $ol_link_threads != no ; then
1780 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1,
1781 [define to 1 if library is thread safe])
1784 dnl ----------------------------------------------------------------
1785 dnl Tests for reentrant functions necessary to build -lldap_r
1788 gethostbyname_r gethostbyaddr_r \
1791 if test "$ac_cv_func_ctime_r" = no ; then
1792 ol_cv_func_ctime_r_nargs=0
1794 OL_FUNC_CTIME_R_NARGS
1795 dnl OL_FUNC_CTIME_R_TYPE
1798 if test "$ac_cv_func_gethostbyname_r" = yes ; then
1799 OL_FUNC_GETHOSTBYNAME_R_NARGS
1801 ol_cv_func_gethostbyname_r_nargs=0
1804 if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
1805 OL_FUNC_GETHOSTBYADDR_R_NARGS
1807 ol_cv_func_gethostbyaddr_r_nargs=0
1810 dnl ----------------------------------------------------------------
1813 if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
1816 if test $ol_cv_berkeley_db = no ; then
1817 AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
1820 AC_DEFINE(HAVE_BERKELEY_DB,1,
1821 [define this if Berkeley DB is available])
1823 dnl $ol_cv_lib_db should be yes or -ldb
1824 dnl (it could be no, but that would be an error
1825 if test $ol_cv_lib_db != yes ; then
1826 BDB_LIBS="$BDB_LIBS $ol_cv_lib_db"
1831 if test $ol_cv_bdb_compat != yes ; then
1832 AC_MSG_ERROR([BDB/HDB: BerkeleyDB version incompatible])
1835 SLAPD_LIBS="$SLAPD_LIBS \$(BDB_LIBS)"
1840 dnl ----------------------------------------------------------------
1842 if test $ol_enable_dynamic = yes && test $enable_shared = yes ; then
1843 BUILD_LIBS_DYNAMIC=shared
1844 AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
1847 BUILD_LIBS_DYNAMIC=static
1850 AC_SUBST(LTSTATIC)dnl
1852 dnl ----------------------------------------------------------------
1853 if test $ol_enable_wrappers != no ; then
1854 AC_CHECK_HEADERS(tcpd.h,[
1855 AC_MSG_CHECKING([for TCP wrappers library])
1858 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1860 int allow_severity = 0;
1861 int deny_severity = 0;
1863 struct request_info *req;
1866 ]])],[AC_MSG_RESULT([-lwrap])
1868 LIBS="$save_LIBS"],[
1873 int allow_severity = 0;
1874 int deny_severity = 0;
1876 struct request_info *req;
1879 ],[AC_MSG_RESULT([-lwrap -lnsl])
1881 LIBS="$save_LIBS -lnsl"],[
1884 LIBS=$save_LIBS])])],[have_wrappers=no])
1886 if test $have_wrappers = yes ; then
1887 AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
1889 elif test $ol_enable_wrappers = yes ; then
1890 AC_MSG_ERROR([could not find TCP wrappers, select apppropriate options or disable])
1892 AC_MSG_WARN([could not find TCP wrappers, support disabled])
1897 dnl ----------------------------------------------------------------
1898 if test $ol_enable_syslog != no ; then
1899 AC_CHECK_FUNC(openlog)
1900 if test $ac_cv_func_openlog = no && test $ol_enable_syslog = yes; then
1901 AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
1903 ol_enable_syslog=$ac_cv_func_openlog
1906 dnl ----------------------------------------------------------------
1909 if test $ol_enable_sql != no ; then
1910 AC_CHECK_HEADERS(sql.h sqlext.h,[],[
1911 AC_MSG_ERROR([could not locate SQL headers])
1915 LIBS="$LTHREAD_LIBS"
1917 if test $ol_with_odbc = auto ; then
1918 ol_with_odbc="iodbc unixodbc"
1921 for odbc in $ol_with_odbc ; do
1922 if test $ol_link_sql = no ; then
1925 AC_CHECK_LIB(iodbc, SQLDriverConnect, [have_iodbc=yes], [have_iodbc=no])
1926 if test $have_iodbc = yes ; then
1927 ol_link_sql="-liodbc"
1932 AC_CHECK_LIB(odbc, SQLDriverConnect, [have_odbc=yes], [have_odbc=no])
1933 if test $have_odbc = yes ; then
1934 ol_link_sql="-lodbc"
1939 AC_MSG_ERROR([unknown ODBC library])
1947 if test $ol_link_sql != no ; then
1948 SLAPD_SQL_LIBS="$ol_link_sql"
1950 elif test $ol_enable_sql != auto ; then
1951 AC_MSG_ERROR([could not locate suitable ODBC library])
1955 dnl ----------------------------------------------------------------
1956 dnl International Components for Unicode
1958 if test "$ol_icu" = no ; then
1959 AC_MSG_WARN([ICU not available])
1963 dnl ----------------------------------------------------------------
1965 dnl Check for Cyrus SASL
1970 if test $ol_with_cyrus_sasl != no ; then
1971 AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
1973 if test $ac_cv_header_sasl_sasl_h = yes ||
1974 test $ac_cv_header_sasl_h = yes; then
1975 AC_CHECK_LIB(sasl2, sasl_client_init,
1976 [ol_link_sasl="-lsasl2"],
1977 [AC_CHECK_LIB(sasl, sasl_client_init,
1978 [ol_link_sasl="-lsasl"])])
1981 if test $ol_link_sasl = no ; then
1982 if test $ol_with_cyrus_sasl != auto ; then
1983 AC_MSG_ERROR([Could not locate Cyrus SASL])
1985 AC_MSG_WARN([Could not locate Cyrus SASL])
1986 AC_MSG_WARN([SASL authentication not supported!])
1987 if test $ol_link_tls = no ; then
1988 AC_MSG_WARN([Strong authentication not supported!])
1993 if test $ol_cv_sasl_compat = no ; then
1995 AC_MSG_ERROR([Cyrus SASL library located but is incompatible])
1998 AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
1999 SASL_LIBS="$ol_link_sasl"
2000 if test $ol_enable_spasswd != no ; then
2004 ac_save_LIBS="$LIBS"
2005 LIBS="$LIBS $ol_link_sasl"
2006 AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1,
2007 [define if your SASL library has sasl_version()])])
2008 LIBS="$ac_save_LIBS"
2014 AC_MSG_WARN([SASL authentication not supported!])
2015 if test $ol_link_tls = no ; then
2016 AC_MSG_WARN([Strong authentication not supported!])
2020 dnl ----------------------------------------------------------------
2021 dnl Check for entropy sources
2022 if test $cross_compiling != yes && test "$ac_cv_mingw32" != yes ; then
2024 if test -r /dev/urandom ; then
2026 elif test -r /idev/urandom ; then
2027 dev="/idev/urandom";
2028 elif test -r /dev/srandom ; then
2030 elif test -r /dev/random ; then
2032 elif test -r /idev/random ; then
2036 if test $dev != no ; then
2037 AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
2041 dnl ----------------------------------------------------------------
2043 dnl Check for fetch URL support
2044 dnl should be extended to support other fetch URL APIs
2047 if test $ol_with_fetch != no ; then
2050 if test $ol_cv_lib_fetch != no ; then
2051 LUTIL_LIBS="$LUTIL_LIBS $ol_link_fetch"
2052 ol_link_fetch=freebsd
2054 elif test $ol_with_fetch != auto ; then
2055 AC_MSG_ERROR(no suitable API for --with-fetch=$ol_with_fetch)
2059 dnl ----------------------------------------------------------------
2060 dnl FreeBSD (and others) have crypt(3) in -lcrypt
2061 if test $ol_enable_crypt != no ; then
2063 LIBS="$TLS_LIBS $LIBS"
2065 AC_CHECK_FUNC(crypt, [have_crypt=yes], [
2067 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
2068 have_crypt=yes], [have_crypt=no])])
2072 if test $have_crypt = yes ; then
2073 AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
2075 AC_MSG_WARN([could not find crypt])
2076 if test $ol_enable_crypt = yes ; then
2077 AC_MSG_ERROR([could not find crypt, select appropriate options or disable])
2080 AC_MSG_WARN([disabling crypt support])
2085 dnl ----------------------------------------------------------------
2086 dnl FreeBSD (and others) have setproctitle(3) in -lutil
2087 if test $ol_enable_proctitle != no ; then
2088 AC_CHECK_FUNC(setproctitle, [have_setproctitle=yes], [
2089 AC_CHECK_LIB(util, setproctitle,
2090 [have_setproctitle=yes
2091 LUTIL_LIBS="$LUTIL_LIBS -lutil"],
2092 [have_setproctitle=no
2093 AC_LIBOBJ(setproctitle)
2094 LIBSRCS="$LIBSRCS setproctitle.c"])])
2096 if test $have_setproctitle = yes ; then
2097 AC_DEFINE(HAVE_SETPROCTITLE,1,
2098 [define if setproctitle(3) is available])
2102 dnl ----------------------------------------------------------------
2103 if test $ol_enable_slp != no ; then
2104 AC_CHECK_HEADERS( slp.h )
2106 if test $ac_cv_header_slp_h = yes ; then
2107 AC_CHECK_LIB(slp, SLPOpen, [have_slp=yes], [have_slp=no])
2108 if test $have_slp = yes ; then
2109 AC_DEFINE(HAVE_SLP, 1, [define if you have -lslp])
2110 SLAPD_SLP_LIBS=-lslp
2113 elif test $ol_enable_slp = yes ; then
2114 AC_MSG_ERROR([SLP not found])
2118 dnl ----------------------------------------------------------------
2119 dnl Checks for typedefs, structures, and compiler characteristics.
2121 AC_CHECK_TYPE(mode_t, int)
2122 AC_CHECK_TYPE(off_t, long)
2123 AC_CHECK_TYPE(pid_t, int)
2124 AC_CHECK_TYPE(ssize_t, [signed int])
2125 AC_CHECK_TYPE(caddr_t, [char *])
2126 AC_CHECK_TYPE(size_t, unsigned)
2128 AC_CHECK_TYPES([long long])
2129 AC_CHECK_TYPES([ptrdiff_t])
2131 AC_CHECK_TYPE([socklen_t],,
2132 [AC_DEFINE_UNQUOTED([socklen_t], [int],
2133 [Define to `int' if <sys/socket.h> does not define.])],
2134 [$ac_includes_default
2135 #ifdef HAVE_SYS_SOCKET_H
2136 #include <sys/socket.h>
2142 AC_CHECK_TYPE([sig_atomic_t],,
2143 [AC_DEFINE_UNQUOTED([sig_atomic_t], [int],
2144 [Define to `int' if <signal.h> does not define.])],
2145 [$ac_includes_default
2153 AC_CHECK_MEMBERS([struct stat.st_blksize])
2154 AC_CHECK_MEMBERS([struct passwd.pw_gecos],,,[$ac_includes_default
2156 AC_CHECK_MEMBERS([struct passwd.pw_passwd],,,[$ac_includes_default
2163 if test $cross_compiling = yes ; then
2164 AC_MSG_WARN([Crossing compiling... all bets are off!])
2165 AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
2170 AC_CHECK_SIZEOF(short)
2171 AC_CHECK_SIZEOF(int)
2172 AC_CHECK_SIZEOF(long)
2173 AC_CHECK_SIZEOF(long long)
2174 AC_CHECK_SIZEOF(wchar_t)
2176 if test "$ac_cv_sizeof_int" -lt 4 ; then
2177 AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
2179 AC_DEFINE(LBER_INT_T,long,[define to 32-bit or greater integer type])
2181 AC_DEFINE(LBER_INT_T,int,[define to 32-bit or greater integer type])
2184 AC_DEFINE(LBER_LEN_T,long,[define to large integer type])
2185 AC_DEFINE(LBER_SOCKET_T,int,[define to socket descriptor type])
2186 AC_DEFINE(LBER_TAG_T,long,[define to large integer type])
2188 dnl ----------------------------------------------------------------
2189 dnl Check for multiple precision support
2190 if test $ol_with_mp = longlong || test $ol_with_mp = auto ; then
2191 if test $ac_cv_sizeof_long_long -gt 4 ; then
2193 AC_DEFINE(USE_MP_LONG_LONG,1,[define to use 'long long' for MP])
2194 elif test $ol_with_mp = longlong ; then
2195 AC_MSG_ERROR([long long unusable for multiple precision])
2198 if test $ol_with_mp = long || test $ol_with_mp = auto ; then
2199 if test $ac_cv_sizeof_long -gt 4 ; then
2201 AC_DEFINE(USE_MP_LONG,1,[define to use 'long' for MP])
2202 elif test $ol_with_mp = long ; then
2203 AC_MSG_ERROR([long unusable for multiple precision])
2206 if test $ol_with_mp = bignum || test $ol_with_mp = auto ; then
2207 AC_CHECK_HEADERS(openssl/bn.h)
2208 AC_CHECK_HEADERS(openssl/crypto.h)
2209 if test "$ac_cv_header_openssl_bn_h" = "yes" &&
2210 test "$ac_cv_header_openssl_crypto_h" = "yes" &&
2211 test "$ol_with_tls" = "found" ; then
2213 AC_DEFINE(USE_MP_BIGNUM,1,[define to use OpenSSL BIGNUM for MP])
2214 elif test $ol_with_mp = bignum ; then
2215 AC_MSG_ERROR([bignum not available])
2218 if test $ol_with_mp = gmp || test $ol_with_mp = auto ; then
2219 AC_CHECK_HEADERS(gmp.h)
2220 AC_CHECK_LIB(gmp, __gmpz_add_ui)
2221 if test $ac_cv_header_gmp_h = yes && test $ac_cv_lib_gmp___gmpz_add_ui = yes ; then
2222 AC_DEFINE(USE_MP_GMP,1,[define to use GMP for MP])
2224 elif test $ol_with_mp = gmp ; then
2225 AC_MSG_ERROR([gmp not available])
2228 if test $ol_with_mp = auto ; then
2232 dnl ----------------------------------------------------------------
2233 dnl Checks for library functions.
2236 if test $ac_cv_func_memcmp_working = no ; then
2237 AC_DEFINE(NEED_MEMCMP_REPLACEMENT,1,
2238 [define if memcmp is not 8-bit clean or is otherwise broken])
2245 dnl Check for NT specific routines
2246 AC_CHECK_FUNC(_spawnlp, AC_DEFINE(HAVE_SPAWNLP,1,[if you have spawnlp()]))
2248 AC_CHECK_FUNC(_snprintf, [ac_cv_func_snprintf=yes
2249 AC_DEFINE(snprintf, _snprintf, [define to snprintf routine])
2252 AC_CHECK_FUNC(_vsnprintf, [ac_cv_func_vsnprintf=yes
2253 AC_DEFINE(vsnprintf, _vsnprintf, [define to vsnprintf routine])
2258 if test $ac_cv_func_vprintf = yes ; then
2259 dnl check for vsnprintf
2260 AC_CHECK_FUNCS(snprintf vsnprintf)
2321 dnl We actually may need to replace more than this.
2322 AC_REPLACE_FUNCS(getopt getpeereid)
2324 if test "$ac_cv_func_getopt" != yes; then
2325 LIBSRCS="$LIBSRCS getopt.c"
2328 if test "$ac_cv_func_getpeereid" != yes; then
2329 AC_CHECK_FUNCS( getpeerucred )
2330 if test "$ac_cv_func_getpeerucred" != yes ; then
2331 AC_CHECK_MEMBERS([struct msghdr.msg_accrightslen],,,
2332 [$ac_includes_default
2333 #ifdef HAVE_SYS_SOCKET_H
2334 #include <sys/socket.h>
2336 if test "$ac_cv_member_struct_msghdr_msg_accrightslen" != yes; then
2337 AC_CHECK_MEMBERS([struct msghdr.msg_control],,,
2338 [$ac_includes_default
2339 #ifdef HAVE_SYS_SOCKET_H
2340 #include <sys/socket.h>
2343 AC_CHECK_MEMBERS([struct stat.st_fstype, struct stat.st_vfstype])
2344 if test "$ac_cv_member_struct_stat_st_fstype" = yes; then
2345 AC_COMPILE_IFELSE([struct stat st; char *ptr=st.st_fstype;],
2346 AC_DEFINE([HAVE_STRUCT_STAT_ST_FSTYPE_CHAR],1,[define to 1 if st_fstype is char *]),
2347 AC_DEFINE([HAVE_STRUCT_STAT_ST_FSTYPE_INT],1,[define to 1 if st_fstype is int]))
2350 LIBSRCS="$LIBSRCS getpeereid.c"
2353 if test "$ac_cv_func_snprintf" != yes ||
2354 test "$ac_cv_func_vsnprintf" != yes; then
2355 if test "$ac_cv_func_snprintf" != yes; then
2356 AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
2358 if test "$ac_cv_func_vsnprintf" != yes; then
2359 AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine])
2363 dnl ----------------------------------------------------------------
2364 dnl Sort out defines
2366 if test "$ol_enable_slapi" != no ; then
2367 dnl This check is done also if --enable-modules is used;
2368 dnl it is duplicated here, 'cause it'd be cached anyway
2369 AC_CHECK_HEADERS(ltdl.h)
2371 if test $ac_cv_header_ltdl_h != yes ; then
2372 AC_MSG_ERROR([could not locate <ltdl.h>])
2374 AC_CHECK_LIB(ltdl, lt_dlinit, [
2377 LIBSLAPITOOLS=../libslapi.a
2378 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
2379 ],[AC_MSG_ERROR([could not locate libtool -lltdl])])
2381 AC_DEFINE(LDAP_SLAPI,1, [define this to add SLAPI code])
2384 if test "$ol_enable_debug" != no ; then
2385 if test "$ol_enable_debug" = traditional; then
2386 AC_DEFINE(OLD_DEBUG,1,
2387 [define to use the original debug style])
2389 AC_DEFINE(LDAP_DEBUG,1,
2390 [define this to add debugging code])
2392 if test "$ol_enable_syslog" = yes ; then
2393 AC_DEFINE(LDAP_SYSLOG,1,
2394 [define this to add syslog code])
2396 if test "$ol_enable_proctitle" != no ; then
2397 AC_DEFINE(LDAP_PROCTITLE,1,
2398 [define this for LDAP process title support])
2400 if test "$ol_enable_referrals" != no ; then
2401 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION,
2402 [define to LDAP VENDOR VERSION])
2404 if test "$ol_enable_local" != no; then
2405 AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
2407 if test "$ol_link_ipv6" != no; then
2408 AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
2410 if test "$ol_enable_cleartext" != no ; then
2411 AC_DEFINE(SLAPD_CLEARTEXT,1,[define to support cleartext passwords])
2413 if test "$ol_enable_crypt" != no ; then
2414 AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords])
2416 if test "$ol_link_spasswd" != no ; then
2417 AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
2419 if test "$ol_enable_rlookups" != no ; then
2420 AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
2422 if test "$ol_enable_aci" != no ; then
2423 if test $ol_enable_dynacl = no ; then
2424 ol_enable_dynacl=yes
2425 AC_MSG_WARN([ACIs need dynacl])
2427 if test "$ol_enable_aci" = mod ; then
2428 MFLAG=SLAPD_MOD_DYNAMIC
2429 dnl remove this after moving servers/slapd/aci.c in contrib/slapd-modules/acl
2430 AC_MSG_ERROR([ACI build as dynamic module not supported (yet)])
2432 MFLAG=SLAPD_MOD_STATIC
2434 WITH_ACI_ENABLED=$ol_enable_aci
2435 AC_DEFINE_UNQUOTED(SLAPD_ACI_ENABLED,$MFLAG,[define to support per-object ACIs])
2439 if test "$ol_enable_dynacl" != no ; then
2440 AC_DEFINE(SLAP_DYNACL,1,[define to support run-time loadable ACL])
2443 if test "$ol_link_modules" != no ; then
2444 AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
2446 SLAPD_MODULES_LDFLAGS="-dlopen self"
2449 AC_DEFINE(SLAPD_MOD_STATIC,1,[statically linked module])
2450 AC_DEFINE(SLAPD_MOD_DYNAMIC,2,[dynamically linked module])
2452 dnl back-monitor goes first (well, after back-config)
2453 if test "$ol_enable_monitor" != no ; then
2455 BUILD_MONITOR=$ol_enable_monitor
2456 if test "$ol_enable_monitor" = mod ; then
2457 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
2458 MFLAG=SLAPD_MOD_DYNAMIC
2460 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
2461 MFLAG=SLAPD_MOD_STATIC
2463 AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
2466 if test "$ol_enable_bdb" != no ; then
2468 BUILD_BDB=$ol_enable_bdb
2469 if test "$ol_enable_bdb" = mod ; then
2470 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
2471 MFLAG=SLAPD_MOD_DYNAMIC
2473 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
2474 MFLAG=SLAPD_MOD_STATIC
2476 AC_DEFINE_UNQUOTED(SLAPD_BDB,$MFLAG,[define to support BDB backend])
2479 if test "$ol_enable_dnssrv" != no ; then
2481 BUILD_DNSSRV=$ol_enable_dnssrv
2482 if test "$ol_enable_dnssrv" = mod ; then
2483 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
2484 MFLAG=SLAPD_MOD_DYNAMIC
2486 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
2487 MFLAG=SLAPD_MOD_STATIC
2489 AC_DEFINE_UNQUOTED(SLAPD_DNSSRV,$MFLAG,[define to support DNS SRV backend])
2492 if test "$ol_enable_hdb" != no ; then
2494 BUILD_HDB=$ol_enable_hdb
2495 if test "$ol_enable_hdb" = mod ; then
2496 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-hdb"
2497 MFLAG=SLAPD_MOD_DYNAMIC
2499 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb"
2500 MFLAG=SLAPD_MOD_STATIC
2502 AC_DEFINE_UNQUOTED(SLAPD_HDB,$MFLAG,[define to support HDB backend])
2505 if test "$ol_enable_ldap" != no ; then
2507 BUILD_LDAP=$ol_enable_ldap
2508 if test "$ol_enable_ldap" = mod ; then
2509 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
2510 MFLAG=SLAPD_MOD_DYNAMIC
2512 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
2513 MFLAG=SLAPD_MOD_STATIC
2515 AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
2518 if test "$ol_enable_meta" != no ; then
2520 BUILD_META=$ol_enable_meta
2522 if test "$ol_enable_meta" = mod ; then
2523 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
2524 MFLAG=SLAPD_MOD_DYNAMIC
2526 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
2527 MFLAG=SLAPD_MOD_STATIC
2529 AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
2532 if test "$ol_enable_null" != no ; then
2534 BUILD_NULL=$ol_enable_null
2535 if test "$ol_enable_null" = mod ; then
2536 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
2537 MFLAG=SLAPD_MOD_DYNAMIC
2539 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
2540 MFLAG=SLAPD_MOD_STATIC
2542 AC_DEFINE_UNQUOTED(SLAPD_NULL,$MFLAG,[define to support NULL backend])
2545 if test "$ol_enable_passwd" != no ; then
2547 BUILD_PASSWD=$ol_enable_passwd
2548 if test "$ol_enable_passwd" = mod ; then
2549 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
2550 MFLAG=SLAPD_MOD_DYNAMIC
2552 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
2553 MFLAG=SLAPD_MOD_STATIC
2555 AC_DEFINE_UNQUOTED(SLAPD_PASSWD,$MFLAG,[define to support PASSWD backend])
2558 if test "$ol_link_perl" != no ; then
2560 BUILD_PERL=$ol_enable_perl
2561 if test "$ol_enable_perl" = mod ; then
2562 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
2563 MFLAG=SLAPD_MOD_DYNAMIC
2565 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
2566 MFLAG=SLAPD_MOD_STATIC
2568 AC_DEFINE_UNQUOTED(SLAPD_PERL,$MFLAG,[define to support PERL backend])
2571 if test "$ol_enable_relay" != no ; then
2573 BUILD_RELAY=$ol_enable_relay
2574 if test "$ol_enable_relay" = mod ; then
2575 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-relay"
2576 MFLAG=SLAPD_MOD_DYNAMIC
2578 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-relay"
2579 MFLAG=SLAPD_MOD_STATIC
2581 AC_DEFINE_UNQUOTED(SLAPD_RELAY,$MFLAG,[define to support relay backend])
2584 if test "$ol_enable_shell" != no ; then
2585 if test "$ol_link_threads" != no ; then
2586 AC_MSG_WARN([Use of --without-threads is recommended with back-shell])
2589 BUILD_SHELL=$ol_enable_shell
2590 if test "$ol_enable_shell" = mod ; then
2591 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
2592 MFLAG=SLAPD_MOD_DYNAMIC
2594 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
2595 MFLAG=SLAPD_MOD_STATIC
2597 AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend])
2600 if test "$ol_link_sql" != no ; then
2602 BUILD_SQL=$ol_enable_sql
2603 if test "$ol_enable_sql" = mod; then
2604 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
2605 MFLAG=SLAPD_MOD_DYNAMIC
2607 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
2608 MFLAG=SLAPD_MOD_STATIC
2610 AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend])
2613 if test "$ol_enable_accesslog" != no ; then
2614 BUILD_ACCESSLOG=$ol_enable_accesslog
2615 if test "$ol_enable_accesslog" = mod ; then
2616 MFLAG=SLAPD_MOD_DYNAMIC
2617 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS accesslog.la"
2619 MFLAG=SLAPD_MOD_STATIC
2620 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS accesslog.o"
2622 AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay])
2625 if test "$ol_enable_auditlog" != no ; then
2626 BUILD_AUDITLOG=$ol_enable_auditlog
2627 if test "$ol_enable_auditlog" = mod ; then
2628 MFLAG=SLAPD_MOD_DYNAMIC
2629 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS auditlog.la"
2631 MFLAG=SLAPD_MOD_STATIC
2632 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS auditlog.o"
2634 AC_DEFINE_UNQUOTED(SLAPD_OVER_AUDITLOG,$MFLAG,[define for Audit Logging overlay])
2637 if test "$ol_enable_constraint" != no ; then
2638 BUILD_CONSTRAINT=$ol_enable_constraint
2639 if test "$ol_enable_constraint" = mod ; then
2640 MFLAG=SLAPD_MOD_DYNAMIC
2641 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS constraint.la"
2643 MFLAG=SLAPD_MOD_STATIC
2644 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS constraint.o"
2646 AC_DEFINE_UNQUOTED(SLAPD_OVER_CONSTRAINT,$MFLAG,[define for Attribute Constraint overlay])
2649 if test "$ol_enable_dds" != no ; then
2650 BUILD_DDS=$ol_enable_dds
2651 if test "$ol_enable_dds" = mod ; then
2652 MFLAG=SLAPD_MOD_DYNAMIC
2653 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dds.la"
2655 MFLAG=SLAPD_MOD_STATIC
2656 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dds.o"
2658 AC_DEFINE_UNQUOTED(SLAPD_OVER_DDS,$MFLAG,[define for Dynamic Directory Services overlay])
2661 if test "$ol_enable_dyngroup" != no ; then
2662 BUILD_DYNGROUP=$ol_enable_dyngroup
2663 if test "$ol_enable_dyngroup" = mod ; then
2664 MFLAG=SLAPD_MOD_DYNAMIC
2665 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dyngroup.la"
2667 MFLAG=SLAPD_MOD_STATIC
2668 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dyngroup.o"
2670 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay])
2673 if test "$ol_enable_dynlist" != no ; then
2674 BUILD_DYNLIST=$ol_enable_dynlist
2675 if test "$ol_enable_dynlist" = mod ; then
2676 MFLAG=SLAPD_MOD_DYNAMIC
2677 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dynlist.la"
2679 MFLAG=SLAPD_MOD_STATIC
2680 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dynlist.o"
2682 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNLIST,$MFLAG,[define for Dynamic List overlay])
2685 if test "$ol_enable_ppolicy" != no ; then
2686 BUILD_PPOLICY=$ol_enable_ppolicy
2687 if test "$ol_enable_ppolicy" = mod ; then
2688 MFLAG=SLAPD_MOD_DYNAMIC
2689 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS ppolicy.la"
2691 MFLAG=SLAPD_MOD_STATIC
2692 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS ppolicy.o"
2694 AC_DEFINE_UNQUOTED(SLAPD_OVER_PPOLICY,$MFLAG,[define for Password Policy overlay])
2697 if test "$ol_enable_proxycache" != no ; then
2698 BUILD_PROXYCACHE=$ol_enable_proxycache
2699 if test "$ol_enable_proxycache" = mod ; then
2700 MFLAG=SLAPD_MOD_DYNAMIC
2701 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS pcache.la"
2703 MFLAG=SLAPD_MOD_STATIC
2704 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS pcache.o"
2706 AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay])
2709 if test "$ol_enable_refint" != no ; then
2710 BUILD_REFINT=$ol_enable_refint
2711 if test "$ol_enable_refint" = mod ; then
2712 MFLAG=SLAPD_MOD_DYNAMIC
2713 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la"
2715 MFLAG=SLAPD_MOD_STATIC
2716 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS refint.o"
2718 AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay])
2721 if test "$ol_enable_retcode" != no ; then
2722 BUILD_RETCODE=$ol_enable_retcode
2723 if test "$ol_enable_retcode" = mod ; then
2724 MFLAG=SLAPD_MOD_DYNAMIC
2725 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS retcode.la"
2727 MFLAG=SLAPD_MOD_STATIC
2728 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS retcode.o"
2730 AC_DEFINE_UNQUOTED(SLAPD_OVER_RETCODE,$MFLAG,[define for Referential Integrity overlay])
2733 if test "$ol_enable_rwm" != no ; then
2735 BUILD_RWM=$ol_enable_rwm
2736 if test "$ol_enable_rwm" = mod ; then
2737 MFLAG=SLAPD_MOD_DYNAMIC
2738 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS rwm.la"
2740 MFLAG=SLAPD_MOD_STATIC
2741 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS rwm_x.o"
2743 AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
2746 if test "$ol_enable_seqmod" != no ; then
2747 BUILD_SEQMOD=$ol_enable_seqmod
2748 if test "$ol_enable_seqmod" = mod ; then
2749 MFLAG=SLAPD_MOD_DYNAMIC
2750 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS seqmod.la"
2752 MFLAG=SLAPD_MOD_STATIC
2753 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS seqmod.o"
2755 AC_DEFINE_UNQUOTED(SLAPD_OVER_SEQMOD,$MFLAG,[define for Sequential Modify overlay])
2758 if test "$ol_enable_syncprov" != no ; then
2759 BUILD_SYNCPROV=$ol_enable_syncprov
2760 if test "$ol_enable_syncprov" = mod ; then
2761 MFLAG=SLAPD_MOD_DYNAMIC
2762 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS syncprov.la"
2764 MFLAG=SLAPD_MOD_STATIC
2765 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS syncprov.o"
2767 AC_DEFINE_UNQUOTED(SLAPD_OVER_SYNCPROV,$MFLAG,[define for Syncrepl Provider overlay])
2770 if test "$ol_enable_translucent" != no ; then
2771 BUILD_TRANSLUCENT=$ol_enable_translucent
2772 if test "$ol_enable_translucent" = mod ; then
2773 MFLAG=SLAPD_MOD_DYNAMIC
2774 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS translucent.la"
2776 MFLAG=SLAPD_MOD_STATIC
2777 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS translucent.o"
2779 AC_DEFINE_UNQUOTED(SLAPD_OVER_TRANSLUCENT,$MFLAG,[define for Translucent Proxy overlay])
2782 if test "$ol_enable_unique" != no ; then
2783 BUILD_UNIQUE=$ol_enable_unique
2784 if test "$ol_enable_unique" = mod ; then
2785 MFLAG=SLAPD_MOD_DYNAMIC
2786 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la"
2788 MFLAG=SLAPD_MOD_STATIC
2789 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS unique.o"
2791 AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay])
2794 if test "$ol_enable_valsort" != no ; then
2795 BUILD_VALSORT=$ol_enable_valsort
2796 if test "$ol_enable_valsort" = mod ; then
2797 MFLAG=SLAPD_MOD_DYNAMIC
2798 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS valsort.la"
2800 MFLAG=SLAPD_MOD_STATIC
2801 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS valsort.o"
2803 AC_DEFINE_UNQUOTED(SLAPD_OVER_VALSORT,$MFLAG,[define for Value Sorting overlay])
2806 if test "$ol_enable_rewrite" != no ; then
2807 AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta])
2811 if test "$ol_enable_slapi" != no ; then
2812 AC_DEFINE(ENABLE_SLAPI,1,[define to enable slapi library])
2814 SLAPD_SLAPI_DEPEND=libslapi.a
2817 dnl ----------------------------------------------------------------
2820 dnl For Windows build, we don't want to include -dlopen flags.
2821 dnl They hurt more than they help.
2824 if test "$ac_cv_mingw32" = yes ; then
2826 SLAPD_MODULES_LDFLAGS=
2835 AC_SUBST(WITH_MODULES_ENABLED)
2836 AC_SUBST(WITH_ACI_ENABLED)
2837 AC_SUBST(BUILD_THREAD)
2838 AC_SUBST(BUILD_LIBS_DYNAMIC)
2840 AC_SUBST(BUILD_SLAPD)
2842 AC_SUBST(BUILD_SLAPI)
2843 AC_SUBST(SLAPD_SLAPI_DEPEND)
2846 AC_SUBST(BUILD_DNSSRV)
2848 AC_SUBST(BUILD_LDAP)
2849 AC_SUBST(BUILD_META)
2850 AC_SUBST(BUILD_MONITOR)
2851 AC_SUBST(BUILD_NULL)
2852 AC_SUBST(BUILD_PASSWD)
2853 AC_SUBST(BUILD_RELAY)
2854 AC_SUBST(BUILD_PERL)
2855 AC_SUBST(BUILD_SHELL)
2858 AC_SUBST(BUILD_ACCESSLOG)
2859 AC_SUBST(BUILD_AUDITLOG)
2860 AC_SUBST(BUILD_CONSTRAINT)
2862 AC_SUBST(BUILD_DENYOP)
2863 AC_SUBST(BUILD_DYNGROUP)
2864 AC_SUBST(BUILD_DYNLIST)
2865 AC_SUBST(BUILD_LASTMOD)
2866 AC_SUBST(BUILD_PPOLICY)
2867 AC_SUBST(BUILD_PROXYCACHE)
2868 AC_SUBST(BUILD_REFINT)
2869 AC_SUBST(BUILD_RETCODE)
2871 AC_SUBST(BUILD_SEQMOD)
2872 AC_SUBST(BUILD_SYNCPROV)
2873 AC_SUBST(BUILD_TRANSLUCENT)
2874 AC_SUBST(BUILD_UNIQUE)
2875 AC_SUBST(BUILD_VALSORT)
2878 AC_SUBST(SLAPD_LIBS)
2880 AC_SUBST(LTHREAD_LIBS)
2881 AC_SUBST(LUTIL_LIBS)
2884 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
2885 AC_SUBST(SLAPD_MODULES_LDFLAGS)
2887 AC_SUBST(SLAPD_NO_STATIC)
2888 AC_SUBST(SLAPD_STATIC_BACKENDS)
2889 AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
2890 AC_SUBST(SLAPD_STATIC_OVERLAYS)
2891 AC_SUBST(SLAPD_DYNAMIC_OVERLAYS)
2893 AC_SUBST(PERL_CPPFLAGS)
2894 AC_SUBST(SLAPD_PERL_LDFLAGS)
2895 AC_SUBST(MOD_PERL_LDFLAGS)
2901 AC_SUBST(MODULES_LIBS)
2902 AC_SUBST(SLAPI_LIBS)
2904 AC_SUBST(LIBSLAPITOOLS)
2908 AC_SUBST(SLAPD_SLP_LIBS)
2909 AC_SUBST(SLAPD_GMP_LIBS)
2911 AC_SUBST(SLAPD_SQL_LDFLAGS)
2912 AC_SUBST(SLAPD_SQL_LIBS)
2913 AC_SUBST(SLAPD_SQL_INCLUDES)
2915 dnl ----------------------------------------------------------------
2916 dnl final help output
2917 AC_ARG_WITH(xxinstall,[
2918 See INSTALL file for further details.])
2920 dnl ----------------------------------------------------------------
2924 AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.mk]
2925 [doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk]
2926 [doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk]
2927 [doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk]
2928 [doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk]
2929 [doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk]
2930 [doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk]
2931 [clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk]
2932 [clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk]
2933 [include/Makefile:build/top.mk:include/Makefile.in]
2934 [libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk]
2935 [libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk]
2936 [libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk]
2937 [libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk]
2938 [libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk]
2939 [libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk]
2940 [libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk]
2941 [servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk]
2942 [servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk]
2943 [servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk]
2944 [servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk]
2945 [servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk]
2946 [servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk]
2947 [servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk]
2948 [servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk]
2949 [servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk]
2950 [servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk]
2951 [servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk]
2952 [servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk]
2953 [servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk]
2954 [servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk]
2955 [servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk]
2956 [servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk]
2957 [servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk]
2958 [servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk]
2959 [tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk]
2961 [tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk])
2963 AC_CONFIG_COMMANDS([default],[[
2966 BACKENDSC="servers/slapd/backends.c"
2967 echo "Making $BACKENDSC"
2969 cat > $BACKENDSC << ENDX
2970 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
2972 * Copyright 1998-2007 The OpenLDAP Foundation.
2973 * All rights reserved.
2975 * Redistribution and use in source and binary forms, with or without
2976 * modification, are permitted only as authorized by the OpenLDAP
2979 * A copy of this license is available in the file LICENSE in the
2980 * top-level directory of the distribution or, alternatively, at
2981 * <http://www.OpenLDAP.org/license.html>.
2983 /* This file is automatically generated by configure; please do not edit. */
2985 #include "portable.h"
2989 if test "${STATIC_BACKENDS}"; then
2990 for b in config ${STATIC_BACKENDS}; do
2991 bb=`echo "${b}" | sed -e 's/back-//'`
2992 cat >> $BACKENDSC << ENDX
2993 extern BI_init ${bb}_back_initialize;
2997 cat >> $BACKENDSC << ENDX
2999 BackendInfo slap_binfo[] = {
3002 for b in config ${STATIC_BACKENDS}; do
3003 bb=`echo "${b}" | sed -e 's/back-//'`
3004 echo " Add ${bb} ..."
3005 cat >> $BACKENDSC << ENDX
3006 { "${bb}", ${bb}_back_initialize },
3010 cat >> $BACKENDSC << ENDX
3014 /* end of generated file */
3017 OVERLAYSC="servers/slapd/overlays/statover.c"
3018 echo "Making $OVERLAYSC"
3020 cat > $OVERLAYSC << ENDX
3021 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3023 * Copyright 1998-2007 The OpenLDAP Foundation.
3024 * All rights reserved.
3026 * Redistribution and use in source and binary forms, with or without
3027 * modification, are permitted only as authorized by the OpenLDAP
3030 * A copy of this license is available in the file LICENSE in the
3031 * top-level directory of the distribution or, alternatively, at
3032 * <http://www.OpenLDAP.org/license.html>.
3034 /* This file is automatically generated by configure; please do not edit. */
3036 #include "portable.h"
3040 if test "${STATIC_OVERLAYS}"; then
3041 for o in ${STATIC_OVERLAYS}; do
3042 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3043 cat >> $OVERLAYSC << ENDX
3044 extern OV_init ${oo}_initialize;
3049 cat >> $OVERLAYSC << ENDX
3051 OverlayInit slap_oinfo[] = {
3054 if test "${STATIC_OVERLAYS}"; then
3055 for o in ${STATIC_OVERLAYS}; do
3056 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3057 echo " Add ${oo} ..."
3058 cat >> $OVERLAYSC << ENDX
3059 { "${oo}", ${oo}_initialize },
3064 cat >> $OVERLAYSC << ENDX
3068 /* end of generated file */
3071 echo Please run \"make depend\" to build dependencies
3073 STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"
3074 STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS"