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