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