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