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