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