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