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