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