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