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