]> git.sur5r.net Git - openldap/blob - configure.in
Once more, mutex_lock -> trylock...
[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],
250         auto, [auto openssl gnutls 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         yes, [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 ; 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 WITH_TLS=no
1276 if test $ol_link_tls = yes ; then
1277         AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
1278         WITH_TLS=yes
1279 elif test $ol_with_tls = auto ; then
1280         AC_MSG_WARN([Could not locate TLS/SSL package])
1281         AC_MSG_WARN([TLS data protection not supported!])
1282 elif test $ol_with_tls != no ; then
1283         AC_MSG_ERROR([Could not locate TLS/SSL package])
1284 else
1285         AC_MSG_WARN([TLS data protection not supported!])
1286 fi
1287
1288 dnl ----------------------------------------------------------------
1289 dnl LAN Manger password checking requires DES from OpenSSL
1290 if test $ol_enable_lmpasswd != no; then
1291         if test $ol_link_tls != yes ; then
1292                 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
1293         fi
1294
1295         AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
1296 fi
1297
1298 dnl ----------------------------------------------------------------
1299 dnl Threads?
1300 ol_link_threads=no
1301
1302 case $ol_with_threads in auto | yes | nt)
1303
1304         OL_NT_THREADS
1305
1306         if test "$ol_cv_nt_threads" = yes ; then
1307                 ol_link_threads=nt
1308                 ol_with_threads=found
1309                 ol_with_yielding_select=yes
1310
1311                 AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager])
1312                 AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log])
1313         fi
1314
1315         if test $ol_with_threads = nt ; then
1316                 AC_MSG_ERROR([could not locate NT Threads])
1317         fi
1318         ;;
1319 esac
1320
1321 case $ol_with_threads in auto | yes | posix)
1322
1323         AC_CHECK_HEADERS(pthread.h)
1324
1325         if test $ac_cv_header_pthread_h = yes ; then
1326                 OL_POSIX_THREAD_VERSION
1327
1328                 if test $ol_cv_pthread_version != 0 ; then
1329                         AC_DEFINE_UNQUOTED(HAVE_PTHREADS,$ol_cv_pthread_version,
1330                                 [define to pthreads API spec revision])
1331                 else
1332                         AC_MSG_ERROR([unknown pthread version])
1333                 fi
1334
1335                 # consider threads found
1336                 ol_with_threads=found
1337
1338                 OL_HEADER_LINUX_THREADS
1339                 OL_HEADER_GNU_PTH_PTHREAD_H
1340
1341                 if test $ol_cv_header_gnu_pth_pthread_h = no ; then
1342                         AC_CHECK_HEADERS(sched.h)
1343                 fi
1344
1345                 dnl Now the hard part, how to link?
1346                 dnl
1347                 dnl currently supported checks:
1348                 dnl
1349                 dnl Check for no flags 
1350                 dnl     pthread_create() in $LIBS
1351                 dnl
1352                 dnl Check special pthread (final) flags
1353                 dnl     [skipped] pthread_create() with -mt (Solaris) [disabled]
1354                 dnl     pthread_create() with -kthread (FreeBSD)
1355                 dnl     pthread_create() with -pthread (FreeBSD/Digital Unix)
1356                 dnl     pthread_create() with -pthreads (?)
1357                 dnl     pthread_create() with -mthreads (AIX)
1358                 dnl     pthread_create() with -thread (?)
1359                 dnl
1360                 dnl Check pthread (final) libraries
1361                 dnl     pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
1362                 dnl     pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
1363                 dnl     [skipped] pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
1364                 dnl     pthread_join() -Wl,-woff,85 -lpthread (IRIX)
1365                 dnl     pthread_create() in -lpthread (many)
1366                 dnl     pthread_create() in -lc_r (FreeBSD)
1367                 dnl
1368                 dnl Check pthread (draft4) flags (depreciated)
1369                 dnl     pthread_create() with -threads (OSF/1)
1370                 dnl
1371                 dnl Check pthread (draft4) libraries (depreciated)
1372                 dnl     pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
1373                 dnl     pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
1374                 dnl     pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
1375                 dnl     pthread_create() in -lpthreads (many)
1376                 dnl
1377
1378                 dnl pthread_create in $LIBS
1379                 AC_CACHE_CHECK([for pthread_create in default libraries],
1380                         ol_cv_pthread_create,[
1381                         AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1382                                 [ol_cv_pthread_create=yes],
1383                                 [ol_cv_pthread_create=no],
1384                                 [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION,
1385                                         [ol_cv_pthread_create=yes],
1386                                         [ol_cv_pthread_create=no])])])
1387
1388                 if test $ol_cv_pthread_create != no ; then
1389                         ol_link_threads=posix
1390                         ol_link_pthreads=""
1391                 fi
1392                 
1393 dnl             OL_PTHREAD_TRY([-mt],           [ol_cv_pthread_mt])
1394                 OL_PTHREAD_TRY([-kthread],      [ol_cv_pthread_kthread])
1395                 OL_PTHREAD_TRY([-pthread],      [ol_cv_pthread_pthread])
1396                 OL_PTHREAD_TRY([-pthreads],     [ol_cv_pthread_pthreads])
1397                 OL_PTHREAD_TRY([-mthreads],     [ol_cv_pthread_mthreads])
1398                 OL_PTHREAD_TRY([-thread],       [ol_cv_pthread_thread])
1399
1400                 OL_PTHREAD_TRY([-lpthread -lmach -lexc -lc_r],
1401                         [ol_cv_pthread_lpthread_lmach_lexc_lc_r])
1402                 OL_PTHREAD_TRY([-lpthread -lmach -lexc],
1403                         [ol_cv_pthread_lpthread_lmach_lexc])
1404 dnl             OL_PTHREAD_TRY([-lpthread -lexc],
1405 dnl                     [ol_cv_pthread_lpthread_lexc])
1406
1407                 OL_PTHREAD_TRY([-lpthread -Wl,-woff,85],
1408                         [ol_cv_pthread_lib_lpthread_woff])
1409
1410                 OL_PTHREAD_TRY([-lpthread],     [ol_cv_pthread_lpthread])
1411                 OL_PTHREAD_TRY([-lc_r],         [ol_cv_pthread_lc_r])
1412
1413                 OL_PTHREAD_TRY([-threads],      [ol_cv_pthread_threads])
1414
1415                 OL_PTHREAD_TRY([-lpthreads -lmach -lexc -lc_r],
1416                         [ol_cv_pthread_lpthreads_lmach_lexc_lc_r])
1417                 OL_PTHREAD_TRY([-lpthreads -lmach -lexc],
1418                         [ol_cv_pthread_lpthreads_lmach_lexc])
1419                 OL_PTHREAD_TRY([-lpthreads -lexc],
1420                         [ol_cv_pthread_lpthreads_lexc])
1421
1422                 OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
1423
1424                 if test $ol_link_threads != no ; then
1425                         LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
1426
1427                         dnl save flags
1428                         save_CPPFLAGS="$CPPFLAGS"
1429                         save_LIBS="$LIBS"
1430                         LIBS="$LTHREAD_LIBS $LIBS"
1431
1432                         dnl All POSIX Thread (final) implementations should have
1433                         dnl sched_yield instead of pthread yield.
1434                         dnl check for both, and thr_yield for Solaris
1435                         AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
1436
1437                         if test $ac_cv_func_sched_yield = no &&
1438                            test $ac_cv_func_pthread_yield = no &&
1439                            test $ac_cv_func_thr_yield = no ; then
1440                                 dnl Digital UNIX has sched_yield() in -lrt
1441                                 AC_CHECK_LIB(rt, sched_yield,
1442                                         [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
1443                                         AC_DEFINE(HAVE_SCHED_YIELD,1,
1444                                                 [Define if you have the sched_yield function.])
1445                                         ac_cv_func_sched_yield=yes],
1446                                         [ac_cv_func_sched_yield=no])
1447                         fi
1448                         if test $ac_cv_func_sched_yield = no &&
1449                            test $ac_cv_func_pthread_yield = no &&
1450                            test "$ac_cv_func_thr_yield" = no ; then
1451                                 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
1452                         fi
1453
1454                         dnl Check functions for compatibility
1455                         AC_CHECK_FUNCS(pthread_kill)
1456
1457                         dnl Check for pthread_rwlock_destroy with <pthread.h>
1458                         dnl as pthread_rwlock_t may not be defined.
1459                         AC_CACHE_CHECK([for pthread_rwlock_destroy with <pthread.h>],
1460                                 [ol_cv_func_pthread_rwlock_destroy], [
1461                                 dnl save the flags
1462                                 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1463 #include <pthread.h>
1464 pthread_rwlock_t rwlock;
1465 ]], [[pthread_rwlock_destroy(&rwlock);]])],[ol_cv_func_pthread_rwlock_destroy=yes],[ol_cv_func_pthread_rwlock_destroy=no])
1466                         ])
1467                         if test $ol_cv_func_pthread_rwlock_destroy = yes ; then
1468                                 AC_DEFINE(HAVE_PTHREAD_RWLOCK_DESTROY,1,
1469                                         [define if you have pthread_rwlock_destroy function])
1470                         fi
1471
1472                         dnl Check for pthread_detach with <pthread.h> inclusion
1473                         dnl as it's symbol may have been mangled.
1474                         AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
1475                                 [ol_cv_func_pthread_detach], [
1476                                 dnl save the flags
1477                                 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1478 #include <pthread.h>
1479 #ifndef NULL
1480 #define NULL (void*)0
1481 #endif
1482 ]], [[pthread_detach(NULL);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
1483                         ])
1484
1485                         if test $ol_cv_func_pthread_detach = no ; then
1486                                 AC_MSG_ERROR([could not locate pthread_detach()])
1487                         fi
1488
1489                         AC_DEFINE(HAVE_PTHREAD_DETACH,1,
1490                                 [define if you have pthread_detach function])
1491
1492                         dnl Check for setconcurreny functions
1493                         AC_CHECK_FUNCS( \
1494                                 pthread_setconcurrency \
1495                                 pthread_getconcurrency \
1496                                 thr_setconcurrency \
1497                                 thr_getconcurrency \
1498                         )
1499
1500                         OL_SYS_LINUX_THREADS
1501                         OL_LINUX_THREADS
1502
1503                         if test $ol_cv_linux_threads = error; then
1504                                 AC_MSG_ERROR([LinuxThreads header/library mismatch]);
1505                         fi
1506
1507                         AC_CACHE_CHECK([if pthread_create() works],
1508                                 ol_cv_pthread_create_works,[
1509                         AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
1510                                 [ol_cv_pthread_create_works=yes],
1511                                 [ol_cv_pthread_create_works=no],
1512                                 [dnl assume yes
1513                                 ol_cv_pthread_create_works=yes])])
1514
1515                         if test $ol_cv_pthread_create_works = no ; then
1516                                 AC_MSG_ERROR([pthread_create is not usable, check environment settings])
1517                         fi
1518
1519                         ol_replace_broken_yield=no
1520 dnl                     case "$target" in
1521 dnl                     *-*-linux*) 
1522 dnl                             AC_CHECK_FUNCS(nanosleep)
1523 dnl                             ol_replace_broken_yield=yes
1524 dnl                     ;;
1525 dnl                     esac
1526
1527                         if test $ol_replace_broken_yield = yes ; then
1528                                 AC_DEFINE([REPLACE_BROKEN_YIELD],1,
1529                                         [define if sched_yield yields the entire process])
1530                         fi
1531
1532                         dnl Check if select causes an yield
1533                         if test $ol_with_yielding_select = auto ; then
1534                                 AC_CACHE_CHECK([if select yields when using pthreads],
1535                                         ol_cv_pthread_select_yields,[
1536                                 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1537 #include <sys/types.h>
1538 #include <sys/time.h>
1539 #include <unistd.h>
1540 #include <pthread.h>
1541 #ifndef NULL
1542 #define NULL (void*) 0
1543 #endif
1544
1545 static int fildes[2];
1546
1547 static void *task(p)
1548         void *p;
1549 {
1550         int i;
1551         struct timeval tv;
1552
1553         fd_set rfds;
1554
1555         tv.tv_sec=10;
1556         tv.tv_usec=0;
1557
1558         FD_ZERO(&rfds);
1559         FD_SET(fildes[0], &rfds);
1560
1561         /* we're not interested in any fds */
1562         i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
1563
1564         if(i < 0) {
1565                 perror("select");
1566                 exit(10);
1567         }
1568
1569         exit(0); /* if we exit here, the select blocked the whole process */
1570 }
1571
1572 int main(argc, argv)
1573         int argc;
1574         char **argv;
1575 {
1576         pthread_t t;
1577
1578         /* create a pipe to select */
1579         if(pipe(&fildes[0])) {
1580                 perror("select");
1581                 exit(1);
1582         }
1583
1584 #ifdef HAVE_PTHREAD_SETCONCURRENCY
1585         (void) pthread_setconcurrency(2);
1586 #else
1587 #ifdef HAVE_THR_SETCONCURRENCY
1588         /* Set Solaris LWP concurrency to 2 */
1589         thr_setconcurrency(2);
1590 #endif
1591 #endif
1592
1593 #if HAVE_PTHREADS < 6
1594         pthread_create(&t, pthread_attr_default, task, NULL);
1595 #else
1596         pthread_create(&t, NULL, task, NULL);
1597 #endif
1598
1599         /* make sure task runs first */
1600 #ifdef HAVE_THR_YIELD
1601         thr_yield();
1602 #elif defined( HAVE_SCHED_YIELD )
1603         sched_yield();
1604 #elif defined( HAVE_PTHREAD_YIELD )
1605         pthread_yield();
1606 #endif
1607
1608         exit(2);
1609 }]])],[ol_cv_pthread_select_yields=no],[ol_cv_pthread_select_yields=yes],[ol_cv_pthread_select_yields=cross])])
1610
1611                                 if test $ol_cv_pthread_select_yields = cross ; then
1612                                         AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])
1613                                 fi
1614
1615                                 if test $ol_cv_pthread_select_yields = yes ; then
1616                                         ol_with_yielding_select=yes
1617                                 fi
1618                         fi
1619
1620                         dnl restore flags
1621                         CPPFLAGS="$save_CPPFLAGS"
1622                         LIBS="$save_LIBS"
1623                 else
1624                         AC_MSG_ERROR([could not locate usable POSIX Threads])
1625                 fi
1626         fi
1627
1628         if test $ol_with_threads = posix ; then
1629                 AC_MSG_ERROR([could not locate POSIX Threads])
1630         fi
1631         ;;
1632 esac
1633
1634 case $ol_with_threads in auto | yes | mach)
1635
1636         dnl check for Mach CThreads
1637         AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
1638         if test $ac_cv_header_mach_cthreads_h = yes ; then
1639                 ol_with_threads=found
1640
1641                 dnl check for cthreads support in current $LIBS
1642                 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1643
1644                 if test $ol_link_threads = no ; then
1645                         dnl try -all_load
1646                         dnl this test needs work
1647                         AC_CACHE_CHECK([for cthread_fork with -all_load],
1648                                 [ol_cv_cthread_all_load], [
1649                                 dnl save the flags
1650                                 save_LIBS="$LIBS"
1651                                 LIBS="-all_load $LIBS"
1652                                 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <mach/cthreads.h>]], [[
1653                                         cthread_fork((void *)0, (void *)0);
1654                                         ]])],[ol_cv_cthread_all_load=yes],[ol_cv_cthread_all_load=no])
1655                                 dnl restore the LIBS
1656                                 LIBS="$save_LIBS"
1657                         ])
1658
1659                         if test $ol_cv_cthread_all_load = yes ; then
1660                                 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
1661                                 ol_link_threads=mach
1662                                 ol_with_threads=found
1663                         fi
1664                 fi
1665
1666         elif test $ac_cv_header_cthreads_h = yes ; then
1667                 dnl Hurd variant of Mach Cthreads
1668                 dnl uses <cthreads.h> and -lthreads
1669
1670                 ol_with_threads=found
1671  
1672                 dnl save the flags
1673                 save_LIBS="$LIBS"
1674                 LIBS="$LIBS -lthreads"
1675                 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1676                 LIBS="$save_LIBS"
1677
1678                 if test $ol_link_threads = yes ; then
1679                         LTHREAD_LIBS="-lthreads"
1680                         ol_link_threads=mach
1681                         ol_with_threads=found
1682                 else
1683                         AC_MSG_ERROR([could not link with Mach CThreads])
1684                 fi
1685
1686         elif test $ol_with_threads = mach ; then
1687                 AC_MSG_ERROR([could not locate Mach CThreads])
1688         fi
1689
1690         if test $ol_link_threads = mach ; then
1691                 AC_DEFINE(HAVE_MACH_CTHREADS,1,
1692                         [define if you have Mach Cthreads])
1693         elif test $ol_with_threads = found ; then
1694                 AC_MSG_ERROR([could not link with Mach CThreads])
1695         fi
1696         ;;
1697 esac
1698
1699 case $ol_with_threads in auto | yes | pth)
1700
1701         AC_CHECK_HEADERS(pth.h)
1702
1703         if test $ac_cv_header_pth_h = yes ; then
1704                 AC_CHECK_LIB(pth, pth_version, [have_pth=yes], [have_pth=no])
1705
1706                 if test $have_pth = yes ; then
1707                         AC_DEFINE(HAVE_GNU_PTH,1,[if you have GNU Pth])
1708                         LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
1709                         ol_link_threads=pth
1710                         ol_with_threads=found
1711
1712                         if test $ol_with_yielding_select = auto ; then
1713                                 ol_with_yielding_select=yes
1714                         fi
1715                 fi
1716         fi
1717         ;;
1718 esac
1719
1720 case $ol_with_threads in auto | yes | lwp)
1721
1722         dnl check for SunOS5 LWP
1723         AC_CHECK_HEADERS(thread.h synch.h)
1724         if test $ac_cv_header_thread_h = yes &&
1725            test $ac_cv_header_synch_h = yes ; then
1726                 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
1727
1728                 if test $have_thr = yes ; then
1729                         AC_DEFINE(HAVE_THR,1,
1730                                 [if you have Solaris LWP (thr) package])
1731                         LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
1732                         ol_link_threads=thr
1733
1734                         if test $ol_with_yielding_select = auto ; then
1735                                 ol_with_yielding_select=yes
1736                         fi
1737
1738                         dnl Check for setconcurreny functions
1739                         AC_CHECK_FUNCS( \
1740                                 thr_setconcurrency \
1741                                 thr_getconcurrency \
1742                         )
1743                 fi
1744         fi
1745
1746         dnl check for SunOS4 LWP
1747         AC_CHECK_HEADERS(lwp/lwp.h)
1748         if test $ac_cv_header_lwp_lwp_h = yes ; then
1749                 AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
1750
1751                 if test $have_lwp = yes ; then
1752                         AC_DEFINE(HAVE_LWP,1,
1753                                 [if you have SunOS LWP package])
1754                         LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
1755                         ol_link_threads=lwp
1756
1757                         if test $ol_with_yielding_select = auto ; then
1758                                 ol_with_yielding_select=no
1759                         fi
1760                 fi
1761         fi
1762         ;;
1763 esac
1764
1765 if test $ol_with_yielding_select = yes ; then
1766         AC_DEFINE(HAVE_YIELDING_SELECT,1,
1767                 [define if select implicitly yields])
1768 fi
1769
1770 if test $ol_with_threads = manual ; then
1771         dnl User thinks he can manually configure threads.
1772         ol_link_threads=yes
1773
1774         AC_MSG_WARN([thread defines and link options must be set manually])
1775
1776         AC_CHECK_HEADERS(pthread.h sched.h)
1777         AC_CHECK_FUNCS(sched_yield pthread_yield)
1778         OL_HEADER_LINUX_THREADS
1779
1780         AC_CHECK_HEADERS(mach/cthreads.h)
1781         AC_CHECK_HEADERS(lwp/lwp.h)
1782         AC_CHECK_HEADERS(thread.h synch.h)
1783 fi
1784
1785 if test $ol_link_threads != no && test $ol_link_threads != nt ; then
1786         dnl needed to get reentrant/threadsafe versions
1787         dnl
1788         AC_DEFINE(REENTRANT,1)
1789         AC_DEFINE(_REENTRANT,1)
1790         AC_DEFINE(THREAD_SAFE,1)
1791         AC_DEFINE(_THREAD_SAFE,1)
1792         AC_DEFINE(THREADSAFE,1)
1793         AC_DEFINE(_THREADSAFE,1)
1794         AC_DEFINE(_SGI_MP_SOURCE,1)
1795
1796         dnl The errno declaration may dependent upon _REENTRANT.
1797         dnl If it does, we must link with thread support.
1798         AC_CACHE_CHECK([for thread specific errno],
1799                 [ol_cv_errno_thread_specific], [
1800                 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <errno.h>]], [[errno = 0;]])],[ol_cv_errno_thread_specific=yes],[ol_cv_errno_thread_specific=no])
1801         ])
1802
1803         dnl The h_errno declaration may dependent upon _REENTRANT.
1804         dnl If it does, we must link with thread support.
1805         AC_CACHE_CHECK([for thread specific h_errno],
1806                 [ol_cv_h_errno_thread_specific], [
1807                 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])
1808         ])
1809
1810         if test $ol_cv_errno_thread_specific != yes ||
1811            test $ol_cv_h_errno_thread_specific != yes ; then
1812                 LIBS="$LTHREAD_LIBS $LIBS"
1813                 LTHREAD_LIBS=""
1814         fi
1815
1816 dnl When in thread environment, use 
1817 dnl             #if defined( HAVE_REENTRANT_FUNCTIONS ) || defined( HAVE_FUNC_R )
1818 dnl                     func_r(...);
1819 dnl             #else
1820 dnl             #       if defined( HAVE_THREADS ) 
1821 dnl                             /* lock */
1822 dnl             #       endif
1823 dnl                             func(...);
1824 dnl             #       if defined( HAVE_THREADS ) 
1825 dnl                             /* unlock */
1826 dnl             #       endif
1827 dnl             #endif
1828 dnl
1829 dnl HAVE_REENTRANT_FUNCTIONS is derived from:
1830 dnl             _POSIX_REENTRANT_FUNCTIONS
1831 dnl             _POSIX_THREAD_SAFE_FUNCTIONS
1832 dnl             _POSIX_THREADSAFE_FUNCTIONS
1833 dnl
1834 dnl             and is currently defined in <ldap_pvt_thread.h>
1835 dnl
1836 dnl HAVE_THREADS is defined by <ldap_pvt_thread.h> iff -UNO_THREADS
1837 dnl 
1838 dnl libldap/*.c should only include <ldap_pvt_thread.h> iff
1839 dnl LDAP_R_COMPILE is defined.  ie:
1840 dnl             #ifdef LDAP_R_COMPILE
1841 dnl             #       include <ldap_pvt_thread.h>
1842 dnl             #endif
1843 dnl
1844 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
1845 dnl specifically for compiling the threadsafe version of
1846 dnl     the ldap library (-lldap_r).
1847 dnl             
1848 dnl     dnl check for reentrant/threadsafe functions
1849 dnl     dnl
1850 dnl     dnl note: these should only be used when linking
1851 dnl     dnl             with $LTHREAD_LIBS
1852 dnl     dnl
1853 dnl     save_CPPFLAGS="$CPPFLAGS"
1854 dnl     save_LIBS="$LIBS"
1855 dnl     LIBS="$LTHREAD_LIBS $LIBS"
1856 dnl     AC_CHECK_FUNCS( \
1857 dnl             gmtime_r \
1858 dnl             gethostbyaddr_r gethostbyname_r \
1859 dnl             feof_unlocked unlocked_feof \
1860 dnl             putc_unlocked unlocked_putc \
1861 dnl             flockfile ftrylockfile \
1862 dnl     )
1863 dnl     CPPFLAGS="$save_CPPFLAGS"
1864 dnl     LIBS="$save_LIBS"
1865 fi  
1866
1867 if test $ol_link_threads = no ; then
1868         if test $ol_with_threads = yes ; then
1869                 AC_MSG_ERROR([no suitable thread support])
1870         fi
1871
1872         if test $ol_with_threads = auto ; then
1873                 AC_MSG_WARN([no suitable thread support, disabling threads])
1874                 ol_with_threads=no
1875         fi
1876
1877         AC_DEFINE(NO_THREADS,1,
1878                 [define if you have (or want) no threads])
1879         LTHREAD_LIBS=""
1880         BUILD_THREAD=no
1881 else
1882         BUILD_THREAD=yes
1883 fi
1884
1885 if test $ol_link_threads != no ; then
1886         AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1,
1887                 [define to 1 if library is thread safe])
1888 fi
1889
1890 dnl ----------------------------------------------------------------
1891 dnl Tests for reentrant functions necessary to build -lldap_r
1892 AC_CHECK_FUNCS(         \
1893         ctime_r                 \
1894         gethostbyname_r gethostbyaddr_r \
1895 )
1896
1897 if test "$ac_cv_func_ctime_r" = no ; then
1898         ol_cv_func_ctime_r_nargs=0
1899 else
1900         OL_FUNC_CTIME_R_NARGS
1901 dnl     OL_FUNC_CTIME_R_TYPE
1902 fi
1903
1904 if test "$ac_cv_func_gethostbyname_r" = yes ; then
1905         OL_FUNC_GETHOSTBYNAME_R_NARGS
1906 else
1907         ol_cv_func_gethostbyname_r_nargs=0
1908 fi
1909  
1910 if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
1911         OL_FUNC_GETHOSTBYADDR_R_NARGS
1912 else
1913         ol_cv_func_gethostbyaddr_r_nargs=0
1914 fi
1915
1916 dnl ----------------------------------------------------------------
1917 ol_link_bdb=no 
1918
1919 if test $ol_enable_bdb/$ol_enable_hdb != no/no; then
1920         OL_BERKELEY_DB
1921
1922         if test $ol_cv_berkeley_db = no ; then
1923                 AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
1924         fi
1925
1926         AC_DEFINE(HAVE_BERKELEY_DB,1,
1927                 [define this if Berkeley DB is available])
1928
1929         dnl $ol_cv_lib_db should be yes or -ldb
1930         dnl (it could be no, but that would be an error
1931         if test $ol_cv_lib_db != yes ; then
1932                 BDB_LIBS="$BDB_LIBS $ol_cv_lib_db"
1933         fi
1934
1935         SLAPD_LIBS="$SLAPD_LIBS \$(BDB_LIBS)"
1936
1937         ol_link_bdb=yes 
1938 fi
1939
1940 dnl ----------------------------------------------------------------
1941
1942 if test $ol_enable_dynamic = yes && test $enable_shared = yes ; then
1943         BUILD_LIBS_DYNAMIC=shared
1944         AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
1945         LTSTATIC=""
1946 else
1947         BUILD_LIBS_DYNAMIC=static
1948         LTSTATIC="-static"
1949 fi
1950 AC_SUBST(LTSTATIC)dnl
1951
1952 dnl ----------------------------------------------------------------
1953 if test $ol_enable_wrappers != no ; then
1954         AC_CHECK_HEADERS(tcpd.h,[
1955                 AC_MSG_CHECKING([for TCP wrappers library])
1956                 save_LIBS="$LIBS"
1957                 LIBS="$LIBS -lwrap"
1958                 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1959 #include <tcpd.h>
1960 int allow_severity = 0;
1961 int deny_severity  = 0;
1962
1963 struct request_info *req;
1964                 ]], [[
1965 hosts_access(req)
1966                 ]])],[AC_MSG_RESULT([-lwrap])
1967                 have_wrappers=yes
1968                 LIBS="$save_LIBS"],[
1969                 dnl try with -lnsl
1970                 LIBS="$LIBS -lnsl"
1971                 AC_TRY_LINK([
1972 #include <tcpd.h>
1973 int allow_severity = 0;
1974 int deny_severity  = 0;
1975
1976 struct request_info *req;
1977                 ],[
1978 hosts_access(req)
1979                 ],[AC_MSG_RESULT([-lwrap -lnsl])
1980                 have_wrappers=yes
1981                 LIBS="$save_LIBS -lnsl"],[
1982                 AC_MSG_RESULT(no)
1983                 have_wrappers=no
1984                 LIBS=$save_LIBS])])],[have_wrappers=no])
1985
1986         if test $have_wrappers = yes ; then
1987                 AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
1988                 WRAP_LIBS="-lwrap"
1989         elif test $ol_enable_wrappers = yes ; then
1990                 AC_MSG_ERROR([could not find TCP wrappers, select apppropriate options or disable])
1991         else
1992                 AC_MSG_WARN([could not find TCP wrappers, support disabled])
1993                 WRAP_LIBS=""
1994         fi
1995 fi
1996
1997 dnl ----------------------------------------------------------------
1998 if test $ol_enable_syslog != no ; then
1999         AC_CHECK_FUNC(openlog)
2000         if test $ac_cv_func_openlog = no && test $ol_enable_syslog = yes; then
2001                 AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
2002         fi
2003         ol_enable_syslog=$ac_cv_func_openlog
2004 fi
2005
2006 dnl ----------------------------------------------------------------
2007 dnl SQL
2008 ol_link_sql=no
2009 if test $ol_enable_sql != no ; then
2010         AC_CHECK_HEADERS(sql.h sqlext.h,[],[
2011                 AC_MSG_ERROR([could not locate SQL headers])
2012         ])
2013
2014         sql_LIBS="$LIBS"
2015         LIBS="$LTHREAD_LIBS"
2016
2017         if test $ol_with_odbc = auto ; then
2018                 ol_with_odbc="iodbc unixodbc odbc32"
2019         fi
2020
2021         for odbc in $ol_with_odbc ; do
2022                 if test $ol_link_sql = no ; then
2023                         case $odbc in
2024                         iodbc)
2025                                 AC_CHECK_LIB(iodbc, SQLDriverConnect, [have_iodbc=yes], [have_iodbc=no])
2026                                 if test $have_iodbc = yes ; then
2027                                         ol_link_sql="-liodbc"
2028                                 fi
2029                                 ;;
2030
2031                         unixodbc)
2032                                 AC_CHECK_LIB(odbc, SQLDriverConnect, [have_odbc=yes], [have_odbc=no])
2033                                 if test $have_odbc = yes ; then
2034                                         ol_link_sql="-lodbc"
2035                                 fi
2036                                 ;;
2037
2038                         odbc32)
2039                                 AC_CHECK_LIB(odbc32, SQLDriverConnect, [have_odbc32=yes], [have_odbc32=no])
2040                                 if test $have_odbc32 = yes ; then
2041                                         ol_link_sql="-lodbc32"
2042                                 fi
2043                                 ;;
2044
2045                         *)
2046                                 AC_MSG_ERROR([unknown ODBC library])
2047                                 ;;
2048                         esac
2049                 fi
2050         done
2051
2052         LIBS="$sql_LIBS"
2053
2054         if test $ol_link_sql != no ; then
2055                 SLAPD_SQL_LIBS="$ol_link_sql"
2056
2057         elif test $ol_enable_sql != auto ; then
2058                 AC_MSG_ERROR([could not locate suitable ODBC library])
2059         fi
2060 fi
2061
2062 dnl ----------------------------------------------------------------
2063 dnl MySQL NDBapi
2064 dnl Note: uses C++, but we don't want to add C++ test overhead to
2065 dnl the rest of the libtool machinery.
2066 ol_link_ndb=no
2067 if test $ol_enable_ndb != no ; then
2068         AC_CHECK_PROG(MYSQL,mysql_config,yes)
2069         if test "$MYSQL" != yes ; then
2070                 AC_MSG_ERROR([could not locate mysql_config])
2071         fi
2072
2073         SQL_INC=`mysql_config --include`
2074         SLAPD_NDB_INCS="$SQL_INC $SQL_INC/storage/ndb $SQL_INC/storage/ndb/ndbapi"
2075
2076         save_CPPFLAGS="$CPPFLAGS"
2077         CPPFLAGS="$SLAPD_NDB_INCS"
2078         AC_MSG_CHECKING(for NdbApi.hpp)
2079         AC_PREPROC_IFELSE(
2080                 [AC_LANG_SOURCE([[#include <NdbApi.hpp>]])],
2081                         AC_MSG_RESULT(yes),
2082                         AC_MSG_ERROR([could not locate NdbApi headers])
2083         )
2084         CPPFLAGS="$save_CPPFLAGS"
2085
2086         SQL_LIB=`mysql_config --libs_r`
2087         SLAPD_NDB_LIBS="$SQL_LIB -lndbclient -lstdc++"
2088
2089         save_LDFLAGS="$LDFLAGS"
2090         save_LIBS="$LIBS"
2091         LDFLAGS="$SQL_LIB"
2092         AC_CHECK_LIB(ndbclient,ndb_init,[: ok],[
2093                 AC_MSG_ERROR([could not locate ndbclient library])
2094         ],[-lstdc++])
2095         LIBS="$save_LIBS"
2096         LDFLAGS="$save_LDFLAGS"
2097
2098         if test "$ol_enable_ndb" = yes ; then
2099                 SLAPD_LIBS="$SLAPD_LIBS \$(SLAPD_NDB_LIBS)"
2100         fi
2101 fi
2102
2103 dnl ----------------------------------------------------------------
2104 dnl International Components for Unicode
2105 OL_ICU
2106 if test "$ol_icu" = no ; then
2107         AC_MSG_WARN([ICU not available])
2108 else
2109         ICU_LIBS="$ol_icu"
2110 fi
2111 dnl ----------------------------------------------------------------
2112 dnl
2113 dnl Check for Cyrus SASL
2114 dnl
2115 WITH_SASL=no
2116 ol_link_sasl=no
2117 ol_link_spasswd=no
2118 if test $ol_with_cyrus_sasl != no ; then
2119         AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
2120
2121         if test $ac_cv_header_sasl_sasl_h = yes ||
2122            test $ac_cv_header_sasl_h = yes; then
2123                 AC_CHECK_LIB(sasl2, sasl_client_init,
2124                         [ol_link_sasl="-lsasl2"],
2125                         [AC_CHECK_LIB(sasl, sasl_client_init,
2126                                 [ol_link_sasl="-lsasl"])])
2127         fi
2128
2129         if test $ol_link_sasl = no ; then
2130                 if test $ol_with_cyrus_sasl != auto ; then
2131                         AC_MSG_ERROR([Could not locate Cyrus SASL])
2132                 else
2133                         AC_MSG_WARN([Could not locate Cyrus SASL])
2134                         AC_MSG_WARN([SASL authentication not supported!])
2135                         if test $ol_link_tls = no ; then
2136                                 AC_MSG_WARN([Strong authentication not supported!])
2137                         fi
2138                 fi
2139         else
2140                 OL_SASL_COMPAT
2141                 if test $ol_cv_sasl_compat = no ; then
2142                         ol_link_sasl=no
2143                         AC_MSG_ERROR([Cyrus SASL library located but is incompatible])
2144                 fi
2145
2146                 AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
2147                 SASL_LIBS="$ol_link_sasl"
2148                 if test $ol_enable_spasswd != no ; then
2149                         ol_link_spasswd=yes
2150                 fi
2151
2152                 ac_save_LIBS="$LIBS"
2153                 LIBS="$LIBS $ol_link_sasl"
2154                 AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1,
2155                         [define if your SASL library has sasl_version()])])
2156                 LIBS="$ac_save_LIBS"
2157
2158                 WITH_SASL=yes
2159         fi
2160
2161 else
2162         AC_MSG_WARN([SASL authentication not supported!])
2163         if test $ol_link_tls = no ; then
2164                 AC_MSG_WARN([Strong authentication not supported!])
2165         fi
2166 fi
2167
2168 dnl ----------------------------------------------------------------
2169 dnl Check for entropy sources
2170 if test $cross_compiling != yes && test "$ac_cv_mingw32" != yes ; then
2171         dev=no
2172         if test -r /dev/urandom ; then
2173                 dev="/dev/urandom";
2174         elif test -r /idev/urandom ; then
2175                 dev="/idev/urandom";
2176         elif test -r /dev/srandom ; then
2177                 dev="/dev/srandom";
2178         elif test -r /dev/random ; then
2179                 dev="/dev/random";
2180         elif test -r /idev/random ; then
2181                 dev="/idev/random";
2182         fi
2183
2184         if test $dev != no ; then
2185                 AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
2186         fi
2187 fi
2188
2189 dnl ----------------------------------------------------------------
2190 dnl
2191 dnl Check for fetch URL support
2192 dnl             should be extended to support other fetch URL APIs
2193 dnl
2194 ol_link_fetch=no
2195 if test $ol_with_fetch != no ; then
2196         OL_LIB_FETCH
2197
2198         if test $ol_cv_lib_fetch != no ; then
2199                 LUTIL_LIBS="$LUTIL_LIBS $ol_link_fetch"
2200                 ol_link_fetch=freebsd
2201
2202         elif test $ol_with_fetch != auto ; then
2203                 AC_MSG_ERROR(no suitable API for --with-fetch=$ol_with_fetch)
2204         fi 
2205 fi
2206
2207 dnl ----------------------------------------------------------------
2208 dnl FreeBSD (and others) have crypt(3) in -lcrypt
2209 if test $ol_enable_crypt != no ; then
2210         save_LIBS="$LIBS"
2211         LIBS="$TLS_LIBS $LIBS"
2212
2213         AC_CHECK_FUNC(crypt, [have_crypt=yes], [
2214                 LIBS="$save_LIBS"
2215                 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
2216                         have_crypt=yes], [have_crypt=no])])
2217
2218         LIBS="$save_LIBS"
2219
2220         if test $have_crypt = yes ; then
2221                 AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
2222         else
2223                 AC_MSG_WARN([could not find crypt])
2224                 if test $ol_enable_crypt = yes ; then
2225                         AC_MSG_ERROR([could not find crypt, select appropriate options or disable])
2226                 fi
2227
2228                 AC_MSG_WARN([disabling crypt support])
2229                 ol_enable_crypt=no
2230         fi
2231 fi
2232
2233 dnl ----------------------------------------------------------------
2234 dnl FreeBSD (and others) have setproctitle(3) in -lutil
2235 if test $ol_enable_proctitle != no ; then
2236         AC_CHECK_FUNC(setproctitle,     [have_setproctitle=yes], [
2237                 AC_CHECK_LIB(util, setproctitle,
2238                         [have_setproctitle=yes
2239                         LUTIL_LIBS="$LUTIL_LIBS -lutil"],
2240                         [have_setproctitle=no
2241                         AC_LIBOBJ(setproctitle)
2242                         LIBSRCS="$LIBSRCS setproctitle.c"])])
2243
2244         if test $have_setproctitle = yes ; then
2245                 AC_DEFINE(HAVE_SETPROCTITLE,1,
2246                         [define if setproctitle(3) is available])
2247         fi
2248 fi
2249
2250 dnl ----------------------------------------------------------------
2251 if test $ol_enable_slp != no ; then
2252         AC_CHECK_HEADERS( slp.h )
2253
2254         if test $ac_cv_header_slp_h = yes ; then
2255                 AC_CHECK_LIB(slp, SLPOpen, [have_slp=yes], [have_slp=no])
2256                 if test $have_slp = yes ; then
2257                         AC_DEFINE(HAVE_SLP, 1, [define if you have -lslp])
2258                         SLAPD_SLP_LIBS=-lslp
2259                 fi
2260
2261         elif test $ol_enable_slp = yes ; then
2262                 AC_MSG_ERROR([SLP not found])
2263         fi
2264 fi
2265
2266 dnl ----------------------------------------------------------------
2267 dnl Checks for typedefs, structures, and compiler characteristics.
2268
2269 AC_CHECK_TYPE(mode_t, int)
2270 AC_CHECK_TYPE(off_t, long)
2271 AC_CHECK_TYPE(pid_t, int)
2272 AC_CHECK_TYPE(ssize_t, [signed int])
2273 AC_CHECK_TYPE(caddr_t,  [char *])
2274 AC_CHECK_TYPE(size_t, unsigned)
2275
2276 AC_CHECK_TYPES([long long])
2277 AC_CHECK_TYPES([ptrdiff_t])
2278
2279
2280 AC_CHECK_TYPE([socklen_t],,, [$ac_includes_default
2281 #ifdef HAVE_SYS_SOCKET_H
2282 #include <sys/socket.h>
2283 #endif])
2284
2285 dnl socklen_t-like type in accept(), default socklen_t or int:
2286 dnl - The OS might define socklen_t without using it.  POSIX moved from
2287 dnl   int to size_t to socklen_t, hoping to stay at a 32-bit type, and
2288 dnl   HP-UX now has selectors for what to use.
2289 dnl - On Solaris 2.8 the prototype has void *len, but the default is OK.
2290 AC_MSG_CHECKING([the type of arg 3 to accept()])
2291 AC_CACHE_VAL(ol_cv_type_ber_socklen_t, [
2292         set socklen_t int unsigned "unsigned long" long size_t
2293         test "$ac_cv_type_socklen_t" = yes || shift
2294         ol_cv_type_ber_socklen_t=$1 guessing="guessing "
2295         for lentype in "$@" ; do for addrtype in "struct sockaddr" void ; do
2296                 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$ac_includes_default
2297 #ifdef HAVE_SYS_SOCKET_H
2298 #include <sys/socket.h>
2299 #endif
2300 extern int accept(int s, $addrtype *ap, $lentype *lp);
2301 ], [
2302 accept(0, (struct sockaddr *) 0, ($lentype *) 0);
2303 ])], [ol_cv_type_ber_socklen_t=$lentype guessing= ; break 2])
2304         done ; done])
2305 AC_MSG_RESULT([$guessing$ol_cv_type_ber_socklen_t *])
2306 AC_DEFINE_UNQUOTED(ber_socklen_t, $ol_cv_type_ber_socklen_t,
2307         [Define to the type of arg 3 for `accept'.])
2308
2309 dnl Modules should use ber_socklen_t, not socklen_t.  Define socklen_t
2310 dnl for the time being anyway, for backwards compatibility.
2311 if test "$ac_cv_type_socklen_t" != yes; then
2312         AC_DEFINE_UNQUOTED([socklen_t], [$ol_cv_type_ber_socklen_t],
2313                 [Define like ber_socklen_t if <sys/socket.h> does not define.])
2314 fi
2315
2316
2317 AC_TYPE_SIGNAL
2318
2319 AC_CHECK_TYPE([sig_atomic_t],,
2320         [AC_DEFINE_UNQUOTED([sig_atomic_t], [int],
2321                 [Define to `int' if <signal.h> does not define.])],
2322         [$ac_includes_default
2323 #include <signal.h>
2324         ])
2325
2326 AC_TYPE_UID_T
2327
2328 AC_HEADER_TIME
2329 AC_STRUCT_TM
2330 AC_CHECK_MEMBERS([struct stat.st_blksize])
2331 AC_CHECK_MEMBERS([struct passwd.pw_gecos],,,[$ac_includes_default
2332 #include <pwd.h>])
2333 AC_CHECK_MEMBERS([struct passwd.pw_passwd],,,[$ac_includes_default
2334 #include <pwd.h>])
2335
2336 OL_C_UPPER_LOWER
2337 AC_C_CONST
2338 OL_C_VOLATILE
2339
2340 if test $cross_compiling = yes ; then
2341         AC_MSG_WARN([Crossing compiling... all bets are off!])
2342         AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
2343 else
2344         AC_C_BIGENDIAN
2345 fi
2346
2347 AC_CHECK_SIZEOF(short) 
2348 AC_CHECK_SIZEOF(int) 
2349 AC_CHECK_SIZEOF(long)
2350 AC_CHECK_SIZEOF(long long)
2351 AC_CHECK_SIZEOF(wchar_t)
2352
2353 if test "$ac_cv_sizeof_int" -lt 4 ; then
2354         AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
2355
2356         AC_DEFINE(LBER_INT_T,long,[define to 32-bit or greater integer type])
2357 else
2358         AC_DEFINE(LBER_INT_T,int,[define to 32-bit or greater integer type])
2359 fi
2360
2361 AC_DEFINE(LBER_LEN_T,long,[define to large integer type])
2362 AC_DEFINE(LBER_SOCKET_T,int,[define to socket descriptor type])
2363 AC_DEFINE(LBER_TAG_T,long,[define to large integer type])
2364
2365 dnl ----------------------------------------------------------------
2366 dnl Check for multiple precision support
2367 if test $ol_with_mp = longlong || test $ol_with_mp = auto ; then
2368         if test $ac_cv_sizeof_long_long -gt 4 ; then
2369                 ol_with_mp=longlong
2370                 AC_DEFINE(USE_MP_LONG_LONG,1,[define to use 'long long' for MP])
2371         elif test $ol_with_mp = longlong ; then
2372                 AC_MSG_ERROR([long long unusable for multiple precision])
2373         fi
2374 fi
2375 if test $ol_with_mp = long || test $ol_with_mp = auto ; then
2376         if test $ac_cv_sizeof_long -gt 4 ; then
2377                 ol_with_mp=long
2378                 AC_DEFINE(USE_MP_LONG,1,[define to use 'long' for MP])
2379         elif test $ol_with_mp = long ; then
2380                 AC_MSG_ERROR([long unusable for multiple precision])
2381         fi
2382 fi
2383 if test $ol_with_mp = bignum || test $ol_with_mp = auto ; then
2384         AC_CHECK_HEADERS(openssl/bn.h)
2385         AC_CHECK_HEADERS(openssl/crypto.h)
2386         if test "$ac_cv_header_openssl_bn_h" = "yes" &&
2387                 test "$ac_cv_header_openssl_crypto_h" = "yes" &&
2388                 test "$ol_with_tls" = "found" ; then
2389                 ol_with_mp=bignum
2390                 AC_DEFINE(USE_MP_BIGNUM,1,[define to use OpenSSL BIGNUM for MP])
2391         elif test $ol_with_mp = bignum ; then
2392                 AC_MSG_ERROR([bignum not available])
2393         fi
2394 fi
2395 if test $ol_with_mp = gmp || test $ol_with_mp = auto ; then
2396         AC_CHECK_HEADERS(gmp.h)
2397         AC_CHECK_LIB(gmp, __gmpz_add_ui)
2398         if test $ac_cv_header_gmp_h = yes && test $ac_cv_lib_gmp___gmpz_add_ui = yes ; then
2399                 AC_DEFINE(USE_MP_GMP,1,[define to use GMP for MP])
2400                 ol_with_mp=gmp
2401         elif test $ol_with_mp = gmp ; then
2402                 AC_MSG_ERROR([gmp not available])
2403         fi
2404 fi
2405 if test $ol_with_mp = auto ; then
2406         ol_with_mp=no
2407 fi
2408
2409 dnl ----------------------------------------------------------------
2410 dnl Checks for library functions.
2411 AC_FUNC_MEMCMP
2412
2413 if test $ac_cv_func_memcmp_working = no ; then
2414         AC_DEFINE(NEED_MEMCMP_REPLACEMENT,1,
2415                 [define if memcmp is not 8-bit clean or is otherwise broken])
2416 fi
2417
2418 AC_FUNC_STRFTIME
2419
2420 OL_FUNC_INET_ATON
2421
2422 dnl Check for NT specific routines
2423 AC_CHECK_FUNC(_spawnlp, AC_DEFINE(HAVE_SPAWNLP,1,[if you have spawnlp()]))
2424
2425 AC_CHECK_FUNC(_snprintf, [ac_cv_func_snprintf=yes
2426         AC_DEFINE(snprintf, _snprintf, [define to snprintf routine])
2427 ])
2428
2429 AC_CHECK_FUNCS(vsnprintf _vsnprintf)
2430
2431 if test $ac_cv_func_vsnprintf = no -a $ac_cv_func__vsnprintf = yes ; then
2432         ac_cv_func_vsnprintf=yes
2433         AC_DEFINE(vsnprintf, _vsnprintf, [define to vsnprintf routine])
2434 fi
2435
2436 AC_FUNC_VPRINTF
2437
2438 if test $ac_cv_func_vprintf = yes ; then
2439         dnl check for vsnprintf
2440         AC_CHECK_FUNCS(snprintf vsnprintf)
2441 fi
2442
2443 AC_CHECK_FUNCS(                 \
2444         bcopy                   \
2445         closesocket             \
2446         chroot                  \
2447         endgrent                \
2448         endpwent                \
2449         fcntl                   \
2450         flock                   \
2451         fstat                   \
2452         getdtablesize           \
2453         geteuid                 \
2454         getgrgid                \
2455         gethostname             \
2456         getpass                 \
2457         getpassphrase           \
2458         getpwuid                \
2459         getpwnam                \
2460         getspnam                \
2461         gettimeofday            \
2462         initgroups              \
2463         inet_ntoa_b             \
2464         ioctl                   \
2465         lockf                   \
2466         memcpy                  \
2467         memmove                 \
2468         memrchr                 \
2469         mkstemp                 \
2470         mktemp                  \
2471         pipe                    \
2472         read                    \
2473         recv                    \
2474         recvfrom                \
2475         setpwfile               \
2476         setgid                  \
2477         setegid                 \
2478         setsid                  \
2479         setuid                  \
2480         seteuid                 \
2481         signal                  \
2482         strdup                  \
2483         strpbrk                 \
2484         strrchr                 \
2485         strsep                  \
2486         strstr                  \
2487         strtol                  \
2488         strtoul                 \
2489         strtoq                  \
2490         strtouq                 \
2491         strtoll                 \
2492         strspn                  \
2493         sysconf                 \
2494         waitpid                 \
2495         wait4                   \
2496         write                   \
2497         send                    \
2498         sendmsg                 \
2499         sendto                  \
2500 )
2501
2502 dnl We actually may need to replace more than this.
2503 AC_REPLACE_FUNCS(getopt getpeereid)
2504
2505 if test "$ac_cv_func_getopt" != yes; then
2506         LIBSRCS="$LIBSRCS getopt.c"
2507 fi
2508
2509 if test "$ac_cv_func_getpeereid" != yes; then
2510         AC_CHECK_FUNCS( getpeerucred )
2511         if test "$ac_cv_func_getpeerucred" != yes ; then
2512                 AC_CHECK_MEMBERS([struct msghdr.msg_accrightslen],,,
2513                         [$ac_includes_default
2514 #ifdef HAVE_SYS_SOCKET_H
2515 #include <sys/socket.h>
2516 #endif])
2517                 if test "$ac_cv_member_struct_msghdr_msg_accrightslen" != yes; then
2518                         AC_CHECK_MEMBERS([struct msghdr.msg_control],,,
2519                                 [$ac_includes_default
2520 #ifdef HAVE_SYS_SOCKET_H
2521 #include <sys/socket.h>
2522 #endif])
2523                 fi
2524                 AC_CHECK_MEMBERS([struct stat.st_fstype, struct stat.st_vfstype])
2525                 if test "$ac_cv_member_struct_stat_st_fstype" = yes; then
2526                         AC_COMPILE_IFELSE([struct stat st; char *ptr=st.st_fstype;],
2527                                 AC_DEFINE([HAVE_STRUCT_STAT_ST_FSTYPE_CHAR],1,[define to 1 if st_fstype is char *]),
2528                                 AC_DEFINE([HAVE_STRUCT_STAT_ST_FSTYPE_INT],1,[define to 1 if st_fstype is int]))
2529                 fi
2530         fi
2531         LIBSRCS="$LIBSRCS getpeereid.c"
2532 fi
2533
2534 if test "$ac_cv_func_snprintf" != yes ||
2535    test "$ac_cv_func_vsnprintf" != yes; then
2536         if test "$ac_cv_func_snprintf" != yes; then
2537                 AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
2538         fi
2539         if test "$ac_cv_func_vsnprintf" != yes; then
2540                 AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine])
2541         fi
2542 fi
2543
2544 dnl ----------------------------------------------------------------
2545 dnl Sort out defines
2546
2547 if test "$ol_enable_slapi" != no ; then
2548         dnl This check is done also if --enable-modules is used;
2549         dnl it is duplicated here, 'cause it'd be cached anyway
2550         AC_CHECK_HEADERS(ltdl.h)
2551
2552         if test $ac_cv_header_ltdl_h != yes ; then
2553                 AC_MSG_ERROR([could not locate <ltdl.h>])
2554         fi
2555         AC_CHECK_LIB(ltdl, lt_dlinit, [
2556                 SLAPI_LIBS=-lltdl
2557                 LIBSLAPI=libslapi.a
2558                 LIBSLAPITOOLS=../libslapi.a
2559                 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
2560         ],[AC_MSG_ERROR([could not locate libtool -lltdl])])
2561
2562         AC_DEFINE(LDAP_SLAPI,1, [define this to add SLAPI code])
2563 fi
2564
2565 if test "$ol_enable_debug" != no ; then
2566         if test "$ol_enable_debug" = traditional; then
2567                 AC_DEFINE(OLD_DEBUG,1,
2568                         [define to use the original debug style])
2569         fi
2570         AC_DEFINE(LDAP_DEBUG,1,
2571                 [define this to add debugging code])
2572 fi
2573 if test "$ol_enable_syslog" = yes ; then
2574         AC_DEFINE(LDAP_SYSLOG,1,
2575                 [define this to add syslog code])
2576 fi
2577 if test "$ol_enable_proctitle" != no ; then
2578         AC_DEFINE(LDAP_PROCTITLE,1,
2579                 [define this for LDAP process title support])
2580 fi
2581 if test "$ol_enable_referrals" != no ; then
2582         AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION,
2583                 [define to LDAP VENDOR VERSION])
2584 fi
2585 if test "$ol_enable_local" != no; then
2586         AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
2587 fi
2588 if test "$ol_link_ipv6" != no; then
2589         AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
2590 fi
2591 if test "$ol_enable_cleartext" != no ; then
2592         AC_DEFINE(SLAPD_CLEARTEXT,1,[define to support cleartext passwords])
2593 fi
2594 if test "$ol_enable_crypt" != no ; then
2595         AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords])
2596 fi
2597 if test "$ol_link_spasswd" != no ; then
2598         AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
2599 fi
2600 if test "$ol_enable_rlookups" != no ; then
2601         AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
2602 fi
2603 if test "$ol_enable_aci" != no ; then
2604         if test $ol_enable_dynacl = no ; then
2605                 ol_enable_dynacl=yes
2606                 AC_MSG_WARN([ACIs need dynacl])
2607         fi
2608         if test "$ol_enable_aci" = mod ; then
2609                 MFLAG=SLAPD_MOD_DYNAMIC
2610                 dnl remove this after moving servers/slapd/aci.c in contrib/slapd-modules/acl
2611                 AC_MSG_ERROR([ACI build as dynamic module not supported (yet)])
2612         else 
2613                 MFLAG=SLAPD_MOD_STATIC
2614         fi
2615         WITH_ACI_ENABLED=$ol_enable_aci
2616         AC_DEFINE_UNQUOTED(SLAPD_ACI_ENABLED,$MFLAG,[define to support per-object ACIs])
2617 else
2618         WITH_ACI_ENABLED=no
2619 fi
2620 if test "$ol_enable_dynacl" != no ; then
2621         AC_DEFINE(SLAP_DYNACL,1,[define to support run-time loadable ACL])
2622 fi
2623
2624 if test "$ol_link_modules" != no ; then
2625         AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
2626         BUILD_SLAPD=yes
2627         SLAPD_MODULES_LDFLAGS="-dlopen self"
2628 fi
2629
2630 AC_DEFINE(SLAPD_MOD_STATIC,1,[statically linked module])
2631 AC_DEFINE(SLAPD_MOD_DYNAMIC,2,[dynamically linked module])
2632
2633 dnl back-monitor goes first (well, after back-config)
2634 if test "$ol_enable_monitor" != no ; then
2635         BUILD_SLAPD=yes
2636         BUILD_MONITOR=$ol_enable_monitor
2637         if test "$ol_enable_monitor" = mod ; then
2638                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
2639                 MFLAG=SLAPD_MOD_DYNAMIC
2640         else
2641                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
2642                 MFLAG=SLAPD_MOD_STATIC
2643         fi
2644         AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
2645 fi
2646
2647 if test "$ol_enable_bdb" != no ; then
2648         BUILD_SLAPD=yes
2649         BUILD_BDB=$ol_enable_bdb
2650         if test "$ol_enable_bdb" = mod ; then
2651                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
2652                 MFLAG=SLAPD_MOD_DYNAMIC
2653         else
2654                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
2655                 MFLAG=SLAPD_MOD_STATIC
2656         fi
2657         AC_DEFINE_UNQUOTED(SLAPD_BDB,$MFLAG,[define to support BDB backend])
2658 fi
2659
2660 if test "$ol_enable_dnssrv" != no ; then
2661         BUILD_SLAPD=yes
2662         BUILD_DNSSRV=$ol_enable_dnssrv
2663         if test "$ol_enable_dnssrv" = mod ; then
2664                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
2665                 MFLAG=SLAPD_MOD_DYNAMIC
2666         else
2667                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
2668                 MFLAG=SLAPD_MOD_STATIC
2669         fi
2670         AC_DEFINE_UNQUOTED(SLAPD_DNSSRV,$MFLAG,[define to support DNS SRV backend])
2671 fi
2672
2673 if test "$ol_enable_hdb" != no ; then
2674         BUILD_SLAPD=yes
2675         BUILD_HDB=$ol_enable_hdb
2676         if test "$ol_enable_hdb" = mod ; then
2677                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-hdb"
2678                 MFLAG=SLAPD_MOD_DYNAMIC
2679         else
2680                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb"
2681                 MFLAG=SLAPD_MOD_STATIC
2682         fi
2683         AC_DEFINE_UNQUOTED(SLAPD_HDB,$MFLAG,[define to support HDB backend])
2684 fi
2685
2686 if test "$ol_enable_ldap" != no ; then
2687         BUILD_SLAPD=yes
2688         BUILD_LDAP=$ol_enable_ldap
2689         if test "$ol_enable_ldap" = mod ; then
2690                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
2691                 MFLAG=SLAPD_MOD_DYNAMIC
2692         else
2693                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
2694                 MFLAG=SLAPD_MOD_STATIC
2695         fi
2696         AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
2697 fi
2698
2699 if test "$ol_enable_meta" != no ; then
2700         BUILD_SLAPD=yes
2701         BUILD_META=$ol_enable_meta
2702         BUILD_REWRITE=yes
2703         if test "$ol_enable_meta" = mod ; then
2704                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
2705                 MFLAG=SLAPD_MOD_DYNAMIC
2706         else
2707                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
2708                 MFLAG=SLAPD_MOD_STATIC
2709         fi
2710         AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
2711 fi
2712
2713 if test "$ol_enable_ndb" != no ; then
2714         BUILD_SLAPD=yes
2715         BUILD_NDB=$ol_enable_ndb
2716         if test "$ol_enable_ndb" = mod ; then
2717                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ndb"
2718                 MFLAG=SLAPD_MOD_DYNAMIC
2719         else
2720                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ndb"
2721                 MFLAG=SLAPD_MOD_STATIC
2722         fi
2723         AC_DEFINE_UNQUOTED(SLAPD_NDB,$MFLAG,[define to support NDB backend])
2724 fi
2725
2726 if test "$ol_enable_null" != no ; then
2727         BUILD_SLAPD=yes
2728         BUILD_NULL=$ol_enable_null
2729         if test "$ol_enable_null" = mod ; then
2730                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
2731                 MFLAG=SLAPD_MOD_DYNAMIC
2732         else
2733                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
2734                 MFLAG=SLAPD_MOD_STATIC
2735         fi
2736         AC_DEFINE_UNQUOTED(SLAPD_NULL,$MFLAG,[define to support NULL backend])
2737 fi
2738
2739 if test "$ol_enable_passwd" != no ; then
2740         BUILD_SLAPD=yes
2741         BUILD_PASSWD=$ol_enable_passwd
2742         if test "$ol_enable_passwd" = mod ; then
2743                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
2744                 MFLAG=SLAPD_MOD_DYNAMIC
2745         else
2746                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
2747                 MFLAG=SLAPD_MOD_STATIC
2748         fi
2749         AC_DEFINE_UNQUOTED(SLAPD_PASSWD,$MFLAG,[define to support PASSWD backend])
2750 fi
2751
2752 if test "$ol_link_perl" != no ; then
2753         BUILD_SLAPD=yes
2754         BUILD_PERL=$ol_enable_perl
2755         if test "$ol_enable_perl" = mod ; then
2756                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
2757                 MFLAG=SLAPD_MOD_DYNAMIC
2758         else
2759                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
2760                 MFLAG=SLAPD_MOD_STATIC
2761         fi
2762         AC_DEFINE_UNQUOTED(SLAPD_PERL,$MFLAG,[define to support PERL backend])
2763 fi
2764
2765 if test "$ol_enable_relay" != no ; then
2766         BUILD_SLAPD=yes
2767         BUILD_RELAY=$ol_enable_relay
2768         if test "$ol_enable_relay" = mod ; then
2769                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-relay"
2770                 MFLAG=SLAPD_MOD_DYNAMIC
2771         else
2772                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-relay"
2773                 MFLAG=SLAPD_MOD_STATIC
2774         fi
2775         AC_DEFINE_UNQUOTED(SLAPD_RELAY,$MFLAG,[define to support relay backend])
2776 fi
2777
2778 if test "$ol_enable_shell" != no ; then
2779         if test "$ol_link_threads" != no ; then
2780                 AC_MSG_WARN([Use of --without-threads is recommended with back-shell])
2781         fi
2782         BUILD_SLAPD=yes
2783         BUILD_SHELL=$ol_enable_shell
2784         if test "$ol_enable_shell" = mod ; then
2785                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
2786                 MFLAG=SLAPD_MOD_DYNAMIC
2787         else
2788                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
2789                 MFLAG=SLAPD_MOD_STATIC
2790         fi
2791         AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend])
2792 fi
2793
2794 if test "$ol_enable_sock" != no ; then
2795         BUILD_SLAPD=yes
2796         BUILD_SOCK=$ol_enable_sock
2797         if test "$ol_enable_sock" = mod ; then
2798                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sock"
2799                 MFLAG=SLAPD_MOD_DYNAMIC
2800         else
2801                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sock"
2802                 MFLAG=SLAPD_MOD_STATIC
2803         fi
2804         AC_DEFINE_UNQUOTED(SLAPD_SOCK,$MFLAG,[define to support SOCK backend])
2805 fi
2806
2807 if test "$ol_link_sql" != no ; then
2808         BUILD_SLAPD=yes
2809         BUILD_SQL=$ol_enable_sql
2810         if test "$ol_enable_sql" = mod; then
2811                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
2812                 MFLAG=SLAPD_MOD_DYNAMIC
2813         else
2814                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
2815                 MFLAG=SLAPD_MOD_STATIC
2816         fi
2817         AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend])
2818 fi
2819
2820 if test "$ol_enable_accesslog" != no ; then
2821         BUILD_ACCESSLOG=$ol_enable_accesslog
2822         if test "$ol_enable_accesslog" = mod ; then
2823                 MFLAG=SLAPD_MOD_DYNAMIC
2824                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS accesslog.la"
2825         else
2826                 MFLAG=SLAPD_MOD_STATIC
2827                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS accesslog.o"
2828         fi
2829         AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay])
2830 fi
2831
2832 if test "$ol_enable_auditlog" != no ; then
2833         BUILD_AUDITLOG=$ol_enable_auditlog
2834         if test "$ol_enable_auditlog" = mod ; then
2835                 MFLAG=SLAPD_MOD_DYNAMIC
2836                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS auditlog.la"
2837         else
2838                 MFLAG=SLAPD_MOD_STATIC
2839                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS auditlog.o"
2840         fi
2841         AC_DEFINE_UNQUOTED(SLAPD_OVER_AUDITLOG,$MFLAG,[define for Audit Logging overlay])
2842 fi
2843
2844 if test "$ol_enable_collect" != no ; then
2845         BUILD_COLLECT=$ol_enable_collect
2846         if test "$ol_enable_collect" = mod ; then
2847                 MFLAG=SLAPD_MOD_DYNAMIC
2848                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS collect.la"
2849         else
2850                 MFLAG=SLAPD_MOD_STATIC
2851                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS collect.o"
2852         fi
2853         AC_DEFINE_UNQUOTED(SLAPD_OVER_COLLECT,$MFLAG,[define for Collect overlay])
2854 fi
2855
2856 if test "$ol_enable_constraint" != no ; then
2857         BUILD_CONSTRAINT=$ol_enable_constraint
2858         if test "$ol_enable_constraint" = mod ; then
2859                 MFLAG=SLAPD_MOD_DYNAMIC
2860                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS constraint.la"
2861         else
2862                 MFLAG=SLAPD_MOD_STATIC
2863                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS constraint.o"
2864         fi
2865         AC_DEFINE_UNQUOTED(SLAPD_OVER_CONSTRAINT,$MFLAG,[define for Attribute Constraint overlay])
2866 fi
2867
2868 if test "$ol_enable_dds" != no ; then
2869         BUILD_DDS=$ol_enable_dds
2870         if test "$ol_enable_dds" = mod ; then
2871                 MFLAG=SLAPD_MOD_DYNAMIC
2872                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dds.la"
2873         else
2874                 MFLAG=SLAPD_MOD_STATIC
2875                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dds.o"
2876         fi
2877         AC_DEFINE_UNQUOTED(SLAPD_OVER_DDS,$MFLAG,[define for Dynamic Directory Services overlay])
2878 fi
2879
2880 if test "$ol_enable_deref" != no ; then
2881         BUILD_DDS=$ol_enable_deref
2882         if test "$ol_enable_deref" = mod ; then
2883                 MFLAG=SLAPD_MOD_DYNAMIC
2884                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS deref.la"
2885         else
2886                 MFLAG=SLAPD_MOD_STATIC
2887                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS deref.o"
2888         fi
2889         AC_DEFINE_UNQUOTED(SLAPD_OVER_DEREF,$MFLAG,[define for Dynamic Directory Services overlay])
2890 fi
2891
2892 if test "$ol_enable_dyngroup" != no ; then
2893         BUILD_DYNGROUP=$ol_enable_dyngroup
2894         if test "$ol_enable_dyngroup" = mod ; then
2895                 MFLAG=SLAPD_MOD_DYNAMIC
2896                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dyngroup.la"
2897         else
2898                 MFLAG=SLAPD_MOD_STATIC
2899                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dyngroup.o"
2900         fi
2901         AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay])
2902 fi
2903
2904 if test "$ol_enable_dynlist" != no ; then
2905         BUILD_DYNLIST=$ol_enable_dynlist
2906         if test "$ol_enable_dynlist" = mod ; then
2907                 MFLAG=SLAPD_MOD_DYNAMIC
2908                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dynlist.la"
2909         else
2910                 MFLAG=SLAPD_MOD_STATIC
2911                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dynlist.o"
2912         fi
2913         AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNLIST,$MFLAG,[define for Dynamic List overlay])
2914 fi
2915
2916 if test "$ol_enable_memberof" != no ; then
2917         BUILD_MEMBEROF=$ol_enable_memberof
2918         if test "$ol_enable_memberof" = mod ; then
2919                 MFLAG=SLAPD_MOD_DYNAMIC
2920                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS memberof.la"
2921         else
2922                 MFLAG=SLAPD_MOD_STATIC
2923                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS memberof.o"
2924         fi
2925         AC_DEFINE_UNQUOTED(SLAPD_OVER_MEMBEROF,$MFLAG,[define for Reverse Group Membership overlay])
2926 fi
2927
2928 if test "$ol_enable_ppolicy" != no ; then
2929         BUILD_PPOLICY=$ol_enable_ppolicy
2930         if test "$ol_enable_ppolicy" = mod ; then
2931                 MFLAG=SLAPD_MOD_DYNAMIC
2932                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS ppolicy.la"
2933         else
2934                 MFLAG=SLAPD_MOD_STATIC
2935                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS ppolicy.o"
2936         fi
2937         AC_DEFINE_UNQUOTED(SLAPD_OVER_PPOLICY,$MFLAG,[define for Password Policy overlay])
2938 fi
2939
2940 if test "$ol_enable_proxycache" != no ; then
2941         BUILD_PROXYCACHE=$ol_enable_proxycache
2942         if test "$ol_enable_proxycache" = mod ; then
2943                 MFLAG=SLAPD_MOD_DYNAMIC
2944                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS pcache.la"
2945         else
2946                 MFLAG=SLAPD_MOD_STATIC
2947                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS pcache.o"
2948         fi
2949         AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay])
2950 fi
2951
2952 if test "$ol_enable_refint" != no ; then
2953         BUILD_REFINT=$ol_enable_refint
2954         if test "$ol_enable_refint" = mod ; then
2955                 MFLAG=SLAPD_MOD_DYNAMIC
2956                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la"
2957         else
2958                 MFLAG=SLAPD_MOD_STATIC
2959                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS refint.o"
2960         fi
2961         AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay])
2962 fi
2963
2964 if test "$ol_enable_retcode" != no ; then
2965         BUILD_RETCODE=$ol_enable_retcode
2966         if test "$ol_enable_retcode" = mod ; then
2967                 MFLAG=SLAPD_MOD_DYNAMIC
2968                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS retcode.la"
2969         else
2970                 MFLAG=SLAPD_MOD_STATIC
2971                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS retcode.o"
2972         fi
2973         AC_DEFINE_UNQUOTED(SLAPD_OVER_RETCODE,$MFLAG,[define for Referential Integrity overlay])
2974 fi
2975
2976 if test "$ol_enable_rwm" != no ; then
2977         BUILD_REWRITE=yes
2978         BUILD_RWM=$ol_enable_rwm
2979         if test "$ol_enable_rwm" = mod ; then
2980                 MFLAG=SLAPD_MOD_DYNAMIC
2981                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS rwm.la"
2982         else
2983                 MFLAG=SLAPD_MOD_STATIC
2984                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS rwm_x.o"
2985         fi
2986         AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
2987 fi
2988
2989 if test "$ol_enable_seqmod" != no ; then
2990         BUILD_SEQMOD=$ol_enable_seqmod
2991         if test "$ol_enable_seqmod" = mod ; then
2992                 MFLAG=SLAPD_MOD_DYNAMIC
2993                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS seqmod.la"
2994         else
2995                 MFLAG=SLAPD_MOD_STATIC
2996                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS seqmod.o"
2997         fi
2998         AC_DEFINE_UNQUOTED(SLAPD_OVER_SEQMOD,$MFLAG,[define for Sequential Modify overlay])
2999 fi
3000
3001 if test "$ol_enable_syncprov" != no ; then
3002         BUILD_SYNCPROV=$ol_enable_syncprov
3003         if test "$ol_enable_syncprov" = mod ; then
3004                 MFLAG=SLAPD_MOD_DYNAMIC
3005                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS syncprov.la"
3006         else
3007                 MFLAG=SLAPD_MOD_STATIC
3008                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS syncprov.o"
3009         fi
3010         AC_DEFINE_UNQUOTED(SLAPD_OVER_SYNCPROV,$MFLAG,[define for Syncrepl Provider overlay])
3011 fi
3012
3013 if test "$ol_enable_translucent" != no ; then
3014         BUILD_TRANSLUCENT=$ol_enable_translucent
3015         if test "$ol_enable_translucent" = mod ; then
3016                 MFLAG=SLAPD_MOD_DYNAMIC
3017                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS translucent.la"
3018         else
3019                 MFLAG=SLAPD_MOD_STATIC
3020                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS translucent.o"
3021         fi
3022         AC_DEFINE_UNQUOTED(SLAPD_OVER_TRANSLUCENT,$MFLAG,[define for Translucent Proxy overlay])
3023 fi
3024
3025 if test "$ol_enable_unique" != no ; then
3026         BUILD_UNIQUE=$ol_enable_unique
3027         if test "$ol_enable_unique" = mod ; then
3028                 MFLAG=SLAPD_MOD_DYNAMIC
3029                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la"
3030         else
3031                 MFLAG=SLAPD_MOD_STATIC
3032                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS unique.o"
3033         fi
3034         AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay])
3035 fi
3036
3037 if test "$ol_enable_valsort" != no ; then
3038         BUILD_VALSORT=$ol_enable_valsort
3039         if test "$ol_enable_valsort" = mod ; then
3040                 MFLAG=SLAPD_MOD_DYNAMIC
3041                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS valsort.la"
3042         else
3043                 MFLAG=SLAPD_MOD_STATIC
3044                 SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS valsort.o"
3045         fi
3046         AC_DEFINE_UNQUOTED(SLAPD_OVER_VALSORT,$MFLAG,[define for Value Sorting overlay])
3047 fi
3048
3049 if test "$ol_enable_rewrite" != no ; then
3050         AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta])
3051         BUILD_REWRITE=yes
3052 fi
3053
3054 if test "$ol_enable_slapi" != no ; then
3055         AC_DEFINE(ENABLE_SLAPI,1,[define to enable slapi library])
3056         BUILD_SLAPI=yes
3057         SLAPD_SLAPI_DEPEND=libslapi.a
3058 fi
3059
3060 dnl ----------------------------------------------------------------
3061
3062 dnl
3063 dnl For Windows build, we don't want to include -dlopen flags.
3064 dnl They hurt more than they help.
3065 dnl
3066
3067 if test "$ac_cv_mingw32" = yes -o $ol_cv_msvc = yes ; then
3068         PLAT=NT
3069         SLAPD_MODULES_LDFLAGS=
3070 else
3071         PLAT=UNIX
3072 fi
3073
3074 AC_SUBST(LIBSRCS)
3075 AC_SUBST(PLAT)
3076 AC_SUBST(WITH_SASL)
3077 AC_SUBST(WITH_TLS)
3078 AC_SUBST(WITH_MODULES_ENABLED)
3079 AC_SUBST(WITH_ACI_ENABLED)
3080 AC_SUBST(BUILD_THREAD)
3081 AC_SUBST(BUILD_LIBS_DYNAMIC)
3082
3083 AC_SUBST(BUILD_SLAPD)
3084 dnl slapi
3085   AC_SUBST(BUILD_SLAPI)
3086   AC_SUBST(SLAPD_SLAPI_DEPEND)
3087 dnl backends
3088   AC_SUBST(BUILD_BDB)
3089   AC_SUBST(BUILD_DNSSRV)
3090   AC_SUBST(BUILD_HDB)
3091   AC_SUBST(BUILD_LDAP)
3092   AC_SUBST(BUILD_META)
3093   AC_SUBST(BUILD_MONITOR)
3094   AC_SUBST(BUILD_NDB)
3095   AC_SUBST(BUILD_NULL)
3096   AC_SUBST(BUILD_PASSWD)
3097   AC_SUBST(BUILD_RELAY)
3098   AC_SUBST(BUILD_PERL)
3099   AC_SUBST(BUILD_SHELL)
3100   AC_SUBST(BUILD_SOCK)
3101   AC_SUBST(BUILD_SQL)
3102 dnl overlays
3103   AC_SUBST(BUILD_ACCESSLOG)
3104   AC_SUBST(BUILD_AUDITLOG)
3105   AC_SUBST(BUILD_COLLECT)
3106   AC_SUBST(BUILD_CONSTRAINT)
3107   AC_SUBST(BUILD_DDS)
3108   AC_SUBST(BUILD_DENYOP)
3109   AC_SUBST(BUILD_DYNGROUP)
3110   AC_SUBST(BUILD_DYNLIST)
3111   AC_SUBST(BUILD_LASTMOD)
3112   AC_SUBST(BUILD_MEMBEROF)
3113   AC_SUBST(BUILD_PPOLICY)
3114   AC_SUBST(BUILD_PROXYCACHE)
3115   AC_SUBST(BUILD_REFINT)
3116   AC_SUBST(BUILD_RETCODE)
3117   AC_SUBST(BUILD_RWM)
3118   AC_SUBST(BUILD_SEQMOD)
3119   AC_SUBST(BUILD_SYNCPROV)
3120   AC_SUBST(BUILD_TRANSLUCENT)
3121   AC_SUBST(BUILD_UNIQUE)
3122   AC_SUBST(BUILD_VALSORT)
3123
3124 AC_SUBST(LDAP_LIBS)
3125 AC_SUBST(SLAPD_LIBS)
3126 AC_SUBST(BDB_LIBS)
3127 AC_SUBST(SLAPD_NDB_LIBS)
3128 AC_SUBST(SLAPD_NDB_INCS)
3129 AC_SUBST(LTHREAD_LIBS)
3130 AC_SUBST(LUTIL_LIBS)
3131 AC_SUBST(WRAP_LIBS)
3132
3133 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
3134 AC_SUBST(SLAPD_MODULES_LDFLAGS)
3135
3136 AC_SUBST(SLAPD_NO_STATIC)
3137 AC_SUBST(SLAPD_STATIC_BACKENDS)
3138 AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
3139 AC_SUBST(SLAPD_STATIC_OVERLAYS)
3140 AC_SUBST(SLAPD_DYNAMIC_OVERLAYS)
3141
3142 AC_SUBST(PERL_CPPFLAGS)
3143 AC_SUBST(SLAPD_PERL_LDFLAGS)
3144 AC_SUBST(MOD_PERL_LDFLAGS)
3145
3146 AC_SUBST(KRB4_LIBS)
3147 AC_SUBST(KRB5_LIBS)
3148 AC_SUBST(SASL_LIBS)
3149 AC_SUBST(GSSAPI_LIBS)
3150 AC_SUBST(TLS_LIBS)
3151 AC_SUBST(MODULES_LIBS)
3152 AC_SUBST(SLAPI_LIBS)
3153 AC_SUBST(LIBSLAPI)
3154 AC_SUBST(LIBSLAPITOOLS)
3155 AC_SUBST(AUTH_LIBS)
3156 AC_SUBST(ICU_LIBS)
3157
3158 AC_SUBST(SLAPD_SLP_LIBS)
3159 AC_SUBST(SLAPD_GMP_LIBS)
3160
3161 AC_SUBST(SLAPD_SQL_LDFLAGS)
3162 AC_SUBST(SLAPD_SQL_LIBS)
3163 AC_SUBST(SLAPD_SQL_INCLUDES)
3164
3165 dnl ----------------------------------------------------------------
3166 dnl final help output
3167 AC_ARG_WITH(xxinstall,[
3168 See INSTALL file for further details.])
3169
3170 dnl ----------------------------------------------------------------
3171 dnl final output
3172 dnl
3173
3174 AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.mk]
3175 [doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk]
3176 [doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk]
3177 [doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk]
3178 [doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk]
3179 [doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk]
3180 [doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk]
3181 [clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk]
3182 [clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk]
3183 [include/Makefile:build/top.mk:include/Makefile.in]
3184 [libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk]
3185 [libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk]
3186 [libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk]
3187 [libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk]
3188 [libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk]
3189 [libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk]
3190 [libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk]
3191 [servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk]
3192 [servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk]
3193 [servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk]
3194 [servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk]
3195 [servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk]
3196 [servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk]
3197 [servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk]
3198 [servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk]
3199 [servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk]
3200 [servers/slapd/back-ndb/Makefile:build/top.mk:servers/slapd/back-ndb/Makefile.in:build/mod.mk]
3201 [servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk]
3202 [servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk]
3203 [servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk]
3204 [servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk]
3205 [servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk]
3206 [servers/slapd/back-sock/Makefile:build/top.mk:servers/slapd/back-sock/Makefile.in:build/mod.mk]
3207 [servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk]
3208 [servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk]
3209 [servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk]
3210 [servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk]
3211 [tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk]
3212 [tests/run]
3213 [tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk])
3214
3215 AC_CONFIG_COMMANDS([default],[[
3216 chmod +x tests/run
3217 date > stamp-h
3218 BACKENDSC="servers/slapd/backends.c"
3219 echo "Making $BACKENDSC"
3220 rm -f $BACKENDSC
3221 cat > $BACKENDSC << ENDX
3222 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3223  *
3224  * Copyright 1998-2009 The OpenLDAP Foundation.
3225  * All rights reserved.
3226  *
3227  * Redistribution and use in source and binary forms, with or without
3228  * modification, are permitted only as authorized by the OpenLDAP
3229  * Public License.
3230  *
3231  * A copy of this license is available in the file LICENSE in the
3232  * top-level directory of the distribution or, alternatively, at
3233  * <http://www.OpenLDAP.org/license.html>.
3234  */
3235 /* This file is automatically generated by configure; please do not edit. */
3236
3237 #include "portable.h"
3238 #include "slap.h"
3239
3240 ENDX
3241 if test "${STATIC_BACKENDS}"; then
3242         for b in config ${STATIC_BACKENDS}; do
3243                 bb=`echo "${b}" | sed -e 's/back-//'`
3244                 cat >> $BACKENDSC << ENDX
3245 extern BI_init ${bb}_back_initialize;
3246 ENDX
3247         done
3248
3249         cat >> $BACKENDSC << ENDX
3250
3251 BackendInfo slap_binfo[] = {
3252 ENDX
3253
3254         for b in config ${STATIC_BACKENDS}; do
3255                 bb=`echo "${b}" | sed -e 's/back-//'`
3256                 echo "    Add ${bb} ..."
3257                 cat >> $BACKENDSC << ENDX
3258         { "${bb}", ${bb}_back_initialize },
3259 ENDX
3260         done
3261
3262         cat >> $BACKENDSC << ENDX
3263         { NULL, NULL },
3264 };
3265
3266 /* end of generated file */
3267 ENDX
3268 fi
3269 OVERLAYSC="servers/slapd/overlays/statover.c"
3270 echo "Making $OVERLAYSC"
3271 rm -f $OVERLAYSC
3272 cat > $OVERLAYSC << ENDX
3273 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3274  *
3275  * Copyright 1998-2009 The OpenLDAP Foundation.
3276  * All rights reserved.
3277  *
3278  * Redistribution and use in source and binary forms, with or without
3279  * modification, are permitted only as authorized by the OpenLDAP
3280  * Public License.
3281  *
3282  * A copy of this license is available in the file LICENSE in the
3283  * top-level directory of the distribution or, alternatively, at
3284  * <http://www.OpenLDAP.org/license.html>.
3285  */
3286 /* This file is automatically generated by configure; please do not edit. */
3287
3288 #include "portable.h"
3289 #include "slap.h"
3290
3291 ENDX
3292 if test "${STATIC_OVERLAYS}"; then
3293         for o in ${STATIC_OVERLAYS}; do
3294                 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3295                 cat >> $OVERLAYSC << ENDX
3296 extern OV_init ${oo}_initialize;
3297 ENDX
3298         done
3299 fi
3300
3301 cat >> $OVERLAYSC << ENDX
3302
3303 OverlayInit slap_oinfo[] = {
3304 ENDX
3305
3306 if test "${STATIC_OVERLAYS}"; then
3307         for o in ${STATIC_OVERLAYS}; do
3308                 oo=`echo "${o}" | sed -e 's/.o$//' -e 's/_x$//'`
3309                 echo "    Add ${oo} ..."
3310                 cat >> $OVERLAYSC << ENDX
3311         { "${oo}", ${oo}_initialize },
3312 ENDX
3313         done
3314 fi
3315
3316         cat >> $OVERLAYSC << ENDX
3317         { NULL, NULL },
3318 };
3319
3320 /* end of generated file */
3321 ENDX
3322
3323 if test "${ol_cv_mkdep}" = no; then
3324         echo '(Do not "make depend"; we do not know how to build dependencies)'
3325 else
3326         echo 'Please run "make depend" to build dependencies'
3327 fi
3328 ]],[[
3329 STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"
3330 STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS"
3331 ]])
3332 AC_OUTPUT