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