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