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