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