2 dnl This work is part of OpenLDAP Software <http://www.openldap.org/>.
4 dnl Copyright 1998-2005 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 ----------------------------------------------------------------
17 dnl Redefine AC_INIT_BINSH to provide RCS IDs and copyright notice
18 dnl at top of generated configure script. Prints simple copyright.
19 define([AC_INIT_BINSH],
22 # from] translit([$OpenLDAP$], $")] [
24 # This work is part of OpenLDAP Software <http://www.openldap.org/>.
26 # Copyright 1998-2005 The OpenLDAP Foundation.
27 # All rights reserved.
29 # Redistribution and use in source and binary forms, with or without
30 # modification, are permitted only as authorized by the OpenLDAP
33 # A copy of this license is available in the file LICENSE in the
34 # top-level directory of the distribution or, alternatively, at
35 # <http://www.OpenLDAP.org/license.html>.
37 echo "Copyright 1998-2005 The OpenLDAP Foundation. All rights reserved."
38 echo " Restrictions apply, see COPYRIGHT and LICENSE files."
40 dnl ----------------------------------------------------------------
41 dnl Disable config.cache!
42 define([AC_CACHE_LOAD], )dnl
43 define([AC_CACHE_SAVE], )dnl
44 dnl ================================================================
45 dnl Configure.in for OpenLDAP
46 AC_INIT(build/version.sh)dnl
48 # set unset (borrowed from autoconf 2.49c)
49 if (OL_FOO=OL_FOO; unset OL_FOO) >/dev/null 2>&1; then
55 $ol_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
57 AC_CONFIG_AUX_DIR(build)dnl
59 eval `$ac_aux_dir/version.sh`
60 if test -z "$OL_STRING"; then
61 AC_MSG_ERROR([could not determine version])
64 if test -f "$ac_aux_dir/shtool" -a ! -d $ac_aux_dir/shtool; then
65 ac_cv_shtool="$ac_aux_dir/shtool"
67 AC_MSG_ERROR([no shtool found in $ac_aux_dir])
70 SHTOOL="$ac_cv_shtool"
71 dnl AC_SUBST(SHTOOL)dnl
73 TB="`$SHTOOL echo -e '%B' 2>/dev/null`"
74 TN="`$SHTOOL echo -e '%b' 2>/dev/null`"
77 if test -d $ac_aux_dir/CVS; then
78 OPENLDAP_CVS="(from CVS sources) "
81 echo "Configuring ${TB}${OL_STRING}${TN} ${OPENLDAP_CVS}..."
83 dnl Determine host platform
84 dnl we try not to use this for much
87 AM_INIT_AUTOMAKE([$OL_PACKAGE],[$OL_VERSION], [no defines])dnl
90 AC_DEFINE_UNQUOTED(OPENLDAP_PACKAGE,"$PACKAGE",Package)
91 AC_DEFINE_UNQUOTED(OPENLDAP_VERSION,"$VERSION",Version)
93 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION,$OL_API_INC,Version)
94 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MAJOR,$OL_MAJOR,Major)
95 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MINOR,$OL_MINOR,Minor)
96 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_PATCH,$OL_PATCH,Patch)
98 OPENLDAP_LIBRELEASE=$OL_API_LIB_RELEASE
99 AC_SUBST(OPENLDAP_LIBRELEASE)dnl
101 OPENLDAP_LIBVERSION=$OL_API_LIB_VERSION
102 AC_SUBST(OPENLDAP_LIBVERSION)dnl
104 OPENLDAP_RELEASE_DATE="$OL_RELEASE_DATE"
105 AC_SUBST(OPENLDAP_RELEASE_DATE)dnl
107 dnl We use autoconf features new to 2.13. Later versions like won't work.
108 dnl aclocal.m4 should be built using aclocal from automake 1.4
109 dnl libtool 1.4.3 should be installed.
110 AC_PREREQ(2.13)dnl Required Autoconf version
112 AC_CONFIG_HEADER(include/portable.h include/ldap_features.h include/lber_types.h)dnl
114 dnl ================================================================
116 AC_MSG_CHECKING(configure arguments)
117 AC_PREFIX_DEFAULT(/usr/local)
120 AC_SUBST(top_builddir)dnl
122 dnl ----------------------------------------------------------------
124 ldap_subdir="/openldap"
127 [ --with-subdir=DIR change default subdirectory used for installs],
134 ldap_subdir="$withval"
137 ldap_subdir="/$withval"
142 AC_SUBST(ldap_subdir)dnl
144 dnl ----------------------------------------------------------------
145 dnl General "enable" options
146 OL_ARG_ENABLE(debug,[ --enable-debug enable debugging], yes)dnl
147 OL_ARG_ENABLE(dynamic,[ --enable-dynamic enable linking built binaries with dynamic libs], no)dnl
148 OL_ARG_ENABLE(syslog,[ --enable-syslog enable syslog support], auto)dnl
149 OL_ARG_ENABLE(proctitle,[ --enable-proctitle enable proctitle support], yes)dnl
150 dnl OL_ARG_ENABLE(referrals,[ --enable-referrals enable LDAPv2+ Referrals (experimental)], no)dnl
151 ol_enable_referrals=${ol_enable_referrals-no}
152 dnl OL_ARG_ENABLE(kbind,[ --enable-kbind enable LDAPv2+ Kerberos IV bind (deprecated)], no)dnl
153 ol_enable_kbind=${ol_enable_kbind-no}
154 OL_ARG_ENABLE(ipv6,[ --enable-ipv6 enable IPv6 support], auto)dnl
155 OL_ARG_ENABLE(local,[ --enable-local enable AF_LOCAL (AF_UNIX) socket support], auto)dnl
157 dnl ----------------------------------------------------------------
158 dnl General "with" options
159 dnl OL_ARG_ENABLE(dmalloc,[ --enable-dmalloc enable debug malloc support], no)dnl
161 OL_ARG_WITH(cyrus_sasl,[ --with-cyrus-sasl with Cyrus SASL support],
162 auto, [auto yes no] )
163 OL_ARG_WITH(fetch,[ --with-fetch with fetch(3) URL support],
164 auto, [auto yes no] )
165 dnl OL_ARG_WITH(kerberos,[ --with-kerberos with Kerberos support],
166 dnl auto, [auto k5 k5only k425 kth k4 afs yes no])
167 ol_with_kerberos=${ol_with_kerberos-auto}
168 OL_ARG_WITH(threads,[ --with-threads with threads],
169 auto, [auto nt posix mach pth lwp yes no manual] )
170 OL_ARG_WITH(tls,[ --with-tls with TLS/SSL support],
171 auto, [auto ssleay openssl yes no] )
172 OL_ARG_WITH(yielding_select,[ --with-yielding-select with implicitly yielding select],
173 auto, [auto yes no manual] )
174 OL_ARG_WITH(multiple_precision,[ --with-multiple-precision
175 multiple precision support for statistics
177 auto, [auto bignum gmp yes no] )
179 dnl ----------------------------------------------------------------
181 dnl ----------------------------------------------------------------
183 dnl ----------------------------------------------------------------
185 AC_ARG_WITH(xxslapdoptions,[
186 SLAPD (Standalone LDAP Daemon) Options:])
187 OL_ARG_ENABLE(slapd,[ --enable-slapd enable building slapd], yes)dnl
188 OL_ARG_ENABLE(aci,[ --enable-aci enable per-object ACIs (experimental)], no)dnl
189 OL_ARG_ENABLE(cleartext,[ --enable-cleartext enable cleartext passwords], yes)dnl
190 OL_ARG_ENABLE(crypt,[ --enable-crypt enable crypt(3) passwords], no)dnl
191 OL_ARG_ENABLE(lmpasswd,[ --enable-lmpasswd enable LAN Manager passwords], no)dnl
192 OL_ARG_ENABLE(spasswd,[ --enable-spasswd enable (Cyrus) SASL password verification], no)dnl
193 OL_ARG_ENABLE(modules,[ --enable-modules enable dynamic module support], no)dnl
194 dnl OL_ARG_ENABLE(multimaster,[ --enable-multimaster enable multimaster replication], no)dnl
195 ol_enable_multimaster=${ol_enable_multimaster-no}
196 OL_ARG_ENABLE(rewrite,[ --enable-rewrite enable DN rewriting in back-ldap and the rwm overlay], auto)dnl
197 OL_ARG_ENABLE(rlookups,[ --enable-rlookups enable reverse lookups of client hostnames], no)dnl
198 OL_ARG_ENABLE(slapi,[ --enable-slapi enable SLAPI support (experimental)], no)dnl
199 OL_ARG_ENABLE(slp,[ --enable-slp enable SLPv2 support], no)dnl
200 OL_ARG_ENABLE(wrappers,[ --enable-wrappers enable tcp wrapper support], no)dnl
202 dnl ----------------------------------------------------------------
203 dnl SLAPD Backend Options
204 Backends="bdb dnssrv hdb ldap ldbm meta monitor null \
205 passwd perl relay shell sql"
207 AC_ARG_WITH(xxslapbackends,[
208 SLAPD Backend Options:])
210 OL_ARG_ENABLE(backends,[ --enable-backends enable all available backends no|yes|mod],
212 OL_ARG_ENABLE(bdb,[ --enable-bdb enable Berkeley DB backend no|yes|mod],
213 yes, [no yes mod])dnl
214 OL_ARG_ENABLE(dnssrv,[ --enable-dnssrv enable dnssrv backend no|yes|mod],
216 OL_ARG_ENABLE(hdb,[ --enable-hdb enable Hierarchical DB backend no|yes|mod],
218 OL_ARG_ENABLE(ldap,[ --enable-ldap enable ldap backend no|yes|mod],
220 OL_ARG_ENABLE(ldbm,[ --enable-ldbm enable ldbm backend no|yes|mod], no,
222 OL_ARG_WITH(ldbm_api,[ --with-ldbm-api with LDBM API auto|berkeley|bcompat|mdbm|gdbm],
223 auto, [auto berkeley bcompat mdbm gdbm])
224 OL_ARG_WITH(ldbm_type,[ --with-ldbm-type use LDBM type auto|btree|hash],
225 auto, [auto btree hash])
226 OL_ARG_ENABLE(meta,[ --enable-meta enable metadirectory backend no|yes|mod],
228 OL_ARG_ENABLE(monitor,[ --enable-monitor enable monitor backend no|yes|mod],
229 yes, [no yes mod])dnl
230 OL_ARG_ENABLE(null,[ --enable-null enable null backend no|yes|mod],
232 OL_ARG_ENABLE(passwd,[ --enable-passwd enable passwd backend no|yes|mod],
234 OL_ARG_ENABLE(perl,[ --enable-perl enable perl backend no|yes|mod],
236 OL_ARG_ENABLE(relay,[ --enable-relay enable relay backend no|yes|mod],
237 yes, [no yes mod])dnl
238 OL_ARG_ENABLE(shell,[ --enable-shell enable shell backend no|yes|mod],
240 OL_ARG_ENABLE(sql,[ --enable-sql enable sql backend no|yes|mod],
243 dnl ----------------------------------------------------------------
244 dnl SLAPD Overlay Options
245 Overlays="chain denyop dyngroup glue lastmod ppolicy proxycache rwm \
246 refint syncprov unique"
248 AC_ARG_WITH(xxslapoverlays,[
249 SLAPD Overlay Options:])
251 OL_ARG_ENABLE(overlays,[ --enable-overlays enable all available overlays no|yes|mod],
253 OL_ARG_ENABLE(chain,[ --enable-chain LDAP Chain Response no|yes|mod],
255 OL_ARG_ENABLE(denyop,[ --enable-denyop Deny Operation overlay no|yes|mod],
257 OL_ARG_ENABLE(dyngroup,[ --enable-dyngroup Dynamic Group overlay no|yes|mod],
259 OL_ARG_ENABLE(glue,[ --enable-glue Backend Glue overlay no|yes|mod],
261 OL_ARG_ENABLE(lastmod,[ --enable-lastmod Last Modification overlay no|yes|mod],
263 OL_ARG_ENABLE(ppolicy,[ --enable-ppolicy Password Policy overlay no|yes|mod],
265 OL_ARG_ENABLE(proxycache,[ --enable-proxycache Proxy Cache overlay no|yes|mod],
267 OL_ARG_ENABLE(refint,[ --enable-refint Referential Integrity overlay no|yes|mod],
269 OL_ARG_ENABLE(rwm,[ --enable-rwm Rewrite/Remap overlay no|yes|mod],
271 OL_ARG_ENABLE(syncprov,[ --enable-syncprov Syncrepl Provider overlay no|yes|mod],
273 OL_ARG_ENABLE(unique,[ --enable-unique Attribute Uniqueness overlay no|yes|mod],
277 dnl ----------------------------------------------------------------
279 AC_ARG_WITH(xxslurpdoptions,[
280 SLURPD (Replication Daemon) Options:])
281 OL_ARG_ENABLE(slurpd,[ --enable-slurpd enable building slurpd], auto)dnl
283 dnl ----------------------------------------------------------------
284 AC_ARG_WITH(xxliboptions,[
285 Library Generation & Linking Options])
289 dnl ----------------------------------------------------------------
291 dnl General "enable" options
292 # Activate any backends that were not explicitly enabled.
293 # Note that back_bdb defaults to "yes" so this loop won't touch it.
294 if test $ol_enable_backends != no ; then
295 for i in $Backends; do
296 eval "ol_tmp=\$ol_enable_$i"
297 if test $ol_tmp = no ; then
298 eval "ol_enable_$i=$ol_enable_backends"
302 # Activate the overlays
303 if test $ol_enable_overlays != no ; then
304 for i in $Overlays; do
305 eval "ol_tmp=\$ol_enable_$i"
306 if test $ol_tmp = no ; then
307 eval "ol_enable_$i=$ol_enable_overlays"
313 if test $ol_enable_slapd = no ; then
314 dnl SLAPD was specificallly disabled
315 if test $ol_enable_slapi = yes ; then
316 AC_MSG_WARN([slapd disabled, ignoring --enable-slapi argument])
318 if test $ol_enable_backends != no ; then
319 AC_MSG_WARN([slapd disabled, ignoring --enable-backends argument])
321 for i in $Backends; do
322 eval "ol_tmp=\$ol_enable_$i"
323 if test $ol_tmp != no ; then
324 AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
325 eval "ol_enable_$i=no"
328 if test $ol_enable_modules = yes ; then
329 AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
331 if test $ol_enable_multimaster = yes ; then
332 AC_MSG_WARN([slapd disabled, ignoring --enable-multimaster argument])
334 if test $ol_enable_wrappers = yes ; then
335 AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
337 if test $ol_enable_rlookups = yes ; then
338 AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
340 if test $ol_enable_aci = yes ; then
341 AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
343 if test $ol_with_ldbm_api != auto ; then
344 AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-api argument])
346 if test $ol_with_ldbm_type != auto ; then
347 AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-type argument])
349 if test $ol_enable_slurpd = yes ; then
350 AC_MSG_ERROR([slurpd requires slapd])
352 if test $ol_enable_rewrite = yes ; then
353 AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
356 if test $ol_enable_overlays != no ; then
357 AC_MSG_WARN([slapd disabled, ignoring --enable-overlays argument])
359 for i in $Overlays; do
360 eval "ol_tmp=\$ol_enable_$i"
361 if test $ol_tmp != no ; then
362 AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
363 eval "ol_enable_$i=no"
367 # force settings to no
370 ol_enable_backends=no
371 ol_enable_overlays=no
373 ol_enable_multimaster=no
374 ol_enable_rlookups=no
376 ol_enable_wrappers=no
385 elif test $ol_enable_ldbm = no ; then
386 dnl SLAPD without LDBM
388 if test $ol_with_ldbm_api != auto ; then
389 AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-api argument])
392 if test $ol_with_ldbm_type != auto ; then
393 AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-type argument])
396 if test $ol_enable_modules != yes -a \
397 $ol_enable_bdb = no -a \
398 $ol_enable_dnssrv = no -a \
399 $ol_enable_hdb = no -a \
400 $ol_enable_ldap = no -a \
401 $ol_enable_meta = no -a \
402 $ol_enable_monitor = no -a \
403 $ol_enable_null = no -a \
404 $ol_enable_passwd = no -a \
405 $ol_enable_perl = no -a \
406 $ol_enable_relay = no -a \
407 $ol_enable_shell = no -a \
408 $ol_enable_sql = no ; then
410 if test $ol_enable_slapd = yes ; then
411 AC_MSG_ERROR([slapd requires a backend])
413 AC_MSG_WARN([skipping slapd, no backend specified])
421 if test $ol_enable_bdb != no -o $ol_enable_hdb != no; then
422 ol_with_ldbm_api=berkeley
427 if test $ol_with_ldbm_api = gdbm -a \
428 $ol_with_ldbm_type = btree ; then
429 AC_MSG_ERROR([GDBM only supports LDBM type hash])
431 if test $ol_with_ldbm_api = mdbm -a \
432 $ol_with_ldbm_type = btree ; then
433 AC_MSG_ERROR([MDBM only supports LDBM type hash])
435 if test $ol_with_ldbm_api = ndbm -a \
436 $ol_with_ldbm_type = btree ; then
437 AC_MSG_ERROR([NDBM only supports LDBM type hash])
440 if test $ol_enable_bdb != no -o $ol_enable_hdb != no ; then
441 if test $ol_with_ldbm_api = auto ; then
442 ol_with_ldbm_api=berkeley
443 elif test $ol_with_ldbm_api != berkeley ; then
444 AC_MSG_ERROR([LDBM API not compatible with BDB/HDB])
449 if test $ol_enable_chain != no -a $ol_enable_ldap = no ; then
450 AC_MSG_ERROR([--enable-chain requires --enable-ldap])
453 if test $ol_enable_meta = yes -a $ol_enable_ldap = no ; then
454 AC_MSG_ERROR([--enable-meta requires --enable-ldap])
457 if test $ol_enable_slurpd = yes ; then
458 dnl SLURPD was specifically enabled
459 if test $ol_with_threads = no ; then
460 AC_MSG_ERROR([slurpd requires threads])
464 if test $ol_enable_lmpasswd = yes ; then
465 if test $ol_with_tls = no ; then
466 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
470 if test $ol_enable_kbind = yes ; then
471 if test $ol_with_kerberos = no ; then
472 AC_MSG_ERROR([options require --with-kerberos])
473 elif test $ol_with_kerberos = auto ; then
477 elif test $ol_enable_kbind = no ; then
478 if test $ol_with_kerberos = auto ; then
480 elif test $ol_with_kerberos != no ; then
481 AC_MSG_WARN([Kerberos detection enabled unnecessarily]);
486 if test $ol_enable_spasswd = yes ; then
487 if test $ol_with_cyrus_sasl = no ; then
488 AC_MSG_ERROR([options require --with-cyrus-sasl])
490 ol_with_cyrus_sasl=yes
495 dnl ----------------------------------------------------------------
539 SLAPD_DYNAMIC_OVERLAYS=
541 SLAPD_MODULES_LDFLAGS=
542 SLAPD_MODULES_CPPFLAGS=
544 SLAPD_STATIC_BACKENDS=
545 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 if test "${CC}" = "cc_r" -o "${CC}" = "xlc_r" ; then
614 ol_with_threads=posix
615 ol_cv_pthread_create=yes
619 if test -z "${CC}"; then
620 AC_CHECK_PROGS(CC,cc gcc,missing)
622 if test "${CC}" = "missing" ; then
623 AC_MSG_ERROR([Unable to locate cc(1) or suitable replacement. Check PATH or set CC.])
627 if test -z "${AR}"; then
628 AC_CHECK_PROGS(AR,ar gar,missing)
630 if test "${AR}" = "missing" ; then
631 AC_MSG_ERROR([Unable to locate ar(1) or suitable replacement. Check PATH or set AR.])
639 dnl ----------------------------------------------------------------
642 if test $ol_enable_perl != no ; then
643 AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)
645 if test "no$PERLBIN" = "no" ; then
646 if test $ol_enable_perl = yes ; then
647 AC_MSG_ERROR([could not locate perl])
651 PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
652 PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e 's/ -lc / /' -e 's/ -lc$//'`"
654 if test x"$ol_enable_perl" = "xyes" ; then
655 SLAPD_PERL_LDFLAGS="$PERL_LDFLAGS"
657 MOD_PERL_LDFLAGS="$PERL_LDFLAGS"
659 dnl should check perl version
666 dnl ----------------------------------------------------------------
667 dnl Checks for UNIX Variants
672 dnl ----------------------------------------------------------------
673 dnl Checks for system services
679 AC_DEFINE_UNQUOTED(EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
681 dnl ----------------------------------------------------------------
682 dnl BeOS requires -lbe -lroot -lnet
683 AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])
685 dnl ----------------------------------------------------------------
686 dnl OpenLDAP requires STDC features
688 if test "X${am_cv_prog_cc_stdc}" = "Xno" ; then
689 AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
692 dnl ----------------------------------------------------------------
693 dnl Check cc depend flags
695 if test "${ol_cv_mkdep}" = no ; then
696 # this will soon become an error
697 AC_MSG_WARN([do not know how to generate dependencies])
700 dnl ----------------------------------------------------------------
701 dnl Check for AIX security library
702 AC_CHECK_LIB(s, afopen, [
704 AC_DEFINE(HAVE_AIX_SECURITY,1,[define if you have AIX security lib])
707 dnl ----------------------------------------------------------------
708 dnl Check for IBM OS/390
712 AC_DEFINE(BOTH_STRINGS_H,1,[define to use both <string.h> and <strings.h>])
716 dnl ----------------------------------------------------------------
717 dnl Check for module support
719 WITH_MODULES_ENABLED=no
720 if test $ol_enable_modules != no ; then
721 AC_CHECK_HEADERS(ltdl.h)
723 if test $ac_cv_header_ltdl_h = no ; then
724 AC_MSG_ERROR([could not locate libtool ltdl.h])
727 AC_CHECK_LIB(ltdl, lt_dlinit, [
729 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
732 if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then
733 AC_MSG_ERROR([could not locate libtool -lltdl])
736 WITH_MODULES_ENABLED=yes
739 for i in $Backends; do
740 eval "ol_tmp=\$ol_enable_$i"
741 if test $ol_tmp = mod ; then
742 AC_MSG_WARN([building static $i backend])
743 eval "ol_enable_$i=yes"
746 for i in $Overlays; do
747 eval "ol_tmp=\$ol_enable_$i"
748 if test $ol_tmp = mod ; then
749 AC_MSG_WARN([building static $i overlay])
750 eval "ol_enable_$i=yes"
755 dnl ----------------------------------------------------------------
756 dnl Checks for header files.
759 if test $ol_cv_header_stdc != yes; then
760 AC_MSG_WARN([could not locate Standard C compliant headers])
765 AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
766 if test $am_cv_sys_posix_termios = yes ; then
767 AC_DEFINE(HAVE_POSIX_TERMIOS,1,
768 [define if you have POSIX termios])
823 dnl ----------------------------------------------------------------
824 dnl Checks for libraries
826 dnl HP-UX requires -lV3
827 dnl this is not needed on newer versions of HP-UX
828 AC_CHECK_LIB(V3, sigset)
830 dnl The following is INTENTIONALLY scripted out because shell does not
831 dnl support variable names with the '@' character, which is what
832 dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
833 if test "$ac_cv_header_winsock_h" = yes; then
834 AC_CACHE_CHECK([for winsock], [ol_cv_winsock],
836 for curlib in ws2_32 wsock32; do
837 LIBS="$LIBS -l$curlib"
838 AC_TRY_LINK([#include <winsock.h>
842 select(0,NULL,NULL,NULL,NULL);
846 ol_cv_winsock=yes, ol_cv_winsock=no)
848 if test $ol_cv_winsock = yes; then
849 AC_DEFINE(HAVE_WINSOCK, 1, [define if you have winsock])
850 ac_cv_func_socket=yes
851 ac_cv_func_select=yes
852 ac_cv_func_closesocket=yes
853 ac_cv_func_gethostname=yes
854 if test $curlib = ws2_32; then
855 ol_cv_winsock=winsock2
856 AC_DEFINE(HAVE_WINSOCK2, 1,
857 [define if you have winsock2])
866 dnl Likely combinations:
867 dnl -lsocket [ -lnsl_s | -lnsl ]
870 AC_CHECK_FUNC(socket, :, [
871 dnl hopefully we won't include too many libraries
872 AC_CHECK_LIB(socket, main)
873 AC_CHECK_LIB(net, main)
874 AC_CHECK_LIB(nsl_s, main)
875 AC_CHECK_LIB(nsl, main)
876 AC_CHECK_LIB(inet, socket)
877 AC_CHECK_LIB(gen, main)
881 AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
883 if test "${ac_cv_header_winsock_h}" != yes; then
885 dnl (if this detection becomes permenent, it and the select() detection
886 dnl should be done before the yielding select test)
887 AC_FUNC_SELECT_ARGTYPES
890 dnl check to see if system call automatically restart
891 dnl AC_SYS_RESTARTABLE_SYSCALLS
893 dnl ----------------------------------------------------------------
894 AC_CHECK_FUNCS( poll )
895 AC_CHECK_HEADERS( poll.h )
897 dnl ----------------------------------------------------------------
898 AC_CHECK_HEADERS( sys/epoll.h )
899 if test "${ac_cv_header_sys_epoll_h}" = yes; then
900 AC_MSG_CHECKING(for epoll system call)
902 int main(int argc, char *argv[])
904 int epfd = epoll_create(256);
905 exit (epfd == -1 ? 1 : 0);
906 }, [AC_MSG_RESULT(yes)
907 AC_DEFINE(HAVE_EPOLL,1, [define if your system supports epoll])],
908 AC_MSG_RESULT(no),AC_MSG_RESULT(no))
911 dnl ----------------------------------------------------------------
915 dnl ----------------------------------------------------------------
916 dnl require POSIX regex
917 AC_CHECK_HEADERS( regex.h )
918 if test "$ac_cv_header_regex_h" != yes ; then
919 AC_MSG_ERROR([POSIX regex.h required.])
921 AC_SEARCH_LIBS(regfree, [regex gnuregex],
922 :, AC_MSG_ERROR([POSIX regex required.]))
925 if test "$ol_cv_c_posix_regex" = no ; then
926 AC_MSG_ERROR([broken POSIX regex!])
929 dnl ----------------------------------------------------------------
933 AC_CHECK_HEADERS(sys/uuid.h)
934 if test $ac_cv_header_sys_uuid_h = yes ; then
936 AC_SEARCH_LIBS(uuid_to_str, uuid, [have_uuid=yes], :)
939 if test have_uuid = yes ; then
940 AC_DEFINE(HAVE_UUID_TO_STR,1,
941 [define if you have uuid_to_str()])
943 test "$ac_cv_search_uuid_to_str" = "none required" || \
944 SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_to_str"
948 dnl For windows, check for the need of RPCRT for UUID function support
949 if test $have_uuid = no ; then
950 AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
952 LIBS="$LIBS -lrpcrt4"
954 int __stdcall UuidCreate(void *);
955 int __stdcall UuidToStringA(void *,void **);
961 need_rpcrt=yes, need_rpcrt=no)
962 if test $need_rpcrt = yes; then
963 SLAPD_LIBS="$SLAPD_LIBS -lrpcrt4"
966 AC_MSG_RESULT($need_rpcrt)
969 dnl ----------------------------------------------------------------
970 dnl Check for resolver routines
971 dnl need to check for both res_query and __res_query
972 dnl need to check -lc, -lbind, and -lresolv
974 AC_CHECK_FUNC(res_query,:)
975 if test $ac_cv_func_res_query = no ; then
976 AC_CHECK_FUNC(__res_query,:)
977 ac_cv_func_res_query=$ac_cv_func___res_query
980 if test $ac_cv_func_res_query = no ; then
981 AC_CHECK_LIB(bind, res_query)
982 ac_cv_func_res_query=$ac_cv_lib_bind_res_query
985 if test $ac_cv_func_res_query = no ; then
986 AC_CHECK_LIB(bind, __res_query)
987 ac_cv_func_res_query=$ac_cv_lib_bind___res_query
990 if test $ac_cv_func_res_query = no ; then
991 AC_CHECK_LIB(resolv, res_query)
992 ac_cv_func_res_query=$ac_cv_lib_resolv_res_query
995 if test $ac_cv_func_res_query = no ; then
996 AC_CHECK_LIB(resolv, __res_query)
997 ac_cv_func_res_query=$ac_cv_lib_resolv___res_query
1000 if test $ac_cv_func_res_query = no ; then
1001 AC_CHECK_LIB(resolv, _res_9_query)
1002 ac_cv_func_res_query=$ac_cv_lib_resolv_res_9_query
1005 if test "$ac_cv_func_res_query" = yes ; then
1006 AC_DEFINE(HAVE_RES_QUERY,1,
1007 [define if you have res_query()])
1009 if test $ol_enable_dnssrv != no ; then
1014 if test "$ol_enable_dnssrv" != no -a "$ol_link_dnssrv" = no ; then
1015 AC_MSG_ERROR([DNSSRV requires res_query()])
1018 AC_CHECK_FUNCS( hstrerror )
1020 dnl ----------------------------------------------------------------
1021 dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
1022 dnl PF_LOCAL may use getaddrinfo in available
1023 AC_CHECK_FUNCS( getaddrinfo getnameinfo gai_strerror inet_ntop )
1026 if test $ac_cv_func_getaddrinfo = no -o $ac_cv_func_inet_ntop = no ; then
1027 if test $ol_enable_ipv6 = yes ; then
1028 AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
1030 elif test $ol_enable_ipv6 != no ; then
1031 AC_CACHE_CHECK([INET6_ADDRSTRLEN],[ol_cv_inet6_addrstrlen],[
1032 AC_EGREP_CPP(__has_inet6_addrstrlen__,[
1033 # include <netinet/in.h>
1034 # ifdef INET6_ADDRSTRLEN
1035 __has_inet6_addrstrlen__;
1037 ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])])
1040 AC_CACHE_CHECK([struct sockaddr_storage],ol_cv_struct_sockaddr_storage,[
1042 #include <sys/types.h>
1043 #include <sys/socket.h>
1045 struct sockaddr_storage ss;
1046 ], [ol_cv_struct_sockaddr_storage=yes],
1047 [ol_cv_struct_sockaddr_storage=no])])
1049 if test $ol_cv_inet6_addrstrlen = yes \
1050 -a $ol_cv_struct_sockaddr_storage = yes ; then
1052 elif test $ol_enable_ipv6 = yes \
1053 -a $ol_cv_inet6_addrstrlen = no ; then
1054 AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
1055 elif test $ol_enable_ipv6 = yes \
1056 -a $ol_cv_struct_sockaddr_storage = no ; then
1057 AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage])
1061 if test $ol_enable_local != no ; then
1062 AC_CHECK_HEADERS( sys/un.h )
1064 if test $ol_enable_local = auto ; then
1065 ol_enable_local=$ac_cv_header_sys_un_h
1066 elif test $ac_cv_header_sys_un_h = no ; then
1067 AC_MSG_ERROR([AF_LOCAL domain support requires sys/un.h])
1071 dnl ----------------------------------------------------------------
1077 if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
1078 -o $ol_with_kerberos = k5 -o $ol_with_kerberos = k5only \
1079 -o $ol_with_kerberos = k425 ; then
1081 AC_CHECK_HEADERS(krb5.h)
1083 if test $ac_cv_header_krb5_h = yes ; then
1084 dnl lazy check for Heimdal Kerberos
1085 AC_CHECK_HEADERS(heim_err.h)
1086 if test $ac_cv_header_heim_err_h = yes ; then
1092 if test $krb5_impl = mit; then
1093 AC_CHECK_LIB(k5crypto, main,
1094 [krb5crypto=k5crypto],
1095 [krb5crypto=crypto])
1097 AC_CHECK_LIB(krb5, main,
1099 KRB5_LIBS="-lkrb5 -l$krb5crypto -lcom_err"],
1101 [-l$krb5crypto -lcom_err])
1103 elif test $krb5_impl = heimdal; then
1104 AC_CHECK_LIB(des, main,
1106 [krb5crypto=crypto])
1108 AC_CHECK_LIB(krb5, main,
1110 KRB5_LIBS="-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err"],
1112 [-l$krb5crypto -lasn1 -lroken -lcom_err])
1114 AC_DEFINE(HAVE_HEIMDAL_KERBEROS, 1,
1115 [define if you have HEIMDAL Kerberos])
1119 AC_MSG_WARN([Unrecognized Kerberos5 Implementation])
1122 if test $have_krb5 = yes ; then
1125 AC_DEFINE(HAVE_KRB5, 1,
1126 [define if you have Kerberos V])
1128 if test $ol_with_kerberos = k5only ; then
1129 ol_with_kerberos=found
1132 elif test $ol_with_kerberos != auto ; then
1133 AC_MSG_ERROR([Required Kerberos 5 support not available])
1139 if test $ol_link_krb5 = yes -a \( $ol_with_kerberos = yes -o \
1140 $ol_with_kerberos = auto -o $ol_with_kerberos = k425 \) ; then
1142 AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
1144 if test $ac_cv_header_kerberosIV_krb_h = yes ; then
1145 if test $krb5_impl = mit; then
1146 AC_CHECK_LIB(krb4, main, [have_k425=yes
1147 KRB4_LIBS="-lkrb4 -ldes425"], [have_k425=no],
1148 [-ldes425 -lkrb5 -l$krb5crypto -lcom_err])
1150 elif test $krb5_impl = heimdal; then
1151 AC_CHECK_LIB(krb4, main, [have_k425=yes
1152 KRB4_LIBS="-lkrb4"], [have_k425=no],
1153 [-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err])
1157 AC_MSG_WARN([Unrecongized Kerberos V Implementation])
1160 if test $have_k425 = yes ; then
1161 ol_with_kerberos=found
1164 AC_DEFINE(HAVE_KRB425, 1,
1165 [define if you have Kerberos V with IV support])
1166 AC_DEFINE(HAVE_KRB4, 1,
1167 [define if you have Kerberos IV])
1169 AC_CACHE_CHECK([for des_debug in Kerberos libraries],
1170 [ol_cv_var_des_debug], [
1173 LIBS="$KRB4_LIBS $KRB5_LIBS $LIBS"
1175 #include <kerberosIV/krb.h>
1176 #include <kerberosIV/des.h>
1177 extern int des_debug;
1180 ], ol_cv_var_des_debug=yes, ol_cv_var_des_debug=no)
1181 dnl restore the LIBS
1185 if test $ol_cv_var_des_debug = yes ; then
1186 AC_DEFINE(HAVE_DES_DEBUG,1,
1187 [define if you have Kerberos des_debug])
1195 if test $ol_link_krb5 = yes ; then
1196 ol_with_kerberos=found
1199 if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
1200 -o $ol_with_kerberos = k4 -o $ol_with_kerberos = kth ; then
1202 AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
1204 if test $ac_cv_header_krb_h = yes ; then
1205 AC_CHECK_LIB(krb, main, [have_k4=yes], [have_k4=no], [-ldes])
1207 if test $have_k4 = yes ; then
1208 ol_with_kerberos=found
1211 AC_DEFINE(HAVE_KRB4, 1,
1212 [define if you have Kerberos IV])
1214 KRB4_LIBS="-lkrb -ldes"
1216 if test $ac_cv_header_krb_archaeology_h = yes ; then
1217 AC_DEFINE(HAVE_KTH_KERBEROS, 1,
1218 [define if you have Kth Kerberos])
1224 if test $ol_link_krb4 = yes -a $ol_enable_kbind != no ; then
1227 elif test $ol_enable_kbind = yes ; then
1228 AC_MSG_ERROR([Kerberos IV detection failed])
1231 if test $ol_link_krb4 = yes -o $ol_link_krb5 = yes ; then
1232 AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
1234 elif test $ol_with_kerberos != auto -a $ol_with_kerberos != no ; then
1235 AC_MSG_ERROR([Kerberos detection failed])
1238 dnl ----------------------------------------------------------------
1242 if test $ol_with_tls != no ; then
1243 AC_CHECK_HEADERS(openssl/ssl.h ssl.h)
1245 if test $ac_cv_header_openssl_ssl_h = yes \
1246 -o $ac_cv_header_ssl_h = yes ; then
1247 AC_CHECK_LIB(ssl, SSLeay_add_ssl_algorithms,
1253 if test $have_ssleay = no ; then
1254 AC_CHECK_LIB(ssl, SSL_library_init,
1256 need_rsaref=no], [have_ssleay=no],
1260 if test $have_ssleay = no ; then
1261 AC_CHECK_LIB(ssl, ssl3_accept,
1263 need_rsaref=yes], [have_ssleay=no],
1264 [-lcrypto -lRSAglue -lrsaref])
1267 if test $have_ssleay = yes ; then
1271 AC_DEFINE(HAVE_SSLEAY, 1,
1272 [define if you have SSLeay or OpenSSL])
1274 if test $need_rsaref = yes; then
1275 AC_DEFINE(HAVE_RSAREF, 1,
1276 [define if you have RSAref])
1278 TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
1280 TLS_LIBS="-lssl -lcrypto"
1284 if test $ol_cv_ssl_crl_compat = no ; then
1287 AC_DEFINE(HAVE_OPENSSL_CRL, 1,
1288 [define if you have OpenSSL with CRL checking capability])
1293 AC_WARN([TLS data protection not supported!])
1297 if test $ol_link_tls = yes ; then
1298 AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
1301 elif test $ol_with_tls = auto ; then
1302 AC_WARN([Could not locate TLS/SSL package])
1303 AC_WARN([TLS data protection not supported!])
1305 elif test $ol_with_tls != no ; then
1306 AC_ERROR([Could not locate TLS/SSL package])
1309 dnl ----------------------------------------------------------------
1310 dnl LAN Manger password checking requires DES from OpenSSL
1311 if test $ol_enable_lmpasswd != no; then
1312 if test $ol_link_tls != yes ; then
1313 AC_ERROR([LAN Manager passwords require OpenSSL])
1316 AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
1319 dnl ----------------------------------------------------------------
1323 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1324 -o $ol_with_threads = nt ; then
1328 if test "$ol_cv_nt_threads" = yes ; then
1330 ol_with_threads=found
1331 ol_with_yielding_select=yes
1333 AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager])
1334 AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log])
1337 if test $ol_with_threads = nt ; then
1338 AC_MSG_ERROR([could not locate NT Threads])
1342 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1343 -o $ol_with_threads = posix ; then
1345 AC_CHECK_HEADERS(pthread.h)
1347 if test $ac_cv_header_pthread_h = yes ; then
1348 OL_POSIX_THREAD_VERSION
1350 if test $ol_cv_pthread_version != 0 ; then
1351 AC_DEFINE_UNQUOTED(HAVE_PTHREADS,$ol_cv_pthread_version,
1352 [define to pthreads API spec revision])
1354 AC_MSG_ERROR([unknown pthread version])
1357 # consider threads found
1358 ol_with_threads=found
1360 OL_HEADER_LINUX_THREADS
1361 OL_HEADER_GNU_PTH_PTHREAD_H
1363 if test $ol_cv_header_gnu_pth_pthread_h = no ; then
1364 AC_CHECK_HEADERS(sched.h)
1367 dnl Now the hard part, how to link?
1369 dnl currently supported checks:
1371 dnl Check for no flags
1372 dnl pthread_create() in $LIBS
1374 dnl Check special pthread (final) flags
1375 dnl [skipped] pthread_create() with -mt (Solaris) [disabled]
1376 dnl pthread_create() with -kthread (FreeBSD)
1377 dnl pthread_create() with -pthread (FreeBSD/Digital Unix)
1378 dnl pthread_create() with -pthreads (?)
1379 dnl pthread_create() with -mthreads (AIX)
1380 dnl pthread_create() with -thread (?)
1382 dnl Check pthread (final) libraries
1383 dnl pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
1384 dnl pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
1385 dnl [skipped] pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
1386 dnl pthread_join() -Wl,-woff,85 -lpthread (IRIX)
1387 dnl pthread_create() in -lpthread (many)
1388 dnl pthread_create() in -lc_r (FreeBSD)
1390 dnl Check pthread (draft4) flags (depreciated)
1391 dnl pthread_create() with -threads (OSF/1)
1393 dnl Check pthread (draft4) libraries (depreciated)
1394 dnl pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
1395 dnl pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
1396 dnl pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
1397 dnl pthread_create() in -lpthreads (many)
1400 dnl pthread_create in $LIBS
1401 AC_CACHE_CHECK([for pthread_create in default libraries],
1402 ol_cv_pthread_create,[
1403 AC_TRY_RUN(OL_PTHREAD_TEST_PROGRAM,
1404 [ol_cv_pthread_create=yes],
1405 [ol_cv_pthread_create=no],
1406 [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION,
1407 [ol_cv_pthread_create=yes],
1408 [ol_cv_pthread_create=no])])])
1410 if test $ol_cv_pthread_create != no ; then
1411 ol_link_threads=posix
1415 dnl OL_PTHREAD_TRY([-mt], [ol_cv_pthread_mt])
1416 OL_PTHREAD_TRY([-kthread], [ol_cv_pthread_kthread])
1417 OL_PTHREAD_TRY([-pthread], [ol_cv_pthread_pthread])
1418 OL_PTHREAD_TRY([-pthreads], [ol_cv_pthread_pthreads])
1419 OL_PTHREAD_TRY([-mthreads], [ol_cv_pthread_mthreads])
1420 OL_PTHREAD_TRY([-thread], [ol_cv_pthread_thread])
1422 OL_PTHREAD_TRY([-lpthread -lmach -lexc -lc_r],
1423 [ol_cv_pthread_lpthread_lmach_lexc_lc_r])
1424 OL_PTHREAD_TRY([-lpthread -lmach -lexc],
1425 [ol_cv_pthread_lpthread_lmach_lexc])
1426 dnl OL_PTHREAD_TRY([-lpthread -lexc],
1427 dnl [ol_cv_pthread_lpthread_lexc])
1429 OL_PTHREAD_TRY([-lpthread -Wl,-woff,85],
1430 [ol_cv_pthread_lib_lpthread_woff])
1432 OL_PTHREAD_TRY([-lpthread], [ol_cv_pthread_lpthread])
1433 OL_PTHREAD_TRY([-lc_r], [ol_cv_pthread_lc_r])
1435 OL_PTHREAD_TRY([-threads], [ol_cv_pthread_threads])
1437 OL_PTHREAD_TRY([-lpthreads -lmach -lexc -lc_r],
1438 [ol_cv_pthread_lpthreads_lmach_lexc_lc_r])
1439 OL_PTHREAD_TRY([-lpthreads -lmach -lexc],
1440 [ol_cv_pthread_lpthreads_lmach_lexc])
1441 OL_PTHREAD_TRY([-lpthreads -lexc],
1442 [ol_cv_pthread_lpthreads_lexc])
1444 OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
1446 if test $ol_link_threads != no ; then
1447 LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
1450 save_CPPFLAGS="$CPPFLAGS"
1452 LIBS="$LTHREAD_LIBS $LIBS"
1454 dnl All POSIX Thread (final) implementations should have
1455 dnl sched_yield instead of pthread yield.
1456 dnl check for both, and thr_yield for Solaris
1457 AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
1459 if test $ac_cv_func_sched_yield = no -a \
1460 $ac_cv_func_pthread_yield = no -a \
1461 $ac_cv_func_thr_yield = no ; then
1462 dnl Digital UNIX has sched_yield() in -lrt
1463 AC_CHECK_LIB(rt, sched_yield,
1464 [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
1465 AC_DEFINE(HAVE_SCHED_YIELD,1,
1466 [Define if you have the sched_yield function.])
1467 ac_cv_func_sched_yield=yes],
1468 [ac_cv_func_sched_yield=no])
1470 if test $ac_cv_func_sched_yield = no -a \
1471 $ac_cv_func_pthread_yield = no -a \
1472 "$ac_cv_func_thr_yield" = no ; then
1473 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
1476 dnl Check functions for compatibility
1477 AC_CHECK_FUNCS(pthread_kill pthread_rwlock_destroy)
1479 dnl Check for pthread_detach with <pthread.h> inclusion
1480 dnl as it's symbol may have been mangled.
1481 AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
1482 [ol_cv_func_pthread_detach], [
1485 #include <pthread.h>
1487 #define NULL (void*)0
1490 [pthread_detach(NULL);],
1491 [ol_cv_func_pthread_detach=yes],
1492 [ol_cv_func_pthread_detach=no])
1495 if test $ol_cv_func_pthread_detach = no ; then
1496 AC_MSG_ERROR([could not locate pthread_detach()])
1499 AC_DEFINE(HAVE_PTHREAD_DETACH,1,
1500 [define if you have pthread_detach function])
1502 dnl Check for setconcurreny functions
1504 pthread_setconcurrency \
1505 pthread_getconcurrency \
1506 thr_setconcurrency \
1507 thr_getconcurrency \
1510 OL_SYS_LINUX_THREADS
1513 if test $ol_cv_linux_threads = error; then
1514 AC_MSG_ERROR([LinuxThreads header/library mismatch]);
1517 AC_CACHE_CHECK([if pthread_create() works],
1518 ol_cv_pthread_create_works,[
1519 AC_TRY_RUN(OL_PTHREAD_TEST_PROGRAM,
1520 [ol_cv_pthread_create_works=yes],
1521 [ol_cv_pthread_create_works=no],
1523 ol_cv_pthread_create_works=yes])])
1525 if test $ol_cv_pthread_create_works = no ; then
1526 AC_MSG_ERROR([pthread_create is not usable, check environment settings])
1529 dnl Check if select causes an yield
1530 if test $ol_with_yielding_select = auto ; then
1531 AC_CACHE_CHECK([if select yields when using pthreads],
1532 ol_cv_pthread_select_yields,[
1534 #include <sys/types.h>
1535 #include <sys/time.h>
1537 #include <pthread.h>
1539 #define NULL (void*) 0
1542 static int fildes[2];
1544 static void *task(p)
1556 FD_SET(fildes[0], &rfds);
1558 /* we're not interested in any fds */
1559 i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
1566 exit(0); /* if we exit here, the select blocked the whole process */
1569 int main(argc, argv)
1575 /* create a pipe to select */
1576 if(pipe(&fildes[0])) {
1581 #ifdef HAVE_PTHREAD_SETCONCURRENCY
1582 (void) pthread_setconcurrency(2);
1584 #ifdef HAVE_THR_SETCONCURRENCY
1585 /* Set Solaris LWP concurrency to 2 */
1586 thr_setconcurrency(2);
1590 #if HAVE_PTHREADS < 6
1591 pthread_create(&t, pthread_attr_default, task, NULL);
1593 pthread_create(&t, NULL, task, NULL);
1596 /* make sure task runs first */
1599 #elif defined( HAVE_SCHED_YIELD )
1601 #elif defined( HAVE_PTHREAD_YIELD )
1607 [ol_cv_pthread_select_yields=no],
1608 [ol_cv_pthread_select_yields=yes],
1609 [ol_cv_pthread_select_yields=cross])])
1611 if test $ol_cv_pthread_select_yields = cross ; then
1612 AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])
1615 if test $ol_cv_pthread_select_yields = yes ; then
1616 ol_with_yielding_select=yes
1621 CPPFLAGS="$save_CPPFLAGS"
1624 AC_MSG_ERROR([could not locate usable POSIX Threads])
1628 if test $ol_with_threads = posix ; then
1629 AC_MSG_ERROR([could not locate POSIX Threads])
1633 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1634 -o $ol_with_threads = mach ; then
1636 dnl check for Mach CThreads
1637 AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
1638 if test $ac_cv_header_mach_cthreads_h = yes ; then
1639 ol_with_threads=found
1641 dnl check for cthreads support in current $LIBS
1642 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1644 if test $ol_link_threads = no ; then
1646 dnl this test needs work
1647 AC_CACHE_CHECK([for cthread_fork with -all_load],
1648 [ol_cv_cthread_all_load], [
1651 LIBS="-all_load $LIBS"
1652 AC_TRY_LINK([#include <mach/cthreads.h>],[
1653 cthread_fork((void *)0, (void *)0);
1654 ], ol_cv_cthread_all_load=yes, ol_cv_cthread_all_load=no)
1655 dnl restore the LIBS
1659 if test $ol_cv_cthread_all_load = yes ; then
1660 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
1661 ol_link_threads=mach
1662 ol_with_threads=found
1666 elif test $ac_cv_header_cthreads_h = yes ; then
1667 dnl Hurd variant of Mach Cthreads
1668 dnl uses <cthreads.h> and -lthreads
1670 ol_with_threads=found
1674 LIBS="$LIBS -lthreads"
1675 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1678 if test $ol_link_threads = yes ; then
1679 LTHREAD_LIBS="-lthreads"
1680 ol_link_threads=mach
1681 ol_with_threads=found
1683 AC_MSG_ERROR([could not link with Mach CThreads])
1686 elif test $ol_with_threads = mach ; then
1687 AC_MSG_ERROR([could not locate Mach CThreads])
1690 if test $ol_link_threads = mach ; then
1691 AC_DEFINE(HAVE_MACH_CTHREADS,1,
1692 [define if you have Mach Cthreads])
1693 elif test $ol_with_threads = found ; then
1694 AC_MSG_ERROR([could not link with Mach CThreads])
1698 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1699 -o $ol_with_threads = pth ; then
1701 AC_CHECK_HEADERS(pth.h)
1703 if test $ac_cv_header_pth_h = yes ; then
1704 AC_CHECK_LIB(pth, pth_version, [have_pth=yes], [have_pth=no])
1706 if test $have_pth = yes ; then
1707 AC_DEFINE(HAVE_GNU_PTH,1,[if you have GNU Pth])
1708 LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
1710 ol_with_threads=found
1712 if test $ol_with_yielding_select = auto ; then
1713 ol_with_yielding_select=yes
1719 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1720 -o $ol_with_threads = lwp ; then
1722 dnl check for SunOS5 LWP
1723 AC_CHECK_HEADERS(thread.h synch.h)
1724 if test $ac_cv_header_thread_h = yes -a $ac_cv_header_synch_h = yes ; then
1725 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
1727 if test $have_thr = yes ; then
1728 AC_DEFINE(HAVE_THR,1,
1729 [if you have Solaris LWP (thr) package])
1730 LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
1733 if test $ol_with_yielding_select = auto ; then
1734 ol_with_yielding_select=yes
1737 dnl Check for setconcurreny functions
1739 thr_setconcurrency \
1740 thr_getconcurrency \
1745 dnl check for SunOS4 LWP
1746 AC_CHECK_HEADERS(lwp/lwp.h)
1747 if test $ac_cv_header_lwp_lwp_h = yes ; then
1748 AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
1750 if test $have_lwp = yes ; then
1751 AC_DEFINE(HAVE_LWP,1,
1752 [if you have SunOS LWP package])
1753 LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
1756 if test $ol_with_yielding_select = auto ; then
1757 ol_with_yielding_select=no
1763 if test $ol_with_yielding_select = yes ; then
1764 AC_DEFINE(HAVE_YIELDING_SELECT,1,
1765 [define if select implicitly yields])
1768 if test $ol_with_threads = manual ; then
1769 dnl User thinks he can manually configure threads.
1772 AC_MSG_WARN([thread defines and link options must be set manually])
1774 AC_CHECK_HEADERS(pthread.h sched.h)
1775 AC_CHECK_FUNCS(sched_yield pthread_yield)
1776 OL_HEADER_LINUX_THREADS
1778 AC_CHECK_HEADERS(mach/cthreads.h)
1779 AC_CHECK_HEADERS(lwp/lwp.h)
1780 AC_CHECK_HEADERS(thread.h synch.h)
1783 if test $ol_link_threads != no -a $ol_link_threads != nt ; then
1784 dnl needed to get reentrant/threadsafe versions
1786 AC_DEFINE(REENTRANT,1)
1787 AC_DEFINE(_REENTRANT,1)
1788 AC_DEFINE(THREAD_SAFE,1)
1789 AC_DEFINE(_THREAD_SAFE,1)
1790 AC_DEFINE(THREADSAFE,1)
1791 AC_DEFINE(_THREADSAFE,1)
1792 AC_DEFINE(_SGI_MP_SOURCE,1)
1794 dnl The errno declaration may dependent upon _REENTRANT.
1795 dnl If it does, we must link with thread support.
1796 AC_CACHE_CHECK([for thread specific errno],
1797 [ol_cv_errno_thread_specific], [
1798 AC_TRY_LINK([#include <errno.h>], [errno = 0;],
1799 [ol_cv_errno_thread_specific=yes],
1800 [ol_cv_errno_thread_specific=no])
1803 dnl The h_errno declaration may dependent upon _REENTRANT.
1804 dnl If it does, we must link with thread support.
1805 AC_CACHE_CHECK([for thread specific h_errno],
1806 [ol_cv_h_errno_thread_specific], [
1807 AC_TRY_LINK([#include <netdb.h>], [h_errno = 0;],
1808 [ol_cv_h_errno_thread_specific=yes],
1809 [ol_cv_h_errno_thread_specific=no])
1812 if test $ol_cv_errno_thread_specific != yes \
1813 -o $ol_cv_h_errno_thread_specific != yes ; then
1814 LIBS="$LTHREAD_LIBS $LIBS"
1818 dnl When in thread environment, use
1819 dnl #if defined( HAVE_REENTRANT_FUNCTIONS ) || defined( HAVE_FUNC_R )
1822 dnl # if defined( HAVE_THREADS )
1826 dnl # if defined( HAVE_THREADS )
1831 dnl HAVE_REENTRANT_FUNCTIONS is derived from:
1832 dnl _POSIX_REENTRANT_FUNCTIONS
1833 dnl _POSIX_THREAD_SAFE_FUNCTIONS
1834 dnl _POSIX_THREADSAFE_FUNCTIONS
1836 dnl and is currently defined in <ldap_pvt_thread.h>
1838 dnl HAVE_THREADS is defined by <ldap_pvt_thread.h> iff -UNO_THREADS
1840 dnl libldap/*.c should only include <ldap_pvt_thread.h> iff
1841 dnl LDAP_R_COMPILE is defined. ie:
1842 dnl #ifdef LDAP_R_COMPILE
1843 dnl # include <ldap_pvt_thread.h>
1846 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
1847 dnl specifically for compiling the threadsafe version of
1848 dnl the ldap library (-lldap_r).
1850 dnl dnl check for reentrant/threadsafe functions
1852 dnl dnl note: these should only be used when linking
1853 dnl dnl with $LTHREAD_LIBS
1855 dnl save_CPPFLAGS="$CPPFLAGS"
1856 dnl save_LIBS="$LIBS"
1857 dnl LIBS="$LTHREAD_LIBS $LIBS"
1858 dnl AC_CHECK_FUNCS( \
1860 dnl gethostbyaddr_r gethostbyname_r \
1861 dnl feof_unlocked unlocked_feof \
1862 dnl putc_unlocked unlocked_putc \
1863 dnl flockfile ftrylockfile \
1865 dnl CPPFLAGS="$save_CPPFLAGS"
1866 dnl LIBS="$save_LIBS"
1869 if test $ol_link_threads = no ; then
1870 if test $ol_with_threads = yes ; then
1871 AC_MSG_ERROR([no suitable thread support])
1874 if test $ol_with_threads = auto ; then
1875 AC_MSG_WARN([no suitable thread support, disabling threads])
1879 AC_DEFINE(NO_THREADS,1,
1880 [define if you have (or want) no threads])
1884 if test $ol_link_threads != no ; then
1885 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1)
1888 dnl ----------------------------------------------------------------
1889 dnl Tests for reentrant functions necessary to build -lldap_r
1892 gethostbyname_r gethostbyaddr_r \
1895 if test "$ac_cv_func_ctime_r" = no ; then
1896 ol_cv_func_ctime_r_nargs=0
1898 OL_FUNC_CTIME_R_NARGS
1899 dnl OL_FUNC_CTIME_R_TYPE
1902 if test "$ac_cv_func_gethostbyname_r" = yes ; then
1903 OL_FUNC_GETHOSTBYNAME_R_NARGS
1905 ol_cv_func_gethostbyname_r_nargs=0
1908 if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
1909 OL_FUNC_GETHOSTBYADDR_R_NARGS
1911 ol_cv_func_gethostbyaddr_r_nargs=0
1914 dnl ----------------------------------------------------------------
1917 if test $ol_with_ldbm_api = auto \
1918 -o $ol_with_ldbm_api = berkeley \
1919 -o $ol_with_ldbm_api = bcompat ; then
1921 if test $ol_with_ldbm_api = bcompat; then \
1922 OL_BERKELEY_COMPAT_DB
1927 if test $ol_cv_berkeley_db != no ; then
1928 AC_DEFINE(HAVE_BERKELEY_DB,1,
1929 [define this if Berkeley DB is available])
1931 ol_link_ldbm=berkeley
1932 ol_with_ldbm_api=berkeley
1934 if test $ol_with_ldbm_type = hash ; then
1935 AC_DEFINE(LDBM_USE_DBHASH,1,
1936 [define this to use DBHASH w/ LDBM backend])
1938 AC_DEFINE(LDBM_USE_DBBTREE,1,
1939 [define this to use DBBTREE w/ LDBM backend])
1942 dnl $ol_cv_lib_db should be yes or -ldb
1943 dnl (it could be no, but that would be an error
1944 if test $ol_cv_lib_db != yes ; then
1945 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
1950 if test $ol_enable_bdb != no -o $ol_enable_hdb != no; then
1951 if test $ol_link_ldbm != berkeley ; then
1952 AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
1956 if test $ol_cv_bdb_compat != yes ; then
1957 AC_MSG_ERROR([BDB/HDB: BerkeleyDB version incompatible])
1962 if test $ol_link_ldbm = no -a $ol_with_ldbm_type = btree ; then
1963 AC_MSG_WARN([Could not find LDBM with BTREE support])
1964 ol_with_ldbm_api=none
1967 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = mdbm ; then
1970 if test $ol_cv_mdbm = yes ; then
1972 ol_with_ldbm_api=mdbm
1973 if test $ol_cv_lib_mdbm != yes ; then
1974 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_mdbm"
1979 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = gdbm ; then
1982 if test $ol_cv_gdbm = yes ; then
1984 ol_with_ldbm_api=gdbm
1986 if test $ol_cv_lib_gdbm != yes ; then
1987 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
1992 if test $ol_with_ldbm_api = ndbm ; then
1995 if test $ol_cv_ndbm = yes ; then
1997 ol_with_ldbm_api=ndbm
1999 if test $ol_cv_lib_ndbm != yes ; then
2000 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
2005 if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
2006 AC_MSG_ERROR([could not find suitable LDBM backend])
2009 if test $ol_enable_bdb = yes -o \
2010 $ol_enable_hdb = yes -o \
2011 $ol_enable_ldbm = yes ; then
2012 SLAPD_LIBS="$SLAPD_LIBS \$(LDBM_LIBS)"
2015 dnl ----------------------------------------------------------------
2017 if test $ol_enable_dynamic = yes -a $enable_shared = yes ; then
2018 BUILD_LIBS_DYNAMIC=shared
2019 AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
2022 BUILD_LIBS_DYNAMIC=static
2025 AC_SUBST(LTSTATIC)dnl
2027 dnl ----------------------------------------------------------------
2028 if test $ol_enable_wrappers != no ; then
2029 AC_CHECK_HEADERS(tcpd.h,[
2030 AC_MSG_CHECKING([for TCP wrappers library])
2035 int allow_severity = 0;
2036 int deny_severity = 0;
2038 struct request_info *req;
2041 ],[AC_MSG_RESULT([-lwrap])
2043 LIBS="$save_LIBS"],[
2048 int allow_severity = 0;
2049 int deny_severity = 0;
2051 struct request_info *req;
2054 ],[AC_MSG_RESULT([-lwrap -lnsl])
2056 LIBS="$save_LIBS -lnsl"],[
2059 LIBS=$save_LIBS])],[
2060 have_wrappers=no])],[have_wrappers=no])
2062 if test $have_wrappers = yes ; then
2063 AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
2065 elif test $ol_enable_wrappers = yes ; then
2066 AC_MSG_ERROR([could not find TCP wrappers, select apppropriate options or disable])
2068 AC_MSG_WARN([could not find TCP wrappers, support disabled])
2073 dnl ----------------------------------------------------------------
2074 if test $ol_enable_syslog != no ; then
2075 AC_CHECK_FUNC(openlog)
2076 if test $ac_cv_func_openlog = no -a $ol_enable_syslog = yes; then
2077 AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
2079 ol_enable_syslog=$ac_cv_func_openlog
2082 dnl ----------------------------------------------------------------
2083 dnl dmalloc support (deprecated in favor of -DCSRIMALLOC support)
2084 dnl if test $ol_enable_dmalloc != no ; then
2085 dnl AC_CHECK_HEADERS(dmalloc.h)
2086 dnl AC_CHECK_LIB(dmalloc, dmalloc_shutdown)
2089 dnl ----------------------------------------------------------------
2092 if test $ol_enable_sql != no ; then
2093 AC_CHECK_HEADERS(sql.h sqlext.h,[],[
2094 AC_MSG_ERROR([could not locate SQL headers])
2097 AC_CHECK_LIB(iodbc,SQLDriverConnect,[have_iodbc=yes],[have_iodbc=no])
2098 if test $have_iodbc = yes ; then
2099 ol_link_sql="-liodbc"
2101 AC_CHECK_LIB(odbc,SQLDriverConnect,[have_odbc=yes],[have_odbc=no])
2102 if test $have_odbc = yes ; then
2103 ol_link_sql="-lodbc"
2107 if test $ol_link_sql != no ; then
2108 SLAPD_SQL_LIBS="$ol_link_sql"
2110 elif test $ol_enable_sql != auto ; then
2111 AC_MSG_ERROR([could not locate suitable ODBC library])
2115 dnl ----------------------------------------------------------------
2117 dnl Check for Cyrus SASL
2122 if test $ol_with_cyrus_sasl != no ; then
2123 AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
2125 if test $ac_cv_header_sasl_sasl_h = yes -o $ac_cv_header_sasl_h = yes; then
2126 AC_CHECK_LIB(sasl2, sasl_client_init,
2127 [ol_link_sasl="-lsasl2"],
2128 [AC_CHECK_LIB(sasl, sasl_client_init,
2129 [ol_link_sasl="-lsasl"])])
2132 if test $ol_link_sasl = no ; then
2133 if test $ol_with_cyrus_sasl != auto ; then
2134 AC_MSG_ERROR([Could not locate Cyrus SASL])
2136 AC_MSG_WARN([Could not locate Cyrus SASL])
2137 AC_MSG_WARN([SASL authentication not supported!])
2138 if test $ol_link_tls = no ; then
2139 AC_MSG_WARN([Strong authentication not supported!])
2144 if test $ol_cv_sasl_compat = no ; then
2146 AC_MSG_ERROR([Cyrus SASL library located but is incompatible])
2149 AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
2150 SASL_LIBS="$ol_link_sasl"
2151 if test $ol_enable_spasswd != no ; then
2155 ac_save_LIBS="$LIBS"
2156 LIBS="$LIBS $ol_link_sasl"
2157 AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1,
2158 [define if your SASL library has sasl_version()])])
2159 LIBS="$ac_save_LIBS"
2165 AC_MSG_WARN([SASL authentication not supported!])
2166 if test $ol_link_tls = no ; then
2167 AC_MSG_WARN([Strong authentication not supported!])
2171 dnl ----------------------------------------------------------------
2172 dnl Check for entropy sources
2173 if test $cross_compiling != yes -a "$ac_cv_mingw32" != yes ; then
2175 if test -r /dev/urandom ; then
2177 elif test -r /idev/urandom ; then
2178 dev="/idev/urandom";
2179 elif test -r /dev/srandom ; then
2181 elif test -r /dev/random ; then
2183 elif test -r /idev/random ; then
2187 if test $dev != no ; then
2188 AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
2192 dnl ----------------------------------------------------------------
2194 dnl Check for fetch URL support
2195 dnl should be extended to support other fetch URL APIs
2198 if test $ol_with_fetch != no ; then
2201 if test $ol_cv_lib_fetch != no ; then
2202 LUTIL_LIBS="$LUTIL_LIBS $ol_link_fetch"
2203 ol_link_fetch=freebsd
2205 elif test $ol_with_fetch != auto ; then
2206 AC_MSG_ERROR(no suitable API for --with-fetch=$ol_with_fetch)
2210 dnl ----------------------------------------------------------------
2211 dnl FreeBSD (and others) have crypt(3) in -lcrypt
2212 if test $ol_enable_crypt != no ; then
2214 LIBS="$TLS_LIBS $LIBS"
2216 AC_CHECK_FUNC(crypt, [have_crypt=yes], [
2218 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
2219 have_crypt=yes], [have_crypt=no])])
2223 if test $have_crypt = yes ; then
2224 AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
2226 AC_MSG_WARN([could not find crypt])
2227 if test $ol_enable_crypt = yes ; then
2228 AC_MSG_ERROR([could not find crypt, select appropriate options or disable])
2231 AC_MSG_WARN([disabling crypt support])
2236 dnl ----------------------------------------------------------------
2237 dnl FreeBSD (and others) have setproctitle(3) in -lutil
2238 if test $ol_enable_proctitle != no ; then
2239 AC_CHECK_FUNC(setproctitle, [have_setproctitle=yes], [
2240 AC_CHECK_LIB(util, setproctitle,
2241 [have_setproctitle=yes
2242 LUTIL_LIBS="$LUTIL_LIBS -lutil"],
2243 [have_setproctitle=no
2244 LIBOBJS="$LIBOBJS setproctitle.o"
2245 LIBSRCS="$LIBSRCS setproctitle.c"])])
2247 if test $have_setproctitle = yes ; then
2248 AC_DEFINE(HAVE_SETPROCTITLE,1,
2249 [define if setproctitle(3) is available])
2253 dnl ----------------------------------------------------------------
2254 dnl Check for SLPv2 Compliant API Library
2255 if test $ol_enable_slp != no ; then
2256 AC_CHECK_HEADERS( slp.h )
2258 if test $ac_cv_header_slp_h = yes ; then
2259 AC_CHECK_LIB(slp, SLPOpen, [have_slp=yes], [have_slp=no])
2260 if test $have_slp = yes ; then
2261 AC_DEFINE(HAVE_SLP, 1, [define if you have -lslp])
2262 SLAPD_SLP_LIBS=-lslp
2265 elif test $ol_enable_slp = yes ; then
2266 AC_MSG_ERROR([SLP not found])
2270 dnl ----------------------------------------------------------------
2271 dnl Check for multiple precision support
2272 if test "$ol_with_multiple_precision" != "no" ; then
2276 AC_CHECK_HEADERS(openssl/bn.h bn.h)
2277 AC_CHECK_HEADERS(openssl/crypto.h crypto.h)
2278 AC_CHECK_HEADERS( gmp.h )
2280 if test "$ol_with_tls" = "found" ; then
2284 if test "$ac_cv_header_openssl_bn_h" = "yes" \
2285 -o "$ac_cv_header_bn_h" = "yes" ; then
2289 if test "$ac_cv_header_openssl_crypto_h" = "yes" \
2290 -o "$ac_cv_header_crypto_h" = "yes" ; then
2291 ol_have_crypto_h=yes
2294 if test "$ol_have_bn_h" = "yes" \
2295 -a "$ol_have_crypto_h" = "yes" ; then
2300 if test $ac_cv_header_gmp_h = yes ; then
2301 AC_CHECK_LIB(gmp, __gmpz_add_ui, [have_gmp=yes], [have_gmp=no])
2302 if test $have_gmp = yes ; then
2307 AC_MSG_CHECKING([for multiple precision support])
2309 ol_mp_support="none"
2310 case "$ol_with_multiple_precision" in
2312 dnl preferred sequence:
2313 dnl - OpenSSL's BIGNUM (if libssl is already linked)
2316 if test "$ol_have_bignum" = "yes" ; then
2317 ol_mp_support="bignum"
2319 if test "$ol_have_gmp" = "yes" ; then
2325 if test "$ol_have_bignum" != "yes" ; then
2326 AC_MSG_ERROR([OpenSSL's BIGNUM not available])
2328 ol_mp_support="bignum"
2331 if test "$ol_have_gmp" != "yes" ; then
2332 AC_MSG_ERROR([GMP not available])
2337 if test "$ol_have_bignum" = "yes" ; then
2338 ol_mp_support="bignum"
2339 elif test "$ol_have_gmp" = "yes" ; then
2342 AC_MSG_ERROR([not available])
2347 case "$ol_mp_support" in
2349 AC_DEFINE(HAVE_BIGNUM, 1,
2350 [define if you have SSLeay or OpenSSL's BIGNUM])
2353 AC_DEFINE(HAVE_GMP, 1, [define if you have -lgmp])
2354 SLAPD_GMP_LIBS=-lgmp
2360 AC_MSG_RESULT($ol_mp_support)
2363 dnl ----------------------------------------------------------------
2364 dnl Checks for typedefs, structures, and compiler characteristics.
2366 dnl Checks for long long
2367 AC_CACHE_CHECK([long long], ol_cv_type_long_long, [
2368 AC_TRY_COMPILE([], [long long x;],
2369 [ol_cv_type_long_long=yes],
2370 [ol_cv_type_long_long=no])])
2371 if test $ol_cv_type_long_long = yes; then
2372 AC_DEFINE(HAVE_LONG_LONG, 1, [define if you have 'long long'])
2382 AC_CHECK_TYPE(ssize_t, [signed int])
2383 AC_CHECK_TYPE(caddr_t, [char *])
2386 AC_STRUCT_ST_BLKSIZE
2390 OL_TYPE_SIG_ATOMIC_T
2392 dnl AC_TYPE_GETGROUPS
2394 OL_STRUCT_PASSWD_PW_GECOS
2395 OL_STRUCT_PASSWD_PW_PASSWD
2401 if test $cross_compiling = yes ; then
2402 AC_MSG_WARN([Crossing compiling... all bets are off!])
2403 AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
2408 AC_COMPILE_CHECK_SIZEOF(short)
2409 AC_COMPILE_CHECK_SIZEOF(int)
2410 AC_COMPILE_CHECK_SIZEOF(long)
2411 AC_COMPILE_CHECK_SIZEOF(wchar_t)
2413 if test "$ac_cv_sizeof_int" -lt 4 ; then
2414 AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
2416 AC_DEFINE(LBER_INT_T,long)
2418 AC_DEFINE(LBER_INT_T,int)
2421 AC_DEFINE(LBER_LEN_T,long)
2422 AC_DEFINE(LBER_SOCKET_T,int)
2423 AC_DEFINE(LBER_TAG_T,long)
2425 dnl ----------------------------------------------------------------
2426 dnl Checks for library functions.
2428 dnl AM_FUNC_MKTIME dnl checks for sys/time.h and unistd.h
2434 dnl Check for NT specific routines
2435 AC_CHECK_FUNC(_spawnlp, AC_DEFINE(HAVE_SPAWNLP,1,[if you have spawnlp()]))
2437 AC_CHECK_FUNC(_snprintf, [ac_cv_func_snprintf=yes
2438 AC_DEFINE(snprintf, _snprintf, [define to snprintf routine])
2441 AC_CHECK_FUNC(_vsnprintf, [ac_cv_func_vsnprintf=yes
2442 AC_DEFINE(vsnprintf, _vsnprintf, [define to vsnprintf routine])
2447 if test $ac_cv_func_vprintf = yes ; then
2448 dnl check for vsnprintf
2449 AC_CHECK_FUNCS(snprintf vsnprintf)
2510 dnl We actually may need to replace more than this.
2511 AC_REPLACE_FUNCS(getopt getpeereid)
2513 if test "$ac_cv_func_getopt" != yes; then
2514 LIBSRCS="$LIBSRCS getopt.c"
2516 if test "$ac_cv_func_getpeereid" != yes; then
2517 OL_MSGHDR_MSG_ACCRIGHTS
2518 LIBSRCS="$LIBSRCS getpeereid.c"
2520 if test "$ac_cv_func_snprintf" != yes -o "$ac_cv_func_vsnprintf" != yes; then
2521 if test "$ac_cv_func_snprintf" != yes; then
2522 AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
2524 if test "$ac_cv_func_vsnprintf" != yes; then
2525 AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine])
2529 dnl ----------------------------------------------------------------
2530 dnl Sort out defines
2532 if test "$ol_enable_slapi" != no ; then
2533 dnl This check is done also if --enable-modules is used;
2534 dnl it is duplicated here, 'cause it'd be cached anyway
2535 AC_CHECK_HEADERS(ltdl.h)
2537 if test $ac_cv_header_ltdl_h != yes ; then
2538 AC_MSG_ERROR([could not locate <ltdl.h>])
2540 AC_CHECK_LIB(ltdl, lt_dlinit, [
2543 LIBSLAPITOOLS=../libslapi.a
2544 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
2545 ],[AC_MSG_ERROR([could not locate libtool -lltdl])])
2547 AC_DEFINE(LDAP_SLAPI,1, [define this to add SLAPI code])
2550 if test "$ol_enable_debug" != no ; then
2551 AC_DEFINE(LDAP_DEBUG,1,
2552 [define this to add debugging code])
2554 if test "$ol_enable_syslog" = yes ; then
2555 AC_DEFINE(LDAP_SYSLOG,1,
2556 [define this to add syslog code])
2558 if test "$ol_link_kbind" != no ; then
2559 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND,LDAP_VENDOR_VERSION)
2561 if test "$ol_enable_proctitle" != no ; then
2562 AC_DEFINE(LDAP_PROCTITLE,1,
2563 [define this for LDAP process title support])
2565 if test "$ol_enable_referrals" != no ; then
2566 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION)
2568 if test "$ol_enable_local" != no; then
2569 AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
2571 if test "$ol_link_ipv6" != no; then
2572 AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
2574 if test "$ol_enable_cleartext" != no ; then
2575 AC_DEFINE(SLAPD_CLEARTEXT,1,[define to support cleartext passwords])
2577 if test "$ol_enable_crypt" != no ; then
2578 AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords])
2580 if test "$ol_link_spasswd" != no ; then
2581 AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
2583 if test "$ol_enable_multimaster" != no ; then
2584 AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
2586 if test "$ol_enable_rlookups" != no ; then
2587 AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
2589 if test "$ol_enable_aci" != no ; then
2590 AC_DEFINE(SLAPD_ACI_ENABLED,1,[define to support per-object ACIs])
2593 if test "$ol_link_modules" != no ; then
2594 AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
2596 SLAPD_MODULES_LDFLAGS="-dlopen self"
2599 AC_DEFINE(SLAPD_MOD_STATIC,1,[statically linked module])
2600 AC_DEFINE(SLAPD_MOD_DYNAMIC,2,[dynamically linked module])
2602 if test "$ol_enable_bdb" != no ; then
2604 BUILD_BDB=$ol_enable_bdb
2605 if test "$ol_enable_bdb" = mod ; then
2606 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
2607 MFLAG=SLAPD_MOD_DYNAMIC
2609 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
2610 MFLAG=SLAPD_MOD_STATIC
2612 AC_DEFINE_UNQUOTED(SLAPD_BDB,$MFLAG,[define to support BDB backend])
2615 if test "$ol_enable_dnssrv" != no ; then
2617 BUILD_DNSSRV=$ol_enable_dnssrv
2618 if test "$ol_enable_dnssrv" = mod ; then
2619 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
2620 MFLAG=SLAPD_MOD_DYNAMIC
2622 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
2623 MFLAG=SLAPD_MOD_STATIC
2625 AC_DEFINE_UNQUOTED(SLAPD_DNSSRV,$MFLAG,[define to support DNS SRV backend])
2628 if test "$ol_enable_hdb" != no ; then
2630 BUILD_HDB=$ol_enable_hdb
2631 if test "$ol_enable_hdb" = mod ; then
2632 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-hdb"
2633 MFLAG=SLAPD_MOD_DYNAMIC
2635 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb"
2636 MFLAG=SLAPD_MOD_STATIC
2638 AC_DEFINE_UNQUOTED(SLAPD_HDB,$MFLAG,[define to support HDB backend])
2641 if test "$ol_enable_ldap" != no ; then
2643 BUILD_LDAP=$ol_enable_ldap
2644 if test "$ol_enable_ldap" = mod ; then
2645 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
2646 MFLAG=SLAPD_MOD_DYNAMIC
2648 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
2649 MFLAG=SLAPD_MOD_STATIC
2651 AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
2654 if test "$ol_link_ldbm" != no -a $ol_enable_ldbm != no; then
2656 BUILD_LDBM=$ol_enable_ldbm
2657 if test "$ol_enable_ldbm" = mod ; then
2658 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldbm"
2659 MFLAG=SLAPD_MOD_DYNAMIC
2661 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldbm"
2662 MFLAG=SLAPD_MOD_STATIC
2664 AC_DEFINE_UNQUOTED(SLAPD_LDBM,$MFLAG,[define to support LDBM backend])
2667 if test "$ol_enable_meta" != no ; then
2669 BUILD_META=$ol_enable_meta
2671 if test "$ol_enable_meta" = mod ; then
2672 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
2673 MFLAG=SLAPD_MOD_DYNAMIC
2675 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
2676 MFLAG=SLAPD_MOD_STATIC
2678 AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
2681 if test "$ol_enable_monitor" != no ; then
2683 BUILD_MONITOR=$ol_enable_monitor
2684 if test "$ol_enable_monitor" = mod ; then
2685 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
2686 MFLAG=SLAPD_MOD_DYNAMIC
2688 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
2689 MFLAG=SLAPD_MOD_STATIC
2691 AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
2694 if test "$ol_enable_null" != no ; then
2696 BUILD_NULL=$ol_enable_null
2697 if test "$ol_enable_null" = mod ; then
2698 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
2699 MFLAG=SLAPD_MOD_DYNAMIC
2701 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
2702 MFLAG=SLAPD_MOD_STATIC
2704 AC_DEFINE_UNQUOTED(SLAPD_NULL,$MFLAG,[define to support NULL backend])
2707 if test "$ol_enable_passwd" != no ; then
2709 BUILD_PASSWD=$ol_enable_passwd
2710 if test "$ol_enable_passwd" = mod ; then
2711 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
2712 MFLAG=SLAPD_MOD_DYNAMIC
2714 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
2715 MFLAG=SLAPD_MOD_STATIC
2717 AC_DEFINE_UNQUOTED(SLAPD_PASSWD,$MFLAG,[define to support PASSWD backend])
2720 if test "$ol_link_perl" != no ; then
2722 BUILD_PERL=$ol_enable_perl
2723 if test "$ol_enable_perl" = mod ; then
2724 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
2725 MFLAG=SLAPD_MOD_DYNAMIC
2727 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
2728 MFLAG=SLAPD_MOD_STATIC
2730 AC_DEFINE_UNQUOTED(SLAPD_PERL,$MFLAG,[define to support PERL backend])
2733 if test "$ol_enable_relay" != no ; then
2735 BUILD_RELAY=$ol_enable_relay
2736 if test "$ol_enable_relay" = mod ; then
2737 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-relay"
2738 MFLAG=SLAPD_MOD_DYNAMIC
2740 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-relay"
2741 MFLAG=SLAPD_MOD_STATIC
2743 AC_DEFINE_UNQUOTED(SLAPD_RELAY,$MFLAG,[define to support relay backend])
2746 if test "$ol_enable_shell" != no ; then
2747 if test "$ol_link_thread" != no ; then
2748 AC_MSG_WARN([Use of --without-threads is recommended with back-shell])
2751 BUILD_SHELL=$ol_enable_shell
2752 if test "$ol_enable_shell" = mod ; then
2753 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
2754 MFLAG=SLAPD_MOD_DYNAMIC
2756 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
2757 MFLAG=SLAPD_MOD_STATIC
2759 AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend])
2762 if test "$ol_link_sql" != no ; then
2764 BUILD_SQL=$ol_enable_sql
2765 if test "$ol_enable_sql" = mod; then
2766 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
2767 MFLAG=SLAPD_MOD_DYNAMIC
2769 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
2770 MFLAG=SLAPD_MOD_STATIC
2772 AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend])
2775 if test "$ol_enable_chain" != no ; then
2776 BUILD_CHAIN=$ol_enable_chain
2777 if test "$ol_enable_chain" = mod ; then
2778 MFLAG=SLAPD_MOD_DYNAMIC
2779 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS chain.la"
2781 MFLAG=SLAPD_MOD_STATIC
2783 AC_DEFINE_UNQUOTED(SLAPD_OVER_CHAIN,$MFLAG,[define for Dynamic Group overlay])
2786 if test "$ol_enable_denyop" != no ; then
2787 BUILD_DENYOP=$ol_enable_denyop
2788 if test "$ol_enable_denyop" = mod ; then
2789 MFLAG=SLAPD_MOD_DYNAMIC
2790 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS denyop.la"
2792 MFLAG=SLAPD_MOD_STATIC
2794 AC_DEFINE_UNQUOTED(SLAPD_OVER_DENYOP,$MFLAG,[define for Dynamic Group overlay])
2797 if test "$ol_enable_dyngroup" != no ; then
2798 BUILD_DYNGROUP=$ol_enable_dyngroup
2799 if test "$ol_enable_dyngroup" = mod ; then
2800 MFLAG=SLAPD_MOD_DYNAMIC
2801 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dyngroup.la"
2803 MFLAG=SLAPD_MOD_STATIC
2805 AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay])
2808 if test "$ol_enable_glue" != no ; then
2809 BUILD_GLUE=$ol_enable_glue
2810 if test "$ol_enable_glue" = mod ; then
2811 MFLAG=SLAPD_MOD_DYNAMIC
2812 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS glue.la"
2814 MFLAG=SLAPD_MOD_STATIC
2816 AC_DEFINE_UNQUOTED(SLAPD_OVER_GLUE,$MFLAG,[define for Backend Glue overlay])
2819 if test "$ol_enable_lastmod" != no ; then
2820 BUILD_LASTMOD=$ol_enable_lastmod
2821 if test "$ol_enable_lastmod" = mod ; then
2822 MFLAG=SLAPD_MOD_DYNAMIC
2823 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS lastmod.la"
2825 MFLAG=SLAPD_MOD_STATIC
2827 AC_DEFINE_UNQUOTED(SLAPD_OVER_LASTMOD,$MFLAG,[define for Last Modification overlay])
2830 if test "$ol_enable_ppolicy" != no ; then
2831 BUILD_PPOLICY=$ol_enable_ppolicy
2832 if test "$ol_enable_ppolicy" = mod ; then
2833 MFLAG=SLAPD_MOD_DYNAMIC
2834 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS ppolicy.la"
2836 MFLAG=SLAPD_MOD_STATIC
2838 AC_DEFINE_UNQUOTED(SLAPD_OVER_PPOLICY,$MFLAG,[define for Password Policy overlay])
2841 if test "$ol_enable_proxycache" != no ; then
2842 BUILD_PROXYCACHE=$ol_enable_proxycache
2843 if test "$ol_enable_proxycache" = mod ; then
2844 MFLAG=SLAPD_MOD_DYNAMIC
2845 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS pcache.la"
2847 MFLAG=SLAPD_MOD_STATIC
2849 AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay])
2852 if test "$ol_enable_refint" != no ; then
2853 BUILD_REFINT=$ol_enable_refint
2854 if test "$ol_enable_refint" = mod ; then
2855 MFLAG=SLAPD_MOD_DYNAMIC
2856 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la"
2858 MFLAG=SLAPD_MOD_STATIC
2860 AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay])
2863 if test "$ol_enable_rwm" != no ; then
2865 BUILD_RWM=$ol_enable_rwm
2866 if test "$ol_enable_rwm" = mod ; then
2867 MFLAG=SLAPD_MOD_DYNAMIC
2868 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS rwm.la"
2870 MFLAG=SLAPD_MOD_STATIC
2872 AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
2875 if test "$ol_enable_syncprov" != no ; then
2876 BUILD_SYNCPROV=$ol_enable_syncprov
2877 if test "$ol_enable_syncprov" = mod ; then
2878 MFLAG=SLAPD_MOD_DYNAMIC
2879 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS syncprov.la"
2881 MFLAG=SLAPD_MOD_STATIC
2883 AC_DEFINE_UNQUOTED(SLAPD_OVER_SYNCPROV,$MFLAG,[define for Syncrepl Provider overlay])
2886 if test "$ol_enable_unique" != no ; then
2887 BUILD_UNIQUE=$ol_enable_unique
2888 if test "$ol_enable_unique" = mod ; then
2889 MFLAG=SLAPD_MOD_DYNAMIC
2890 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la"
2892 MFLAG=SLAPD_MOD_STATIC
2894 AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay])
2897 if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \
2898 $BUILD_SLAPD = yes ; then
2902 if test "$ol_enable_rewrite" != no ; then
2903 AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta])
2907 if test "$ol_enable_slapi" != no ; then
2908 AC_DEFINE(ENABLE_SLAPI,1,[define to enable slapi library])
2910 SLAPD_SLAPI_DEPEND=libslapi.a
2913 dnl ----------------------------------------------------------------
2916 dnl For Windows build, we don't want to include -dlopen flags.
2917 dnl They hurt more than they help.
2920 if test "$ac_cv_mingw32" = yes ; then
2922 SLAPD_MODULES_LDFLAGS=
2931 AC_SUBST(WITH_MODULES_ENABLED)
2932 AC_SUBST(BUILD_LIBS_DYNAMIC)
2934 AC_SUBST(BUILD_SLAPD)
2936 AC_SUBST(BUILD_SLAPI)
2937 AC_SUBST(SLAPD_SLAPI_DEPEND)
2940 AC_SUBST(BUILD_DNSSRV)
2942 AC_SUBST(BUILD_LDAP)
2943 AC_SUBST(BUILD_LDBM)
2944 AC_SUBST(BUILD_META)
2945 AC_SUBST(BUILD_MONITOR)
2946 AC_SUBST(BUILD_NULL)
2947 AC_SUBST(BUILD_PASSWD)
2948 AC_SUBST(BUILD_RELAY)
2949 AC_SUBST(BUILD_PERL)
2950 AC_SUBST(BUILD_SHELL)
2953 AC_SUBST(BUILD_CHAIN)
2954 AC_SUBST(BUILD_DENYOP)
2955 AC_SUBST(BUILD_DYNGROUP)
2956 AC_SUBST(BUILD_GLUE)
2957 AC_SUBST(BUILD_LASTMOD)
2958 AC_SUBST(BUILD_PPOLICY)
2959 AC_SUBST(BUILD_PROXYCACHE)
2960 AC_SUBST(BUILD_REFINT)
2962 AC_SUBST(BUILD_SYNCPROV)
2963 AC_SUBST(BUILD_UNIQUE)
2964 AC_SUBST(BUILD_SLURPD)
2967 AC_SUBST(SLAPD_LIBS)
2968 AC_SUBST(SLURPD_LIBS)
2970 AC_SUBST(LTHREAD_LIBS)
2971 AC_SUBST(LUTIL_LIBS)
2974 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
2975 AC_SUBST(SLAPD_MODULES_LDFLAGS)
2977 AC_SUBST(SLAPD_NO_STATIC)
2978 AC_SUBST(SLAPD_STATIC_BACKENDS)
2979 AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
2980 AC_SUBST(SLAPD_DYNAMIC_OVERLAYS)
2982 AC_SUBST(PERL_CPPFLAGS)
2983 AC_SUBST(SLAPD_PERL_LDFLAGS)
2984 AC_SUBST(MOD_PERL_LDFLAGS)
2990 AC_SUBST(MODULES_LIBS)
2991 AC_SUBST(SLAPI_LIBS)
2993 AC_SUBST(LIBSLAPITOOLS)
2996 AC_SUBST(SLAPD_SLP_LIBS)
2997 AC_SUBST(SLAPD_GMP_LIBS)
2999 AC_SUBST(SLAPD_SQL_LDFLAGS)
3000 AC_SUBST(SLAPD_SQL_LIBS)
3001 AC_SUBST(SLAPD_SQL_INCLUDES)
3003 dnl ----------------------------------------------------------------
3004 dnl final help output
3005 AC_ARG_WITH(xxinstall,[
3006 See INSTALL file for further details.])
3008 dnl ----------------------------------------------------------------
3013 Makefile:build/top.mk:Makefile.in:build/dir.mk \
3014 doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk \
3015 doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk \
3016 doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk \
3017 doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk \
3018 doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk \
3019 doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk \
3020 clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk \
3021 clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk \
3022 include/Makefile:build/top.mk:include/Makefile.in \
3023 libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk \
3024 libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk \
3025 libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk \
3026 libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk \
3027 libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk \
3028 libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk \
3029 libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk \
3030 servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk \
3031 servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk \
3032 servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk \
3033 servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk \
3034 servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk \
3035 servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk \
3036 servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/mod.mk \
3037 servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk \
3038 servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk \
3039 servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk \
3040 servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk \
3041 servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk \
3042 servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk \
3043 servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk \
3044 servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk \
3045 servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk \
3046 servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk \
3047 servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk \
3048 servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk \
3049 tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk \
3051 tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk \
3055 BACKENDSC="servers/slapd/backends.c"
3056 echo "Making $BACKENDSC"
3058 cat > $BACKENDSC << ENDX
3059 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3061 * Copyright 1998-2005 The OpenLDAP Foundation.
3062 * All rights reserved.
3064 * Redistribution and use in source and binary forms, with or without
3065 * modification, are permitted only as authorized by the OpenLDAP
3068 * A copy of this license is available in the file LICENSE in the
3069 * top-level directory of the distribution or, alternatively, at
3070 * <http://www.OpenLDAP.org/license.html>.
3072 /* This file is automatically generated by configure; please do not edit. */
3074 #include "portable.h"
3078 if test "${STATIC_BACKENDS}"; then
3079 for b in ${STATIC_BACKENDS}; do
3080 bb=`echo "${b}" | sed -e 's/back-//'`
3081 cat >> $BACKENDSC << ENDX
3082 extern BI_init ${bb}_back_initialize;
3086 cat >> $BACKENDSC << ENDX
3088 BackendInfo slap_binfo[[]] = {
3091 for b in ${STATIC_BACKENDS}; do
3092 bb=`echo "${b}" | sed -e 's/back-//'`
3093 echo " Add ${bb} ..."
3094 cat >> $BACKENDSC << ENDX
3095 { "${bb}", ${bb}_back_initialize },
3099 cat >> $BACKENDSC << ENDX
3103 /* end of generated file */
3107 echo Please run \"make depend\" to build dependencies
3108 ],[STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"])