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