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