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