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