]> git.sur5r.net Git - openldap/blob - configure.in
ITS#8153 - olcTimeLimit should be Single Value
[openldap] / configure.in
1 dnl $OpenLDAP$
2 dnl This work is part of OpenLDAP Software <http://www.openldap.org/>.
3 dnl
4 dnl Copyright 1998-2017 The OpenLDAP Foundation.
5 dnl All rights reserved.
6 dnl
7 dnl Redistribution and use in source and binary forms, with or without
8 dnl modification, are permitted only as authorized by the OpenLDAP
9 dnl Public License.
10 dnl
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>.
14 dnl
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-2017 The OpenLDAP Foundation. All rights reserved.
27 Restrictions apply, see COPYRIGHT and LICENSE files.]])
28 AC_REVISION([$Id$])
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 ================================================================
36
37 AC_CONFIG_AUX_DIR(build)dnl
38
39 eval `$ac_aux_dir/version.sh`
40 if test -z "$OL_STRING"; then
41         AC_MSG_ERROR([could not determine version])
42 fi
43
44 if test -f "$ac_aux_dir/shtool" && test ! -d $ac_aux_dir/shtool; then
45         ac_cv_shtool="$ac_aux_dir/shtool"
46 else
47         AC_MSG_ERROR([no shtool found in $ac_aux_dir])
48 fi
49
50 SHTOOL="$ac_cv_shtool"
51 dnl AC_SUBST(SHTOOL)dnl
52
53 TB="" TN=""
54 if test -t 1; then
55         TB="`$SHTOOL echo -e '%B' 2>/dev/null`"
56         TN="`$SHTOOL echo -e '%b' 2>/dev/null`"
57 fi
58
59 OPENLDAP_REPO=""
60 if test -d $ac_aux_dir/../.git; then
61         OPENLDAP_REPO="(from Git clone) "
62 elif test -d $ac_aux_dir/CVS; then
63         OPENLDAP_REPO="(from CVS checkout) "
64 fi
65
66 echo "Configuring ${TB}${OL_STRING}${TN} ${OPENLDAP_REPO}..."
67
68 dnl Determine host platform
69 dnl             we try not to use this for much
70 AC_CANONICAL_TARGET([])
71
72 AM_INIT_AUTOMAKE([$OL_PACKAGE],[$OL_VERSION], [no defines])dnl
73 AC_SUBST(PACKAGE)dnl
74 AC_SUBST(VERSION)dnl
75 AC_DEFINE_UNQUOTED(OPENLDAP_PACKAGE,"$PACKAGE",Package)
76 AC_DEFINE_UNQUOTED(OPENLDAP_VERSION,"$VERSION",Version)
77
78 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION,$OL_API_INC,Version)
79 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MAJOR,$OL_MAJOR,Major)
80 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MINOR,$OL_MINOR,Minor)
81 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_PATCH,$OL_PATCH,Patch)
82
83 OPENLDAP_LIBRELEASE=$OL_API_LIB_RELEASE
84 AC_SUBST(OPENLDAP_LIBRELEASE)dnl
85
86 OPENLDAP_LIBVERSION=$OL_API_LIB_VERSION
87 AC_SUBST(OPENLDAP_LIBVERSION)dnl
88
89 OPENLDAP_RELEASE_DATE="$OL_RELEASE_DATE"
90 AC_SUBST(OPENLDAP_RELEASE_DATE)dnl
91
92 dnl We use autoconf features new to 2.59.  Later versions like won't work.
93 dnl aclocal.m4 should be built using aclocal from automake 1.5
94 dnl libtool 1.5 should be installed.
95 AC_PREREQ(2.59)dnl Required Autoconf version
96
97 AH_TOP([
98 /* begin of portable.h.pre */
99 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
100  *
101  * Copyright 1998-2017 The OpenLDAP Foundation
102  * All rights reserved.
103  *
104  * Redistribution and use in source and binary forms, with or without
105  * modification, are permitted only as authorized by the OpenLDAP
106  * Public License.
107  *
108  * A copy of this license is available in the file LICENSE in the
109  * top-level directory of the distribution or, alternatively, at
110  * <http://www.OpenLDAP.org/license.html>.
111  */
112
113 #ifndef _LDAP_PORTABLE_H
114 #define _LDAP_PORTABLE_H
115
116 /* define this if needed to get reentrant functions */
117 #ifndef REENTRANT
118 #undef REENTRANT
119 #endif
120 #ifndef _REENTRANT
121 #undef _REENTRANT
122 #endif
123
124 /* define this if needed to get threadsafe functions */
125 #ifndef THREADSAFE
126 #undef THREADSAFE
127 #endif
128 #ifndef _THREADSAFE
129 #undef _THREADSAFE
130 #endif
131 #ifndef THREAD_SAFE
132 #undef THREAD_SAFE
133 #endif
134 #ifndef _THREAD_SAFE
135 #undef _THREAD_SAFE
136 #endif
137
138 #ifndef _SGI_MP_SOURCE
139 #undef _SGI_MP_SOURCE
140 #endif
141
142 /* end of portable.h.pre */
143 ])
144 AH_BOTTOM([
145 /* begin of portable.h.post */
146
147 #ifdef _WIN32
148         /* don't suck in all of the win32 api */
149 #       define WIN32_LEAN_AND_MEAN 1
150 #endif
151
152 #ifndef LDAP_NEEDS_PROTOTYPES
153 /* force LDAP_P to always include prototypes */
154 #define LDAP_NEEDS_PROTOTYPES 1
155 #endif
156
157 #ifndef LDAP_REL_ENG
158 #if (LDAP_VENDOR_VERSION == 000000) && !defined(LDAP_DEVEL)
159 #define LDAP_DEVEL
160 #endif
161 #if defined(LDAP_DEVEL) && !defined(LDAP_TEST)
162 #define LDAP_TEST
163 #endif
164 #endif
165
166 #ifdef HAVE_STDDEF_H
167 #       include <stddef.h>
168 #endif
169
170 #ifdef HAVE_EBCDIC 
171 /* ASCII/EBCDIC converting replacements for stdio funcs
172  * vsnprintf and snprintf are used too, but they are already
173  * checked by the configure script
174  */
175 #define fputs ber_pvt_fputs
176 #define fgets ber_pvt_fgets
177 #define printf ber_pvt_printf
178 #define fprintf ber_pvt_fprintf
179 #define vfprintf ber_pvt_vfprintf
180 #define vsprintf ber_pvt_vsprintf
181 #endif
182
183 #include "ac/fdset.h"
184
185 #include "ldap_cdefs.h"
186 #include "ldap_features.h"
187
188 #include "ac/assert.h"
189 #include "ac/localize.h"
190
191 #endif /* _LDAP_PORTABLE_H */
192 /* end of portable.h.post */
193 ])
194
195 AC_CONFIG_HEADERS([include/portable.h:include/portable.hin])
196 AC_CONFIG_HEADERS([include/ldap_features.h:include/ldap_features.hin])
197 AC_CONFIG_HEADERS([include/lber_types.h:include/lber_types.hin])
198
199 dnl ================================================================
200 dnl Start Args
201 AC_MSG_CHECKING(configure arguments)
202 AC_PREFIX_DEFAULT(/usr/local)
203
204 top_builddir=`pwd`
205 AC_SUBST(top_builddir)dnl
206
207 dnl ----------------------------------------------------------------
208 dnl --with-subdir
209 ldap_subdir="/openldap"
210
211 AC_ARG_WITH(subdir,
212 [  --with-subdir=DIR       change default subdirectory used for installs],
213 [case "$withval" in
214         no) ldap_subdir=""
215                 ;;
216         yes)
217                 ;;
218         /*|\\*)
219                 ldap_subdir="$withval"
220                 ;;
221         *)
222                 ldap_subdir="/$withval"
223                 ;;
224 esac
225 ])dnl
226
227 AC_SUBST(ldap_subdir)dnl
228
229 dnl ----------------------------------------------------------------
230 dnl General "enable" options
231 dnl set default to traditional to enable the original debug style
232 OL_ARG_ENABLE(debug,[  --enable-debug     enable debugging], yes, [no yes traditional])dnl
233 OL_ARG_ENABLE(dynamic,[  --enable-dynamic         enable linking built binaries with dynamic libs], no)dnl
234 OL_ARG_ENABLE(syslog,[  --enable-syslog   enable syslog support], auto)dnl
235 OL_ARG_ENABLE(proctitle,[  --enable-proctitle     enable proctitle support], yes)dnl
236 dnl OL_ARG_ENABLE(referrals,[  --enable-referrals         enable LDAPv2+ Referrals (experimental)], no)dnl
237 ol_enable_referrals=${ol_enable_referrals-no}
238 OL_ARG_ENABLE(ipv6,[  --enable-ipv6       enable IPv6 support], auto)dnl
239 OL_ARG_ENABLE(local,[  --enable-local     enable AF_LOCAL (AF_UNIX) socket support], auto)dnl
240
241 dnl ----------------------------------------------------------------
242 dnl General "with" options
243 OL_ARG_WITH(cyrus_sasl,[  --with-cyrus-sasl       with Cyrus SASL support],
244         auto, [auto yes no] )
245 OL_ARG_WITH(fetch,[  --with-fetch                 with fetch(3) URL support],
246         auto, [auto yes no] )
247 OL_ARG_WITH(threads,[  --with-threads     with threads],
248         auto, [auto nt posix mach pth lwp yes no manual] )
249 OL_ARG_WITH(tls,[  --with-tls             with TLS/SSL support auto|openssl|gnutls|moznss],
250         auto, [auto openssl gnutls moznss yes no] )
251 OL_ARG_WITH(yielding_select,
252         [  --with-yielding-select  with implicitly yielding select],
253         auto, [auto yes no manual] )
254 OL_ARG_WITH(mp,
255         [  --with-mp               with multiple precision statistics auto|longlong|long|bignum|gmp],
256         auto, [auto longlong long bignum gmp yes no])
257 OL_ARG_WITH(odbc,
258         [  --with-odbc             with specific ODBC support iodbc|unixodbc|odbc32|auto],
259         auto, [auto iodbc unixodbc odbc32] )
260
261 dnl ----------------------------------------------------------------
262 dnl Server options
263 dnl ----------------------------------------------------------------
264
265 dnl ----------------------------------------------------------------
266 dnl SLAPD OPTIONS
267 AC_ARG_ENABLE(xxslapdoptions,[
268 SLAPD (Standalone LDAP Daemon) Options:])
269 OL_ARG_ENABLE(slapd,[  --enable-slapd     enable building slapd], yes)dnl
270 OL_ARG_ENABLE(dynacl,[    --enable-dynacl         enable run-time loadable ACL support (experimental)], no)dnl
271 OL_ARG_ENABLE(aci,[    --enable-aci       enable per-object ACIs (experimental)], no, [no yes mod])dnl
272 OL_ARG_ENABLE(cleartext,[    --enable-cleartext   enable cleartext passwords], yes)dnl
273 OL_ARG_ENABLE(crypt,[    --enable-crypt   enable crypt(3) passwords], no)dnl
274 OL_ARG_ENABLE(lmpasswd,[    --enable-lmpasswd     enable LAN Manager passwords], no)dnl
275 OL_ARG_ENABLE(spasswd,[    --enable-spasswd       enable (Cyrus) SASL password verification], no)dnl
276 OL_ARG_ENABLE(modules,[    --enable-modules       enable dynamic module support], no)dnl
277 OL_ARG_ENABLE(rewrite,[    --enable-rewrite       enable DN rewriting in back-ldap and rwm overlay], auto)dnl
278 OL_ARG_ENABLE(rlookups,[    --enable-rlookups     enable reverse lookups of client hostnames], no)dnl
279 OL_ARG_ENABLE(slapi,[    --enable-slapi        enable SLAPI support (experimental)], no)dnl
280 OL_ARG_ENABLE(slp,[    --enable-slp          enable SLPv2 support], no)dnl     
281 OL_ARG_ENABLE(wrappers,[    --enable-wrappers     enable tcp wrapper support], no)dnl
282
283 dnl ----------------------------------------------------------------
284 dnl SLAPD Backend Options
285 Backends="bdb \
286         dnssrv \
287         hdb \
288         ldap \
289         mdb \
290         meta \
291         asyncmeta \
292         monitor \
293         ndb \
294         null \
295         passwd \
296         perl \
297         relay \
298         shell \
299         sock \
300         sql \
301         wt"
302
303 AC_ARG_ENABLE(xxslapbackends,[
304 SLAPD Backend Options:])
305
306 OL_ARG_ENABLE(backends,[    --enable-backends     enable all available backends],
307         --, [no yes mod])dnl
308 OL_ARG_ENABLE(bdb,[    --enable-bdb       enable Berkeley DB backend],
309         no, [no yes mod], ol_enable_backends)dnl
310 OL_ARG_ENABLE(dnssrv,[    --enable-dnssrv         enable dnssrv backend],
311         no, [no yes mod], ol_enable_backends)dnl
312 OL_ARG_ENABLE(hdb,[    --enable-hdb       enable Hierarchical DB backend],
313         no, [no yes mod], ol_enable_backends)dnl
314 OL_ARG_ENABLE(ldap,[    --enable-ldap     enable ldap backend],
315         no, [no yes mod], ol_enable_backends)dnl
316 OL_ARG_ENABLE(mdb,[    --enable-mdb       enable mdb database backend],
317         yes, [no yes mod], ol_enable_backends)dnl
318 OL_ARG_ENABLE(meta,[    --enable-meta     enable metadirectory backend],
319         no, [no yes mod], ol_enable_backends)dnl
320 OL_ARG_ENABLE(asyncmeta,[    --enable-asyncmeta   enable asynchronous metadirectory backend],
321         no, [no yes mod], ol_enable_backends)dnl
322 OL_ARG_ENABLE(monitor,[    --enable-monitor       enable monitor backend],
323         yes, [no yes mod], ol_enable_backends)dnl
324 OL_ARG_ENABLE(ndb,[    --enable-ndb       enable MySQL NDB Cluster backend],
325         no, [no yes mod], ol_enable_backends)dnl
326 OL_ARG_ENABLE(null,[    --enable-null     enable null backend],
327         no, [no yes mod], ol_enable_backends)dnl
328 OL_ARG_ENABLE(passwd,[    --enable-passwd         enable passwd backend],
329         no, [no yes mod], ol_enable_backends)dnl
330 OL_ARG_ENABLE(perl,[    --enable-perl     enable perl backend],
331         no, [no yes mod], ol_enable_backends)dnl
332 OL_ARG_ENABLE(relay,[    --enable-relay           enable relay backend],
333         yes, [no yes mod], ol_enable_backends)dnl
334 OL_ARG_ENABLE(shell,[    --enable-shell   enable shell backend],
335         no, [no yes mod], ol_enable_backends)dnl
336 OL_ARG_ENABLE(sock,[    --enable-sock     enable sock backend],
337         no, [no yes mod], ol_enable_backends)dnl
338 OL_ARG_ENABLE(sql,[    --enable-sql       enable sql backend],
339         no, [no yes mod], ol_enable_backends)dnl
340 OL_ARG_ENABLE(wt,[    --enable-wt         enable WiredTiger backend],
341         no, [no yes mod], ol_enable_backends)dnl
342
343 dnl ----------------------------------------------------------------
344 dnl SLAPD Overlay Options
345 Overlays="accesslog \
346         auditlog \
347         autoca \
348         collect \
349         constraint \
350         dds \
351         deref \
352         dyngroup \
353         dynlist \
354         memberof \
355         ppolicy \
356         proxycache \
357         refint \
358         retcode \
359         rwm \
360         seqmod \
361         sssvlv \
362         syncprov \
363         translucent \
364         unique \
365         valsort"
366
367 AC_ARG_ENABLE(xxslapoverlays,[
368 SLAPD Overlay Options:])
369
370 OL_ARG_ENABLE(overlays,[    --enable-overlays     enable all available overlays],
371         --, [no yes mod])dnl
372 OL_ARG_ENABLE(accesslog,[    --enable-accesslog   In-Directory Access Logging overlay],
373         no, [no yes mod], ol_enable_overlays)
374 OL_ARG_ENABLE(auditlog,[    --enable-auditlog     Audit Logging overlay],
375         no, [no yes mod], ol_enable_overlays)
376 OL_ARG_ENABLE(autoca,[    --enable-autoca         Automatic Certificate Authority overlay],
377         no, [no yes mod], ol_enable_overlays)
378 OL_ARG_ENABLE(collect,[    --enable-collect       Collect overlay],
379         no, [no yes mod], ol_enable_overlays)
380 OL_ARG_ENABLE(constraint,[    --enable-constraint         Attribute Constraint overlay],
381         no, [no yes mod], ol_enable_overlays)
382 OL_ARG_ENABLE(dds,[    --enable-dds       Dynamic Directory Services overlay],
383         no, [no yes mod], ol_enable_overlays)
384 OL_ARG_ENABLE(deref,[    --enable-deref   Dereference overlay],
385         no, [no yes mod], ol_enable_overlays)
386 OL_ARG_ENABLE(dyngroup,[    --enable-dyngroup     Dynamic Group overlay],
387         no, [no yes mod], ol_enable_overlays)
388 OL_ARG_ENABLE(dynlist,[    --enable-dynlist       Dynamic List overlay],
389         no, [no yes mod], ol_enable_overlays)
390 OL_ARG_ENABLE(memberof,[    --enable-memberof     Reverse Group Membership overlay],
391         no, [no yes mod], ol_enable_overlays)
392 OL_ARG_ENABLE(ppolicy,[    --enable-ppolicy       Password Policy overlay],
393         no, [no yes mod], ol_enable_overlays)
394 OL_ARG_ENABLE(proxycache,[    --enable-proxycache         Proxy Cache overlay],
395         no, [no yes mod], ol_enable_overlays)
396 OL_ARG_ENABLE(refint,[    --enable-refint         Referential Integrity overlay],
397         no, [no yes mod], ol_enable_overlays)
398 OL_ARG_ENABLE(retcode,[    --enable-retcode       Return Code testing overlay],
399         no, [no yes mod], ol_enable_overlays)
400 OL_ARG_ENABLE(rwm,[    --enable-rwm               Rewrite/Remap overlay],
401         no, [no yes mod], ol_enable_overlays)
402 OL_ARG_ENABLE(seqmod,[    --enable-seqmod         Sequential Modify overlay],
403         no, [no yes mod], ol_enable_overlays)
404 OL_ARG_ENABLE(sssvlv,[    --enable-sssvlv         ServerSideSort/VLV overlay],
405         no, [no yes mod], ol_enable_overlays)
406 OL_ARG_ENABLE(syncprov,[    --enable-syncprov     Syncrepl Provider overlay],
407         yes, [no yes mod], ol_enable_overlays)
408 OL_ARG_ENABLE(translucent,[    --enable-translucent  Translucent Proxy overlay],
409         no, [no yes mod], ol_enable_overlays)
410 OL_ARG_ENABLE(unique,[    --enable-unique       Attribute Uniqueness overlay],
411         no, [no yes mod], ol_enable_overlays)
412 OL_ARG_ENABLE(valsort,[    --enable-valsort      Value Sorting overlay],
413         no, [no yes mod], ol_enable_overlays)
414
415 dnl ----------------------------------------------------------------
416 AC_ARG_ENABLE(xxliboptions,[
417 Library Generation & Linking Options])
418 AC_ENABLE_STATIC
419 AC_ENABLE_SHARED
420
421 dnl ----------------------------------------------------------------
422
423 # validate options
424 if test $ol_enable_slapd = no ; then
425         dnl SLAPD was specificallly disabled
426         if test $ol_enable_slapi = yes ; then
427                 AC_MSG_WARN([slapd disabled, ignoring --enable-slapi argument])
428         fi
429         case "$ol_enable_backends" in yes | mod)
430                 AC_MSG_WARN([slapd disabled, ignoring --enable-backends argument])
431         esac
432         for i in $Backends; do
433                 eval "ol_tmp=\$ol_enable_$i"
434                 if test $ol_tmp != no ; then
435                         AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
436                         eval "ol_enable_$i=no"
437                 fi
438         done
439         if test $ol_enable_modules = yes ; then
440                 AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
441         fi
442         if test $ol_enable_wrappers = yes ; then
443                 AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
444         fi
445         if test $ol_enable_rlookups = yes ; then
446                 AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
447         fi
448         if test $ol_enable_dynacl = yes ; then
449                 AC_MSG_WARN([slapd disabled, ignoring --enable-dynacl argument])
450         fi
451         if test $ol_enable_aci != no ; then
452                 AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
453         fi
454         if test $ol_enable_rewrite = yes ; then
455                 AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
456         fi
457         dnl overlays
458         case "$ol_enable_overlays" in yes | mod)
459                 AC_MSG_WARN([slapd disabled, ignoring --enable-overlays argument])
460         esac
461         for i in $Overlays; do
462                 eval "ol_tmp=\$ol_enable_$i"
463                 if test $ol_tmp != no ; then
464                         AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
465                         eval "ol_enable_$i=no"
466                 fi
467         done
468
469         # force settings to no
470         ol_enable_slapi=no
471
472         ol_enable_backends=
473         ol_enable_overlays=
474         ol_enable_modules=no
475         ol_enable_rlookups=no
476         ol_enable_dynacl=no
477         ol_enable_aci=no
478         ol_enable_wrappers=no
479
480         ol_enable_rewrite=no
481
482 elif test $ol_enable_modules != yes &&
483         test $ol_enable_bdb = no &&
484         test $ol_enable_dnssrv = no &&
485         test $ol_enable_hdb = no &&
486         test $ol_enable_ldap = no &&
487         test $ol_enable_mdb = no &&
488         test $ol_enable_meta = no &&
489         test $ol_enable_asyncmeta = no &&
490         test $ol_enable_monitor = no &&
491         test $ol_enable_ndb = no &&
492         test $ol_enable_null = no &&
493         test $ol_enable_passwd = no &&
494         test $ol_enable_perl = no &&
495         test $ol_enable_relay = no &&
496         test $ol_enable_shell = no &&
497         test $ol_enable_sock = no &&
498         test $ol_enable_sql = no &&
499         test $ol_enable_wt = no ; then
500         dnl no slapd backend
501
502         if test $ol_enable_slapd = yes ; then
503                 AC_MSG_ERROR([slapd requires a backend])
504         else
505                 AC_MSG_WARN([skipping slapd, no backend specified])
506                 ol_enable_slapd=no
507         fi
508 fi
509
510 if test $ol_enable_meta/$ol_enable_ldap = yes/no ; then
511         AC_MSG_ERROR([--enable-meta requires --enable-ldap])
512 fi
513
514 if test $ol_enable_asyncmeta/$ol_enable_ldap = yes/no ; then
515         AC_MSG_ERROR([--enable-asyncmeta requires --enable-ldap])
516 fi
517
518 if test $ol_enable_lmpasswd = yes ; then
519         if test $ol_with_tls = no ; then
520                 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
521         fi
522 fi
523
524 if test $ol_enable_spasswd = yes ; then
525         if test $ol_with_cyrus_sasl = no ; then
526                 AC_MSG_ERROR([options require --with-cyrus-sasl])
527         fi
528         ol_with_cyrus_sasl=yes
529 fi
530
531 AC_MSG_RESULT(done)
532
533 dnl ----------------------------------------------------------------
534 dnl Initialize vars
535 LDAP_LIBS=
536 BDB_LIBS=
537 SLAPD_NDB_LIBS=
538 SLAPD_NDB_INCS=
539 LTHREAD_LIBS=
540 LUTIL_LIBS=
541
542 SLAPD_LIBS=
543
544 BUILD_SLAPD=no
545
546 BUILD_THREAD=no
547
548 BUILD_SLAPI=no
549 SLAPD_SLAPI_DEPEND=
550
551 BUILD_BDB=no
552 BUILD_DNSSRV=no
553 BUILD_HDB=no
554 BUILD_LDAP=no
555 BUILD_MDB=no
556 BUILD_META=no
557 BUILD_ASYNCMETA=no
558 BUILD_MONITOR=no
559 BUILD_NDB=no
560 BUILD_NULL=no
561 BUILD_PASSWD=no
562 BUILD_PERL=no
563 BUILD_RELAY=no
564 BUILD_SHELL=no
565 BUILD_SOCK=no
566 BUILD_SQL=no
567 BUILD_WT=no
568
569 BUILD_ACCESSLOG=no
570 BUILD_AUDITLOG=no
571 BUILD_AUTOCA=no
572 BUILD_CONSTRAINT=no
573 BUILD_DDS=no
574 BUILD_DENYOP=no
575 BUILD_DEREF=no
576 BUILD_DYNGROUP=no
577 BUILD_DYNLIST=no
578 BUILD_LASTMOD=no
579 BUILD_MEMBEROF=no
580 BUILD_PPOLICY=no
581 BUILD_PROXYCACHE=no
582 BUILD_REFINT=no
583 BUILD_RETCODE=no
584 BUILD_RWM=no
585 BUILD_SEQMOD=no
586 BUILD_SSSVLV=no
587 BUILD_SYNCPROV=no
588 BUILD_TRANSLUCENT=no
589 BUILD_UNIQUE=no
590 BUILD_VALSORT=no
591
592 SLAPD_STATIC_OVERLAYS=
593 SLAPD_DYNAMIC_OVERLAYS=
594
595 SLAPD_MODULES_LDFLAGS=
596 SLAPD_MODULES_CPPFLAGS=
597
598 SLAPD_STATIC_BACKENDS=back-ldif
599 SLAPD_DYNAMIC_BACKENDS=
600
601 SLAPD_PERL_LDFLAGS=
602 MOD_PERL_LDFLAGS=
603 PERL_CPPFLAGS=
604
605 SLAPD_SQL_LDFLAGS=
606 SLAPD_SQL_LIBS=
607 SLAPD_SQL_INCLUDES=
608
609 KRB4_LIBS=
610 KRB5_LIBS=
611 SASL_LIBS=
612 TLS_LIBS=
613 MODULES_LIBS=
614 SLAPI_LIBS=
615 LIBSLAPI=
616 AUTH_LIBS=
617 ICU_LIBS=
618
619 SLAPD_SLP_LIBS=
620 SLAPD_GMP_LIBS=
621
622 dnl ================================================================
623 dnl Checks for programs
624
625 AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
626
627 dnl ----------------------------------------------------------------
628 dnl
629 dnl Determine which C translator to use
630 dnl
631
632 dnl AIX Thread requires we use cc_r or xlc_r.
633 dnl But only do this IF AIX and CC is not set
634 dnl and threads are auto|yes|posix.
635 dnl
636 dnl If we find cc_r|xlc_r, force pthreads and assume
637 dnl             pthread_create is in $LIBS (ie: don't bring in
638 dnl             any additional thread libraries)
639 dnl If we do not find cc_r|xlc_r, disable threads
640
641 ol_aix_threads=no
642 case "$target" in
643 *-*-aix*) dnl all AIX is not a good idea.
644         if test -z "$CC" ; then
645                 case "$ol_with_threads" in
646                 auto | yes |  posix) ol_aix_threads=yes ;;
647                 esac
648         fi
649 ;;
650 esac
651
652 if test $ol_aix_threads = yes ; then
653         if test -z "${CC}" ; then
654                 AC_CHECK_PROGS(CC,cc_r xlc_r cc)
655
656                 if test "$CC" = cc ; then
657                         dnl no CC! don't allow --with-threads
658                         if test $ol_with_threads != auto ; then
659                                 AC_MSG_ERROR([--with-threads requires cc_r (or other suitable compiler) on AIX])
660                         else
661                                 AC_MSG_WARN([disabling threads, no cc_r on AIX])
662                         fi
663                         ol_with_threads=no
664                 fi
665         fi
666
667         case ${CC} in cc_r | xlc_r)
668                 ol_with_threads=posix
669                 ol_cv_pthread_create=yes
670                 ;;
671         esac
672 fi
673
674 if test -z "${CC}"; then
675         AC_CHECK_PROGS(CC,cc gcc,missing)
676
677         if test "${CC}" = "missing" ; then
678                 AC_MSG_ERROR([Unable to locate cc(1) or suitable replacement.  Check PATH or set CC.])
679         fi
680 fi
681
682 if test -z "${AR}"; then
683         AC_CHECK_PROGS(AR,ar gar,missing)
684
685         if test "${AR}" = "missing" ; then
686                 AC_MSG_ERROR([Unable to locate ar(1) or suitable replacement.  Check PATH or set AR.])
687         fi
688 fi
689
690 AC_LIBTOOL_WIN32_DLL
691 AC_LIBTOOL_DLOPEN
692 AC_PROG_LIBTOOL
693
694 dnl ----------------------------------------------------------------
695 dnl Perl
696 ol_link_perl=no
697 if test $ol_enable_perl != no ; then
698         AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)
699
700         if test "no$PERLBIN" = "no" ; then
701                 if test $ol_enable_perl = yes ; then
702                         AC_MSG_ERROR([could not locate perl])
703                 fi
704
705         else
706                 PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
707                 PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e 's/ -lc / /' -e 's/ -lc$//'`"
708
709                 if test x"$ol_enable_perl" = "xyes" ; then
710                         SLAPD_PERL_LDFLAGS="$PERL_LDFLAGS"
711                 else
712                         MOD_PERL_LDFLAGS="$PERL_LDFLAGS"
713                 fi
714                 dnl should check perl version
715                 ol_link_perl=yes
716         fi
717 fi
718
719 AC_PROG_CPP
720 OL_MSVC
721
722 dnl ----------------------------------------------------------------
723 dnl Checks for Windows NT
724 case $host_os in
725   *mingw32* ) ac_cv_mingw32=yes ;;
726   *cygwin* ) ac_cv_cygwin=yes ;;
727   *interix* ) ac_cv_interix=yes ;;
728 esac
729
730 dnl ----------------------------------------------------------------
731 dnl Checks for file extensions
732 AC_EXEEXT
733 AC_OBJEXT
734 AC_DEFINE_UNQUOTED(EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
735
736 dnl ----------------------------------------------------------------
737 dnl BeOS requires -lbe -lroot -lnet
738 AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])
739
740 dnl ----------------------------------------------------------------
741 dnl OpenLDAP requires STDC features
742 AC_PROG_CC
743 if test "X${ac_cv_prog_cc_stdc}" = "Xno" ; then
744         AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
745 fi
746
747 dnl ----------------------------------------------------------------
748 dnl Check cc depend flags
749 OL_MKDEPEND
750 if test "${ol_cv_mkdep}" = no ; then
751         # this will soon become an error
752         AC_MSG_WARN([do not know how to generate dependencies])
753 fi
754
755 dnl ----------------------------------------------------------------
756 dnl Check for AIX security library
757 AC_CHECK_LIB(s, afopen, [
758         AUTH_LIBS=-ls
759         AC_DEFINE(HAVE_AIX_SECURITY,1,[define if you have AIX security lib])
760 ])
761
762 dnl ----------------------------------------------------------------
763 dnl Check for IBM OS/390
764 case "$target" in
765 *-ibm-openedition)
766         ac_cv_func_getopt=no
767         AC_DEFINE(BOTH_STRINGS_H,1,[define to use both <string.h> and <strings.h>])
768         ;;
769 esac
770
771 dnl ----------------------------------------------------------------
772 dnl Check for module support
773 ol_link_modules=no
774 WITH_MODULES_ENABLED=no
775 if test $ol_enable_modules != no ; then
776         AC_CHECK_HEADERS(ltdl.h)
777
778         if test $ac_cv_header_ltdl_h = no ; then
779                 AC_MSG_ERROR([could not locate libtool ltdl.h])
780         fi
781
782         AC_CHECK_LIB(ltdl, lt_dlinit, [
783                 MODULES_LIBS=-lltdl
784                 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
785         ])
786
787         if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then
788                 AC_MSG_ERROR([could not locate libtool -lltdl])
789         fi
790         ol_link_modules=yes
791         WITH_MODULES_ENABLED=yes
792
793 else
794         for i in $Backends; do
795                 eval "ol_tmp=\$ol_enable_$i"
796                 if test $ol_tmp = mod ; then
797                         AC_MSG_WARN([building static $i backend])
798                         eval "ol_enable_$i=yes"
799                 fi
800         done
801         for i in $Overlays; do
802                 eval "ol_tmp=\$ol_enable_$i"
803                 if test $ol_tmp = mod ; then
804                         AC_MSG_WARN([building static $i overlay])
805                         eval "ol_enable_$i=yes"
806                 fi
807         done
808 fi
809
810 dnl ----------------------------------------------------------------
811 dnl Checks for header files.
812 OL_HEADER_STDC
813
814 if test $ol_cv_header_stdc != yes; then
815         AC_MSG_WARN([could not locate Standard C compliant headers])
816 fi
817
818 AC_HEADER_DIRENT
819 AC_HEADER_SYS_WAIT
820 AC_HEADER_TIOCGWINSZ
821
822 AC_CHECK_HEADERS(       \
823         arpa/inet.h             \
824         arpa/nameser.h  \
825         assert.h                \
826         bits/types.h    \
827         conio.h                 \
828         crypt.h                 \
829         direct.h                \
830         errno.h                 \
831         fcntl.h                 \
832         filio.h                 \
833         getopt.h                \
834         grp.h                   \
835         io.h                    \
836         libutil.h               \
837         limits.h                \
838         locale.h                \
839         malloc.h                \
840         memory.h                \
841         psap.h                  \
842         pwd.h                   \
843         process.h               \
844         sgtty.h                 \
845         shadow.h                \
846         stddef.h                \
847         string.h                \
848         strings.h               \
849         sysexits.h              \
850         sys/file.h              \
851         sys/filio.h             \
852         sys/fstyp.h             \
853         sys/errno.h             \
854         sys/ioctl.h             \
855         sys/param.h             \
856         sys/privgrp.h   \
857         sys/resource.h  \
858         sys/select.h    \
859         sys/socket.h    \
860         sys/stat.h              \
861         sys/syslog.h    \
862         sys/time.h              \
863         sys/types.h             \
864         sys/uio.h               \
865         sys/vmount.h    \
866         syslog.h                \
867         termios.h               \
868         unistd.h                \
869         utime.h                 \
870 )
871
872 dnl Only check Winsock on MinGW
873 if test "$ac_cv_mingw32" = yes \
874         -o "$ac_cv_interix" = yes \
875         -o "$ol_cv_msvc" = yes
876 then
877         AC_CHECK_HEADERS( winsock.h winsock2.h )
878 fi
879
880 AC_CHECK_HEADERS( resolv.h, [], [],
881 [$ac_includes_default
882 #include <netinet/in.h>
883 ])
884
885 AC_CHECK_HEADERS( netinet/tcp.h, [], [],
886 [$ac_includes_default
887 #include <netinet/in.h>
888 ])
889
890 AC_CHECK_HEADERS( sys/ucred.h, [], [],
891 [$ac_includes_default
892 #ifdef HAVE_SYS_PARAM_H
893 #include <sys/param.h>
894 #endif
895 ])
896
897 dnl ----------------------------------------------------------------
898 dnl Checks for libraries
899
900 AC_CHECK_FUNCS( sigaction sigset )
901
902 dnl HP-UX requires -lV3
903 dnl this is not needed on newer versions of HP-UX
904 if test $ac_cv_func_sigaction = no && test $ac_cv_func_sigaction = no ; then
905         AC_CHECK_LIB(V3, sigset)
906 fi
907
908 if test $ol_cv_msvc = yes ; then
909    ol_cv_winsock=yes
910 fi
911
912 dnl The following is INTENTIONALLY scripted out because shell does not
913 dnl support variable names with the '@' character, which is what
914 dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
915 if test "$ac_cv_header_winsock_h" = yes; then
916         AC_CACHE_CHECK([for winsock], [ol_cv_winsock],[
917         save_LIBS="$LIBS"
918         for curlib in none ws2_32 wsock32; do
919                 if test $curlib != none ; then
920                 LIBS="$save_LIBS -l$curlib"
921                 fi
922                 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <winsock.h>
923                         ]], [[
924                         socket(0,0,0);
925                         select(0,NULL,NULL,NULL,NULL);
926                         closesocket(0);
927                         gethostname(NULL,0);
928                         ]])],[ol_cv_winsock=$curlib],[ol_cv_winsock=no])
929
930                 test "$ol_cv_winsock" != no && break
931         done
932         LIBS="$save_LIBS"
933         ])
934
935         if test $ol_cv_winsock != no ; then
936         AC_DEFINE(HAVE_WINSOCK, 1, [define if you have winsock])
937         ac_cv_func_socket=yes
938         ac_cv_func_select=yes
939         ac_cv_func_closesocket=yes
940         ac_cv_func_gethostname=yes
941
942                 if test $ol_cv_winsock != none -a $ol_cv_winsock != yes ; then
943                 LIBS="$LIBS -l$ol_cv_winsock"
944                 fi
945
946         if test $ol_cv_winsock = ws2_32 -o $ol_cv_winsock = yes ; then
947                         AC_DEFINE(HAVE_WINSOCK2, 1, [define if you have winsock2])
948         fi
949         fi
950 fi
951
952 dnl Find socket()
953 dnl Likely combinations:
954 dnl             -lsocket [ -lnsl_s | -lnsl ]
955 dnl             -linet
956
957 AC_CHECK_FUNC(socket, :, [      
958 dnl hopefully we won't include too many libraries
959         AC_CHECK_LIB(socket, main)
960         AC_CHECK_LIB(net, socket)
961         AC_CHECK_LIB(nsl_s, main)
962         AC_CHECK_LIB(nsl, main)
963         AC_CHECK_LIB(inet, socket)
964         AC_CHECK_LIB(gen, main)
965 ])
966
967 dnl require select
968 AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
969
970 if test "${ac_cv_header_winsock_h}" != yes; then
971         dnl Select arg types
972         dnl (if this detection becomes permenent, it and the select() detection
973         dnl should be done before the yielding select test) 
974         AC_FUNC_SELECT_ARGTYPES
975 fi
976
977 dnl check to see if system call automatically restart
978 dnl AC_SYS_RESTARTABLE_SYSCALLS
979
980 dnl ----------------------------------------------------------------
981 AC_CHECK_FUNCS( poll )
982 if test $ac_cv_func_poll = yes; then
983 AC_CHECK_HEADERS( poll.h sys/poll.h )
984 fi
985
986 dnl ----------------------------------------------------------------
987 AC_CHECK_HEADERS( sys/epoll.h )
988 if test "${ac_cv_header_sys_epoll_h}" = yes; then
989         AC_MSG_CHECKING(for epoll system call)
990         AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv)
991 {
992         int epfd = epoll_create(256);
993         exit (epfd == -1 ? 1 : 0);
994 }]])],[AC_MSG_RESULT(yes)
995         AC_DEFINE(HAVE_EPOLL,1, [define if your system supports epoll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
996 fi
997
998 dnl ----------------------------------------------------------------
999 AC_CHECK_HEADERS( sys/devpoll.h )
1000 dnl "/dev/poll" needs <sys/poll.h> as well...
1001 if test "${ac_cv_header_sys_devpoll_h}" = yes \
1002                 -a "${ac_cv_header_poll_h}" = yes ; \
1003 then
1004         AC_MSG_CHECKING(for /dev/poll)
1005         AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv)
1006 {
1007         int devpollfd = open("/dev/poll", /* O_RDWR */ 2);
1008         exit (devpollfd == -1 ? 1 : 0);
1009 }]])],[AC_MSG_RESULT(yes)
1010         AC_DEFINE(HAVE_DEVPOLL,1, [define if your system supports /dev/poll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
1011 fi
1012
1013 dnl ----------------------------------------------------------------
1014 OL_STRERROR
1015
1016 dnl ----------------------------------------------------------------
1017 dnl require POSIX regex
1018 AC_CHECK_HEADERS( regex.h, [], [],
1019 [$ac_includes_default
1020 #ifdef HAVE_SYS_TYPES_H
1021 #include <sys/types.h>
1022 #endif
1023 ])
1024
1025 if test "$ac_cv_header_regex_h" != yes ; then
1026         AC_MSG_ERROR([POSIX regex.h required.])
1027 fi
1028 AC_SEARCH_LIBS(regfree, [regex gnuregex],
1029         :, AC_MSG_ERROR([POSIX regex required.]))
1030
1031 OL_POSIX_REGEX
1032 if test "$ol_cv_c_posix_regex" = no ; then
1033         AC_MSG_ERROR([broken POSIX regex!])
1034 fi
1035
1036 dnl ----------------------------------------------------------------
1037 dnl UUID Support
1038
1039 have_uuid=no
1040 AC_CHECK_HEADERS(sys/uuid.h)
1041 dnl The HAVE_UUID_TO_STR code path also needs uuid_create
1042 if test $ac_cv_header_sys_uuid_h = yes ; then
1043         save_LIBS="$LIBS"
1044         AC_SEARCH_LIBS([uuid_to_str], [uuid], [have_uuid=yes], :)
1045         AC_SEARCH_LIBS([uuid_create], [uuid], :, [have_uuid=no])
1046         LIBS="$save_LIBS"
1047
1048         if test $have_uuid = yes ; then
1049                 AC_DEFINE(HAVE_UUID_TO_STR,1,
1050                         [define if you have uuid_to_str()])
1051
1052                 test "$ac_cv_search_uuid_to_str" = "none required" || \
1053                         SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_to_str"
1054         fi
1055 fi
1056
1057 dnl Look for uuid_generate
1058 dnl The HAVE_UUID_GENERATE code path also needs uuid_unparse_lower
1059 if test $have_uuid = no ; then
1060         AC_CHECK_HEADERS(uuid/uuid.h)
1061         if test $ac_cv_header_uuid_uuid_h = yes ; then
1062                 save_LIBS="$LIBS"
1063                 AC_SEARCH_LIBS([uuid_generate], [uuid], [have_uuid=yes], :)
1064                 AC_SEARCH_LIBS([uuid_unparse_lower], [uuid], :, [have_uuid=no])
1065                 LIBS="$save_LIBS"
1066
1067                 if test $have_uuid = yes ; then
1068                         AC_DEFINE(HAVE_UUID_GENERATE,1,
1069                                 [define if you have uuid_generate()])
1070
1071                         test "$ac_cv_search_uuid_generate" = "none required" || \
1072                                 SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_generate"
1073                 fi
1074         fi
1075 fi
1076
1077 dnl For windows, check for the need of RPCRT for UUID function support
1078 if test $have_uuid = no ; then
1079         AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
1080         save_LIBS="$LIBS"
1081         LIBS="$LIBS -lrpcrt4"
1082         AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1083                 int __stdcall UuidCreate(void *);
1084                 int __stdcall UuidToStringA(void *,void **);
1085                 ]], [[
1086                 UuidCreate(0);
1087                 UuidToStringA(0,0);
1088                 ]])],[need_rpcrt=yes],[need_rpcrt=no])
1089         if test $need_rpcrt = yes; then
1090                 SLAPD_LIBS="$SLAPD_LIBS -lrpcrt4"
1091         fi
1092         LIBS="$save_LIBS"
1093         AC_MSG_RESULT($need_rpcrt)
1094 fi
1095
1096 dnl ----------------------------------------------------------------
1097 dnl Check for resolver routines
1098 OL_RESOLVER_LINK
1099
1100 ol_link_dnssrv=no
1101 if test "$ol_cv_lib_resolver" != no ; then
1102         AC_DEFINE(HAVE_RES_QUERY,1,
1103                 [define if you have res_query()])
1104
1105         if test "$ol_enable_dnssrv" != no ; then
1106                 ol_link_dnssrv=yes
1107         fi
1108
1109         if test "$ol_cv_lib_resolver" != yes ; then
1110                 LIBS="$ol_cv_lib_resolver $LIBS"
1111         fi
1112 fi
1113
1114 if test "$ol_enable_dnssrv" = yes || test "$ol_enable_dnssrv" = mod ; then
1115         if test "$ol_link_dnssrv" = no ; then
1116                 AC_MSG_ERROR([DNSSRV requires res_query()])
1117         fi
1118 else
1119         ol_enable_dnssrv=no
1120 fi
1121
1122 AC_CHECK_FUNCS( hstrerror )
1123
1124 dnl ----------------------------------------------------------------
1125 dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
1126 dnl PF_LOCAL may use getaddrinfo in available
1127 AC_CHECK_FUNCS( getaddrinfo getnameinfo gai_strerror inet_ntop )
1128
1129 ol_link_ipv6=no
1130 if test $ac_cv_func_getaddrinfo = no || test $ac_cv_func_inet_ntop = no ; then
1131         if test $ol_enable_ipv6 = yes ; then
1132                 AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
1133         fi
1134 elif test $ol_enable_ipv6 != no ; then
1135         AC_CACHE_CHECK([INET6_ADDRSTRLEN],[ol_cv_inet6_addrstrlen],[
1136                 AC_EGREP_CPP(__has_inet6_addrstrlen__,[
1137 #                       include <netinet/in.h>
1138 #                       ifdef INET6_ADDRSTRLEN
1139                                 __has_inet6_addrstrlen__;
1140 #                       endif
1141                 ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])])
1142
1143
1144         AC_CACHE_CHECK([struct sockaddr_storage],ol_cv_struct_sockaddr_storage,[
1145                 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1146 #include <sys/types.h>
1147 #include <sys/socket.h>
1148 ]], [[
1149                         struct sockaddr_storage ss;
1150 ]])],[ol_cv_struct_sockaddr_storage=yes],[ol_cv_struct_sockaddr_storage=no])])
1151
1152         if test $ol_cv_inet6_addrstrlen = yes &&
1153            test $ol_cv_struct_sockaddr_storage = yes ; then
1154                 ol_link_ipv6=yes
1155         elif test $ol_enable_ipv6 = yes &&
1156              test $ol_cv_inet6_addrstrlen = no ; then
1157                 AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
1158         elif test $ol_enable_ipv6 = yes &&
1159              test $ol_cv_struct_sockaddr_storage = no ; then
1160                 AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage])
1161         fi
1162 fi
1163
1164 if test $ol_enable_local != no ; then
1165         AC_CHECK_HEADERS( sys/un.h )
1166
1167         if test $ol_enable_local = auto ; then
1168                 ol_enable_local=$ac_cv_header_sys_un_h
1169         elif test $ac_cv_header_sys_un_h = no ; then
1170                 AC_MSG_ERROR([AF_LOCAL domain support requires sys/un.h])
1171         fi
1172 fi
1173
1174 dnl ----------------------------------------------------------------
1175 dnl TLS/SSL
1176         
1177 if test $ol_with_tls = yes ; then
1178         ol_with_tls=auto
1179 fi
1180
1181 ol_link_tls=no
1182 if test $ol_with_tls = openssl || test $ol_with_tls = auto ; then
1183         AC_CHECK_HEADERS(openssl/ssl.h)
1184
1185         if test $ac_cv_header_openssl_ssl_h = yes ; then
1186                 AC_CHECK_LIB(ssl, SSL_CTX_set_msg_callback,
1187                         [have_openssl=yes
1188                         need_rsaref=no], [have_openssl=no],
1189                         [-lcrypto])
1190
1191                 if test $have_openssl = no ; then
1192                         AC_CHECK_LIB(ssl, ssl3_accept, 
1193                                 [have_openssl=yes
1194                                 need_rsaref=yes], [have_openssl=no],
1195                                 [-lcrypto -lRSAglue -lrsaref])
1196                 fi
1197
1198                 if test $have_openssl = yes ; then
1199                         ol_with_tls=openssl
1200                         ol_link_tls=yes
1201
1202                         AC_DEFINE(HAVE_OPENSSL, 1, 
1203                                 [define if you have OpenSSL])
1204
1205                         if test $need_rsaref = yes; then
1206                                 AC_DEFINE(HAVE_RSAREF, 1, 
1207                                         [define if OpenSSL needs RSAref])
1208
1209                                 TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
1210                         else
1211                                 TLS_LIBS="-lssl -lcrypto"
1212                         fi
1213
1214                         OL_SSL_COMPAT
1215                         if test $ol_cv_ssl_crl_compat = yes ; then
1216                                 AC_DEFINE(HAVE_OPENSSL_CRL, 1, 
1217                                         [define if you have OpenSSL with CRL checking capability])
1218                         fi
1219                 fi
1220         fi
1221 fi
1222
1223 if test $ol_link_tls = no ; then
1224         if test $ol_with_tls = gnutls || test $ol_with_tls = auto ; then
1225                 AC_CHECK_HEADERS(gnutls/gnutls.h)
1226
1227                 if test $ac_cv_header_gnutls_gnutls_h = yes ; then
1228                         AC_PREPROC_IFELSE([AC_LANG_SOURCE(
1229                                 [[#include <gnutls/gnutls.h>]
1230 [#if GNUTLS_VERSION_NUMBER < 0x020c00]
1231 [#error "GnuTLS 2.12.0 or newer required"]
1232 [#endif]])],
1233                                         , [AC_MSG_FAILURE([GnuTLS is too old])])
1234
1235                         AC_CHECK_LIB(gnutls, gnutls_init,
1236                                 [have_gnutls=yes], [have_gnutls=no])
1237
1238                         if test $have_gnutls = yes ; then
1239                                 ol_with_tls=gnutls
1240                                 ol_link_tls=yes
1241
1242                                 TLS_LIBS="-lgnutls"
1243
1244                                 AC_DEFINE(HAVE_GNUTLS, 1, 
1245                                         [define if you have GNUtls])
1246                         fi
1247                 fi
1248         fi
1249 fi
1250
1251 dnl NOTE: caller must specify -I/path/to/nspr4 and -I/path/to/nss3
1252 dnl and -L/path/to/nspr4 libs and -L/path/to/nss3 libs if those libs
1253 dnl are not in the default system location
1254 if test $ol_link_tls = no ; then
1255         if test $ol_with_tls = moznss || test $ol_with_tls = auto ; then
1256                 have_moznss=no
1257                 AC_CHECK_HEADERS([nssutil.h])
1258                 if test "$ac_cv_header_nssutil_h" = yes ; then
1259                         AC_CHECK_LIB([nss3], [NSS_Initialize],
1260                                                  [ have_moznss=yes ], [ have_moznss=no ])
1261                 fi
1262
1263                 if test "$have_moznss" = yes ; then
1264                         ol_with_tls=moznss
1265                         ol_link_tls=yes
1266                         AC_DEFINE(HAVE_MOZNSS, 1, 
1267                                           [define if you have MozNSS])
1268                         TLS_LIBS="-lssl3 -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4"
1269                 else
1270                         if test $ol_with_tls = moznss ; then
1271                         AC_MSG_ERROR([MozNSS not found - please specify the location to the NSPR and NSS header files in CPPFLAGS and the location to the NSPR and NSS libraries in LDFLAGS (if not in the system location)])
1272                         fi
1273                 fi
1274         fi
1275 fi
1276
1277 WITH_TLS=no
1278 if test $ol_link_tls = yes ; then
1279         AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
1280         WITH_TLS=yes
1281 elif test $ol_with_tls = auto ; then
1282         AC_MSG_WARN([Could not locate TLS/SSL package])
1283         AC_MSG_WARN([TLS data protection not supported!])
1284 elif test $ol_with_tls != no ; then
1285         AC_MSG_ERROR([Could not locate TLS/SSL package])
1286 else
1287         AC_MSG_WARN([TLS data protection not supported!])
1288 fi
1289
1290 dnl ----------------------------------------------------------------
1291 dnl LAN Manger password checking requires DES from OpenSSL
1292 if test $ol_enable_lmpasswd != no; then
1293         if test $ol_link_tls != yes ; then
1294                 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
1295         fi
1296
1297         AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
1298 fi
1299
1300 dnl ----------------------------------------------------------------
1301 dnl Threads?
1302 ol_link_threads=no
1303
1304 case $ol_with_threads in auto | yes | nt)
1305
1306         OL_NT_THREADS
1307
1308         if test "$ol_cv_nt_threads" = yes ; then
1309                 ol_link_threads=nt
1310                 ol_with_threads=found
1311                 ol_with_yielding_select=yes
1312
1313                 AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager])
1314                 AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log])
1315         fi
1316
1317         if test $ol_with_threads = nt ; then
1318                 AC_MSG_ERROR([could not locate NT Threads])
1319         fi
1320         ;;
1321 esac
1322
1323 case $ol_with_threads in auto | yes | posix)
1324
1325         AC_CHECK_HEADERS(pthread.h)
1326
1327         if test $ac_cv_header_pthread_h = yes ; then
1328                 OL_POSIX_THREAD_VERSION
1329
1330                 if test $ol_cv_pthread_version != 0 ; then
1331                         AC_DEFINE_UNQUOTED(HAVE_PTHREADS,$ol_cv_pthread_version,
1332                                 [define to pthreads API spec revision])
1333                 else
1334                         AC_MSG_ERROR([unknown pthread version])
1335                 fi
1336
1337                 # consider threads found
1338                 ol_with_threads=found
1339
1340                 OL_HEADER_LINUX_THREADS
1341                 OL_HEADER_GNU_PTH_PTHREAD_H
1342
1343                 if test $ol_cv_header_gnu_pth_pthread_h = no ; then
1344                         AC_CHECK_HEADERS(sched.h)
1345                 fi
1346
1347                 dnl Now the hard part, how to link?
1348                 dnl
1349                 dnl currently supported checks:
1350                 dnl
1351                 dnl Check for no flags 
1352                 dnl     pthread_create() in $LIBS
1353                 dnl
1354                 dnl Check special pthread (final) flags
1355                 dnl     [skipped] pthread_create() with -mt (Solaris) [disabled]
1356                 dnl     pthread_create() with -kthread (FreeBSD)
1357                 dnl     pthread_create() with -pthread (FreeBSD/Digital Unix)
1358                 dnl     pthread_create() with -pthreads (?)
1359                 dnl     pthread_create() with -mthreads (AIX)
1360                 dnl     pthread_create() with -thread (?)
1361                 dnl
1362                 dnl Check pthread (final) libraries
1363                 dnl     pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
1364                 dnl     pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
1365                 dnl     [skipped] pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
1366                 dnl     pthread_join() -Wl,-woff,85 -lpthread (IRIX)
1367                 dnl     pthread_create() in -lpthread (many)
1368                 dnl     pthread_create() in -lc_r (FreeBSD)
1369                 dnl
1370                 dnl Check pthread (draft4) flags (depreciated)
1371                 dnl     pthread_create() with -threads (OSF/1)
1372                 dnl
1373                 dnl Check pthread (draft4) libraries (depreciated)
1374                 dnl     pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
1375                 dnl     pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
1376                 dnl     pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
1377                 dnl     pthread_create() in -lpthreads (many)
1378                 dnl
1379
1380                 dnl pthread_create in $LIBS
1381                 AC_CACHE_CHECK([for pthread_create in default libraries],
1382                         ol_cv_pthread_create,[
1383                         AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1384                                 [ol_cv_pthread_create=yes],
1385                                 [ol_cv_pthread_create=no],
1386                                 [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION,
1387                                         [ol_cv_pthread_create=yes],
1388                                         [ol_cv_pthread_create=no])])])
1389
1390                 if test $ol_cv_pthread_create != no ; then
1391                         ol_link_threads=posix
1392                         ol_link_pthreads=""
1393                 fi
1394                 
1395 dnl             OL_PTHREAD_TRY([-mt],           [ol_cv_pthread_mt])
1396                 OL_PTHREAD_TRY([-kthread],      [ol_cv_pthread_kthread])
1397                 OL_PTHREAD_TRY([-pthread],      [ol_cv_pthread_pthread])
1398                 OL_PTHREAD_TRY([-pthreads],     [ol_cv_pthread_pthreads])
1399                 OL_PTHREAD_TRY([-mthreads],     [ol_cv_pthread_mthreads])
1400                 OL_PTHREAD_TRY([-thread],       [ol_cv_pthread_thread])
1401
1402                 OL_PTHREAD_TRY([-lpthread -lmach -lexc -lc_r],
1403                         [ol_cv_pthread_lpthread_lmach_lexc_lc_r])
1404                 OL_PTHREAD_TRY([-lpthread -lmach -lexc],
1405                         [ol_cv_pthread_lpthread_lmach_lexc])
1406 dnl             OL_PTHREAD_TRY([-lpthread -lexc],
1407 dnl                     [ol_cv_pthread_lpthread_lexc])
1408
1409                 OL_PTHREAD_TRY([-lpthread -Wl,-woff,85],
1410                         [ol_cv_pthread_lib_lpthread_woff])
1411
1412                 OL_PTHREAD_TRY([-lpthread],     [ol_cv_pthread_lpthread])
1413                 OL_PTHREAD_TRY([-lc_r],         [ol_cv_pthread_lc_r])
1414
1415                 OL_PTHREAD_TRY([-threads],      [ol_cv_pthread_threads])
1416
1417                 OL_PTHREAD_TRY([-lpthreads -lmach -lexc -lc_r],
1418                         [ol_cv_pthread_lpthreads_lmach_lexc_lc_r])
1419                 OL_PTHREAD_TRY([-lpthreads -lmach -lexc],
1420                         [ol_cv_pthread_lpthreads_lmach_lexc])
1421                 OL_PTHREAD_TRY([-lpthreads -lexc],
1422                         [ol_cv_pthread_lpthreads_lexc])
1423
1424                 OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
1425
1426                 if test $ol_link_threads != no ; then
1427                         LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
1428
1429                         dnl save flags
1430                         save_CPPFLAGS="$CPPFLAGS"
1431                         save_LIBS="$LIBS"
1432                         LIBS="$LTHREAD_LIBS $LIBS"
1433
1434                         dnl All POSIX Thread (final) implementations should have
1435                         dnl sched_yield instead of pthread yield.
1436                         dnl check for both, and thr_yield for Solaris
1437                         AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
1438
1439                         if test $ac_cv_func_sched_yield = no &&
1440                            test $ac_cv_func_pthread_yield = no &&
1441                            test $ac_cv_func_thr_yield = no ; then
1442                                 dnl Digital UNIX has sched_yield() in -lrt
1443                                 AC_CHECK_LIB(rt, sched_yield,
1444                                         [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
1445                                         AC_DEFINE(HAVE_SCHED_YIELD,1,
1446                                                 [Define if you have the sched_yield function.])
1447                                         ac_cv_func_sched_yield=yes],
1448                                         [ac_cv_func_sched_yield=no])
1449                         fi
1450                         if test $ac_cv_func_sched_yield = no &&
1451                            test $ac_cv_func_pthread_yield = no &&
1452                            test "$ac_cv_func_thr_yield" = no ; then
1453                                 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
1454                         fi
1455
1456                         dnl Check functions for compatibility
1457                         AC_CHECK_FUNCS(pthread_kill)
1458
1459                         dnl Check for pthread_rwlock_destroy with <pthread.h>
1460                         dnl as pthread_rwlock_t may not be defined.
1461                         AC_CACHE_CHECK([for pthread_rwlock_destroy with <pthread.h>],
1462                                 [ol_cv_func_pthread_rwlock_destroy], [
1463                                 dnl save the flags
1464                                 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1465 #include <pthread.h>
1466 pthread_rwlock_t rwlock;
1467 ]], [[pthread_rwlock_destroy(&rwlock);]])],[ol_cv_func_pthread_rwlock_destroy=yes],[ol_cv_func_pthread_rwlock_destroy=no])
1468                         ])
1469                         if test $ol_cv_func_pthread_rwlock_destroy = yes ; then
1470                                 AC_DEFINE(HAVE_PTHREAD_RWLOCK_DESTROY,1,
1471                                         [define if you have pthread_rwlock_destroy function])
1472                         fi
1473
1474                         dnl Check for pthread_detach with <pthread.h> inclusion
1475                         dnl as it's symbol may have been mangled.
1476                         AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
1477                                 [ol_cv_func_pthread_detach], [
1478                                 dnl save the flags
1479                                 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1480 #include <pthread.h>
1481 #ifndef NULL
1482 #define NULL (void*)0
1483 #endif
1484 ]], [[pthread_detach(NULL);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
1485                         ])
1486
1487                         if test $ol_cv_func_pthread_detach = no ; then
1488                                 AC_MSG_ERROR([could not locate pthread_detach()])
1489                         fi
1490
1491                         AC_DEFINE(HAVE_PTHREAD_DETACH,1,
1492                                 [define if you have pthread_detach function])
1493
1494                         dnl Check for setconcurreny functions
1495                         AC_CHECK_FUNCS( \
1496                                 pthread_setconcurrency \
1497                                 pthread_getconcurrency \
1498                                 thr_setconcurrency \
1499                                 thr_getconcurrency \
1500                         )
1501
1502                         OL_SYS_LINUX_THREADS
1503                         OL_LINUX_THREADS
1504
1505                         if test $ol_cv_linux_threads = error; then
1506                                 AC_MSG_ERROR([LinuxThreads header/library mismatch]);
1507                         fi
1508
1509                         AC_CACHE_CHECK([AC_LANG_SOURCE([if pthread_create() works])],
1510                                 ol_cv_pthread_create_works,[
1511                         AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1512                                 [ol_cv_pthread_create_works=yes],
1513                                 [ol_cv_pthread_create_works=no],
1514                                 [dnl assume yes
1515                                 ol_cv_pthread_create_works=yes])])
1516
1517                         if test $ol_cv_pthread_create_works = no ; then
1518                                 AC_MSG_ERROR([pthread_create is not usable, check environment settings])
1519                         fi
1520
1521                         ol_replace_broken_yield=no
1522 dnl                     case "$target" in
1523 dnl                     *-*-linux*) 
1524 dnl                             AC_CHECK_FUNCS(nanosleep)
1525 dnl                             ol_replace_broken_yield=yes
1526 dnl                     ;;
1527 dnl                     esac
1528
1529                         if test $ol_replace_broken_yield = yes ; then
1530                                 AC_DEFINE([REPLACE_BROKEN_YIELD],1,
1531                                         [define if sched_yield yields the entire process])
1532                         fi
1533
1534                         dnl Check if select causes an yield
1535                         if test $ol_with_yielding_select = auto ; then
1536                                 AC_CACHE_CHECK([if select yields when using pthreads],
1537                                         ol_cv_pthread_select_yields,[
1538                                 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1539 #include <sys/types.h>
1540 #include <sys/time.h>
1541 #include <unistd.h>
1542 #include <pthread.h>
1543 #ifndef NULL
1544 #define NULL (void*) 0
1545 #endif
1546
1547 static int fildes[2];
1548
1549 static void *task(p)
1550         void *p;
1551 {
1552         int i;
1553         struct timeval tv;
1554
1555         fd_set rfds;
1556
1557         tv.tv_sec=10;
1558         tv.tv_usec=0;
1559
1560         FD_ZERO(&rfds);
1561         FD_SET(fildes[0], &rfds);
1562
1563         /* we're not interested in any fds */
1564         i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
1565
1566         if(i < 0) {
1567                 perror("select");
1568                 exit(10);
1569         }
1570
1571         exit(0); /* if we exit here, the select blocked the whole process */
1572 }
1573
1574 int main(argc, argv)
1575         int argc;
1576         char **argv;
1577 {
1578         pthread_t t;
1579
1580         /* create a pipe to select */
1581         if(pipe(&fildes[0])) {
1582                 perror("select");
1583                 exit(1);
1584         }
1585
1586 #ifdef HAVE_PTHREAD_SETCONCURRENCY
1587         (void) pthread_setconcurrency(2);
1588 #else
1589 #ifdef HAVE_THR_SETCONCURRENCY
1590         /* Set Solaris LWP concurrency to 2 */
1591         thr_setconcurrency(2);
1592 #endif
1593 #endif
1594
1595 #if HAVE_PTHREADS < 6
1596         pthread_create(&t, pthread_attr_default, task, NULL);
1597 #else
1598         pthread_create(&t, NULL, task, NULL);
1599 #endif
1600
1601         /* make sure task runs first */
1602 #ifdef HAVE_THR_YIELD
1603         thr_yield();
1604 #elif defined( HAVE_SCHED_YIELD )
1605         sched_yield();
1606 #elif defined( HAVE_PTHREAD_YIELD )
1607         pthread_yield();
1608 #endif
1609
1610         exit(2);
1611 }]])],[ol_cv_pthread_select_yields=no],[ol_cv_pthread_select_yields=yes],[ol_cv_pthread_select_yields=cross])])
1612
1613                                 if test $ol_cv_pthread_select_yields = cross ; then
1614                                         AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])
1615                                 fi
1616
1617                                 if test $ol_cv_pthread_select_yields = yes ; then
1618                                         ol_with_yielding_select=yes
1619                                 fi
1620                         fi
1621
1622                         dnl restore flags
1623                         CPPFLAGS="$save_CPPFLAGS"
1624                         LIBS="$save_LIBS"
1625                 else
1626                         AC_MSG_ERROR([could not locate usable POSIX Threads])
1627                 fi
1628         fi
1629
1630         if test $ol_with_threads = posix ; then
1631                 AC_MSG_ERROR([could not locate POSIX Threads])
1632         fi
1633         ;;
1634 esac
1635
1636 case $ol_with_threads in auto | yes | mach)
1637
1638         dnl check for Mach CThreads
1639         AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
1640         if test $ac_cv_header_mach_cthreads_h = yes ; then
1641                 ol_with_threads=found
1642
1643                 dnl check for cthreads support in current $LIBS
1644                 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1645
1646                 if test $ol_link_threads = no ; then
1647                         dnl try -all_load
1648                         dnl this test needs work
1649                         AC_CACHE_CHECK([for cthread_fork with -all_load],
1650                                 [ol_cv_cthread_all_load], [
1651                                 dnl save the flags
1652                                 save_LIBS="$LIBS"
1653                                 LIBS="-all_load $LIBS"
1654                                 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <mach/cthreads.h>]], [[
1655                                         cthread_fork((void *)0, (void *)0);
1656                                         ]])],[ol_cv_cthread_all_load=yes],[ol_cv_cthread_all_load=no])
1657                                 dnl restore the LIBS
1658                                 LIBS="$save_LIBS"
1659                         ])
1660
1661                         if test $ol_cv_cthread_all_load = yes ; then
1662                                 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
1663                                 ol_link_threads=mach
1664                                 ol_with_threads=found
1665                         fi
1666                 fi
1667
1668         elif test $ac_cv_header_cthreads_h = yes ; then
1669                 dnl Hurd variant of Mach Cthreads
1670                 dnl uses <cthreads.h> and -lthreads
1671
1672                 ol_with_threads=found
1673  
1674                 dnl save the flags
1675                 save_LIBS="$LIBS"
1676                 LIBS="$LIBS -lthreads"
1677                 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1678                 LIBS="$save_LIBS"
1679
1680                 if test $ol_link_threads = yes ; then
1681                         LTHREAD_LIBS="-lthreads"
1682                         ol_link_threads=mach
1683                         ol_with_threads=found
1684                 else
1685                         AC_MSG_ERROR([could not link with Mach CThreads])
1686                 fi
1687
1688         elif test $ol_with_threads = mach ; then
1689                 AC_MSG_ERROR([could not locate Mach CThreads])
1690         fi
1691
1692         if test $ol_link_threads = mach ; then
1693                 AC_DEFINE(HAVE_MACH_CTHREADS,1,
1694                         [define if you have Mach Cthreads])
1695         elif test $ol_with_threads = found ; then
1696                 AC_MSG_ERROR([could not link with Mach CThreads])
1697         fi
1698         ;;
1699 esac
1700
1701 case $ol_with_threads in auto | yes | pth)
1702
1703         AC_CHECK_HEADERS(pth.h)
1704
1705         if test $ac_cv_header_pth_h = yes ; then
1706                 AC_CHECK_LIB(pth, pth_version, [have_pth=yes], [have_pth=no])
1707
1708                 if test $have_pth = yes ; then
1709                         AC_DEFINE(HAVE_GNU_PTH,1,[if you have GNU Pth])
1710                         LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
1711                         ol_link_threads=pth
1712                         ol_with_threads=found
1713
1714                         if test $ol_with_yielding_select = auto ; then
1715                                 ol_with_yielding_select=yes
1716                         fi
1717                 fi
1718         fi
1719         ;;
1720 esac
1721
1722 case $ol_with_threads in auto | yes | lwp)
1723
1724         dnl check for SunOS5 LWP
1725         AC_CHECK_HEADERS(thread.h synch.h)
1726         if test $ac_cv_header_thread_h = yes &&
1727            test $ac_cv_header_synch_h = yes ; then
1728                 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
1729
1730                 if test $have_thr = yes ; then
1731                         AC_DEFINE(HAVE_THR,1,
1732                                 [if you have Solaris LWP (thr) package])
1733                         LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
1734                         ol_link_threads=thr
1735
1736                         if test $ol_with_yielding_select = auto ; then
1737                                 ol_with_yielding_select=yes
1738                         fi
1739
1740                         dnl Check for setconcurreny functions
1741                         AC_CHECK_FUNCS( \
1742                                 thr_setconcurrency \
1743                                 thr_getconcurrency \
1744                         )
1745                 fi
1746         fi
1747         ;;
1748 esac
1749
1750 if test $ol_with_yielding_select = yes ; then
1751         AC_DEFINE(HAVE_YIELDING_SELECT,1,
1752                 [define if select implicitly yields])
1753 fi
1754
1755 if test $ol_with_threads = manual ; then
1756         dnl User thinks he can manually configure threads.
1757         ol_link_threads=yes
1758
1759         AC_MSG_WARN([thread defines and link options must be set manually])
1760
1761         AC_CHECK_HEADERS(pthread.h sched.h)
1762         AC_CHECK_FUNCS(sched_yield pthread_yield)
1763         OL_HEADER_LINUX_THREADS
1764
1765         AC_CHECK_HEADERS(mach/cthreads.h)
1766         AC_CHECK_HEADERS(thread.h synch.h)
1767 fi
1768
1769 if test $ol_link_threads != no && test $ol_link_threads != nt ; then
1770         dnl needed to get reentrant/threadsafe versions
1771         dnl
1772         AC_DEFINE(REENTRANT,1)
1773         AC_DEFINE(_REENTRANT,1)
1774         AC_DEFINE(THREAD_SAFE,1)
1775         AC_DEFINE(_THREAD_SAFE,1)
1776         AC_DEFINE(THREADSAFE,1)
1777         AC_DEFINE(_THREADSAFE,1)
1778         AC_DEFINE(_SGI_MP_SOURCE,1)
1779
1780         dnl The errno declaration may dependent upon _REENTRANT.
1781         dnl If it does, we must link with thread support.
1782         AC_CACHE_CHECK([for thread specific errno],
1783                 [ol_cv_errno_thread_specific], [
1784                 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <errno.h>]], [[errno = 0;]])],[ol_cv_errno_thread_specific=yes],[ol_cv_errno_thread_specific=no])
1785         ])
1786
1787         dnl The h_errno declaration may dependent upon _REENTRANT.
1788         dnl If it does, we must link with thread support.
1789         AC_CACHE_CHECK([for thread specific h_errno],
1790                 [ol_cv_h_errno_thread_specific], [
1791                 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])
1792         ])
1793
1794         if test $ol_cv_errno_thread_specific != yes ||
1795            test $ol_cv_h_errno_thread_specific != yes ; then
1796                 LIBS="$LTHREAD_LIBS $LIBS"
1797                 LTHREAD_LIBS=""
1798         fi
1799
1800 dnl When in thread environment, use 
1801 dnl             #if defined( HAVE_REENTRANT_FUNCTIONS ) || defined( HAVE_FUNC_R )
1802 dnl                     func_r(...);
1803 dnl             #else
1804 dnl             #       if defined( HAVE_THREADS ) 
1805 dnl                             /* lock */
1806 dnl             #       endif
1807 dnl                             func(...);
1808 dnl             #       if defined( HAVE_THREADS ) 
1809 dnl                             /* unlock */
1810 dnl             #       endif
1811 dnl             #endif
1812 dnl
1813 dnl HAVE_REENTRANT_FUNCTIONS is derived from:
1814 dnl             _POSIX_REENTRANT_FUNCTIONS
1815 dnl             _POSIX_THREAD_SAFE_FUNCTIONS
1816 dnl             _POSIX_THREADSAFE_FUNCTIONS
1817 dnl
1818 dnl             and is currently defined in <ldap_pvt_thread.h>
1819 dnl
1820 dnl HAVE_THREADS is defined by <ldap_pvt_thread.h> iff -UNO_THREADS
1821 dnl 
1822 dnl libldap/*.c should only include <ldap_pvt_thread.h> iff
1823 dnl LDAP_R_COMPILE is defined.  ie:
1824 dnl             #ifdef LDAP_R_COMPILE
1825 dnl             #       include <ldap_pvt_thread.h>
1826 dnl             #endif
1827 dnl
1828 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
1829 dnl specifically for compiling the threadsafe version of
1830 dnl     the ldap library (-lldap_r).
1831 dnl             
1832 dnl     dnl check for reentrant/threadsafe functions
1833 dnl     dnl
1834 dnl     dnl note: these should only be used when linking
1835 dnl     dnl             with $LTHREAD_LIBS
1836 dnl     dnl
1837 dnl     save_CPPFLAGS="$CPPFLAGS"
1838 dnl     save_LIBS="$LIBS"
1839 dnl     LIBS="$LTHREAD_LIBS $LIBS"
1840 dnl     AC_CHECK_FUNCS( \
1841 dnl             gmtime_r \
1842 dnl             gethostbyaddr_r gethostbyname_r \
1843 dnl             feof_unlocked unlocked_feof \
1844 dnl             putc_unlocked unlocked_putc \
1845 dnl             flockfile ftrylockfile \
1846 dnl     )
1847 dnl     CPPFLAGS="$save_CPPFLAGS"
1848 dnl     LIBS="$save_LIBS"
1849 fi  
1850
1851 if test $ol_link_threads = no ; then
1852         if test $ol_with_threads = yes ; then
1853                 AC_MSG_ERROR([no suitable thread support])
1854         fi
1855
1856         if test $ol_with_threads = auto ; then
1857                 AC_MSG_WARN([no suitable thread support, disabling threads])
1858                 ol_with_threads=no
1859         fi
1860
1861         AC_DEFINE(NO_THREADS,1,
1862                 [define if you have (or want) no threads])
1863         LTHREAD_LIBS=""
1864         BUILD_THREAD=no
1865 else
1866         BUILD_THREAD=yes
1867 fi
1868
1869 if test $ol_link_threads != no ; then
1870         AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1,
1871                 [define to 1 if library is thread safe])
1872 fi
1873
1874 dnl ----------------------------------------------------------------
1875 dnl Tests for reentrant functions necessary to build -lldap_r
1876 AC_CHECK_FUNCS(         \
1877         ctime_r                 \
1878         gmtime_r localtime_r \
1879         gethostbyname_r gethostbyaddr_r \
1880 )
1881
1882 if test "$ac_cv_func_ctime_r" = no ; then
1883         ol_cv_func_ctime_r_nargs=0
1884 else
1885         OL_FUNC_CTIME_R_NARGS
1886 dnl     OL_FUNC_CTIME_R_TYPE
1887 fi
1888
1889 if test "$ac_cv_func_gethostbyname_r" = yes ; then
1890         OL_FUNC_GETHOSTBYNAME_R_NARGS
1891 else
1892         ol_cv_func_gethostbyname_r_nargs=0
1893 fi
1894  
1895 if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
1896         OL_FUNC_GETHOSTBYADDR_R_NARGS
1897 else
1898         ol_cv_func_gethostbyaddr_r_nargs=0
1899 fi
1900
1901 dnl ----------------------------------------------------------------
1902 ol_link_bdb=no 
1903
1904 if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
1905         OL_BERKELEY_DB
1906
1907         if test $ol_cv_berkeley_db = no ; then
1908                 AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
1909         fi
1910
1911         AC_DEFINE(HAVE_BERKELEY_DB,1,
1912                 [define this if Berkeley DB is available])
1913
1914         dnl $ol_cv_lib_db should be yes or -ldb
1915         dnl (it could be no, but that would be an error
1916         if test $ol_cv_lib_db != yes ; then
1917                 BDB_LIBS="$BDB_LIBS $ol_cv_lib_db"
1918         fi
1919
1920         SLAPD_LIBS="$SLAPD_LIBS \$(BDB_LIBS)"
1921
1922         ol_link_bdb=yes 
1923 fi
1924
1925 dnl ----------------------------------------------------------------
1926
1927 if test $ol_enable_dynamic = yes && test $enable_shared = yes ; then
1928         BUILD_LIBS_DYNAMIC=shared
1929         AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
1930         LTSTATIC=""
1931 else
1932         BUILD_LIBS_DYNAMIC=static
1933         LTSTATIC="-static"
1934 fi
1935 AC_SUBST(LTSTATIC)dnl
1936
1937 dnl ----------------------------------------------------------------
1938 if test $ol_enable_wrappers != no ; then
1939         AC_CHECK_HEADERS(tcpd.h,[
1940                 AC_MSG_CHECKING([for TCP wrappers library])
1941                 save_LIBS="$LIBS"
1942                 LIBS="$LIBS -lwrap"
1943                 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1944 #include <tcpd.h>
1945 int allow_severity = 0;
1946 int deny_severity  = 0;
1947
1948 struct request_info *req;
1949                 ]], [[
1950 hosts_access(req)
1951                 ]])],[AC_MSG_RESULT([-lwrap])
1952                 have_wrappers=yes
1953                 LIBS="$save_LIBS"],[
1954                 dnl try with -lnsl
1955                 LIBS="$LIBS -lnsl"
1956                 AC_TRY_LINK([
1957 #include <tcpd.h>
1958 int allow_severity = 0;
1959 int deny_severity  = 0;
1960
1961 struct request_info *req;
1962                 ],[
1963 hosts_access(req)
1964                 ],[AC_MSG_RESULT([-lwrap -lnsl])
1965                 have_wrappers=yes
1966                 LIBS="$save_LIBS -lnsl"],[
1967                 AC_MSG_RESULT(no)
1968                 have_wrappers=no
1969                 LIBS=$save_LIBS])])],[have_wrappers=no])
1970
1971         if test $have_wrappers = yes ; then
1972                 AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
1973                 WRAP_LIBS="-lwrap"
1974         elif test $ol_enable_wrappers = yes ; then
1975                 AC_MSG_ERROR([could not find TCP wrappers, select apppropriate options or disable])
1976         else
1977                 AC_MSG_WARN([could not find TCP wrappers, support disabled])
1978                 WRAP_LIBS=""
1979         fi
1980 fi
1981
1982 dnl ----------------------------------------------------------------
1983 if test $ol_enable_syslog != no ; then
1984         AC_CHECK_FUNC(openlog)
1985         if test $ac_cv_func_openlog = no && test $ol_enable_syslog = yes; then
1986                 AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
1987         fi
1988         ol_enable_syslog=$ac_cv_func_openlog
1989 fi
1990
1991 dnl ----------------------------------------------------------------
1992 dnl SQL
1993 ol_link_sql=no
1994 if test $ol_enable_sql != no ; then
1995         AC_CHECK_HEADERS(sql.h sqlext.h,[],[
1996                 AC_MSG_ERROR([could not locate SQL headers])
1997         ])
1998
1999         sql_LIBS="$LIBS"
2000         LIBS="$LTHREAD_LIBS $LIBS"
2001
2002         if test $ol_with_odbc = auto ; then
2003                 ol_with_odbc="iodbc unixodbc odbc32"
2004         fi
2005
2006         for odbc in $ol_with_odbc ; do
2007                 if test $ol_link_sql = no ; then
2008                         case $odbc in
2009                         iodbc)
2010                                 AC_CHECK_LIB(iodbc, SQLDriverConnect, [have_iodbc=yes], [have_iodbc=no])
2011                                 if test $have_iodbc = yes ; then
2012                                         ol_link_sql="-liodbc"
2013                                 fi
2014                                 ;;
2015
2016                         unixodbc)
2017                                 AC_CHECK_LIB(odbc, SQLDriverConnect, [have_odbc=yes], [have_odbc=no])
2018                                 if test $have_odbc = yes ; then
2019                                         ol_link_sql="-lodbc"
2020                                 fi
2021                                 ;;
2022
2023                         odbc32)
2024                                 AC_CHECK_LIB(odbc32, SQLDriverConnect, [have_odbc32=yes], [have_odbc32=no])
2025                                 
2026                                 dnl The windows API uses __stdcall which cannot be detected by AC_CHECK_LIB
2027                                 if test $have_odbc32 = no ; then
2028                                         AC_MSG_CHECKING([for SQLDriverConnect in -lodbc32 with windows.h])
2029                                         save_LIBS="$LIBS"
2030                                         LIBS="$LIBS -lodbc32"
2031                                         AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <windows.h>
2032                                         #include <sqlext.h>
2033                                                 ]], [[
2034                                                 SQLDriverConnect(NULL,NULL,NULL,0,NULL,0,NULL,0);
2035                                                 ]])],[have_odbc32=yes], [have_odbc32=no])
2036                                         LIBS="$save_LIBS"
2037                                         AC_MSG_RESULT($have_odbc32)
2038                                 fi
2039                                 
2040                                 if test $have_odbc32 = yes ; then
2041                                         ol_link_sql="-lodbc32"
2042                                 fi
2043                                 ;;
2044
2045                         *)
2046                                 AC_MSG_ERROR([unknown ODBC library])
2047                                 ;;
2048                         esac
2049                 fi
2050         done
2051
2052         LIBS="$sql_LIBS"
2053
2054         if test $ol_link_sql != no ; then
2055                 SLAPD_SQL_LIBS="$ol_link_sql"
2056
2057         elif test $ol_enable_sql != auto ; then
2058                 AC_MSG_ERROR([could not locate suitable ODBC library])
2059         fi
2060 fi
2061
2062 dnl ----------------------------------------------------------------
2063 dnl MySQL NDBapi
2064 dnl Note: uses C++, but we don't want to add C++ test overhead to
2065 dnl the rest of the libtool machinery.
2066 ol_link_ndb=no
2067 if test $ol_enable_ndb != no ; then
2068         AC_CHECK_PROG(MYSQL,mysql_config,yes)
2069         if test "$MYSQL" != yes ; then
2070                 AC_MSG_ERROR([could not locate mysql_config])
2071         fi
2072
2073         SQL_INC=`mysql_config --include`
2074         SLAPD_NDB_INCS="$SQL_INC $SQL_INC/storage/ndb $SQL_INC/storage/ndb/ndbapi"
2075
2076         save_CPPFLAGS="$CPPFLAGS"
2077         CPPFLAGS="$SLAPD_NDB_INCS"
2078         AC_MSG_CHECKING(for NdbApi.hpp)
2079         AC_PREPROC_IFELSE(
2080                 [AC_LANG_SOURCE([[#include <NdbApi.hpp>]])],
2081                         AC_MSG_RESULT(yes),
2082                         AC_MSG_ERROR([could not locate NdbApi headers])
2083         )
2084         CPPFLAGS="$save_CPPFLAGS"
2085
2086         SQL_LIB=`mysql_config --libs_r`
2087         SLAPD_NDB_LIBS="$SQL_LIB -lndbclient -lstdc++"
2088
2089         save_LDFLAGS="$LDFLAGS"
2090         save_LIBS="$LIBS"
2091         LDFLAGS="$SQL_LIB"
2092         AC_CHECK_LIB(ndbclient,ndb_init,[: ok],[
2093                 AC_MSG_ERROR([could not locate ndbclient library])
2094         ],[-lstdc++])
2095         LIBS="$save_LIBS"
2096         LDFLAGS="$save_LDFLAGS"
2097
2098         if test "$ol_enable_ndb" = yes ; then
2099                 SLAPD_LIBS="$SLAPD_LIBS \$(SLAPD_NDB_LIBS)"
2100         fi
2101 fi
2102
2103 dnl ----------------------------------------------------------------
2104 dnl WiredTiger
2105 ol_link_wt=no
2106 if test $ol_enable_wt != no ; then
2107         AC_CHECK_PROG(PKGCONFIG,pkg-config,yes)
2108         if test "$PKGCONFIG" != yes ; then
2109                 AC_MSG_ERROR([could not locate pkg-config])
2110         fi
2111         WT_INCS=`pkg-config --cflags wiredtiger`
2112         WT_LIBS=`pkg-config --libs wiredtiger`
2113
2114         save_CFLAGS="$CFLAGS"
2115         save_LDFLAGS="$LDFLAGS"
2116         CFLAGS="$WT_INCS"
2117         CPPFLAGS="$WT_INCS"
2118         LDFLAGS="$WT_LIBS"
2119         AC_CHECK_HEADERS([wiredtiger.h])
2120         AC_CHECK_LIB(wiredtiger,wiredtiger_version,[: ok],[
2121                 AC_MSG_ERROR([could not locate wiredtiger library])
2122         ])
2123         CFLAGS="$save_CFLAGS"
2124         CPPFLAGS="$save_CPPFLAGS"
2125         LDFLAGS="$save_LDFLAGS"
2126         SLAPD_LIBS="$SLAPD_LIBS \$(WT_LIBS)"
2127         ol_link_wt=yes
2128 fi
2129
2130 dnl ----------------------------------------------------------------
2131 dnl International Components for Unicode
2132 OL_ICU
2133 if test "$ol_icu" = no ; then
2134         AC_MSG_WARN([ICU not available])
2135 else
2136         ICU_LIBS="$ol_icu"
2137 fi
2138 dnl ----------------------------------------------------------------
2139 dnl
2140 dnl Check for Cyrus SASL
2141 dnl
2142 WITH_SASL=no
2143 ol_link_sasl=no
2144 ol_link_spasswd=no
2145 if test $ol_with_cyrus_sasl != no ; then
2146         AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
2147
2148         if test $ac_cv_header_sasl_sasl_h = yes ||
2149            test $ac_cv_header_sasl_h = yes; then
2150                 AC_CHECK_LIB(sasl2, sasl_client_init,
2151                         [ol_link_sasl="-lsasl2"],
2152                         [AC_CHECK_LIB(sasl, sasl_client_init,
2153                                 [ol_link_sasl="-lsasl"])])
2154         fi
2155
2156         if test $ol_link_sasl = no ; then
2157                 if test $ol_with_cyrus_sasl != auto ; then
2158                         AC_MSG_ERROR([Could not locate Cyrus SASL])
2159                 else
2160                         AC_MSG_WARN([Could not locate Cyrus SASL])
2161                         AC_MSG_WARN([SASL authentication not supported!])
2162                         if test $ol_link_tls = no ; then
2163                                 AC_MSG_WARN([Strong authentication not supported!])
2164                         fi
2165                 fi
2166         else
2167                 OL_SASL_COMPAT
2168                 if test $ol_cv_sasl_compat = no ; then
2169                         ol_link_sasl=no
2170                         AC_MSG_ERROR([Cyrus SASL library located but is incompatible])
2171                 fi
2172
2173                 AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
2174                 SASL_LIBS="$ol_link_sasl"
2175                 if test $ol_enable_spasswd != no ; then
2176                         ol_link_spasswd=yes
2177                 fi
2178
2179                 ac_save_LIBS="$LIBS"
2180                 LIBS="$LIBS $ol_link_sasl"
2181                 AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1,
2182                         [define if your SASL library has sasl_version()])])
2183                 LIBS="$ac_save_LIBS"
2184
2185                 WITH_SASL=yes
2186         fi
2187
2188 else
2189         AC_MSG_WARN([SASL authentication not supported!])
2190         if test $ol_link_tls = no ; then
2191                 AC_MSG_WARN([Strong authentication not supported!])
2192         fi
2193 fi
2194
2195 dnl ----------------------------------------------------------------
2196 dnl Check for entropy sources
2197 if test $cross_compiling != yes && test "$ac_cv_mingw32" != yes ; then
2198         dev=no
2199         if test -r /dev/urandom ; then
2200                 dev="/dev/urandom";
2201         elif test -r /idev/urandom ; then
2202                 dev="/idev/urandom";
2203         elif test -r /dev/srandom ; then
2204                 dev="/dev/srandom";
2205         elif test -r /dev/random ; then
2206                 dev="/dev/random";
2207         elif test -r /idev/random ; then
2208                 dev="/idev/random";
2209         fi
2210
2211         if test $dev != no ; then
2212                 AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
2213         fi
2214 fi
2215
2216 dnl ----------------------------------------------------------------
2217 dnl
2218 dnl Check for fetch URL support
2219 dnl             should be extended to support other fetch URL APIs
2220 dnl
2221 ol_link_fetch=no
2222 if test $ol_with_fetch != no ; then
2223         OL_LIB_FETCH
2224
2225         if test $ol_cv_lib_fetch != no ; then
2226                 LIBS="$LIBS $ol_link_fetch"
2227                 ol_link_fetch=freebsd
2228
2229         elif test $ol_with_fetch != auto ; then
2230                 AC_MSG_ERROR(no suitable API for --with-fetch=$ol_with_fetch)
2231         fi 
2232 fi
2233
2234 dnl ----------------------------------------------------------------
2235 dnl FreeBSD (and others) have crypt(3) in -lcrypt
2236 if test $ol_enable_crypt != no ; then
2237         save_LIBS="$LIBS"
2238         LIBS="$TLS_LIBS $LIBS"
2239
2240         AC_CHECK_FUNC(crypt, [have_crypt=yes], [
2241                 LIBS="$save_LIBS"
2242                 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
2243                         have_crypt=yes], [have_crypt=no])])
2244
2245         LIBS="$TLS_LIBS $LIBS"
2246         AC_CHECK_LIB(crypt, crypt_r, [have_crypt_r=yes], [have_crypt_r=no])
2247
2248         LIBS="$save_LIBS"
2249
2250         if test $have_crypt = yes ; then
2251                 AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
2252                 if test $have_crypt_r = yes ; then
2253                         AC_DEFINE(HAVE_CRYPT_R, 1, [define if crypt_r() is also available])
2254                 fi
2255         else
2256                 AC_MSG_WARN([could not find crypt])
2257                 if test $ol_enable_crypt = yes ; then
2258                         AC_MSG_ERROR([could not find crypt, select appropriate options or disable])
2259                 fi
2260
2261                 AC_MSG_WARN([disabling crypt support])
2262                 ol_enable_crypt=no
2263         fi
2264 fi
2265
2266 dnl ----------------------------------------------------------------
2267 dnl FreeBSD (and others) have setproctitle(3) in -lutil
2268 if test $ol_enable_proctitle != no ; then
2269         AC_CHECK_FUNC(setproctitle,     [have_setproctitle=yes], [
2270                 AC_CHECK_LIB(util, setproctitle,
2271                         [have_setproctitle=yes
2272                         LUTIL_LIBS="$LUTIL_LIBS -lutil"],
2273                         [have_setproctitle=no
2274                         AC_LIBOBJ(setproctitle)
2275                         LIBSRCS="$LIBSRCS setproctitle.c"])])
2276
2277         if test $have_setproctitle = yes ; then
2278                 AC_DEFINE(HAVE_SETPROCTITLE,1,
2279                         [define if setproctitle(3) is available])
2280         fi
2281 fi
2282
2283 dnl ----------------------------------------------------------------
2284 if test $ol_enable_slp != no ; then
2285         AC_CHECK_HEADERS( slp.h )
2286
2287         if test $ac_cv_header_slp_h = yes ; then
2288                 AC_CHECK_LIB(slp, SLPOpen, [have_slp=yes], [have_slp=no])
2289                 if test $have_slp = yes ; then
2290                         AC_DEFINE(HAVE_SLP, 1, [define if you have -lslp])
2291                         SLAPD_SLP_LIBS=-lslp
2292                 fi
2293
2294         elif test $ol_enable_slp = yes ; then
2295                 AC_MSG_ERROR([SLP not found])
2296         fi
2297 fi
2298
2299 dnl ----------------------------------------------------------------
2300 dnl Checks for typedefs, structures, and compiler characteristics.
2301
2302 AC_CHECK_TYPE(mode_t, int)
2303 AC_CHECK_TYPE(off_t, long)
2304 AC_CHECK_TYPE(pid_t, int)
2305 AC_CHECK_TYPE(ssize_t, [signed int])
2306 AC_CHECK_TYPE(caddr_t,  [char *])
2307 AC_CHECK_TYPE(size_t, unsigned)
2308
2309 AC_CHECK_TYPES([long long])
2310 AC_CHECK_TYPES([ptrdiff_t])
2311
2312
2313 AC_CHECK_TYPE([socklen_t],,, [$ac_includes_default
2314 #ifdef HAVE_SYS_SOCKET_H
2315 #include <sys/socket.h>
2316 #endif])
2317
2318 dnl socklen_t-like type in accept(), default socklen_t or int:
2319 dnl - The OS might define socklen_t without using it.  POSIX moved from
2320 dnl   int to size_t to socklen_t, hoping to stay at a 32-bit type, and
2321 dnl   HP-UX now has selectors for what to use.
2322 dnl - On Solaris 2.8 the prototype has void *len, but the default is OK.
2323 AC_MSG_CHECKING([the type of arg 3 to accept()])
2324 AC_CACHE_VAL(ol_cv_type_ber_socklen_t, [
2325         set socklen_t int unsigned "unsigned long" long size_t
2326         test "$ac_cv_type_socklen_t" = yes || shift
2327         ol_cv_type_ber_socklen_t=$1 guessing="guessing "
2328         for lentype in "$@" ; do for addrtype in "struct sockaddr" void ; do
2329                 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$ac_includes_default
2330 #ifdef HAVE_SYS_SOCKET_H
2331 #include <sys/socket.h>
2332 #endif
2333 extern int accept(int s, $addrtype *ap, $lentype *lp);
2334 ], [
2335 accept(0, (struct sockaddr *) 0, ($lentype *) 0);
2336 ])], [ol_cv_type_ber_socklen_t=$lentype guessing= ; break 2])
2337         done ; done])
2338 AC_MSG_RESULT([$guessing$ol_cv_type_ber_socklen_t *])
2339 AC_DEFINE_UNQUOTED(ber_socklen_t, $ol_cv_type_ber_socklen_t,
2340         [Define to the type of arg 3 for `accept'.])
2341
2342 dnl Modules should use ber_socklen_t, not socklen_t.  Define socklen_t
2343 dnl for the time being anyway, for backwards compatibility.
2344 if test "$ac_cv_type_socklen_t" != yes; then
2345         AC_DEFINE_UNQUOTED([socklen_t], [$ol_cv_type_ber_socklen_t],
2346                 [Define like ber_socklen_t if <sys/socket.h> does not define.])
2347 fi
2348
2349
2350 AC_TYPE_SIGNAL
2351
2352 AC_CHECK_TYPE([sig_atomic_t],,
2353         [AC_DEFINE_UNQUOTED([sig_atomic_t], [int],
2354                 [Define to `int' if <signal.h> does not define.])],
2355         [$ac_includes_default
2356 #include <signal.h>
2357         ])
2358
2359 AC_TYPE_UID_T
2360
2361 AC_HEADER_TIME
2362 AC_STRUCT_TM
2363 AC_CHECK_MEMBERS([struct stat.st_blksize])
2364 AC_CHECK_MEMBERS([struct passwd.pw_gecos],,,[$ac_includes_default
2365 #include <pwd.h>])
2366 AC_CHECK_MEMBERS([struct passwd.pw_passwd],,,[$ac_includes_default
2367 #include <pwd.h>])
2368
2369 OL_C_UPPER_LOWER
2370 AC_C_CONST
2371 OL_C_VOLATILE
2372
2373 if test $cross_compiling = yes ; then
2374         AC_MSG_WARN([Crossing compiling... all bets are off!])
2375         AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
2376 else
2377         AC_C_BIGENDIAN
2378 fi
2379
2380 AC_CHECK_SIZEOF(short) 
2381 AC_CHECK_SIZEOF(int) 
2382 AC_CHECK_SIZEOF(long)
2383 AC_CHECK_SIZEOF(long long)
2384 AC_CHECK_SIZEOF(wchar_t)
2385
2386 if test "$ac_cv_sizeof_int" -lt 4 ; then
2387         AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
2388
2389         AC_DEFINE(LBER_INT_T,long,[define to 32-bit or greater integer type])
2390 else
2391         AC_DEFINE(LBER_INT_T,int,[define to 32-bit or greater integer type])
2392 fi
2393
2394 AC_DEFINE(LBER_LEN_T,long,[define to large integer type])
2395 AC_DEFINE(LBER_SOCKET_T,int,[define to socket descriptor type])
2396 AC_DEFINE(LBER_TAG_T,long,[define to large integer type])
2397
2398 dnl ----------------------------------------------------------------
2399 dnl Check for multiple precision support
2400 if test $ol_with_mp = longlong || test $ol_with_mp = auto ; then
2401         if test $ac_cv_sizeof_long_long -gt 4 ; then
2402                 ol_with_mp=longlong
2403                 AC_DEFINE(USE_MP_LONG_LONG,1,[define to use 'long long' for MP])
2404         elif test $ol_with_mp = longlong ; then
2405                 AC_MSG_ERROR([long long unusable for multiple precision])
2406         fi
2407 fi
2408 if test $ol_with_mp = long || test $ol_with_mp = auto ; then
2409         if test $ac_cv_sizeof_long -gt 4 ; then
2410                 ol_with_mp=long
2411                 AC_DEFINE(USE_MP_LONG,1,[define to use 'long' for MP])
2412         elif test $ol_with_mp = long ; then
2413                 AC_MSG_ERROR([long unusable for multiple precision])
2414         fi
2415 fi
2416 if test $ol_with_mp = bignum || test $ol_with_mp = auto ; then
2417         AC_CHECK_HEADERS(openssl/bn.h)
2418         AC_CHECK_HEADERS(openssl/crypto.h)
2419         if test "$ac_cv_header_openssl_bn_h" = "yes" &&
2420                 test "$ac_cv_header_openssl_crypto_h" = "yes" &&
2421                 test "$ol_with_tls" = "found" ; then
2422                 ol_with_mp=bignum
2423                 AC_DEFINE(USE_MP_BIGNUM,1,[define to use OpenSSL BIGNUM for MP])
2424         elif test $ol_with_mp = bignum ; then
2425                 AC_MSG_ERROR([bignum not available])
2426         fi
2427 fi
2428 if test $ol_with_mp = gmp || test $ol_with_mp = auto ; then
2429         AC_CHECK_HEADERS(gmp.h)
2430         AC_CHECK_LIB(gmp, __gmpz_add_ui)
2431         if test $ac_cv_header_gmp_h = yes && test $ac_cv_lib_gmp___gmpz_add_ui = yes ; then
2432                 AC_DEFINE(USE_MP_GMP,1,[define to use GMP for MP])
2433                 ol_with_mp=gmp
2434         elif test $ol_with_mp = gmp ; then
2435                 AC_MSG_ERROR([gmp not available])
2436         fi
2437 fi
2438 if test $ol_with_mp = auto ; then
2439         ol_with_mp=no
2440 fi
2441
2442 dnl ----------------------------------------------------------------
2443 dnl Checks for library functions.
2444 AC_FUNC_MEMCMP
2445
2446 if test $ac_cv_func_memcmp_working = no ; then
2447         AC_DEFINE(NEED_MEMCMP_REPLACEMENT,1,
2448                 [define if memcmp is not 8-bit clean or is otherwise broken])
2449 fi
2450
2451 AC_FUNC_STRFTIME
2452
2453 OL_FUNC_INET_ATON
2454
2455 dnl Check for NT specific routines
2456 AC_CHECK_FUNC(_spawnlp, AC_DEFINE(HAVE_SPAWNLP,1,[if you have spawnlp()]))
2457
2458 AC_CHECK_FUNC(_snprintf, [ac_cv_func_snprintf=yes
2459         AC_DEFINE(snprintf, _snprintf, [define to snprintf routine])
2460 ])
2461
2462 AC_CHECK_FUNCS(vsnprintf _vsnprintf)
2463
2464 if test $ac_cv_func_vsnprintf = no -a $ac_cv_func__vsnprintf = yes ; then
2465         ac_cv_func_vsnprintf=yes
2466         AC_DEFINE(vsnprintf, _vsnprintf, [define to vsnprintf routine])
2467 fi
2468
2469 AC_FUNC_VPRINTF
2470
2471 if test $ac_cv_func_vprintf = yes ; then
2472         dnl check for vsnprintf
2473         AC_CHECK_FUNCS(snprintf vsnprintf)
2474 fi
2475
2476 AC_CHECK_FUNCS(                 \
2477         bcopy                   \
2478         closesocket             \
2479         chroot                  \
2480         endgrent                \
2481         endpwent                \
2482         fcntl                   \
2483         flock                   \
2484         fstat                   \
2485         getdtablesize           \
2486         geteuid                 \
2487         getgrgid                \
2488         gethostname             \
2489         getpassphrase           \
2490         getpwuid                \
2491         getpwnam                \
2492         getspnam                \
2493         gettimeofday            \
2494         initgroups              \
2495         inet_ntoa_b             \
2496         ioctl                   \
2497         lockf                   \
2498         memcpy                  \
2499         memmove                 \
2500         memrchr                 \
2501         mkstemp                 \
2502         mktemp                  \
2503         pipe                    \
2504         read                    \
2505         recv                    \
2506         recvfrom                \
2507         setpwfile               \
2508         setgid                  \
2509         setegid                 \
2510         setsid                  \
2511         setuid                  \
2512         seteuid                 \
2513         signal                  \
2514         strdup                  \
2515         strpbrk                 \
2516         strrchr                 \
2517         strsep                  \
2518         strstr                  \
2519         strtol                  \
2520         strtoul                 \
2521         strtoq                  \
2522         strtouq                 \
2523         strtoll                 \
2524         strtoull                \
2525         strspn                  \
2526         sysconf                 \
2527         waitpid                 \
2528         wait4                   \
2529         write                   \
2530         send                    \
2531         sendmsg                 \
2532         sendto                  \
2533 )
2534
2535 dnl We actually may need to replace more than this.
2536 AC_REPLACE_FUNCS(getopt getpeereid)
2537
2538 if test "$ac_cv_func_getopt" != yes; then
2539         LIBSRCS="$LIBSRCS getopt.c"
2540 fi
2541
2542 if test "$ac_cv_func_getpeereid" != yes; then
2543         AC_CHECK_FUNCS( getpeerucred )
2544         if test "$ac_cv_func_getpeerucred" != yes ; then
2545                 AC_CHECK_MEMBERS([struct msghdr.msg_accrightslen],,,
2546                         [$ac_includes_default
2547 #ifdef HAVE_SYS_SOCKET_H
2548 #include <sys/socket.h>
2549 #endif])
2550                 if test "$ac_cv_member_struct_msghdr_msg_accrightslen" != yes; then
2551                         AC_CHECK_MEMBERS([struct msghdr.msg_control],,,
2552                                 [$ac_includes_default
2553 #ifdef HAVE_SYS_SOCKET_H
2554 #include <sys/socket.h>
2555 #endif])
2556                 fi
2557                 AC_CHECK_MEMBERS([struct stat.st_fstype, struct stat.st_vfstype])
2558                 if test "$ac_cv_member_struct_stat_st_fstype" = yes; then
2559                         AC_COMPILE_IFELSE([AC_LANG_SOURCE([struct stat st; char *ptr=st.st_fstype;])],
2560                                 AC_DEFINE([HAVE_STRUCT_STAT_ST_FSTYPE_CHAR],1,[define to 1 if st_fstype is char *]),
2561                                 AC_DEFINE([HAVE_STRUCT_STAT_ST_FSTYPE_INT],1,[define to 1 if st_fstype is int]))
2562                 fi
2563         fi
2564         LIBSRCS="$LIBSRCS getpeereid.c"
2565 fi
2566
2567 if test "$ac_cv_func_snprintf" != yes ||
2568    test "$ac_cv_func_vsnprintf" != yes; then
2569         if test "$ac_cv_func_snprintf" != yes; then
2570                 AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
2571         fi
2572         if test "$ac_cv_func_vsnprintf" != yes; then
2573                 AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine])
2574         fi
2575 fi
2576
2577 dnl ----------------------------------------------------------------
2578 dnl Sort out defines
2579
2580 if test "$ol_enable_slapi" != no ; then
2581         dnl This check is done also if --enable-modules is used;
2582         dnl it is duplicated here, 'cause it'd be cached anyway
2583         AC_CHECK_HEADERS(ltdl.h)
2584
2585         if test $ac_cv_header_ltdl_h != yes ; then
2586                 AC_MSG_ERROR([could not locate <ltdl.h>])
2587         fi
2588         AC_CHECK_LIB(ltdl, lt_dlinit, [
2589                 SLAPI_LIBS=-lltdl
2590                 LIBSLAPI=slapi/libslapi.la
2591                 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
2592         ],[AC_MSG_ERROR([could not locate libtool -lltdl])])
2593
2594         AC_DEFINE(LDAP_SLAPI,1, [define this to add SLAPI code])
2595 fi
2596
2597 if test "$ol_enable_debug" != no ; then
2598         if test "$ol_enable_debug" = traditional; then
2599                 AC_DEFINE(OLD_DEBUG,1,
2600                         [define to use the original debug style])
2601         fi
2602         AC_DEFINE(LDAP_DEBUG,1,
2603                 [define this to add debugging code])
2604 fi
2605 if test "$ol_enable_syslog" = yes ; then
2606         AC_DEFINE(LDAP_SYSLOG,1,
2607                 [define this to add syslog code])
2608 fi
2609 if test "$ol_enable_proctitle" != no ; then
2610         AC_DEFINE(LDAP_PROCTITLE,1,
2611                 [define this for LDAP process title support])
2612 fi
2613 if test "$ol_enable_referrals" != no ; then
2614         AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION,
2615                 [define to LDAP VENDOR VERSION])
2616 fi
2617 if test "$ol_enable_local" != no; then
2618         AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
2619 fi
2620 if test "$ol_link_ipv6" != no; then
2621         AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
2622 fi
2623 if test "$ol_enable_cleartext" != no ; then
2624         AC_DEFINE(SLAPD_CLEARTEXT,1,[define to support cleartext passwords])
2625 fi
2626 if test "$ol_enable_crypt" != no ; then
2627         AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords])
2628 fi
2629 if test "$ol_link_spasswd" != no ; then
2630         AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
2631 fi
2632 if test "$ol_enable_rlookups" != no ; then
2633         AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
2634 fi
2635 if test "$ol_enable_aci" != no ; then
2636         if test $ol_enable_dynacl = no ; then
2637                 ol_enable_dynacl=yes
2638                 AC_MSG_WARN([ACIs need dynacl])
2639         fi
2640         if test "$ol_enable_aci" = mod ; then
2641                 MFLAG=SLAPD_MOD_DYNAMIC
2642                 dnl remove this after moving servers/slapd/aci.c in contrib/slapd-modules/acl
2643                 AC_MSG_ERROR([ACI build as dynamic module not supported (yet)])
2644         else 
2645                 MFLAG=SLAPD_MOD_STATIC
2646         fi
2647         WITH_ACI_ENABLED=$ol_enable_aci
2648         AC_DEFINE_UNQUOTED(SLAPD_ACI_ENABLED,$MFLAG,[define to support per-object ACIs])
2649 else
2650         WITH_ACI_ENABLED=no
2651 fi
2652 if test "$ol_enable_dynacl" != no ; then
2653         AC_DEFINE(SLAP_DYNACL,1,[define to support run-time loadable ACL])
2654 fi
2655
2656 if test "$ol_link_modules" != no ; then
2657         AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
2658         BUILD_SLAPD=yes
2659         SLAPD_MODULES_LDFLAGS="-dlopen self"
2660 fi
2661
2662 AC_DEFINE(SLAPD_MOD_STATIC,1,[statically linked module])
2663 AC_DEFINE(SLAPD_MOD_DYNAMIC,2,[dynamically linked module])
2664
2665 dnl back-monitor goes first (well, after back-config)
2666 if test "$ol_enable_monitor" != no ; then
2667         BUILD_SLAPD=yes
2668         BUILD_MONITOR=$ol_enable_monitor
2669         if test "$ol_enable_monitor" = mod ; then
2670                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
2671                 MFLAG=SLAPD_MOD_DYNAMIC
2672         else
2673                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
2674                 MFLAG=SLAPD_MOD_STATIC
2675         fi
2676         AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
2677 fi
2678
2679 if test "$ol_enable_bdb" != no ; then
2680         BUILD_SLAPD=yes
2681         BUILD_BDB=$ol_enable_bdb
2682         if test "$ol_enable_bdb" = mod ; then
2683                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
2684                 MFLAG=SLAPD_MOD_DYNAMIC
2685         else
2686                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
2687                 MFLAG=SLAPD_MOD_STATIC
2688         fi
2689         AC_DEFINE_UNQUOTED(SLAPD_BDB,$MFLAG,[define to support BDB backend])
2690 fi
2691
2692 if test "$ol_enable_dnssrv" != no ; then
2693         BUILD_SLAPD=yes
2694         BUILD_DNSSRV=$ol_enable_dnssrv
2695         if test "$ol_enable_dnssrv" = mod ; then
2696                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
2697                 MFLAG=SLAPD_MOD_DYNAMIC
2698         else
2699                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
2700                 MFLAG=SLAPD_MOD_STATIC
2701         fi
2702         AC_DEFINE_UNQUOTED(SLAPD_DNSSRV,$MFLAG,[define to support DNS SRV backend])
2703 fi
2704
2705 if test "$ol_enable_hdb" != no ; then
2706         BUILD_SLAPD=yes
2707         BUILD_HDB=$ol_enable_hdb
2708         if test "$ol_enable_hdb" = mod ; then
2709                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-hdb"
2710                 MFLAG=SLAPD_MOD_DYNAMIC
2711         else
2712                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb"
2713                 MFLAG=SLAPD_MOD_STATIC
2714         fi
2715         AC_DEFINE_UNQUOTED(SLAPD_HDB,$MFLAG,[define to support HDB backend])
2716 fi
2717
2718 if test "$ol_enable_ldap" != no ; then
2719         BUILD_SLAPD=yes
2720         BUILD_LDAP=$ol_enable_ldap
2721         if test "$ol_enable_ldap" = mod ; then
2722                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
2723                 MFLAG=SLAPD_MOD_DYNAMIC
2724         else
2725                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
2726                 MFLAG=SLAPD_MOD_STATIC
2727         fi
2728         AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
2729 fi
2730
2731 if test "$ol_enable_mdb" != no ; then
2732         BUILD_SLAPD=yes
2733         BUILD_MDB=$ol_enable_mdb
2734         if test "$ol_enable_mdb" = mod ; then
2735                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-mdb"
2736                 MFLAG=SLAPD_MOD_DYNAMIC
2737         else
2738                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-mdb"
2739                 MFLAG=SLAPD_MOD_STATIC
2740         fi
2741         AC_DEFINE_UNQUOTED(SLAPD_MDB,$MFLAG,[define to support MDB backend])
2742 fi
2743
2744 if test "$ol_enable_meta" != no ; then
2745         BUILD_SLAPD=yes
2746         BUILD_META=$ol_enable_meta
2747         BUILD_REWRITE=yes
2748         if test "$ol_enable_meta" = mod ; then
2749                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
2750                 MFLAG=SLAPD_MOD_DYNAMIC
2751         else
2752                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
2753                 MFLAG=SLAPD_MOD_STATIC
2754         fi
2755         AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
2756 fi
2757
2758 if test "$ol_enable_asyncmeta" != no ; then
2759         BUILD_SLAPD=yes
2760         BUILD_ASYNCMETA=$ol_enable_asyncmeta
2761         BUILD_REWRITE=yes
2762         if test "$ol_enable_asyncmeta" = mod ; then
2763                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-asyncmeta"
2764                 MFLAG=SLAPD_MOD_DYNAMIC
2765         else
2766                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-asyncmeta"
2767                 MFLAG=SLAPD_MOD_STATIC
2768         fi
2769         AC_DEFINE_UNQUOTED(SLAPD_ASYNCMETA,$MFLAG,[define to support LDAP Async Metadirectory backend])
2770 fi
2771
2772 if test "$ol_enable_ndb" != no ; then
2773         BUILD_SLAPD=yes
2774         BUILD_NDB=$ol_enable_ndb
2775         if test "$ol_enable_ndb" = mod ; then
2776                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ndb"
2777                 MFLAG=SLAPD_MOD_DYNAMIC
2778         else
2779                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ndb"
2780                 MFLAG=SLAPD_MOD_STATIC
2781         fi
2782         AC_DEFINE_UNQUOTED(SLAPD_NDB,$MFLAG,[define to support NDB backend])
2783 fi
2784
2785 if test "$ol_enable_null" != no ; then
2786         BUILD_SLAPD=yes
2787         BUILD_NULL=$ol_enable_null
2788         if test "$ol_enable_null" = mod ; then
2789                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
2790                 MFLAG=SLAPD_MOD_DYNAMIC
2791         else
2792                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
2793                 MFLAG=SLAPD_MOD_STATIC
2794         fi
2795         AC_DEFINE_UNQUOTED(SLAPD_NULL,$MFLAG,[define to support NULL backend])
2796 fi
2797
2798 if test "$ol_enable_passwd" != no ; then
2799         BUILD_SLAPD=yes
2800         BUILD_PASSWD=$ol_enable_passwd
2801         if test "$ol_enable_passwd" = mod ; then
2802                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
2803                 MFLAG=SLAPD_MOD_DYNAMIC
2804         else
2805                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
2806                 MFLAG=SLAPD_MOD_STATIC
2807         fi
2808         AC_DEFINE_UNQUOTED(SLAPD_PASSWD,$MFLAG,[define to support PASSWD backend])
2809 fi
2810
2811 if test "$ol_link_perl" != no ; then
2812         BUILD_SLAPD=yes
2813         BUILD_PERL=$ol_enable_perl
2814         if test "$ol_enable_perl" = mod ; then
2815                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
2816                 MFLAG=SLAPD_MOD_DYNAMIC
2817         else
2818                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
2819                 MFLAG=SLAPD_MOD_STATIC
2820         fi
2821         AC_DEFINE_UNQUOTED(SLAPD_PERL,$MFLAG,[define to support PERL backend])
2822 fi
2823
2824 if test "$ol_enable_relay" != no ; then
2825         BUILD_SLAPD=yes
2826         BUILD_RELAY=$ol_enable_relay
2827         if test "$ol_enable_relay" = mod ; then
2828                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-relay"
2829                 MFLAG=SLAPD_MOD_DYNAMIC
2830         else
2831                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-relay"
2832                 MFLAG=SLAPD_MOD_STATIC
2833         fi
2834         AC_DEFINE_UNQUOTED(SLAPD_RELAY,$MFLAG,[define to support relay backend])
2835 fi
2836
2837 if test "$ol_enable_shell" != no ; then
2838         if test "$ol_link_threads" != no ; then
2839                 AC_MSG_WARN([Use of --without-threads is recommended with back-shell])
2840         fi
2841         BUILD_SLAPD=yes
2842         BUILD_SHELL=$ol_enable_shell
2843         if test "$ol_enable_shell" = mod ; then
2844                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
2845                 MFLAG=SLAPD_MOD_DYNAMIC
2846         else
2847                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
2848                 MFLAG=SLAPD_MOD_STATIC
2849         fi
2850         AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend])
2851 fi
2852
2853 if test "$ol_enable_sock" != no ; then
2854         BUILD_SLAPD=yes
2855         BUILD_SOCK=$ol_enable_sock
2856         if test "$ol_enable_sock" = mod ; then
2857                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sock"
2858                 MFLAG=SLAPD_MOD_DYNAMIC
2859         else
2860                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sock"
2861                 MFLAG=SLAPD_MOD_STATIC
2862         fi
2863         AC_DEFINE_UNQUOTED(SLAPD_SOCK,$MFLAG,[define to support SOCK backend])
2864 fi
2865
2866 if test "$ol_link_sql" != no ; then
2867         BUILD_SLAPD=yes
2868         BUILD_SQL=$ol_enable_sql
2869         if test "$ol_enable_sql" = mod; then
2870                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
2871                 MFLAG=SLAPD_MOD_DYNAMIC
2872         else
2873                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
2874                 MFLAG=SLAPD_MOD_STATIC
2875         fi
2876         AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend])
2877 fi
2878
2879 if test "$ol_link_wt" != no ; then
2880         BUILD_SLAPD=yes
2881         BUILD_WT=$ol_enable_wt
2882         if test "$ol_enable_wt" = mod; then
2883                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-wt"
2884                 MFLAG=SLAPD_MOD_DYNAMIC
2885         else
2886                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-wt"
2887                 MFLAG=SLAPD_MOD_STATIC
2888         fi
2889         AC_DEFINE_UNQUOTED(SLAPD_WT,$MFLAG,[define to support WiredTiger backend])
2890 fi
2891
2892 if test "$ol_enable_accesslog" != no ; then
2893         BUILD_ACCESSLOG=$ol_enable_accesslog
2894         if test "$ol_enable_accesslog" = mod ; then
2895                 MFLAG=SLAPD_MOD_DYNAMIC
2896                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS accesslog.la"
2897         else
2898                 MFLAG=SLAPD_MOD_STATIC
2899                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS accesslog.o"
2900         fi
2901         AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay])
2902 fi
2903
2904 if test "$ol_enable_auditlog" != no ; then
2905         BUILD_AUDITLOG=$ol_enable_auditlog
2906         if test "$ol_enable_auditlog" = mod ; then
2907                 MFLAG=SLAPD_MOD_DYNAMIC
2908                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS auditlog.la"
2909         else
2910                 MFLAG=SLAPD_MOD_STATIC
2911                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS auditlog.o"
2912         fi
2913         AC_DEFINE_UNQUOTED(SLAPD_OVER_AUDITLOG,$MFLAG,[define for Audit Logging overlay])
2914 fi
2915
2916 if test "$ol_enable_autoca" != no ; then
2917         BUILD_AUTOCA=$ol_enable_autoca
2918         if test "$ol_enable_autoca" = mod ; then
2919                 MFLAG=SLAPD_MOD_DYNAMIC
2920                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS autoca.la"
2921         else
2922                 MFLAG=SLAPD_MOD_STATIC
2923                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS autoca.o"
2924         fi
2925         AC_DEFINE_UNQUOTED(SLAPD_OVER_AUTOCA,$MFLAG,[define for Automatic Certificate Authority overlay])
2926 fi
2927
2928 if test "$ol_enable_collect" != no ; then
2929         BUILD_COLLECT=$ol_enable_collect
2930         if test "$ol_enable_collect" = mod ; then
2931                 MFLAG=SLAPD_MOD_DYNAMIC
2932                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS collect.la"
2933         else
2934                 MFLAG=SLAPD_MOD_STATIC
2935                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS collect.o"
2936         fi
2937         AC_DEFINE_UNQUOTED(SLAPD_OVER_COLLECT,$MFLAG,[define for Collect overlay])
2938 fi
2939
2940 if test "$ol_enable_constraint" != no ; then
2941         BUILD_CONSTRAINT=$ol_enable_constraint
2942         if test "$ol_enable_constraint" = mod ; then
2943                 MFLAG=SLAPD_MOD_DYNAMIC
2944                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS constraint.la"
2945         else
2946                 MFLAG=SLAPD_MOD_STATIC
2947                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS constraint.o"
2948         fi
2949         AC_DEFINE_UNQUOTED(SLAPD_OVER_CONSTRAINT,$MFLAG,[define for Attribute Constraint overlay])
2950 fi
2951
2952 if test "$ol_enable_dds" != no ; then
2953         BUILD_DDS=$ol_enable_dds
2954         if test "$ol_enable_dds" = mod ; then
2955                 MFLAG=SLAPD_MOD_DYNAMIC
2956                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dds.la"
2957         else
2958                 MFLAG=SLAPD_MOD_STATIC
2959                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dds.o"
2960         fi
2961         AC_DEFINE_UNQUOTED(SLAPD_OVER_DDS,$MFLAG,[define for Dynamic Directory Services overlay])
2962 fi
2963
2964 if test "$ol_enable_deref" != no ; then
2965         BUILD_DEREF=$ol_enable_deref
2966         if test "$ol_enable_deref" = mod ; then
2967                 MFLAG=SLAPD_MOD_DYNAMIC
2968                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS deref.la"
2969         else
2970                 MFLAG=SLAPD_MOD_STATIC
2971                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS deref.o"
2972         fi
2973         AC_DEFINE_UNQUOTED(SLAPD_OVER_DEREF,$MFLAG,[define for Dynamic Directory Services overlay])
2974 fi
2975
2976 if test "$ol_enable_dyngroup" != no ; then
2977         BUILD_DYNGROUP=$ol_enable_dyngroup
2978         if test "$ol_enable_dyngroup" = mod ; then
2979                 MFLAG=SLAPD_MOD_DYNAMIC
2980                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dyngroup.la"
2981         else
2982                 MFLAG=SLAPD_MOD_STATIC
2983                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dyngroup.o"
2984         fi
2985         AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay])
2986 fi
2987
2988 if test "$ol_enable_dynlist" != no ; then
2989         BUILD_DYNLIST=$ol_enable_dynlist
2990         if test "$ol_enable_dynlist" = mod ; then
2991                 MFLAG=SLAPD_MOD_DYNAMIC
2992                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dynlist.la"
2993         else
2994                 MFLAG=SLAPD_MOD_STATIC
2995                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dynlist.o"
2996         fi
2997         AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNLIST,$MFLAG,[define for Dynamic List overlay])
2998 fi
2999
3000 if test "$ol_enable_memberof" != no ; then
3001         BUILD_MEMBEROF=$ol_enable_memberof
3002         if test "$ol_enable_memberof" = mod ; then
3003                 MFLAG=SLAPD_MOD_DYNAMIC
3004                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS memberof.la"
3005         else
3006                 MFLAG=SLAPD_MOD_STATIC
3007                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS memberof.o"
3008         fi
3009         AC_DEFINE_UNQUOTED(SLAPD_OVER_MEMBEROF,$MFLAG,[define for Reverse Group Membership overlay])
3010 fi
3011
3012 if test "$ol_enable_ppolicy" != no ; then
3013         BUILD_PPOLICY=$ol_enable_ppolicy
3014         if test "$ol_enable_ppolicy" = mod ; then
3015                 MFLAG=SLAPD_MOD_DYNAMIC
3016                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS ppolicy.la"
3017         else
3018                 MFLAG=SLAPD_MOD_STATIC
3019                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS ppolicy.o"
3020         fi
3021         AC_DEFINE_UNQUOTED(SLAPD_OVER_PPOLICY,$MFLAG,[define for Password Policy overlay])
3022 fi
3023
3024 if test "$ol_enable_proxycache" != no ; then
3025         BUILD_PROXYCACHE=$ol_enable_proxycache
3026         if test "$ol_enable_proxycache" = mod ; then
3027                 MFLAG=SLAPD_MOD_DYNAMIC
3028                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS pcache.la"
3029         else
3030                 MFLAG=SLAPD_MOD_STATIC
3031                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS pcache.o"
3032         fi
3033         AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay])
3034 fi
3035
3036 if test "$ol_enable_refint" != no ; then
3037         BUILD_REFINT=$ol_enable_refint
3038         if test "$ol_enable_refint" = mod ; then
3039                 MFLAG=SLAPD_MOD_DYNAMIC
3040                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la"
3041         else
3042                 MFLAG=SLAPD_MOD_STATIC
3043                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS refint.o"
3044         fi
3045         AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay])
3046 fi
3047
3048 if test "$ol_enable_retcode" != no ; then
3049         BUILD_RETCODE=$ol_enable_retcode
3050         if test "$ol_enable_retcode" = mod ; then
3051                 MFLAG=SLAPD_MOD_DYNAMIC
3052                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS retcode.la"
3053         else
3054                 MFLAG=SLAPD_MOD_STATIC
3055                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS retcode.o"
3056         fi
3057         AC_DEFINE_UNQUOTED(SLAPD_OVER_RETCODE,$MFLAG,[define for Referential Integrity overlay])
3058 fi
3059
3060 if test "$ol_enable_rwm" != no ; then
3061         BUILD_REWRITE=yes
3062         BUILD_RWM=$ol_enable_rwm
3063         if test "$ol_enable_rwm" = mod ; then
3064                 MFLAG=SLAPD_MOD_DYNAMIC
3065                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS rwm.la"
3066         else
3067                 MFLAG=SLAPD_MOD_STATIC
3068                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS rwm_x.o"
3069         fi
3070         AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
3071 fi
3072
3073 if test "$ol_enable_seqmod" != no ; then
3074         BUILD_SEQMOD=$ol_enable_seqmod
3075         if test "$ol_enable_seqmod" = mod ; then
3076                 MFLAG=SLAPD_MOD_DYNAMIC
3077                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS seqmod.la"
3078         else
3079                 MFLAG=SLAPD_MOD_STATIC
3080                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS seqmod.o"
3081         fi
3082         AC_DEFINE_UNQUOTED(SLAPD_OVER_SEQMOD,$MFLAG,[define for Sequential Modify overlay])
3083 fi
3084
3085 if test "$ol_enable_sssvlv" != no ; then
3086         BUILD_SSSVLV=$ol_enable_sssvlv
3087         if test "$ol_enable_sssvlv" = mod ; then
3088                 MFLAG=SLAPD_MOD_DYNAMIC
3089                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS sssvlv.la"
3090         else
3091                 MFLAG=SLAPD_MOD_STATIC
3092                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS sssvlv.o"
3093         fi
3094         AC_DEFINE_UNQUOTED(SLAPD_OVER_SSSVLV,$MFLAG,[define for ServerSideSort/VLV overlay])
3095 fi
3096
3097 if test "$ol_enable_syncprov" != no ; then
3098         BUILD_SYNCPROV=$ol_enable_syncprov
3099         if test "$ol_enable_syncprov" = mod ; then
3100                 MFLAG=SLAPD_MOD_DYNAMIC
3101                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS syncprov.la"
3102         else
3103                 MFLAG=SLAPD_MOD_STATIC
3104                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS syncprov.o"
3105         fi
3106         AC_DEFINE_UNQUOTED(SLAPD_OVER_SYNCPROV,$MFLAG,[define for Syncrepl Provider overlay])
3107 fi
3108
3109 if test "$ol_enable_translucent" != no ; then
3110         BUILD_TRANSLUCENT=$ol_enable_translucent
3111         if test "$ol_enable_translucent" = mod ; then
3112                 MFLAG=SLAPD_MOD_DYNAMIC
3113                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS translucent.la"
3114         else
3115                 MFLAG=SLAPD_MOD_STATIC
3116                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS translucent.o"
3117         fi
3118         AC_DEFINE_UNQUOTED(SLAPD_OVER_TRANSLUCENT,$MFLAG,[define for Translucent Proxy overlay])
3119 fi
3120
3121 if test "$ol_enable_unique" != no ; then
3122         BUILD_UNIQUE=$ol_enable_unique
3123         if test "$ol_enable_unique" = mod ; then
3124                 MFLAG=SLAPD_MOD_DYNAMIC
3125                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la"
3126         else
3127                 MFLAG=SLAPD_MOD_STATIC
3128                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS unique.o"
3129         fi
3130         AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay])
3131 fi
3132
3133 if test "$ol_enable_valsort" != no ; then
3134         BUILD_VALSORT=$ol_enable_valsort
3135         if test "$ol_enable_valsort" = mod ; then
3136                 MFLAG=SLAPD_MOD_DYNAMIC
3137                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS valsort.la"
3138         else
3139                 MFLAG=SLAPD_MOD_STATIC
3140                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS valsort.o"
3141         fi
3142         AC_DEFINE_UNQUOTED(SLAPD_OVER_VALSORT,$MFLAG,[define for Value Sorting overlay])
3143 fi
3144
3145 if test "$ol_enable_rewrite" != no ; then
3146         AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta])
3147         BUILD_REWRITE=yes
3148 fi
3149
3150 if test "$ol_enable_slapi" != no ; then
3151         AC_DEFINE(ENABLE_SLAPI,1,[define to enable slapi library])
3152         BUILD_SLAPI=yes
3153         SLAPD_SLAPI_DEPEND=libslapi.a
3154 fi
3155
3156 dnl ----------------------------------------------------------------
3157
3158 dnl
3159 dnl For Windows build, we don't want to include -dlopen flags.
3160 dnl They hurt more than they help.
3161 dnl
3162
3163 if test "$ac_cv_mingw32" = yes -o $ol_cv_msvc = yes ; then
3164         PLAT=NT
3165         SLAPD_MODULES_LDFLAGS=
3166 else
3167         PLAT=UNIX
3168 fi
3169
3170 AC_SUBST(LIBSRCS)
3171 AC_SUBST(PLAT)
3172 AC_SUBST(WITH_SASL)
3173 AC_SUBST(WITH_TLS)
3174 AC_SUBST(WITH_MODULES_ENABLED)
3175 AC_SUBST(WITH_ACI_ENABLED)
3176 AC_SUBST(BUILD_THREAD)
3177 AC_SUBST(BUILD_LIBS_DYNAMIC)
3178
3179 AC_SUBST(BUILD_SLAPD)
3180 dnl slapi
3181   AC_SUBST(BUILD_SLAPI)
3182   AC_SUBST(SLAPD_SLAPI_DEPEND)
3183 dnl backends
3184   AC_SUBST(BUILD_BDB)
3185   AC_SUBST(BUILD_DNSSRV)
3186   AC_SUBST(BUILD_HDB)
3187   AC_SUBST(BUILD_LDAP)
3188   AC_SUBST(BUILD_MDB)
3189   AC_SUBST(BUILD_META)
3190   AC_SUBST(BUILD_ASYNCMETA)
3191   AC_SUBST(BUILD_MONITOR)
3192   AC_SUBST(BUILD_NDB)
3193   AC_SUBST(BUILD_NULL)
3194   AC_SUBST(BUILD_PASSWD)
3195   AC_SUBST(BUILD_RELAY)
3196   AC_SUBST(BUILD_PERL)
3197   AC_SUBST(BUILD_SHELL)
3198   AC_SUBST(BUILD_SOCK)
3199   AC_SUBST(BUILD_SQL)
3200   AC_SUBST(BUILD_WT)
3201 dnl overlays
3202   AC_SUBST(BUILD_ACCESSLOG)
3203   AC_SUBST(BUILD_AUDITLOG)
3204   AC_SUBST(BUILD_AUTOCA)
3205   AC_SUBST(BUILD_COLLECT)
3206   AC_SUBST(BUILD_CONSTRAINT)
3207   AC_SUBST(BUILD_DDS)
3208   AC_SUBST(BUILD_DENYOP)
3209   AC_SUBST(BUILD_DEREF)
3210   AC_SUBST(BUILD_DYNGROUP)
3211   AC_SUBST(BUILD_DYNLIST)
3212   AC_SUBST(BUILD_LASTMOD)
3213   AC_SUBST(BUILD_MEMBEROF)
3214   AC_SUBST(BUILD_PPOLICY)
3215   AC_SUBST(BUILD_PROXYCACHE)
3216   AC_SUBST(BUILD_REFINT)
3217   AC_SUBST(BUILD_RETCODE)
3218   AC_SUBST(BUILD_RWM)
3219   AC_SUBST(BUILD_SEQMOD)
3220   AC_SUBST(BUILD_SSSVLV)
3221   AC_SUBST(BUILD_SYNCPROV)
3222   AC_SUBST(BUILD_TRANSLUCENT)
3223   AC_SUBST(BUILD_UNIQUE)
3224   AC_SUBST(BUILD_VALSORT)
3225
3226 AC_SUBST(LDAP_LIBS)
3227 AC_SUBST(SLAPD_LIBS)
3228 AC_SUBST(BDB_LIBS)
3229 AC_SUBST(SLAPD_NDB_LIBS)
3230 AC_SUBST(SLAPD_NDB_INCS)
3231 AC_SUBST(LTHREAD_LIBS)
3232 AC_SUBST(LUTIL_LIBS)
3233 AC_SUBST(WRAP_LIBS)
3234
3235 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
3236 AC_SUBST(SLAPD_MODULES_LDFLAGS)
3237
3238 AC_SUBST(SLAPD_NO_STATIC)
3239 AC_SUBST(SLAPD_STATIC_BACKENDS)
3240 AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
3241 AC_SUBST(SLAPD_STATIC_OVERLAYS)
3242 AC_SUBST(SLAPD_DYNAMIC_OVERLAYS)
3243
3244 AC_SUBST(PERL_CPPFLAGS)
3245 AC_SUBST(SLAPD_PERL_LDFLAGS)
3246 AC_SUBST(MOD_PERL_LDFLAGS)
3247
3248 AC_SUBST(KRB4_LIBS)
3249 AC_SUBST(KRB5_LIBS)
3250 AC_SUBST(SASL_LIBS)
3251 AC_SUBST(TLS_LIBS)
3252 AC_SUBST(MODULES_LIBS)
3253 AC_SUBST(SLAPI_LIBS)
3254 AC_SUBST(LIBSLAPI)
3255 AC_SUBST(AUTH_LIBS)
3256 AC_SUBST(ICU_LIBS)
3257
3258 AC_SUBST(SLAPD_SLP_LIBS)
3259 AC_SUBST(SLAPD_GMP_LIBS)
3260
3261 AC_SUBST(SLAPD_SQL_LDFLAGS)
3262 AC_SUBST(SLAPD_SQL_LIBS)
3263 AC_SUBST(SLAPD_SQL_INCLUDES)
3264
3265 AC_SUBST(WT_INCS)
3266 AC_SUBST(WT_LIBS)
3267
3268 dnl ----------------------------------------------------------------
3269 dnl final help output
3270 AC_ARG_WITH(xxinstall,[
3271 See INSTALL file for further details.])
3272
3273 dnl ----------------------------------------------------------------
3274 dnl final output
3275 dnl
3276
3277 AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.mk]
3278 [doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk]
3279 [doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk]
3280 [doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk]
3281 [doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk]
3282 [doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk]
3283 [doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk]
3284 [clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk]
3285 [clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk]
3286 [include/Makefile:build/top.mk:include/Makefile.in]
3287 [libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk]
3288 [libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk]
3289 [libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk]
3290 [libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk]
3291 [libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk]
3292 [libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk]
3293 [libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk]
3294 [servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk]
3295 [servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk]
3296 [servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk]
3297 [servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk]
3298 [servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk]
3299 [servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk]
3300 [servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk]
3301 [servers/slapd/back-mdb/Makefile:build/top.mk:servers/slapd/back-mdb/Makefile.in:build/mod.mk]
3302 [servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk]
3303 [servers/slapd/back-asyncmeta/Makefile:build/top.mk:servers/slapd/back-asyncmeta/Makefile.in:build/mod.mk]
3304 [servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk]
3305 [servers/slapd/back-ndb/Makefile:build/top.mk:servers/slapd/back-ndb/Makefile.in:build/mod.mk]
3306 [servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk]
3307 [servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk]
3308 [servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk]
3309 [servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk]
3310 [servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk]
3311 [servers/slapd/back-sock/Makefile:build/top.mk:servers/slapd/back-sock/Makefile.in:build/mod.mk]
3312 [servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk]
3313 [servers/slapd/back-wt/Makefile:build/top.mk:servers/slapd/back-wt/Makefile.in:build/mod.mk]
3314 [servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk]
3315 [servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk]
3316 [servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk]
3317 [tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk]
3318 [tests/run]
3319 [tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk])
3320
3321 AC_CONFIG_COMMANDS([default],[[
3322 chmod +x tests/run
3323 date > stamp-h
3324 BACKENDSC="servers/slapd/backends.c"
3325 echo "Making $BACKENDSC"
3326 rm -f $BACKENDSC
3327 cat > $BACKENDSC << ENDX
3328 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3329  *
3330  * Copyright 1998-2017 The OpenLDAP Foundation.
3331  * All rights reserved.
3332  *
3333  * Redistribution and use in source and binary forms, with or without
3334  * modification, are permitted only as authorized by the OpenLDAP
3335  * Public License.
3336  *
3337  * A copy of this license is available in the file LICENSE in the
3338  * top-level directory of the distribution or, alternatively, at
3339  * <http://www.OpenLDAP.org/license.html>.
3340  */
3341 /* This file is automatically generated by configure; please do not edit. */
3342
3343 #include "portable.h"
3344 #include "slap.h"
3345
3346 ENDX
3347 if test "${STATIC_BACKENDS}"; then
3348         for b in config ${STATIC_BACKENDS}; do
3349                 bb=`echo "${b}" | sed -e 's/back-//'`
3350                 cat >> $BACKENDSC << ENDX
3351 extern BI_init ${bb}_back_initialize;
3352 ENDX
3353         done
3354
3355         cat >> $BACKENDSC << ENDX
3356
3357 BackendInfo slap_binfo[] = {
3358 ENDX
3359
3360         for b in config ${STATIC_BACKENDS}; do
3361                 bb=`echo "${b}" | sed -e 's/back-//'`
3362                 echo "    Add ${bb} ..."
3363                 cat >> $BACKENDSC << ENDX
3364         { "${bb}", ${bb}_back_initialize },
3365 ENDX
3366         done
3367
3368         cat >> $BACKENDSC << ENDX
3369         { NULL, NULL },
3370 };
3371
3372 /* end of generated file */
3373 ENDX
3374 fi
3375 OVERLAYSC="servers/slapd/overlays/statover.c"
3376 echo "Making $OVERLAYSC"
3377 rm -f $OVERLAYSC
3378 cat > $OVERLAYSC << ENDX
3379 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3380  *
3381  * Copyright 1998-2017 The OpenLDAP Foundation.
3382  * All rights reserved.
3383  *
3384  * Redistribution and use in source and binary forms, with or without
3385  * modification, are permitted only as authorized by the OpenLDAP
3386  * Public License.
3387  *
3388  * A copy of this license is available in the file LICENSE in the
3389  * top-level directory of the distribution or, alternatively, at
3390  * <http://www.OpenLDAP.org/license.html>.
3391  */
3392 /* This file is automatically generated by configure; please do not edit. */
3393
3394 #include "portable.h"
3395 #include "slap.h"
3396
3397 ENDX
3398 if test "${STATIC_OVERLAYS}"; then
3399         for o in ${STATIC_OVERLAYS}; do
3400                 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3401                 cat >> $OVERLAYSC << ENDX
3402 extern OV_init ${oo}_initialize;
3403 ENDX
3404         done
3405 fi
3406
3407 cat >> $OVERLAYSC << ENDX
3408
3409 OverlayInit slap_oinfo[] = {
3410 ENDX
3411
3412 if test "${STATIC_OVERLAYS}"; then
3413         for o in ${STATIC_OVERLAYS}; do
3414                 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3415                 echo "    Add ${oo} ..."
3416                 cat >> $OVERLAYSC << ENDX
3417         { "${oo}", ${oo}_initialize },
3418 ENDX
3419         done
3420 fi
3421
3422         cat >> $OVERLAYSC << ENDX
3423         { NULL, NULL },
3424 };
3425
3426 /* end of generated file */
3427 ENDX
3428
3429 if test "${ol_cv_mkdep}" = no; then
3430         echo '(Do not "make depend"; we do not know how to build dependencies)'
3431 else
3432         echo 'Please run "make depend" to build dependencies'
3433 fi
3434 ]],[[
3435 STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"
3436 STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS"
3437 ]])
3438 AC_OUTPUT