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