]> git.sur5r.net Git - openldap/blob - configure.in
Use shtool(1) (to a limited degree, more use would simplify things)
[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-2004 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
17 dnl Redefine AC_INIT_BINSH to provide RCS IDs and copyright notice
18 dnl at top of generated configure script.  Prints simple copyright.
19 define([AC_INIT_BINSH],
20 [[#! /bin/sh
21 # $]OpenLDAP[$
22 # from] translit([$OpenLDAP$], $")] [
23
24 # This work is part of OpenLDAP Software <http://www.openldap.org/>.
25 #
26 # Copyright 1998-2004 The OpenLDAP Foundation.
27 # All rights reserved.
28 #
29 # Redistribution and use in source and binary forms, with or without
30 # modification, are permitted only as authorized by the OpenLDAP
31 # Public License.
32 #
33 # A copy of this license is available in the file LICENSE in the
34 # top-level directory of the distribution or, alternatively, at
35 # <http://www.OpenLDAP.org/license.html>.
36
37 echo "Copyright 1998-2004 The OpenLDAP Foundation. All rights reserved."
38 echo "  Restrictions apply, see COPYRIGHT and LICENSE files."
39 ])dnl
40 dnl ----------------------------------------------------------------
41 dnl Disable config.cache!
42 define([AC_CACHE_LOAD], )dnl
43 define([AC_CACHE_SAVE], )dnl
44 dnl ================================================================
45 dnl Configure.in for OpenLDAP
46 AC_INIT(build/version.sh)dnl
47
48 # set unset (borrowed from autoconf 2.49c)
49 if (OL_FOO=OL_FOO; unset OL_FOO) >/dev/null 2>&1; then
50   ol_unset=unset
51 else
52   ol_unset=false
53 fi
54 # unset CDPATH
55 $ol_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
56
57 AC_CONFIG_AUX_DIR(build)dnl
58
59 eval `$ac_aux_dir/version.sh`
60 if test -z "$OL_STRING"; then
61         AC_MSG_ERROR([could not determine version])
62 fi
63
64 if test -f "$ac_aux_dir/shtool" -a ! -d $ac_aux_dir/shtool; then
65         ac_cv_shtool="$ac_aux_dir/shtool"
66 else
67         AC_MSG_ERROR([no shtool found in $ac_aux_dir])
68 fi
69
70 SHTOOL="$ac_cv_shtool"
71 dnl AC_SUBST(SHTOOL)dnl
72
73 TB="`$SHTOOL echo -e '%B' 2>/dev/null`"
74 TN="`$SHTOOL echo -e '%b' 2>/dev/null`"
75
76 OPENLDAP_CVS=""
77 if test -d $ac_aux_dir/CVS; then
78         OPENLDAP_CVS="(from CVS sources) "
79 fi
80
81 echo "Configuring ${TB}${OL_STRING}${TN} ${OPENLDAP_CVS}..."
82
83 dnl Determine host platform
84 dnl             we try not to use this for much
85 AC_CANONICAL_SYSTEM
86
87 AM_INIT_AUTOMAKE([$OL_PACKAGE],[$OL_VERSION], [no defines])dnl
88 AC_SUBST(PACKAGE)dnl
89 AC_SUBST(VERSION)dnl
90 AC_DEFINE_UNQUOTED(OPENLDAP_PACKAGE,"$PACKAGE",Package)
91 AC_DEFINE_UNQUOTED(OPENLDAP_VERSION,"$VERSION",Version)
92
93 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION,$OL_API_INC,Version)
94 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MAJOR,$OL_MAJOR,Major)
95 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MINOR,$OL_MINOR,Minor)
96 AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_PATCH,$OL_PATCH,Patch)
97
98 OPENLDAP_LIBRELEASE=$OL_API_LIB_RELEASE
99 AC_SUBST(OPENLDAP_LIBRELEASE)dnl
100
101 OPENLDAP_LIBVERSION=$OL_API_LIB_VERSION
102 AC_SUBST(OPENLDAP_LIBVERSION)dnl
103
104 OPENLDAP_RELEASE_DATE="$OL_RELEASE_DATE"
105 AC_SUBST(OPENLDAP_RELEASE_DATE)dnl
106
107 dnl We use autoconf features new to 2.13.  Later versions like won't work.
108 dnl aclocal.m4 should be built using aclocal from automake 1.4
109 dnl libtool 1.4.3 should be installed.
110 AC_PREREQ(2.13)dnl Required Autoconf version
111
112 AC_CONFIG_HEADER(include/portable.h include/ldap_features.h include/lber_types.h)dnl
113
114 dnl ================================================================
115 dnl Start Args
116 AC_MSG_CHECKING(configure arguments)
117 AC_PREFIX_DEFAULT(/usr/local)
118
119 top_builddir=`pwd`
120 AC_SUBST(top_builddir)dnl
121
122 dnl ----------------------------------------------------------------
123 dnl --with-subdir
124 ldap_subdir="/openldap"
125
126 AC_ARG_WITH(subdir,
127 [  --with-subdir=DIR       change default subdirectory used for installs],
128 [case "$withval" in
129         no) ldap_subdir=""
130                 ;;
131         yes)
132                 ;;
133         /*|\\*)
134                 ldap_subdir="$withval"
135                 ;;
136         *)
137                 ldap_subdir="/$withval"
138                 ;;
139 esac
140 ])dnl
141
142 AC_SUBST(ldap_subdir)dnl
143
144 dnl ----------------------------------------------------------------
145 dnl General "enable" options
146 OL_ARG_ENABLE(debug,[  --enable-debug     enable debugging], yes)dnl
147 OL_ARG_ENABLE(dynamic,[  --enable-dynamic         enable linking built binaries with dynamic libs], no)dnl
148 OL_ARG_ENABLE(syslog,[  --enable-syslog   enable syslog support], auto)dnl
149 OL_ARG_ENABLE(proctitle,[  --enable-proctitle     enable proctitle support], yes)dnl
150 dnl OL_ARG_ENABLE(referrals,[  --enable-referrals         enable LDAPv2+ Referrals (experimental)], no)dnl
151 ol_enable_referrals=${ol_enable_referrals-no}
152 dnl OL_ARG_ENABLE(kbind,[  --enable-kbind         enable LDAPv2+ Kerberos IV bind (deprecated)], no)dnl
153 ol_enable_kbind=${ol_enable_kbind-no}
154 OL_ARG_ENABLE(ipv6,[  --enable-ipv6       enable IPv6 support], auto)dnl
155 OL_ARG_ENABLE(local,[  --enable-local     enable AF_LOCAL (AF_UNIX) socket support], auto)dnl
156
157 dnl ----------------------------------------------------------------
158 dnl General "with" options
159 dnl OL_ARG_ENABLE(dmalloc,[  --enable-dmalloc     enable debug malloc support], no)dnl
160
161 OL_ARG_WITH(cyrus_sasl,[  --with-cyrus-sasl       with Cyrus SASL support],
162         auto, [auto yes no] )
163 OL_ARG_WITH(fetch,[  --with-fetch                 with fetch(3) URL support],
164         auto, [auto yes no] )
165 dnl     OL_ARG_WITH(kerberos,[  --with-kerberos   with Kerberos support],
166 dnl             auto, [auto k5 k5only k425 kth k4 afs yes no])
167 ol_with_kerberos=${ol_with_kerberos-auto}
168 OL_ARG_WITH(threads,[  --with-threads     with threads],
169         auto, [auto nt posix mach pth lwp yes no manual] )
170 OL_ARG_WITH(tls,[  --with-tls             with TLS/SSL support],
171         auto, [auto ssleay openssl yes no] )
172 OL_ARG_WITH(yielding_select,[  --with-yielding-select  with implicitly yielding select],
173         auto, [auto yes no manual] )
174
175 dnl ----------------------------------------------------------------
176 dnl Server options
177 dnl ----------------------------------------------------------------
178
179 dnl ----------------------------------------------------------------
180 dnl SLAPD OPTIONS
181 AC_ARG_WITH(xxslapdoptions,[
182 SLAPD (Standalone LDAP Daemon) Options:])
183 OL_ARG_ENABLE(slapd,[  --enable-slapd     enable building slapd], yes)dnl
184 OL_ARG_ENABLE(aci,[    --enable-aci       enable per-object ACIs (experimental)], no)dnl
185 OL_ARG_ENABLE(cleartext,[    --enable-cleartext   enable cleartext passwords], yes)dnl
186 OL_ARG_ENABLE(crypt,[    --enable-crypt   enable crypt(3) passwords], no)dnl
187 OL_ARG_ENABLE(lmpasswd,[    --enable-lmpasswd     enable LAN Manager passwords], no)dnl
188 OL_ARG_ENABLE(spasswd,[    --enable-spasswd       enable (Cyrus) SASL password verification], no)dnl
189 OL_ARG_ENABLE(modules,[    --enable-modules       enable dynamic module support], no)dnl
190 dnl OL_ARG_ENABLE(multimaster,[    --enable-multimaster  enable multimaster replication], no)dnl
191 ol_enable_multimaster=${ol_enable_multimaster-no}
192 OL_ARG_ENABLE(rewrite,[    --enable-rewrite       enable DN rewriting in back-ldap and the rwm overlay], auto)dnl
193 OL_ARG_ENABLE(rlookups,[    --enable-rlookups     enable reverse lookups of client hostnames], no)dnl
194 OL_ARG_ENABLE(slapi,[    --enable-slapi        enable SLAPI support (experimental)], no)dnl
195 OL_ARG_ENABLE(slp,[    --enable-slp          enable SLPv2 support], no)dnl     
196 OL_ARG_ENABLE(wrappers,[    --enable-wrappers     enable tcp wrapper support], no)dnl
197
198 dnl ----------------------------------------------------------------
199 dnl SLAPD Backend Options
200 Backends="bdb dnssrv hdb ldap ldbm meta monitor null \
201         passwd perl relay shell sql"
202
203 AC_ARG_WITH(xxslapbackends,[
204 SLAPD Backend Options:])
205
206 OL_ARG_ENABLE(backends,[    --enable-backends     enable all available backends no|yes|mod],
207         no, [no yes mod])dnl
208 OL_ARG_ENABLE(bdb,[    --enable-bdb       enable Berkeley DB backend no|yes|mod],
209         yes, [no yes mod])dnl
210 OL_ARG_ENABLE(dnssrv,[    --enable-dnssrv         enable dnssrv backend no|yes|mod],
211         no, [no yes mod])dnl
212 OL_ARG_ENABLE(hdb,[    --enable-hdb       enable Hierarchical DB backend no|yes|mod],
213         no, [no yes mod])dnl
214 OL_ARG_ENABLE(ldap,[    --enable-ldap     enable ldap backend no|yes|mod],
215         no, [no yes mod])dnl
216 OL_ARG_ENABLE(ldbm,[    --enable-ldbm     enable ldbm backend no|yes|mod], no,
217         [no yes mod])dnl
218 OL_ARG_WITH(ldbm_api,[      --with-ldbm-api     with LDBM API auto|berkeley|bcompat|mdbm|gdbm],
219         auto, [auto berkeley bcompat mdbm gdbm])
220 OL_ARG_WITH(ldbm_type,[      --with-ldbm-type     use LDBM type auto|btree|hash],
221         auto, [auto btree hash])
222 OL_ARG_ENABLE(meta,[    --enable-meta     enable metadirectory backend no|yes|mod],
223         no, [no yes mod])dnl
224 OL_ARG_ENABLE(monitor,[    --enable-monitor       enable monitor backend no|yes|mod],
225         yes, [no yes mod])dnl
226 OL_ARG_ENABLE(null,[    --enable-null     enable null backend no|yes|mod],
227         no, [no yes mod])dnl
228 OL_ARG_ENABLE(passwd,[    --enable-passwd         enable passwd backend no|yes|mod],
229         no, [no yes mod])dnl
230 OL_ARG_ENABLE(perl,[    --enable-perl     enable perl backend no|yes|mod],
231         no, [no yes mod])dnl
232 OL_ARG_ENABLE(relay,[    --enable-relay           enable relay backend no|yes|mod],
233         yes, [no yes mod])dnl
234 OL_ARG_ENABLE(shell,[    --enable-shell   enable shell backend no|yes|mod],
235         no, [no yes mod])dnl
236 OL_ARG_ENABLE(sql,[    --enable-sql       enable sql backend no|yes|mod],
237         no, [no yes mod])dnl
238
239 dnl ----------------------------------------------------------------
240 dnl SLAPD Overlay Options
241 Overlays="chain denyop dyngroup lastmod ppolicy proxycache rwm \
242         refint unique"
243
244 AC_ARG_WITH(xxslapoverlays,[
245 SLAPD Overlay Options:])
246
247 OL_ARG_ENABLE(overlays,[    --enable-overlays     enable all available overlays no|yes|mod],
248         no, [no yes mod])dnl
249 OL_ARG_ENABLE(chain,[    --enable-chain           LDAP Chain Response no|yes|mod],
250         no, [no yes mod])
251 OL_ARG_ENABLE(denyop,[    --enable-denyop         Deny Operation overlay no|yes|mod],
252         no, [no yes mod])
253 OL_ARG_ENABLE(dyngroup,[    --enable-dyngroup     Dynamic Group overlay no|yes|mod],
254         no, [no yes mod])
255 OL_ARG_ENABLE(lastmod,[    --enable-lastmod       Last Modification overlay no|yes|mod],
256         no, [no yes mod])
257 OL_ARG_ENABLE(ppolicy,[    --enable-ppolicy       Password Policy overlay no|yes|mod],
258         no, [no yes mod])
259 OL_ARG_ENABLE(proxycache,[    --enable-proxycache         Proxy Cache overlay no|yes|mod],
260         no, [no yes mod])
261 OL_ARG_ENABLE(refint,[    --enable-refint         Referential Integrity overlay no|yes|mod],
262         no, [no yes mod])
263 OL_ARG_ENABLE(rwm,[    --enable-rwm               Rewrite/Remap overlay no|yes|mod],
264         no, [no yes mod])
265 OL_ARG_ENABLE(unique,[    --enable-unique       Attribute Uniqueness overlay no|yes|mod],
266         no, [no yes mod])
267
268
269 dnl ----------------------------------------------------------------
270 dnl SLURPD OPTIONS
271 AC_ARG_WITH(xxslurpdoptions,[
272 SLURPD (Replication Daemon) Options:])
273 OL_ARG_ENABLE(slurpd,[  --enable-slurpd   enable building slurpd], auto)dnl
274
275 dnl ----------------------------------------------------------------
276 AC_ARG_WITH(xxliboptions,[
277 Library Generation & Linking Options])
278 AC_ENABLE_STATIC
279 AC_ENABLE_SHARED
280
281 dnl ----------------------------------------------------------------
282
283 dnl General "enable" options
284 # Activate any backends that were not explicitly enabled.
285 # Note that back_bdb defaults to "yes" so this loop won't touch it.
286 if test $ol_enable_backends != no ; then
287         for i in $Backends; do
288                 eval "ol_tmp=\$ol_enable_$i"
289                 if test $ol_tmp = no ; then
290                         eval "ol_enable_$i=$ol_enable_backends"
291                 fi
292         done
293 fi
294 # Activate the overlays
295 if test $ol_enable_overlays != no ; then
296         for i in $Overlays; do
297                 eval "ol_tmp=\$ol_enable_$i"
298                 if test $ol_tmp = no ; then
299                         eval "ol_enable_$i=$ol_enable_overlays"
300                 fi
301         done
302 fi
303
304 # validate options
305 if test $ol_enable_slapd = no ; then
306         dnl SLAPD was specificallly disabled
307         if test $ol_enable_slapi = yes ; then
308                 AC_MSG_WARN([slapd disabled, ignoring --enable-slapi argument])
309         fi
310         if test $ol_enable_backends != no ; then
311                 AC_MSG_WARN([slapd disabled, ignoring --enable-backends argument])
312         fi
313         for i in $Backends; do
314                 eval "ol_tmp=\$ol_enable_$i"
315                 if test $ol_tmp != no ; then
316                         AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
317                         eval "ol_enable_$i=no"
318                 fi
319         done
320         if test $ol_enable_modules = yes ; then
321                 AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
322         fi
323         if test $ol_enable_multimaster = yes ; then
324                 AC_MSG_WARN([slapd disabled, ignoring --enable-multimaster argument])
325         fi
326         if test $ol_enable_wrappers = yes ; then
327                 AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
328         fi
329         if test $ol_enable_rlookups = yes ; then
330                 AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
331         fi
332         if test $ol_enable_aci = yes ; then
333                 AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
334         fi
335         if test $ol_with_ldbm_api != auto ; then
336                 AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-api argument])
337         fi
338         if test $ol_with_ldbm_type != auto ; then
339                 AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-type argument])
340         fi
341         if test $ol_enable_slurpd = yes ; then
342                 AC_MSG_ERROR([slurpd requires slapd])
343         fi
344         if test $ol_enable_rewrite = yes ; then
345                 AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
346         fi
347         dnl overlays
348         if test $ol_enable_overlays != no ; then
349                 AC_MSG_WARN([slapd disabled, ignoring --enable-overlays argument])
350         fi
351         for i in $Overlays; do
352                 eval "ol_tmp=\$ol_enable_$i"
353                 if test $ol_tmp != no ; then
354                         AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
355                         eval "ol_enable_$i=no"
356                 fi
357         done
358
359         # force settings to no
360         ol_enable_slapi=no
361
362         ol_enable_backends=no
363         ol_enable_overlays=no
364         ol_enable_modules=no
365         ol_enable_multimaster=no
366         ol_enable_rlookups=no
367         ol_enable_aci=no
368         ol_enable_wrappers=no
369
370         ol_with_ldbm_api=no
371         ol_with_ldbm_type=no
372
373         ol_enable_slurpd=no
374
375         ol_enable_rewrite=no
376
377 elif test $ol_enable_ldbm = no ; then
378         dnl SLAPD without LDBM
379
380         if test $ol_with_ldbm_api != auto ; then
381                 AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-api argument])
382         fi
383
384         if test $ol_with_ldbm_type != auto ; then
385                 AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-type argument])
386         fi
387
388         if test $ol_enable_modules != yes -a \
389                 $ol_enable_bdb = no -a \
390                 $ol_enable_dnssrv = no -a \
391                 $ol_enable_hdb = no -a \
392                 $ol_enable_ldap = no -a \
393                 $ol_enable_meta = no -a \
394                 $ol_enable_monitor = no -a \
395                 $ol_enable_null = no -a \
396                 $ol_enable_passwd = no -a \
397                 $ol_enable_perl = no -a \
398                 $ol_enable_relay = no -a \
399                 $ol_enable_shell = no -a \
400                 $ol_enable_sql = no ; then
401
402                 if test $ol_enable_slapd = yes ; then
403                         AC_MSG_ERROR([slapd requires a backend])
404                 else
405                         AC_MSG_WARN([skipping slapd, no backend specified])
406                         ol_enable_slapd=no
407                 fi
408         fi
409
410         ol_with_ldbm_api=no
411         ol_with_ldbm_type=no
412
413         if test $ol_enable_bdb != no -o $ol_enable_hdb != no; then
414                 ol_with_ldbm_api=berkeley
415         fi
416
417 else
418         dnl SLAPD with LDBM
419         if test $ol_with_ldbm_api = gdbm -a \
420                 $ol_with_ldbm_type = btree ; then
421                 AC_MSG_ERROR([GDBM only supports LDBM type hash])
422         fi
423         if test $ol_with_ldbm_api = mdbm -a \
424                 $ol_with_ldbm_type = btree ; then
425                 AC_MSG_ERROR([MDBM only supports LDBM type hash])
426         fi
427         if test $ol_with_ldbm_api = ndbm -a \
428                 $ol_with_ldbm_type = btree ; then
429                 AC_MSG_ERROR([NDBM only supports LDBM type hash])
430         fi
431
432         if test $ol_enable_bdb != no -o $ol_enable_hdb != no ; then
433                 if test $ol_with_ldbm_api = auto ; then
434                         ol_with_ldbm_api=berkeley
435                 elif test $ol_with_ldbm_api != berkeley ; then
436                         AC_MSG_ERROR([LDBM API not compatible with BDB/HDB])
437                 fi
438         fi
439 fi
440
441 if test $ol_enable_chain != no -a $ol_enable_ldap = no ; then
442         AC_MSG_ERROR([--enable-chain requires --enable-ldap])
443 fi
444
445 if test $ol_enable_meta = yes -a $ol_enable_ldap = no ; then
446         AC_MSG_ERROR([--enable-meta requires --enable-ldap])
447 fi
448
449 if test $ol_enable_slurpd = yes ; then
450         dnl SLURPD was specifically enabled
451         if test $ol_with_threads = no ; then
452                 AC_MSG_ERROR([slurpd requires threads])
453         fi
454 fi
455
456 if test $ol_enable_lmpasswd = yes ; then
457         if test $ol_with_tls = no ; then
458                 AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
459         fi
460 fi
461
462 if test $ol_enable_kbind = yes ; then
463         if test $ol_with_kerberos = no ; then
464                 AC_MSG_ERROR([options require --with-kerberos])
465         elif test $ol_with_kerberos = auto ; then
466                 ol_with_kerberos=yes
467         fi
468
469 elif test $ol_enable_kbind = no ; then
470         if test $ol_with_kerberos = auto ; then
471                 ol_with_kerberos=no
472         elif test $ol_with_kerberos != no ; then
473                 AC_MSG_WARN([Kerberos detection enabled unnecessarily]);
474                 ol_with_kerberos=no
475         fi
476 fi
477
478 if test $ol_enable_spasswd = yes ; then
479         if test $ol_with_cyrus_sasl = no ; then
480                 AC_MSG_ERROR([options require --with-cyrus-sasl])
481         fi
482         ol_with_cyrus_sasl=yes
483 fi
484
485 AC_MSG_RESULT(done)
486
487 dnl ----------------------------------------------------------------
488 dnl Initialize vars
489 LDAP_LIBS=
490 LDBM_LIBS=
491 LTHREAD_LIBS=
492 LUTIL_LIBS=
493
494 SLAPD_LIBS=
495 SLURPD_LIBS=
496
497 BUILD_SLAPD=no
498 BUILD_SLURPD=no
499
500 BUILD_THREAD=no
501
502 BUILD_SLAPI=no
503 SLAPD_SLAPI_DEPEND=
504
505 BUILD_BDB=no
506 BUILD_DNSSRV=no
507 BUILD_HDB=no
508 BUILD_LDAP=no
509 BUILD_LDBM=no
510 BUILD_META=no
511 BUILD_MONITOR=no
512 BUILD_NULL=no
513 BUILD_PASSWD=no
514 BUILD_PERL=no
515 BUILD_RELAY=no
516 BUILD_SHELL=no
517 BUILD_SQL=no
518
519 BUILD_CHAIN=no
520 BUILD_DENYOP=no
521 BUILD_DYNGROUP=no
522 BUILD_LASTMOD=no
523 BUILD_PPOLICY=no
524 BUILD_PROXYCACHE=no
525 BUILD_REFINT=no
526 BUILD_RWM=no
527 BUILD_UNIQUE=no
528
529 SLAPD_DYNAMIC_OVERLAYS=
530
531 SLAPD_MODULES_LDFLAGS=
532 SLAPD_MODULES_CPPFLAGS=
533
534 SLAPD_STATIC_BACKENDS=
535 SLAPD_DYNAMIC_BACKENDS=
536
537 SLAPD_PERL_LDFLAGS=
538 MOD_PERL_LDFLAGS=
539 PERL_CPPFLAGS=
540
541 SLAPD_SQL_LDFLAGS=
542 SLAPD_SQL_LIBS=
543 SLAPD_SQL_INCLUDES=
544
545 KRB4_LIBS=
546 KRB5_LIBS=
547 SASL_LIBS=
548 TLS_LIBS=
549 MODULES_LIBS=
550 SLAPI_LIBS=
551 LIBSLAPI=
552 LIBSLAPITOOLS=
553 AUTH_LIBS=
554
555 SLAPD_SLP_LIBS=
556
557 dnl ================================================================
558 dnl Checks for programs
559
560 AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
561
562 dnl ----------------------------------------------------------------
563 dnl
564 dnl Determine which C translator to use
565 dnl
566
567 dnl AIX Thread requires we use cc_r or xlc_r.
568 dnl But only do this IF AIX and CC is not set
569 dnl and threads are auto|yes|posix.
570 dnl
571 dnl If we find cc_r|xlc_r, force pthreads and assume
572 dnl             pthread_create is in $LIBS (ie: don't bring in
573 dnl             any additional thread libraries)
574 dnl If we do not find cc_r|xlc_r, disable threads
575
576 ol_aix_threads=no
577 case "$target" in
578 *-*-aix*) dnl all AIX is not a good idea.
579         if test -z "$CC" ; then
580                 case "$ol_with_threads" in
581                 auto | yes |  posix) ol_aix_threads=yes ;;
582                 esac
583         fi
584 ;;
585 esac
586
587 if test $ol_aix_threads = yes ; then
588         if test -z "${CC}" ; then
589                 AC_CHECK_PROGS(CC,cc_r xlc_r cc)
590
591                 if test "$CC" = cc ; then
592                         dnl no CC! don't allow --with-threads
593                         if test $ol_with_threads != auto ; then
594                                 AC_MSG_ERROR([--with-threads requires cc_r (or other suitable compiler) on AIX])
595                         else
596                                 AC_MSG_WARN([disabling threads, no cc_r on AIX])
597                         fi
598                         ol_with_threads=no
599                 fi
600         fi
601
602         if test "${CC}" = "cc_r" -o "${CC}" = "xlc_r" ; then
603                 ol_with_threads=posix
604                 ol_cv_pthread_create=yes
605         fi
606 fi
607
608 if test -z "${CC}"; then
609         AC_CHECK_PROGS(CC,cc gcc,missing)
610
611         if test "${CC}" = "missing" ; then
612                 AC_MSG_ERROR([Unable to locate cc(1) or suitable replacement.  Check PATH or set CC.])
613         fi
614 fi
615
616 if test -z "${AR}"; then
617         AC_CHECK_PROGS(AR,ar gar,missing)
618
619         if test "${AR}" = "missing" ; then
620                 AC_MSG_ERROR([Unable to locate ar(1) or suitable replacement.  Check PATH or set AR.])
621         fi
622 fi
623
624 AC_LIBTOOL_WIN32_DLL
625 AC_LIBTOOL_DLOPEN
626 AC_PROG_LIBTOOL
627
628 dnl ----------------------------------------------------------------
629 dnl Perl
630 ol_link_perl=no
631 if test $ol_enable_perl != no ; then
632         AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)
633
634         if test "no$PERLBIN" = "no" ; then
635                 if test $ol_enable_perl = yes ; then
636                         AC_MSG_ERROR([could not locate perl])
637                 fi
638
639         else
640                 PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
641                 PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e 's/ -lc / /' -e 's/ -lc$//'`"
642
643                 if test x"$ol_enable_perl" = "xyes" ; then
644                         SLAPD_PERL_LDFLAGS="$PERL_LDFLAGS"
645                 else
646                         MOD_PERL_LDFLAGS="$PERL_LDFLAGS"
647                 fi
648                 dnl should check perl version
649                 ol_link_perl=yes
650         fi
651 fi
652
653 AC_PROG_CPP
654
655 dnl ----------------------------------------------------------------
656 dnl Checks for UNIX Variants
657 dnl AC_AIX
658 dnl AC_ISC_POSIX
659 dnl AC_MINIX
660
661 dnl ----------------------------------------------------------------
662 dnl Checks for system services
663 AC_CYGWIN
664 AC_MINGW32
665 AC_EXEEXT
666 AC_OBJEXT
667
668 AC_DEFINE_UNQUOTED(EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
669
670 dnl ----------------------------------------------------------------
671 dnl BeOS requires -lbe -lroot -lnet
672 AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])
673
674 dnl ----------------------------------------------------------------
675 dnl OpenLDAP requires STDC features
676 AM_PROG_CC_STDC
677 if test "X${am_cv_prog_cc_stdc}" = "Xno" ; then
678         AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
679 fi
680
681 dnl ----------------------------------------------------------------
682 dnl Check cc depend flags
683 OL_MKDEPEND
684 if test "${ol_cv_mkdep}" = no ; then
685         # this will soon become an error
686         AC_MSG_WARN([do not know how to generate dependencies])
687 fi
688
689 dnl ----------------------------------------------------------------
690 dnl Check for AIX security library
691 AC_CHECK_LIB(s, afopen, [
692         AUTH_LIBS=-ls
693         AC_DEFINE(HAVE_AIX_SECURITY,1,[define if you have AIX security lib])
694 ])
695
696 dnl ----------------------------------------------------------------
697 dnl Check for IBM OS/390
698 case "$target" in
699 *-ibm-openedition)
700         ac_cv_func_getopt=no
701         AC_DEFINE(BOTH_STRINGS_H,1,[define to use both <string.h> and <strings.h>])
702         ;;
703 esac
704
705 dnl ----------------------------------------------------------------
706 dnl Check for module support
707 ol_link_modules=no
708 if test $ol_enable_modules != no ; then
709         AC_CHECK_HEADERS(ltdl.h)
710
711         if test $ac_cv_header_ltdl_h = no ; then
712                 AC_MSG_ERROR([could not locate libtool ltdl.h])
713         fi
714
715         AC_CHECK_LIB(ltdl, lt_dlinit, [
716                 MODULES_LIBS=-lltdl
717                 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
718         ])
719
720         if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then
721                 AC_MSG_ERROR([could not locate libtool -lltdl])
722         fi
723         ol_link_modules=yes
724
725 else
726         for i in $Backends; do
727                 eval "ol_tmp=\$ol_enable_$i"
728                 if test $ol_tmp = mod ; then
729                         AC_MSG_WARN([building static $i backend])
730                         eval "ol_enable_$i=yes"
731                 fi
732         done
733         for i in $Overlays; do
734                 eval "ol_tmp=\$ol_enable_$i"
735                 if test $ol_tmp = mod ; then
736                         AC_MSG_WARN([building static $i overlay])
737                         eval "ol_enable_$i=yes"
738                 fi
739         done
740 fi
741
742 dnl ----------------------------------------------------------------
743 dnl Checks for header files.
744 OL_HEADER_STDC
745
746 if test $ol_cv_header_stdc != yes; then
747         AC_MSG_WARN([could not locate Standard C compliant headers])
748 fi
749
750 AC_HEADER_DIRENT
751 AC_HEADER_SYS_WAIT
752 AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
753 if test $am_cv_sys_posix_termios = yes ; then
754         AC_DEFINE(HAVE_POSIX_TERMIOS,1,
755                 [define if you have POSIX termios])
756 fi
757
758 AC_CHECK_HEADERS(       \
759         arpa/inet.h             \
760         arpa/nameser.h  \
761         assert.h                \
762         bits/types.h    \
763         conio.h                 \
764         crypt.h                 \
765         direct.h                \
766         errno.h                 \
767         fcntl.h                 \
768         filio.h                 \
769         getopt.h                \
770         grp.h                   \
771         io.h                    \
772         libutil.h               \
773         limits.h                \
774         locale.h                \
775         netinet/tcp.h   \
776         malloc.h                \
777         memory.h                \
778         psap.h                  \
779         pwd.h                   \
780         process.h               \
781         resolv.h                \
782         sgtty.h                 \
783         shadow.h                \
784         stddef.h                \
785         string.h                \
786         strings.h               \
787         sysexits.h              \
788         sys/file.h              \
789         sys/filio.h             \
790         sys/errno.h             \
791         sys/ioctl.h             \
792         sys/param.h             \
793         sys/resource.h  \
794         sys/select.h    \
795         sys/socket.h    \
796         sys/stat.h              \
797         sys/syslog.h    \
798         sys/time.h              \
799         sys/types.h             \
800         sys/ucred.h             \
801         sys/uio.h               \
802         syslog.h                \
803         termios.h               \
804         unistd.h                \
805         winsock.h               \
806         winsock2.h              \
807 )
808
809
810 dnl ----------------------------------------------------------------
811 dnl Checks for libraries
812
813 dnl HP-UX requires -lV3
814 dnl this is not needed on newer versions of HP-UX
815 AC_CHECK_LIB(V3, sigset)
816
817 dnl The following is INTENTIONALLY scripted out because shell does not
818 dnl support variable names with the '@' character, which is what
819 dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
820 if test "$ac_cv_header_winsock_h" = yes; then
821 AC_CACHE_CHECK([for winsock], [ol_cv_winsock],
822 save_LIBS="$LIBS"
823 for curlib in ws2_32 wsock32; do
824         LIBS="$LIBS -l$curlib"
825         AC_TRY_LINK([#include <winsock.h>
826                         ],
827                         [
828                         socket(0,0,0);
829                         select(0,NULL,NULL,NULL,NULL);
830                         closesocket(0);
831                         gethostname(NULL,0);
832                         ],
833                         ol_cv_winsock=yes, ol_cv_winsock=no)
834
835         if test $ol_cv_winsock = yes; then
836                 AC_DEFINE(HAVE_WINSOCK, 1, [define if you have winsock])
837                 ac_cv_func_socket=yes
838                 ac_cv_func_select=yes
839                 ac_cv_func_closesocket=yes
840                 ac_cv_func_gethostname=yes
841                 if test $curlib = ws2_32; then
842                         ol_cv_winsock=winsock2
843                         AC_DEFINE(HAVE_WINSOCK2, 1,
844                                   [define if you have winsock2])
845                 fi
846                 break
847         fi
848         LIBS="$save_LIBS"
849 done)
850 fi
851
852 dnl Find socket()
853 dnl Likely combinations:
854 dnl             -lsocket [ -lnsl_s | -lnsl ]
855 dnl             -linet
856
857 AC_CHECK_FUNC(socket, :, [      
858 dnl hopefully we won't include too many libraries
859         AC_CHECK_LIB(socket, main)
860         AC_CHECK_LIB(net, main)
861         AC_CHECK_LIB(nsl_s, main)
862         AC_CHECK_LIB(nsl, main)
863         AC_CHECK_LIB(inet, socket)
864         AC_CHECK_LIB(gen, main)
865 ])
866
867 dnl require select
868 AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
869
870 if test "${ac_cv_header_winsock_h}" != yes; then
871         dnl Select arg types
872         dnl (if this detection becomes permenent, it and the select() detection
873         dnl should be done before the yielding select test) 
874         AC_FUNC_SELECT_ARGTYPES
875 fi
876
877 dnl check to see if system call automatically restart
878 dnl AC_SYS_RESTARTABLE_SYSCALLS
879
880 dnl ----------------------------------------------------------------
881 # strerror checks
882 OL_STRERROR
883
884 dnl ----------------------------------------------------------------
885 dnl require POSIX regex
886 AC_CHECK_HEADERS( regex.h )
887 if test "$ac_cv_header_regex_h" != yes ; then
888         AC_MSG_ERROR([POSIX regex.h required.])
889 fi
890 AC_SEARCH_LIBS(regfree, [regex gnuregex],
891         :, AC_MSG_ERROR([POSIX regex required.]))
892
893 OL_POSIX_REGEX
894 if test "$ol_cv_c_posix_regex" = no ; then
895         AC_MSG_ERROR([broken POSIX regex!])
896 fi
897
898 dnl ----------------------------------------------------------------
899 dnl UUID Support
900
901 have_uuid=no
902 AC_CHECK_HEADERS(sys/uuid.h)
903 if test $ac_cv_header_sys_uuid_h = yes ; then
904         save_LIBS="$LIBS"
905         AC_SEARCH_LIBS(uuid_to_str, uuid, [have_uuid=yes], :)
906         LIBS="$save_LIBS"
907
908         if test have_uuid = yes ; then
909                 AC_DEFINE(HAVE_UUID_TO_STR,1,
910                         [define if you have uuid_to_str()])
911
912                 test "$ac_cv_search_uuid_to_str" = "none required" || \
913                         SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_to_str"
914         fi
915 fi
916
917 dnl For windows, check for the need of RPCRT for UUID function support
918 if test $have_uuid = no ; then
919         AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
920         save_LIBS="$LIBS"
921         LIBS="$LIBS -lrpcrt4"
922         AC_TRY_LINK([
923                 int __stdcall UuidCreate(void *);
924                 int __stdcall UuidToStringA(void *,void **);
925                 ],
926                 [
927                 UuidCreate(0);
928                 UuidToStringA(0,0);
929                 ],
930                 need_rpcrt=yes, need_rpcrt=no)
931         if test $need_rpcrt = yes; then
932                 SLAPD_LIBS="$SLAPD_LIBS -lrpcrt4"
933         fi
934         LIBS="$save_LIBS"
935         AC_MSG_RESULT($need_rpcrt)
936 fi
937
938 dnl ----------------------------------------------------------------
939 dnl Check for resolver routines
940 dnl       need to check for both res_query and __res_query
941 dnl   need to check -lc, -lbind, and -lresolv
942 ol_link_dnssrv=no
943 AC_CHECK_FUNC(res_query,:)
944 if test $ac_cv_func_res_query = no ; then 
945         AC_CHECK_FUNC(__res_query,:)
946         ac_cv_func_res_query=$ac_cv_func___res_query
947 fi
948
949 if test $ac_cv_func_res_query = no ; then 
950         AC_CHECK_LIB(bind, res_query)
951         ac_cv_func_res_query=$ac_cv_lib_bind_res_query
952 fi
953
954 if test $ac_cv_func_res_query = no ; then 
955         AC_CHECK_LIB(bind, __res_query)
956         ac_cv_func_res_query=$ac_cv_lib_bind___res_query
957 fi
958
959 if test $ac_cv_func_res_query = no ; then 
960         AC_CHECK_LIB(resolv, res_query)
961         ac_cv_func_res_query=$ac_cv_lib_resolv_res_query
962 fi
963
964 if test $ac_cv_func_res_query = no ; then 
965         AC_CHECK_LIB(resolv, __res_query)
966         ac_cv_func_res_query=$ac_cv_lib_resolv___res_query
967 fi
968
969 if test $ac_cv_func_res_query = no ; then 
970         AC_CHECK_LIB(resolv, _res_9_query)
971         ac_cv_func_res_query=$ac_cv_lib_resolv_res_9_query
972 fi
973
974 if test "$ac_cv_func_res_query" = yes ; then
975         AC_DEFINE(HAVE_RES_QUERY,1,
976                 [define if you have res_query()])
977
978         if test $ol_enable_dnssrv != no ; then
979                 ol_link_dnssrv=yes
980         fi
981 fi
982
983 if test "$ol_enable_dnssrv" != no -a "$ol_link_dnssrv" = no ; then
984         AC_MSG_ERROR([DNSSRV requires res_query()])
985 fi
986
987 AC_CHECK_FUNCS( hstrerror )
988
989 dnl ----------------------------------------------------------------
990 dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
991 dnl PF_LOCAL may use getaddrinfo in available
992 AC_CHECK_FUNCS( getaddrinfo getnameinfo gai_strerror inet_ntop )
993
994 ol_link_ipv6=no
995 if test $ac_cv_func_getaddrinfo = no -o $ac_cv_func_inet_ntop = no ; then
996         if test $ol_enable_ipv6 = yes ; then
997                 AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
998         fi
999 elif test $ol_enable_ipv6 != no ; then
1000         AC_CACHE_CHECK([INET6_ADDRSTRLEN],[ol_cv_inet6_addrstrlen],[
1001                 AC_EGREP_CPP(__has_inet6_addrstrlen__,[
1002 #                       include <netinet/in.h>
1003 #                       ifdef INET6_ADDRSTRLEN
1004                                 __has_inet6_addrstrlen__;
1005 #                       endif
1006                 ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])])
1007
1008
1009         AC_CACHE_CHECK([struct sockaddr_storage],ol_cv_struct_sockaddr_storage,[
1010                 AC_TRY_COMPILE([
1011 #include <sys/types.h>
1012 #include <sys/socket.h>
1013 ],[
1014                         struct sockaddr_storage ss;
1015 ],                      [ol_cv_struct_sockaddr_storage=yes],
1016                         [ol_cv_struct_sockaddr_storage=no])])
1017
1018         if test $ol_cv_inet6_addrstrlen = yes \
1019                 -a $ol_cv_struct_sockaddr_storage = yes ; then
1020                 ol_link_ipv6=yes
1021         elif test $ol_enable_ipv6 = yes \
1022                         -a $ol_cv_inet6_addrstrlen = no ; then
1023                 AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
1024         elif test $ol_enable_ipv6 = yes \
1025                         -a $ol_cv_struct_sockaddr_storage = no ; then
1026                 AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage])
1027         fi
1028 fi
1029
1030 if test $ol_enable_local != no ; then
1031         AC_CHECK_HEADERS( sys/un.h )
1032
1033         if test $ol_enable_local = auto ; then
1034                 ol_enable_local=$ac_cv_header_sys_un_h
1035         elif test $ac_cv_header_sys_un_h = no ; then
1036                 AC_MSG_ERROR([AF_LOCAL domain support requires sys/un.h])
1037         fi
1038 fi
1039
1040 dnl ----------------------------------------------------------------
1041 dnl Kerberos
1042 ol_link_kbind=no
1043 ol_link_krb5=no
1044 ol_link_krb4=no
1045
1046 if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
1047         -o $ol_with_kerberos = k5 -o $ol_with_kerberos = k5only \
1048         -o $ol_with_kerberos = k425 ; then
1049
1050         AC_CHECK_HEADERS(krb5.h)
1051
1052         if test $ac_cv_header_krb5_h = yes ; then
1053                 dnl lazy check for Heimdal Kerberos
1054                 AC_CHECK_HEADERS(heim_err.h)
1055                 if test $ac_cv_header_heim_err_h = yes ; then
1056                         krb5_impl=heimdal
1057                 else
1058                         krb5_impl=mit
1059                 fi
1060
1061                 if test $krb5_impl = mit; then
1062                         AC_CHECK_LIB(k5crypto, main,
1063                                 [krb5crypto=k5crypto],
1064                                 [krb5crypto=crypto])
1065
1066                         AC_CHECK_LIB(krb5, main,
1067                                 [have_krb5=yes
1068                                 KRB5_LIBS="-lkrb5 -l$krb5crypto -lcom_err"],
1069                                 [have_krb5=no],
1070                                 [-l$krb5crypto -lcom_err])
1071
1072                 elif test $krb5_impl = heimdal; then
1073                         AC_CHECK_LIB(des, main,
1074                                 [krb5crypto=des],
1075                                 [krb5crypto=crypto])
1076
1077                         AC_CHECK_LIB(krb5, main,
1078                                 [have_krb5=yes
1079                                 KRB5_LIBS="-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err"],
1080                                 [have_krb5=no],
1081                                 [-l$krb5crypto -lasn1 -lroken -lcom_err])
1082
1083                         AC_DEFINE(HAVE_HEIMDAL_KERBEROS, 1,
1084                                 [define if you have HEIMDAL Kerberos])
1085
1086                 else
1087                         have_krb5=no
1088                         AC_MSG_WARN([Unrecognized Kerberos5 Implementation])
1089                 fi
1090
1091                 if test $have_krb5 = yes ; then
1092                         ol_link_krb5=yes
1093
1094                         AC_DEFINE(HAVE_KRB5, 1,
1095                                 [define if you have Kerberos V])
1096
1097                         if test $ol_with_kerberos = k5only ; then
1098                                 ol_with_kerberos=found
1099                         fi
1100
1101                 elif test $ol_with_kerberos != auto ; then
1102                         AC_MSG_ERROR([Required Kerberos 5 support not available])
1103                 fi
1104
1105         fi
1106 fi
1107
1108 if test $ol_link_krb5 = yes -a \( $ol_with_kerberos = yes -o \
1109         $ol_with_kerberos = auto -o $ol_with_kerberos = k425 \) ; then
1110
1111         AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
1112
1113         if test $ac_cv_header_kerberosIV_krb_h = yes ; then
1114                 if test $krb5_impl = mit; then
1115                         AC_CHECK_LIB(krb4, main, [have_k425=yes
1116                                 KRB4_LIBS="-lkrb4 -ldes425"], [have_k425=no],
1117                                 [-ldes425 -lkrb5 -l$krb5crypto -lcom_err])
1118
1119                 elif test $krb5_impl = heimdal; then
1120                         AC_CHECK_LIB(krb4, main, [have_k425=yes
1121                                 KRB4_LIBS="-lkrb4"], [have_k425=no],
1122                                 [-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err])
1123
1124                 else
1125                         have_425=no
1126                         AC_MSG_WARN([Unrecongized Kerberos V Implementation])
1127                 fi
1128
1129                 if test $have_k425 = yes ; then
1130                         ol_with_kerberos=found
1131                         ol_link_krb4=yes
1132
1133                         AC_DEFINE(HAVE_KRB425, 1,
1134                                 [define if you have Kerberos V with IV support])
1135                         AC_DEFINE(HAVE_KRB4, 1,
1136                                 [define if you have Kerberos IV])
1137
1138                         AC_CACHE_CHECK([for des_debug in Kerberos libraries],
1139                                 [ol_cv_var_des_debug], [
1140                                 dnl save the flags
1141                                 save_LIBS="$LIBS"
1142                                 LIBS="$KRB4_LIBS $KRB5_LIBS $LIBS"
1143                                 AC_TRY_LINK([
1144 #include <kerberosIV/krb.h>
1145 #include <kerberosIV/des.h>
1146 extern int des_debug;
1147 ],[
1148 des_debug = 1;
1149 ],                              ol_cv_var_des_debug=yes, ol_cv_var_des_debug=no)
1150                                 dnl restore the LIBS
1151                                 LIBS="$save_LIBS"
1152                         ])
1153
1154                         if test $ol_cv_var_des_debug = yes ; then
1155                                 AC_DEFINE(HAVE_DES_DEBUG,1,
1156                                         [define if you have Kerberos des_debug])
1157                         fi
1158
1159                         LIBS="$save_LIBS"
1160                 fi
1161         fi
1162 fi
1163
1164 if test $ol_link_krb5 = yes ; then
1165         ol_with_kerberos=found
1166 fi
1167
1168 if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
1169         -o $ol_with_kerberos = k4 -o $ol_with_kerberos = kth ; then
1170
1171         AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
1172
1173         if test $ac_cv_header_krb_h = yes ; then
1174                 AC_CHECK_LIB(krb, main, [have_k4=yes], [have_k4=no], [-ldes])
1175
1176                 if test $have_k4 = yes ; then
1177                         ol_with_kerberos=found
1178                         ol_link_krb4=yes
1179
1180                         AC_DEFINE(HAVE_KRB4, 1,
1181                                 [define if you have Kerberos IV])
1182
1183                         KRB4_LIBS="-lkrb -ldes"
1184
1185                         if test $ac_cv_header_krb_archaeology_h = yes ; then
1186                                 AC_DEFINE(HAVE_KTH_KERBEROS, 1,
1187                                         [define if you have Kth Kerberos])
1188                         fi
1189                 fi
1190         fi
1191 fi
1192
1193 if test $ol_link_krb4 = yes -a $ol_enable_kbind != no ; then
1194         ol_link_kbind=yes
1195
1196 elif test $ol_enable_kbind = yes ; then
1197         AC_MSG_ERROR([Kerberos IV detection failed])
1198 fi
1199
1200 if test $ol_link_krb4 = yes -o $ol_link_krb5 = yes ; then
1201         AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
1202
1203 elif test $ol_with_kerberos != auto -a $ol_with_kerberos != no ; then
1204         AC_MSG_ERROR([Kerberos detection failed])
1205 fi
1206
1207 dnl ----------------------------------------------------------------
1208 dnl TLS/SSL
1209 ol_link_tls=no
1210 if test $ol_with_tls != no ; then
1211         AC_CHECK_HEADERS(openssl/ssl.h ssl.h)
1212         
1213         if test $ac_cv_header_openssl_ssl_h = yes \
1214                 -o $ac_cv_header_ssl_h = yes ; then
1215                 AC_CHECK_LIB(ssl, SSLeay_add_ssl_algorithms, 
1216                         [have_ssleay=yes
1217                         need_rsaref=no],
1218                         [have_ssleay=no],
1219                         [-lcrypto])
1220                         
1221                 if test $have_ssleay = no ; then
1222                         AC_CHECK_LIB(ssl, SSL_library_init,
1223                                 [have_ssleay=yes
1224                                 need_rsaref=no], [have_ssleay=no],
1225                                 [-lcrypto])
1226                 fi
1227
1228                 if test $have_ssleay = no ; then
1229                         AC_CHECK_LIB(ssl, ssl3_accept, 
1230                                 [have_ssleay=yes
1231                                 need_rsaref=yes], [have_ssleay=no],
1232                                 [-lcrypto -lRSAglue -lrsaref])
1233                 fi
1234
1235                 if test $have_ssleay = yes ; then
1236                         ol_with_tls=found
1237                         ol_link_tls=yes
1238
1239                         AC_DEFINE(HAVE_SSLEAY, 1, 
1240                                 [define if you have SSLeay or OpenSSL])
1241
1242                         if test $need_rsaref = yes; then
1243                                 AC_DEFINE(HAVE_RSAREF, 1, 
1244                                         [define if you have RSAref])
1245
1246                                 TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
1247                         else
1248                                 TLS_LIBS="-lssl -lcrypto"
1249                         fi
1250                 fi
1251         fi
1252
1253 else
1254         AC_WARN([TLS data protection not supported!])
1255 fi
1256
1257 WITH_TLS=no
1258 if test $ol_link_tls = yes ; then
1259         AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
1260         WITH_TLS=yes
1261
1262 elif test $ol_with_tls = auto ; then
1263         AC_WARN([Could not locate TLS/SSL package])
1264         AC_WARN([TLS data protection not supported!])
1265
1266 elif test $ol_with_tls != no ; then
1267         AC_ERROR([Could not locate TLS/SSL package])
1268 fi
1269
1270 dnl ----------------------------------------------------------------
1271 dnl LAN Manger password checking requires DES from OpenSSL
1272 if test $ol_enable_lmpasswd != no; then
1273         if test $ol_link_tls != yes ; then
1274                 AC_ERROR([LAN Manager passwords require OpenSSL])
1275         fi
1276
1277         AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
1278 fi
1279
1280 dnl ----------------------------------------------------------------
1281 dnl Threads?
1282 ol_link_threads=no
1283
1284 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1285         -o $ol_with_threads = nt ; then
1286
1287         OL_NT_THREADS
1288
1289         if test "$ol_cv_nt_threads" = yes ; then
1290                 ol_link_threads=nt
1291                 ol_with_threads=found
1292                 ol_with_yielding_select=yes
1293
1294                 AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager])
1295                 AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log])
1296         fi
1297
1298         if test $ol_with_threads = nt ; then
1299                 AC_MSG_ERROR([could not locate NT Threads])
1300         fi
1301 fi
1302
1303 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1304         -o $ol_with_threads = posix ; then
1305
1306         AC_CHECK_HEADERS(pthread.h)
1307
1308         if test $ac_cv_header_pthread_h = yes ; then
1309                 OL_POSIX_THREAD_VERSION
1310
1311                 if test $ol_cv_pthread_version != 0 ; then
1312                         AC_DEFINE_UNQUOTED(HAVE_PTHREADS,$ol_cv_pthread_version,
1313                                 [define to pthreads API spec revision])
1314                 else
1315                         AC_MSG_ERROR([unknown pthread version])
1316                 fi
1317
1318                 # consider threads found
1319                 ol_with_threads=found
1320
1321                 OL_HEADER_LINUX_THREADS
1322                 OL_HEADER_GNU_PTH_PTHREAD_H
1323
1324                 if test $ol_cv_header_gnu_pth_pthread_h = no ; then
1325                         AC_CHECK_HEADERS(sched.h)
1326                 fi
1327
1328                 dnl Now the hard part, how to link?
1329                 dnl
1330                 dnl currently supported checks:
1331                 dnl
1332                 dnl Check for no flags 
1333                 dnl     pthread_create() in $LIBS
1334                 dnl
1335                 dnl Check special pthread (final) flags
1336                 dnl     [skipped] pthread_create() with -mt (Solaris) [disabled]
1337                 dnl     pthread_create() with -kthread (FreeBSD)
1338                 dnl     pthread_create() with -pthread (FreeBSD/Digital Unix)
1339                 dnl     pthread_create() with -pthreads (?)
1340                 dnl     pthread_create() with -mthreads (AIX)
1341                 dnl     pthread_create() with -thread (?)
1342                 dnl
1343                 dnl Check pthread (final) libraries
1344                 dnl     pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
1345                 dnl     pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
1346                 dnl     [skipped] pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
1347                 dnl     pthread_join() -Wl,-woff,85 -lpthread (IRIX)
1348                 dnl     pthread_create() in -lpthread (many)
1349                 dnl     pthread_create() in -lc_r (FreeBSD)
1350                 dnl
1351                 dnl Check pthread (draft4) flags (depreciated)
1352                 dnl     pthread_create() with -threads (OSF/1)
1353                 dnl
1354                 dnl Check pthread (draft4) libraries (depreciated)
1355                 dnl     pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
1356                 dnl     pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
1357                 dnl     pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
1358                 dnl     pthread_create() in -lpthreads (many)
1359                 dnl
1360
1361                 dnl pthread_create in $LIBS
1362                 AC_CACHE_CHECK([for pthread_create in default libraries],
1363                         ol_cv_pthread_create,[
1364                 AC_TRY_RUN(OL_PTHREAD_TEST_PROGRAM,
1365                         [ol_cv_pthread_create=yes],
1366                         [ol_cv_pthread_create=no],
1367                         [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION,
1368                                 [ol_cv_pthread_create=yes],
1369                                 [ol_cv_pthread_create=no])])])
1370
1371                 if test $ol_cv_pthread_create != no ; then
1372                         ol_link_threads=posix
1373                         ol_link_pthreads=""
1374                 fi
1375                 
1376 dnl             OL_PTHREAD_TRY([-mt],           [ol_cv_pthread_mt])
1377                 OL_PTHREAD_TRY([-kthread],      [ol_cv_pthread_kthread])
1378                 OL_PTHREAD_TRY([-pthread],      [ol_cv_pthread_pthread])
1379                 OL_PTHREAD_TRY([-pthreads],     [ol_cv_pthread_pthreads])
1380                 OL_PTHREAD_TRY([-mthreads],     [ol_cv_pthread_mthreads])
1381                 OL_PTHREAD_TRY([-thread],       [ol_cv_pthread_thread])
1382
1383                 OL_PTHREAD_TRY([-lpthread -lmach -lexc -lc_r],
1384                         [ol_cv_pthread_lpthread_lmach_lexc_lc_r])
1385                 OL_PTHREAD_TRY([-lpthread -lmach -lexc],
1386                         [ol_cv_pthread_lpthread_lmach_lexc])
1387 dnl             OL_PTHREAD_TRY([-lpthread -lexc],
1388 dnl                     [ol_cv_pthread_lpthread_lexc])
1389
1390                 OL_PTHREAD_TRY([-lpthread -Wl,-woff,85],
1391                         [ol_cv_pthread_lib_lpthread_woff])
1392
1393                 OL_PTHREAD_TRY([-lpthread],     [ol_cv_pthread_lpthread])
1394                 OL_PTHREAD_TRY([-lc_r],         [ol_cv_pthread_lc_r])
1395
1396                 OL_PTHREAD_TRY([-threads],      [ol_cv_pthread_threads])
1397
1398                 OL_PTHREAD_TRY([-lpthreads -lmach -lexc -lc_r],
1399                         [ol_cv_pthread_lpthreads_lmach_lexc_lc_r])
1400                 OL_PTHREAD_TRY([-lpthreads -lmach -lexc],
1401                         [ol_cv_pthread_lpthreads_lmach_lexc])
1402                 OL_PTHREAD_TRY([-lpthreads -lexc],
1403                         [ol_cv_pthread_lpthreads_lexc])
1404
1405                 OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
1406
1407                 if test $ol_link_threads != no ; then
1408                         LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
1409
1410                         dnl save flags
1411                         save_CPPFLAGS="$CPPFLAGS"
1412                         save_LIBS="$LIBS"
1413                         LIBS="$LTHREAD_LIBS $LIBS"
1414
1415                         dnl All POSIX Thread (final) implementations should have
1416                         dnl sched_yield instead of pthread yield.
1417                         dnl check for both, and thr_yield for Solaris
1418                         AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
1419
1420                         if test $ac_cv_func_sched_yield = no -a \
1421                                 $ac_cv_func_pthread_yield = no -a \
1422                                 $ac_cv_func_thr_yield = no ; then
1423                                 dnl Digital UNIX has sched_yield() in -lrt
1424                                 AC_CHECK_LIB(rt, sched_yield,
1425                                         [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
1426                                         AC_DEFINE(HAVE_SCHED_YIELD,1,
1427                                                 [Define if you have the sched_yield function.])
1428                                         ac_cv_func_sched_yield=yes],
1429                                         [ac_cv_func_sched_yield=no])
1430                         fi
1431                         if test $ac_cv_func_sched_yield = no -a \
1432                                 $ac_cv_func_pthread_yield = no -a \
1433                                 "$ac_cv_func_thr_yield" = no ; then
1434                                 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
1435                         fi
1436
1437                         dnl Check functions for compatibility
1438                         AC_CHECK_FUNCS(pthread_kill pthread_rwlock_destroy)
1439
1440                         dnl Check for pthread_detach with <pthread.h> inclusion
1441                         dnl as it's symbol may have been mangled.
1442                         AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
1443                                 [ol_cv_func_pthread_detach], [
1444                                 dnl save the flags
1445                                 AC_TRY_LINK([
1446 #include <pthread.h>
1447 #ifndef NULL
1448 #define NULL (void*)0
1449 #endif
1450 ],
1451                                         [pthread_detach(NULL);],
1452                                         [ol_cv_func_pthread_detach=yes],
1453                                         [ol_cv_func_pthread_detach=no])
1454                         ])
1455
1456                         if test $ol_cv_func_pthread_detach = no ; then
1457                                 AC_MSG_ERROR([could not locate pthread_detach()])
1458                         fi
1459
1460                         AC_DEFINE(HAVE_PTHREAD_DETACH,1,
1461                                 [define if you have pthread_detach function])
1462
1463                         dnl Check for setconcurreny functions
1464                         AC_CHECK_FUNCS( \
1465                                 pthread_setconcurrency \
1466                                 pthread_getconcurrency \
1467                                 thr_setconcurrency \
1468                                 thr_getconcurrency \
1469                         )
1470
1471                         OL_SYS_LINUX_THREADS
1472                         OL_LINUX_THREADS
1473
1474                         if test $ol_cv_linux_threads = error; then
1475                                 AC_MSG_ERROR([LinuxThreads header/library mismatch]);
1476                         fi
1477
1478                         AC_CACHE_CHECK([if pthread_create() works],
1479                                 ol_cv_pthread_create_works,[
1480                         AC_TRY_RUN(OL_PTHREAD_TEST_PROGRAM,
1481                                 [ol_cv_pthread_create_works=yes],
1482                                 [ol_cv_pthread_create_works=no],
1483                                 [dnl assume yes
1484                                 ol_cv_pthread_create_works=yes])])
1485
1486                         if test $ol_cv_pthread_create_works = no ; then
1487                                 AC_MSG_ERROR([pthread_create is not usable, check environment settings])
1488                         fi
1489
1490                         dnl Check if select causes an yield
1491                         if test $ol_with_yielding_select = auto ; then
1492                                 AC_CACHE_CHECK([if select yields when using pthreads],
1493                                         ol_cv_pthread_select_yields,[
1494                                 AC_TRY_RUN([
1495 #include <sys/types.h>
1496 #include <sys/time.h>
1497 #include <unistd.h>
1498 #include <pthread.h>
1499 #ifndef NULL
1500 #define NULL (void*) 0
1501 #endif
1502
1503 static int fildes[2];
1504
1505 static void *task(p)
1506         void *p;
1507 {
1508         int i;
1509         struct timeval tv;
1510
1511         fd_set rfds;
1512
1513         tv.tv_sec=10;
1514         tv.tv_usec=0;
1515
1516         FD_ZERO(&rfds);
1517         FD_SET(fildes[0], &rfds);
1518
1519         /* we're not interested in any fds */
1520         i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
1521
1522         if(i < 0) {
1523                 perror("select");
1524                 exit(10);
1525         }
1526
1527         exit(0); /* if we exit here, the select blocked the whole process */
1528 }
1529
1530 int main(argc, argv)
1531         int argc;
1532         char **argv;
1533 {
1534         pthread_t t;
1535
1536         /* create a pipe to select */
1537         if(pipe(&fildes[0])) {
1538                 perror("select");
1539                 exit(1);
1540         }
1541
1542 #ifdef HAVE_PTHREAD_SETCONCURRENCY
1543         (void) pthread_setconcurrency(2);
1544 #else
1545 #ifdef HAVE_THR_SETCONCURRENCY
1546         /* Set Solaris LWP concurrency to 2 */
1547         thr_setconcurrency(2);
1548 #endif
1549 #endif
1550
1551 #if HAVE_PTHREADS < 6
1552         pthread_create(&t, pthread_attr_default, task, NULL);
1553 #else
1554         pthread_create(&t, NULL, task, NULL);
1555 #endif
1556
1557         /* make sure task runs first */
1558 #if HAVE_THR_YIELD
1559         thr_yield();
1560 #elif defined( HAVE_SCHED_YIELD )
1561         sched_yield();
1562 #elif defined( HAVE_PTHREAD_YIELD )
1563         pthread_yield();
1564 #endif
1565
1566         exit(2);
1567 }],
1568                                 [ol_cv_pthread_select_yields=no],
1569                                 [ol_cv_pthread_select_yields=yes],
1570                                 [ol_cv_pthread_select_yields=cross])])
1571
1572                                 if test $ol_cv_pthread_select_yields = cross ; then
1573                                         AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])
1574                                 fi
1575
1576                                 if test $ol_cv_pthread_select_yields = yes ; then
1577                                         ol_with_yielding_select=yes
1578                                 fi
1579                         fi
1580
1581                         dnl restore flags
1582                         CPPFLAGS="$save_CPPFLAGS"
1583                         LIBS="$save_LIBS"
1584                 else
1585                         AC_MSG_ERROR([could not locate usable POSIX Threads])
1586                 fi
1587         fi
1588
1589         if test $ol_with_threads = posix ; then
1590                 AC_MSG_ERROR([could not locate POSIX Threads])
1591         fi
1592 fi
1593
1594 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1595         -o $ol_with_threads = mach ; then
1596
1597         dnl check for Mach CThreads
1598         AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
1599         if test $ac_cv_header_mach_cthreads_h = yes ; then
1600                 ol_with_threads=found
1601
1602                 dnl check for cthreads support in current $LIBS
1603                 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1604
1605                 if test $ol_link_threads = no ; then
1606                         dnl try -all_load
1607                         dnl this test needs work
1608                         AC_CACHE_CHECK([for cthread_fork with -all_load],
1609                                 [ol_cv_cthread_all_load], [
1610                                 dnl save the flags
1611                                 save_LIBS="$LIBS"
1612                                 LIBS="-all_load $LIBS"
1613                                 AC_TRY_LINK([#include <mach/cthreads.h>],[
1614                                         cthread_fork((void *)0, (void *)0);
1615                                         ], ol_cv_cthread_all_load=yes, ol_cv_cthread_all_load=no)
1616                                 dnl restore the LIBS
1617                                 LIBS="$save_LIBS"
1618                         ])
1619
1620                         if test $ol_cv_cthread_all_load = yes ; then
1621                                 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
1622                                 ol_link_threads=mach
1623                                 ol_with_threads=found
1624                         fi
1625                 fi
1626
1627         elif test $ac_cv_header_cthreads_h = yes ; then
1628                 dnl Hurd variant of Mach Cthreads
1629                 dnl uses <cthreads.h> and -lthreads
1630
1631                 ol_with_threads=found
1632  
1633                 dnl save the flags
1634                 save_LIBS="$LIBS"
1635                 LIBS="$LIBS -lthreads"
1636                 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1637                 LIBS="$save_LIBS"
1638
1639                 if test $ol_link_threads = yes ; then
1640                         LTHREAD_LIBS="-lthreads"
1641                         ol_link_threads=mach
1642                         ol_with_threads=found
1643                 else
1644                         AC_MSG_ERROR([could not link with Mach CThreads])
1645                 fi
1646
1647         elif test $ol_with_threads = mach ; then
1648                 AC_MSG_ERROR([could not locate Mach CThreads])
1649         fi
1650
1651         if test $ol_link_threads = mach ; then
1652                 AC_DEFINE(HAVE_MACH_CTHREADS,1,
1653                         [define if you have Mach Cthreads])
1654         elif test $ol_with_threads = found ; then
1655                 AC_MSG_ERROR([could not link with Mach CThreads])
1656         fi
1657 fi
1658
1659 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1660         -o $ol_with_threads = pth ; then
1661
1662         AC_CHECK_HEADERS(pth.h)
1663
1664         if test $ac_cv_header_pth_h = yes ; then
1665                 AC_CHECK_LIB(pth, pth_version, [have_pth=yes], [have_pth=no])
1666
1667                 if test $have_pth = yes ; then
1668                         AC_DEFINE(HAVE_GNU_PTH,1,[if you have GNU Pth])
1669                         LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
1670                         ol_link_threads=pth
1671                         ol_with_threads=found
1672
1673                         if test $ol_with_yielding_select = auto ; then
1674                                 ol_with_yielding_select=yes
1675                         fi
1676                 fi
1677         fi
1678 fi
1679
1680 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1681         -o $ol_with_threads = lwp ; then
1682
1683         dnl check for SunOS5 LWP
1684         AC_CHECK_HEADERS(thread.h synch.h)
1685         if test $ac_cv_header_thread_h = yes -a $ac_cv_header_synch_h = yes ; then
1686                 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
1687
1688                 if test $have_thr = yes ; then
1689                         AC_DEFINE(HAVE_THR,1,
1690                                 [if you have Solaris LWP (thr) package])
1691                         LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
1692                         ol_link_threads=thr
1693
1694                         if test $ol_with_yielding_select = auto ; then
1695                                 ol_with_yielding_select=yes
1696                         fi
1697
1698                         dnl Check for setconcurreny functions
1699                         AC_CHECK_FUNCS( \
1700                                 thr_setconcurrency \
1701                                 thr_getconcurrency \
1702                         )
1703                 fi
1704         fi
1705
1706         dnl check for SunOS4 LWP
1707         AC_CHECK_HEADERS(lwp/lwp.h)
1708         if test $ac_cv_header_lwp_lwp_h = yes ; then
1709                 AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
1710
1711                 if test $have_lwp = yes ; then
1712                         AC_DEFINE(HAVE_LWP,1,
1713                                 [if you have SunOS LWP package])
1714                         LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
1715                         ol_link_threads=lwp
1716
1717                         if test $ol_with_yielding_select = auto ; then
1718                                 ol_with_yielding_select=no
1719                         fi
1720                 fi
1721         fi
1722 fi
1723
1724 if test $ol_with_yielding_select = yes ; then
1725         AC_DEFINE(HAVE_YIELDING_SELECT,1,
1726                 [define if select implicitly yields])
1727 fi
1728
1729 if test $ol_with_threads = manual ; then
1730         dnl User thinks he can manually configure threads.
1731         ol_link_threads=yes
1732
1733         AC_MSG_WARN([thread defines and link options must be set manually])
1734
1735         AC_CHECK_HEADERS(pthread.h sched.h)
1736         AC_CHECK_FUNCS(sched_yield pthread_yield)
1737         OL_HEADER_LINUX_THREADS
1738
1739         AC_CHECK_HEADERS(mach/cthreads.h)
1740         AC_CHECK_HEADERS(lwp/lwp.h)
1741         AC_CHECK_HEADERS(thread.h synch.h)
1742 fi
1743
1744 if test $ol_link_threads != no -a $ol_link_threads != nt ; then  
1745         dnl needed to get reentrant/threadsafe versions
1746         dnl
1747         AC_DEFINE(REENTRANT,1)
1748         AC_DEFINE(_REENTRANT,1)
1749         AC_DEFINE(THREAD_SAFE,1)
1750         AC_DEFINE(_THREAD_SAFE,1)
1751         AC_DEFINE(THREADSAFE,1)
1752         AC_DEFINE(_THREADSAFE,1)
1753         AC_DEFINE(_SGI_MP_SOURCE,1)
1754
1755         dnl The errno declaration may dependent upon _REENTRANT.
1756         dnl If it does, we must link with thread support.
1757         AC_CACHE_CHECK([for thread specific errno],
1758                 [ol_cv_errno_thread_specific], [
1759                 AC_TRY_LINK([#include <errno.h>], [errno = 0;],
1760                         [ol_cv_errno_thread_specific=yes],
1761                         [ol_cv_errno_thread_specific=no])
1762         ])
1763
1764         dnl The h_errno declaration may dependent upon _REENTRANT.
1765         dnl If it does, we must link with thread support.
1766         AC_CACHE_CHECK([for thread specific h_errno],
1767                 [ol_cv_h_errno_thread_specific], [
1768                 AC_TRY_LINK([#include <netdb.h>], [h_errno = 0;],
1769                         [ol_cv_h_errno_thread_specific=yes],
1770                         [ol_cv_h_errno_thread_specific=no])
1771         ])
1772
1773         if test $ol_cv_errno_thread_specific != yes \
1774                 -o $ol_cv_h_errno_thread_specific != yes ; then
1775                 LIBS="$LTHREAD_LIBS $LIBS"
1776                 LTHREAD_LIBS=""
1777         fi
1778
1779 dnl When in thread environment, use 
1780 dnl             #if defined( HAVE_REENTRANT_FUNCTIONS ) || defined( HAVE_FUNC_R )
1781 dnl                     func_r(...);
1782 dnl             #else
1783 dnl             #       if defined( HAVE_THREADS ) 
1784 dnl                             /* lock */
1785 dnl             #       endif
1786 dnl                             func(...);
1787 dnl             #       if defined( HAVE_THREADS ) 
1788 dnl                             /* unlock */
1789 dnl             #       endif
1790 dnl             #endif
1791 dnl
1792 dnl HAVE_REENTRANT_FUNCTIONS is derived from:
1793 dnl             _POSIX_REENTRANT_FUNCTIONS
1794 dnl             _POSIX_THREAD_SAFE_FUNCTIONS
1795 dnl             _POSIX_THREADSAFE_FUNCTIONS
1796 dnl
1797 dnl             and is currently defined in <ldap_pvt_thread.h>
1798 dnl
1799 dnl HAVE_THREADS is defined by <ldap_pvt_thread.h> iff -UNO_THREADS
1800 dnl 
1801 dnl libldap/*.c should only include <ldap_pvt_thread.h> iff
1802 dnl LDAP_R_COMPILE is defined.  ie:
1803 dnl             #ifdef LDAP_R_COMPILE
1804 dnl             #       include <ldap_pvt_thread.h>
1805 dnl             #endif
1806 dnl
1807 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
1808 dnl specifically for compiling the threadsafe version of
1809 dnl     the ldap library (-lldap_r).
1810 dnl             
1811 dnl     dnl check for reentrant/threadsafe functions
1812 dnl     dnl
1813 dnl     dnl note: these should only be used when linking
1814 dnl     dnl             with $LTHREAD_LIBS
1815 dnl     dnl
1816 dnl     save_CPPFLAGS="$CPPFLAGS"
1817 dnl     save_LIBS="$LIBS"
1818 dnl     LIBS="$LTHREAD_LIBS $LIBS"
1819 dnl     AC_CHECK_FUNCS( \
1820 dnl             gmtime_r \
1821 dnl             gethostbyaddr_r gethostbyname_r \
1822 dnl             feof_unlocked unlocked_feof \
1823 dnl             putc_unlocked unlocked_putc \
1824 dnl             flockfile ftrylockfile \
1825 dnl     )
1826 dnl     CPPFLAGS="$save_CPPFLAGS"
1827 dnl     LIBS="$save_LIBS"
1828 fi  
1829
1830 if test $ol_link_threads = no ; then
1831         if test $ol_with_threads = yes ; then
1832                 AC_MSG_ERROR([no suitable thread support])
1833         fi
1834
1835         if test $ol_with_threads = auto ; then
1836                 AC_MSG_WARN([no suitable thread support, disabling threads])
1837                 ol_with_threads=no
1838         fi
1839
1840         AC_DEFINE(NO_THREADS,1,
1841                 [define if you have (or want) no threads])
1842         LTHREAD_LIBS=""
1843 fi
1844
1845 if test $ol_link_threads != no ; then
1846         AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1)
1847 fi
1848
1849 dnl ----------------------------------------------------------------
1850 dnl Tests for reentrant functions necessary to build -lldap_r
1851 AC_CHECK_FUNCS(         \
1852         ctime_r                 \
1853         gethostbyname_r gethostbyaddr_r \
1854 )
1855
1856 if test "$ac_cv_func_ctime_r" = no ; then
1857         ol_cv_func_ctime_r_nargs=0
1858 else
1859         OL_FUNC_CTIME_R_NARGS
1860 dnl     OL_FUNC_CTIME_R_TYPE
1861 fi
1862
1863 if test "$ac_cv_func_gethostbyname_r" = yes ; then
1864         OL_FUNC_GETHOSTBYNAME_R_NARGS
1865 else
1866         ol_cv_func_gethostbyname_r_nargs=0
1867 fi
1868  
1869 if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
1870         OL_FUNC_GETHOSTBYADDR_R_NARGS
1871 else
1872         ol_cv_func_gethostbyaddr_r_nargs=0
1873 fi
1874
1875 dnl ----------------------------------------------------------------
1876 ol_link_ldbm=no 
1877
1878 if test $ol_with_ldbm_api = auto \
1879         -o $ol_with_ldbm_api = berkeley \
1880         -o $ol_with_ldbm_api = bcompat ; then
1881
1882         if test $ol_with_ldbm_api = bcompat; then \
1883                 OL_BERKELEY_COMPAT_DB
1884         else
1885                 OL_BERKELEY_DB
1886         fi
1887
1888         if test $ol_cv_berkeley_db != no ; then
1889                 AC_DEFINE(HAVE_BERKELEY_DB,1,
1890                         [define this if Berkeley DB is available])
1891
1892                 ol_link_ldbm=berkeley
1893                 ol_with_ldbm_api=berkeley
1894
1895                 if test $ol_with_ldbm_type = hash ; then
1896                         AC_DEFINE(LDBM_USE_DBHASH,1,
1897                                 [define this to use DBHASH w/ LDBM backend])
1898                 else
1899                         AC_DEFINE(LDBM_USE_DBBTREE,1,
1900                                 [define this to use DBBTREE w/ LDBM backend])
1901                 fi
1902
1903                 dnl $ol_cv_lib_db should be yes or -ldb
1904                 dnl (it could be no, but that would be an error
1905                 if test $ol_cv_lib_db != yes ; then
1906                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
1907                 fi
1908         fi
1909 fi
1910
1911 if test $ol_enable_bdb != no -o $ol_enable_hdb != no; then
1912         if test $ol_link_ldbm != berkeley ; then
1913                 AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
1914         else
1915                 OL_BDB_COMPAT
1916
1917                 if test $ol_cv_bdb_compat != yes ; then
1918                         AC_MSG_ERROR([BDB/HDB: BerkeleyDB version incompatible])
1919                 fi
1920         fi
1921 fi
1922
1923 if test $ol_link_ldbm = no -a $ol_with_ldbm_type = btree ; then
1924         AC_MSG_WARN([Could not find LDBM with BTREE support])
1925         ol_with_ldbm_api=none
1926 fi
1927
1928 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = mdbm ; then
1929         OL_MDBM
1930
1931         if test $ol_cv_mdbm = yes ; then
1932                 ol_link_ldbm=mdbm
1933                 ol_with_ldbm_api=mdbm
1934                 if test $ol_cv_lib_mdbm != yes ; then
1935                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_mdbm"
1936                 fi
1937         fi
1938 fi
1939
1940 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = gdbm ; then
1941         OL_GDBM
1942
1943         if test $ol_cv_gdbm = yes ; then
1944                 ol_link_ldbm=gdbm
1945                 ol_with_ldbm_api=gdbm
1946
1947                 if test $ol_cv_lib_gdbm != yes ; then
1948                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
1949                 fi
1950         fi
1951 fi
1952
1953 if test $ol_with_ldbm_api = ndbm ; then
1954         OL_NDBM
1955
1956         if test $ol_cv_ndbm = yes ; then
1957                 ol_link_ldbm=ndbm
1958                 ol_with_ldbm_api=ndbm
1959
1960                 if test $ol_cv_lib_ndbm != yes ; then
1961                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
1962                 fi
1963         fi
1964 fi
1965
1966 if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
1967         AC_MSG_ERROR([could not find suitable LDBM backend])
1968 fi
1969
1970 if test $ol_enable_bdb = yes -o \
1971         $ol_enable_hdb = yes -o \
1972         $ol_enable_ldbm = yes ; then
1973         SLAPD_LIBS="$SLAPD_LIBS \$(LDBM_LIBS)"
1974 fi
1975
1976 dnl ----------------------------------------------------------------
1977
1978 if test $ol_enable_dynamic = yes -a $enable_shared = yes ; then
1979         BUILD_LIBS_DYNAMIC=shared
1980         AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
1981         LTSTATIC=""
1982 else
1983         BUILD_LIBS_DYNAMIC=static
1984         LTSTATIC="-static"
1985 fi
1986 AC_SUBST(LTSTATIC)dnl
1987
1988 dnl ----------------------------------------------------------------
1989 if test $ol_enable_wrappers != no ; then
1990         AC_CHECK_HEADERS(tcpd.h,[
1991                 AC_MSG_CHECKING([for TCP wrappers library])
1992                 save_LIBS="$LIBS"
1993                 LIBS="$LIBS -lwrap"
1994                 AC_TRY_LINK([
1995 #include <tcpd.h>
1996 int allow_severity = 0;
1997 int deny_severity  = 0;
1998
1999 struct request_info *req;
2000                 ],[
2001 hosts_access(req)
2002                 ],[AC_MSG_RESULT([-lwrap])
2003                 have_wrappers=yes
2004                 LIBS="$save_LIBS"],[
2005                 dnl try with -lnsl
2006                 LIBS="$LIBS -lnsl"
2007                 AC_TRY_LINK([
2008 #include <tcpd.h>
2009 int allow_severity = 0;
2010 int deny_severity  = 0;
2011
2012 struct request_info *req;
2013                 ],[
2014 hosts_access(req)
2015                 ],[AC_MSG_RESULT([-lwrap -lnsl])
2016                 have_wrappers=yes
2017                 LIBS="$save_LIBS -lnsl"],[
2018                 AC_MSG_RESULT(no)
2019                 have_wrappers=no
2020                 LIBS=$save_LIBS])],[
2021                 have_wrappers=no])],[have_wrappers=no])
2022
2023         if test $have_wrappers = yes ; then
2024                 AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
2025                 WRAP_LIBS="-lwrap"
2026         elif test $ol_enable_wrappers = yes ; then
2027                 AC_MSG_ERROR([could not find TCP wrappers, select apppropriate options or disable])
2028         else
2029                 AC_MSG_WARN([could not find TCP wrappers, support disabled])
2030                 WRAP_LIBS=""
2031         fi
2032 fi
2033
2034 dnl ----------------------------------------------------------------
2035 if test $ol_enable_syslog != no ; then
2036         AC_CHECK_FUNC(openlog)
2037         if test $ac_cv_func_openlog = no -a $ol_enable_syslog = yes; then
2038                 AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
2039         fi
2040         ol_enable_syslog=$ac_cv_func_openlog
2041 fi
2042
2043 dnl ----------------------------------------------------------------
2044 dnl dmalloc support (deprecated in favor of -DCSRIMALLOC support)
2045 dnl if test $ol_enable_dmalloc != no ; then
2046 dnl     AC_CHECK_HEADERS(dmalloc.h)
2047 dnl     AC_CHECK_LIB(dmalloc, dmalloc_shutdown)
2048 dnl fi
2049
2050 dnl ----------------------------------------------------------------
2051 dnl SQL
2052 ol_link_sql=no
2053 if test $ol_enable_sql != no ; then
2054         AC_CHECK_HEADERS(sql.h sqlext.h,[],[
2055                 AC_MSG_ERROR([could not locate SQL headers])
2056         ])
2057
2058         AC_CHECK_LIB(iodbc,SQLDriverConnect,[have_iodbc=yes],[have_iodbc=no])
2059         if test $have_iodbc = yes ; then
2060                 ol_link_sql="-liodbc"
2061         else
2062                 AC_CHECK_LIB(odbc,SQLDriverConnect,[have_odbc=yes],[have_odbc=no])
2063                 if test $have_odbc = yes ; then
2064                         ol_link_sql="-lodbc"
2065                 fi
2066         fi
2067
2068         if test $ol_link_sql != no ; then
2069                 SLAPD_SQL_LIBS="$ol_link_sql"
2070
2071         elif test $ol_enable_sql != auto ; then
2072                 AC_MSG_ERROR([could not locate suitable ODBC library])
2073         fi
2074 fi
2075
2076 dnl ----------------------------------------------------------------
2077 dnl
2078 dnl Check for Cyrus SASL
2079 dnl
2080 WITH_SASL=no
2081 ol_link_sasl=no
2082 ol_link_spasswd=no
2083 if test $ol_with_cyrus_sasl != no ; then
2084         AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
2085
2086         if test $ac_cv_header_sasl_sasl_h = yes -o $ac_cv_header_sasl_h = yes; then
2087                 AC_CHECK_LIB(sasl2, sasl_client_init,
2088                         [ol_link_sasl="-lsasl2"],
2089                         [AC_CHECK_LIB(sasl, sasl_client_init,
2090                                 [ol_link_sasl="-lsasl"])])
2091         fi
2092
2093         if test $ol_link_sasl = no ; then
2094                 if test $ol_with_cyrus_sasl != auto ; then
2095                         AC_MSG_ERROR([Could not locate Cyrus SASL])
2096                 else
2097                         AC_MSG_WARN([Could not locate Cyrus SASL])
2098                         AC_MSG_WARN([SASL authentication not supported!])
2099                         if test $ol_link_tls = no ; then
2100                                 AC_MSG_WARN([Strong authentication not supported!])
2101                         fi
2102                 fi
2103         else
2104                 OL_SASL_COMPAT
2105                 if test $ol_cv_sasl_compat = no ; then
2106                         ol_link_sasl=no
2107                         AC_MSG_ERROR([Cyrus SASL library located but is incompatible])
2108                 fi
2109
2110                 AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
2111                 SASL_LIBS="$ol_link_sasl"
2112                 if test $ol_enable_spasswd != no ; then
2113                         ol_link_spasswd=yes
2114                 fi
2115
2116                 ac_save_LIBS="$LIBS"
2117                 LIBS="$LIBS $ol_link_sasl"
2118                 AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1,
2119                         [define if your SASL library has sasl_version()])])
2120                 LIBS="$ac_save_LIBS"
2121
2122                 WITH_SASL=yes
2123         fi
2124
2125 else
2126         AC_MSG_WARN([SASL authentication not supported!])
2127         if test $ol_link_tls = no ; then
2128                 AC_MSG_WARN([Strong authentication not supported!])
2129         fi
2130 fi
2131
2132 dnl ----------------------------------------------------------------
2133 dnl Check for entropy sources
2134 if test $cross_compiling != yes -a "$ac_cv_mingw32" != yes ; then
2135         dev=no
2136         if test -r /dev/urandom ; then
2137                 dev="/dev/urandom";
2138         elif test -r /idev/urandom ; then
2139                 dev="/idev/urandom";
2140         elif test -r /dev/srandom ; then
2141                 dev="/dev/srandom";
2142         elif test -r /dev/random ; then
2143                 dev="/dev/random";
2144         elif test -r /idev/random ; then
2145                 dev="/idev/random";
2146         fi
2147
2148         if test $dev != no ; then
2149                 AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
2150         fi
2151 fi
2152
2153 dnl ----------------------------------------------------------------
2154 dnl
2155 dnl Check for fetch URL support
2156 dnl             should be extended to support other fetch URL APIs
2157 dnl
2158 ol_link_fetch=no
2159 if test $ol_with_fetch != no ; then
2160         OL_LIB_FETCH
2161
2162         if test $ol_cv_lib_fetch != no ; then
2163                 LUTIL_LIBS="$LUTIL_LIBS $ol_link_fetch"
2164                 ol_link_fetch=freebsd
2165
2166         elif test $ol_with_fetch != auto ; then
2167                 AC_MSG_ERROR(no suitable API for --with-fetch=$ol_with_fetch)
2168         fi 
2169 fi
2170
2171 dnl ----------------------------------------------------------------
2172 dnl FreeBSD (and others) have crypt(3) in -lcrypt
2173 if test $ol_enable_crypt != no ; then
2174         save_LIBS="$LIBS"
2175         LIBS="$TLS_LIBS $LIBS"
2176
2177         AC_CHECK_FUNC(crypt, [have_crypt=yes], [
2178                 LIBS="$save_LIBS"
2179                 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
2180                         have_crypt=yes], [have_crypt=no])])
2181
2182         LIBS="$save_LIBS"
2183
2184         if test $have_crypt = yes ; then
2185                 AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
2186         else
2187                 AC_MSG_WARN([could not find crypt])
2188                 if test $ol_enable_crypt = yes ; then
2189                         AC_MSG_ERROR([could not find crypt, select appropriate options or disable])
2190                 fi
2191
2192                 AC_MSG_WARN([disabling crypt support])
2193                 ol_enable_crypt=no
2194         fi
2195 fi
2196
2197 dnl ----------------------------------------------------------------
2198 dnl FreeBSD (and others) have setproctitle(3) in -lutil
2199 if test $ol_enable_proctitle != no ; then
2200         AC_CHECK_FUNC(setproctitle,     [have_setproctitle=yes], [
2201                 AC_CHECK_LIB(util, setproctitle,
2202                         [have_setproctitle=yes
2203                         LUTIL_LIBS="$LUTIL_LIBS -lutil"],
2204                         [have_setproctitle=no
2205                         LIBOBJS="$LIBOBJS setproctitle.o"
2206                         LIBSRCS="$LIBSRCS setproctitle.c"])])
2207
2208         if test $have_setproctitle = yes ; then
2209                 AC_DEFINE(HAVE_SETPROCTITLE,1,
2210                         [define if setproctitle(3) is available])
2211         fi
2212 fi
2213
2214 dnl ----------------------------------------------------------------
2215 dnl Check for SLPv2 Compliant API Library
2216 if test $ol_enable_slp != no ; then
2217         AC_CHECK_HEADERS( slp.h )
2218
2219         if test $ac_cv_header_slp_h = yes ; then
2220                 AC_CHECK_LIB(slp, SLPOpen, [have_slp=yes], [have_slp=no])
2221                 if test $have_slp = yes ; then
2222                         AC_DEFINE(HAVE_SLP, 1, [define if you have -lslp])
2223                         SLAPD_SLP_LIBS=-lslp
2224                 fi
2225
2226         elif test $ol_enable_slp = yes ; then
2227                 AC_MSG_ERROR([SLP not found])
2228         fi
2229 fi
2230
2231 dnl ----------------------------------------------------------------
2232 dnl Checks for typedefs, structures, and compiler characteristics.
2233
2234 dnl Checks for long long
2235 AC_CACHE_CHECK([long long], ol_cv_type_long_long, [
2236         AC_TRY_COMPILE([], [long long x;],
2237                 [ol_cv_type_long_long=yes],
2238                 [ol_cv_type_long_long=no])])
2239 if test $ol_cv_type_long_long = yes; then
2240         AC_DEFINE(HAVE_LONG_LONG, 1, [define if you have 'long long'])
2241 fi
2242
2243 AC_TYPE_MODE_T
2244 AC_TYPE_OFF_T
2245 AC_TYPE_PID_T
2246 AM_TYPE_PTRDIFF_T
2247 AC_TYPE_SIGNAL
2248 AC_TYPE_SIZE_T
2249
2250 AC_CHECK_TYPE(ssize_t, [signed int])
2251 AC_CHECK_TYPE(caddr_t,  [char *])
2252
2253 OL_TYPE_SOCKLEN_T
2254 AC_STRUCT_ST_BLKSIZE
2255 AC_HEADER_TIME
2256 AC_STRUCT_TM
2257 AC_TYPE_UID_T
2258 OL_TYPE_SIG_ATOMIC_T
2259
2260 dnl AC_TYPE_GETGROUPS
2261
2262 OL_STRUCT_PASSWD_PW_GECOS
2263 OL_STRUCT_PASSWD_PW_PASSWD
2264
2265 OL_C_UPPER_LOWER
2266 AC_C_CONST
2267 OL_C_VOLATILE
2268
2269 if test $cross_compiling = yes ; then
2270         AC_MSG_WARN([Crossing compiling... all bets are off!])
2271         AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
2272 else
2273         AC_C_BIGENDIAN
2274 fi
2275
2276 AC_COMPILE_CHECK_SIZEOF(short) 
2277 AC_COMPILE_CHECK_SIZEOF(int) 
2278 AC_COMPILE_CHECK_SIZEOF(long)
2279 AC_COMPILE_CHECK_SIZEOF(wchar_t)
2280
2281 if test "$ac_cv_sizeof_int" -lt 4 ; then
2282         AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
2283
2284         AC_DEFINE(LBER_INT_T,long)
2285 else
2286         AC_DEFINE(LBER_INT_T,int)
2287 fi
2288
2289 AC_DEFINE(LBER_LEN_T,long)
2290 AC_DEFINE(LBER_SOCKET_T,int)
2291 AC_DEFINE(LBER_TAG_T,long)
2292
2293 dnl ----------------------------------------------------------------
2294 dnl Checks for library functions.
2295 AC_FUNC_MEMCMP
2296 dnl AM_FUNC_MKTIME dnl checks for sys/time.h and unistd.h
2297 AC_FUNC_STRFTIME
2298 dnl AM_FUNC_STRTOD
2299
2300 OL_FUNC_INET_ATON
2301
2302 dnl Check for NT specific routines
2303 AC_CHECK_FUNC(_spawnlp, AC_DEFINE(HAVE_SPAWNLP,1,[if you have spawnlp()]))
2304
2305 AC_CHECK_FUNC(_snprintf, [ac_cv_func_snprintf=yes
2306         AC_DEFINE(snprintf, _snprintf, [define to snprintf routine])
2307 ])
2308
2309 AC_CHECK_FUNC(_vsnprintf, [ac_cv_func_vsnprintf=yes
2310         AC_DEFINE(vsnprintf, _vsnprintf, [define to vsnprintf routine])
2311 ])
2312
2313 AC_FUNC_VPRINTF
2314
2315 if test $ac_cv_func_vprintf = yes ; then
2316         dnl check for vsnprintf
2317         AC_CHECK_FUNCS(snprintf vsnprintf)
2318 fi
2319
2320 AC_CHECK_FUNCS(         \
2321         bcopy                   \
2322         closesocket             \
2323         chroot                  \
2324         endgrent                \
2325         endpwent                \
2326         fcntl                   \
2327         flock                   \
2328         fstat                   \
2329         getdtablesize   \
2330         getgrgid                \
2331         gethostname             \
2332         getpass                 \
2333         getpassphrase   \
2334         getpwuid                \
2335         getpwnam                \
2336         getspnam                \
2337         gettimeofday    \
2338         initgroups              \
2339         lockf                   \
2340         memcpy                  \
2341         memmove                 \
2342         mkstemp                 \
2343         mktemp                  \
2344         pipe                    \
2345         read                    \
2346         recv                    \
2347         recvfrom                \
2348         setpwfile               \
2349         setgid                  \
2350         setegid                 \
2351         setsid                  \
2352         setuid                  \
2353         seteuid                 \
2354         sigaction               \
2355         signal                  \
2356         sigset                  \
2357         strdup                  \
2358         strpbrk                 \
2359         strrchr                 \
2360         strsep                  \
2361         strstr                  \
2362         strtol                  \
2363         strtoul                 \
2364         strtoq                  \
2365         strtouq                 \
2366         strtoll                 \
2367         strspn                  \
2368         sysconf                 \
2369         usleep                  \
2370         waitpid                 \
2371         wait4                   \
2372         write                   \
2373         send                    \
2374         sendmsg                 \
2375         sendto                  \
2376 )
2377
2378 dnl We actually may need to replace more than this.
2379 AC_REPLACE_FUNCS(getopt getpeereid)
2380
2381 if test "$ac_cv_func_getopt" != yes; then
2382         LIBSRCS="$LIBSRCS getopt.c"
2383 fi
2384 if test "$ac_cv_func_getpeereid" != yes; then
2385         OL_MSGHDR_MSG_ACCRIGHTS
2386         LIBSRCS="$LIBSRCS getpeereid.c"
2387 fi
2388 if test "$ac_cv_func_snprintf" != yes -o "$ac_cv_func_vsnprintf" != yes; then
2389         if test "$ac_cv_func_snprintf" != yes; then
2390                 AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
2391         fi
2392         if test "$ac_cv_func_vsnprintf" != yes; then
2393                 AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine])
2394         fi
2395 fi
2396
2397 dnl ----------------------------------------------------------------
2398 dnl Sort out defines
2399
2400 if test "$ol_enable_slapi" != no ; then
2401         dnl This check is done also if --enable-modules is used;
2402         dnl it is duplicated here, 'cause it'd be cached anyway
2403         AC_CHECK_HEADERS(ltdl.h)
2404
2405         if test $ac_cv_header_ltdl_h != yes ; then
2406                 AC_MSG_ERROR([could not locate <ltdl.h>])
2407         fi
2408         AC_CHECK_LIB(ltdl, lt_dlinit, [
2409                 SLAPI_LIBS=-lltdl
2410                 LIBSLAPI=libslapi.a
2411                 LIBSLAPITOOLS=../libslapi.a
2412                 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
2413         ],[AC_MSG_ERROR([could not locate libtool -lltdl])])
2414
2415         AC_DEFINE(LDAP_SLAPI,1, [define this to add SLAPI code])
2416 fi
2417
2418 if test "$ol_enable_debug" != no ; then
2419         AC_DEFINE(LDAP_DEBUG,1,
2420                 [define this to add debugging code])
2421 fi
2422 if test "$ol_enable_syslog" = yes ; then
2423         AC_DEFINE(LDAP_SYSLOG,1,
2424                 [define this to add syslog code])
2425 fi
2426 if test "$ol_link_kbind" != no ; then
2427         AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND,LDAP_VENDOR_VERSION)
2428 fi
2429 if test "$ol_enable_proctitle" != no ; then
2430         AC_DEFINE(LDAP_PROCTITLE,1,
2431                 [define this for LDAP process title support])
2432 fi
2433 if test "$ol_enable_referrals" != no ; then
2434         AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION)
2435 fi
2436 if test "$ol_enable_local" != no; then
2437         AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
2438 fi
2439 if test "$ol_link_ipv6" != no; then
2440         AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
2441 fi
2442 if test "$ol_enable_cleartext" != no ; then
2443         AC_DEFINE(SLAPD_CLEARTEXT,1,[define to support cleartext passwords])
2444 fi
2445 if test "$ol_enable_crypt" != no ; then
2446         AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords])
2447 fi
2448 if test "$ol_link_spasswd" != no ; then
2449         AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
2450 fi
2451 if test "$ol_enable_multimaster" != no ; then
2452         AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
2453 fi
2454 if test "$ol_enable_rlookups" != no ; then
2455         AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
2456 fi
2457 if test "$ol_enable_aci" != no ; then
2458         AC_DEFINE(SLAPD_ACI_ENABLED,1,[define to support per-object ACIs])
2459 fi
2460
2461 if test "$ol_link_modules" != no ; then
2462         AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
2463         BUILD_SLAPD=yes
2464         SLAPD_MODULES_LDFLAGS="-dlopen self"
2465 fi
2466
2467 AC_DEFINE(SLAPD_MOD_STATIC,1,[statically linked module])
2468 AC_DEFINE(SLAPD_MOD_DYNAMIC,2,[dynamically linked module])
2469
2470 if test "$ol_enable_bdb" != no ; then
2471         BUILD_SLAPD=yes
2472         BUILD_BDB=$ol_enable_bdb
2473         if test "$ol_enable_bdb" = mod ; then
2474                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
2475                 MFLAG=SLAPD_MOD_DYNAMIC
2476         else
2477                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
2478                 MFLAG=SLAPD_MOD_STATIC
2479         fi
2480         AC_DEFINE_UNQUOTED(SLAPD_BDB,$MFLAG,[define to support BDB backend])
2481 fi
2482
2483 if test "$ol_enable_dnssrv" != no ; then
2484         BUILD_SLAPD=yes
2485         BUILD_DNSSRV=$ol_enable_dnssrv
2486         if test "$ol_enable_dnssrv" = mod ; then
2487                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
2488                 MFLAG=SLAPD_MOD_DYNAMIC
2489         else
2490                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
2491                 MFLAG=SLAPD_MOD_STATIC
2492         fi
2493         AC_DEFINE_UNQUOTED(SLAPD_DNSSRV,$MFLAG,[define to support DNS SRV backend])
2494 fi
2495
2496 if test "$ol_enable_hdb" != no ; then
2497         BUILD_SLAPD=yes
2498         BUILD_HDB=$ol_enable_hdb
2499         if test "$ol_enable_hdb" = mod ; then
2500                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-hdb"
2501                 MFLAG=SLAPD_MOD_DYNAMIC
2502         else
2503                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb"
2504                 MFLAG=SLAPD_MOD_STATIC
2505         fi
2506         AC_DEFINE_UNQUOTED(SLAPD_HDB,$MFLAG,[define to support HDB backend])
2507 fi
2508
2509 if test "$ol_enable_ldap" != no ; then
2510         BUILD_SLAPD=yes
2511         BUILD_LDAP=$ol_enable_ldap
2512         if test "$ol_enable_ldap" = mod ; then
2513                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
2514                 MFLAG=SLAPD_MOD_DYNAMIC
2515         else
2516                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
2517                 MFLAG=SLAPD_MOD_STATIC
2518         fi
2519         AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
2520 fi
2521
2522 if test "$ol_link_ldbm" != no -a $ol_enable_ldbm != no; then
2523         BUILD_SLAPD=yes
2524         BUILD_LDBM=$ol_enable_ldbm
2525         if test "$ol_enable_ldbm" = mod ; then
2526                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldbm"
2527                 MFLAG=SLAPD_MOD_DYNAMIC
2528         else
2529                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldbm"
2530                 MFLAG=SLAPD_MOD_STATIC
2531         fi
2532         AC_DEFINE_UNQUOTED(SLAPD_LDBM,$MFLAG,[define to support LDBM backend])
2533 fi
2534
2535 if test "$ol_enable_meta" != no ; then
2536         BUILD_SLAPD=yes
2537         BUILD_META=$ol_enable_meta
2538         BUILD_REWRITE=yes
2539         if test "$ol_enable_meta" = mod ; then
2540                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
2541                 MFLAG=SLAPD_MOD_DYNAMIC
2542         else
2543                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
2544                 MFLAG=SLAPD_MOD_STATIC
2545         fi
2546         AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
2547 fi
2548
2549 if test "$ol_enable_monitor" != no ; then
2550         BUILD_SLAPD=yes
2551         BUILD_MONITOR=$ol_enable_monitor
2552         if test "$ol_enable_monitor" = mod ; then
2553                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
2554                 MFLAG=SLAPD_MOD_DYNAMIC
2555         else
2556                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
2557                 MFLAG=SLAPD_MOD_STATIC
2558         fi
2559         AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
2560 fi
2561
2562 if test "$ol_enable_null" != no ; then
2563         BUILD_SLAPD=yes
2564         BUILD_NULL=$ol_enable_null
2565         if test "$ol_enable_null" = mod ; then
2566                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
2567                 MFLAG=SLAPD_MOD_DYNAMIC
2568         else
2569                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
2570                 MFLAG=SLAPD_MOD_STATIC
2571         fi
2572         AC_DEFINE_UNQUOTED(SLAPD_NULL,$MFLAG,[define to support NULL backend])
2573 fi
2574
2575 if test "$ol_enable_passwd" != no ; then
2576         BUILD_SLAPD=yes
2577         BUILD_PASSWD=$ol_enable_passwd
2578         if test "$ol_enable_passwd" = mod ; then
2579                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
2580                 MFLAG=SLAPD_MOD_DYNAMIC
2581         else
2582                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
2583                 MFLAG=SLAPD_MOD_STATIC
2584         fi
2585         AC_DEFINE_UNQUOTED(SLAPD_PASSWD,$MFLAG,[define to support PASSWD backend])
2586 fi
2587
2588 if test "$ol_link_perl" != no ; then
2589         BUILD_SLAPD=yes
2590         BUILD_PERL=$ol_enable_perl
2591         if test "$ol_enable_perl" = mod ; then
2592                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
2593                 MFLAG=SLAPD_MOD_DYNAMIC
2594         else
2595                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
2596                 MFLAG=SLAPD_MOD_STATIC
2597         fi
2598         AC_DEFINE_UNQUOTED(SLAPD_PERL,$MFLAG,[define to support PERL backend])
2599 fi
2600
2601 if test "$ol_enable_relay" != no ; then
2602         BUILD_SLAPD=yes
2603         BUILD_RELAY=$ol_enable_relay
2604         if test "$ol_enable_relay" = mod ; then
2605                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-relay"
2606                 MFLAG=SLAPD_MOD_DYNAMIC
2607         else
2608                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-relay"
2609                 MFLAG=SLAPD_MOD_STATIC
2610         fi
2611         AC_DEFINE_UNQUOTED(SLAPD_RELAY,$MFLAG,[define to support relay backend])
2612 fi
2613
2614 if test "$ol_enable_shell" != no ; then
2615         if test "$ol_link_thread" != no ; then
2616                 AC_MSG_WARN([Use of --without-threads is recommended with back-shell])
2617         fi
2618         BUILD_SLAPD=yes
2619         BUILD_SHELL=$ol_enable_shell
2620         if test "$ol_enable_shell" = mod ; then
2621                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
2622                 MFLAG=SLAPD_MOD_DYNAMIC
2623         else
2624                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
2625                 MFLAG=SLAPD_MOD_STATIC
2626         fi
2627         AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend])
2628 fi
2629
2630 if test "$ol_link_sql" != no ; then
2631         BUILD_SLAPD=yes
2632         BUILD_SQL=$ol_enable_sql
2633         if test "$ol_enable_sql" = mod; then
2634                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
2635                 MFLAG=SLAPD_MOD_DYNAMIC
2636         else
2637                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
2638                 MFLAG=SLAPD_MOD_STATIC
2639         fi
2640         AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend])
2641 fi
2642
2643 if test "$ol_enable_chain" != no ; then
2644         BUILD_CHAIN=$ol_enable_chain
2645         if test "$ol_enable_chain" = mod ; then
2646                 MFLAG=SLAPD_MOD_DYNAMIC
2647                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS chain.la"
2648         else
2649                 MFLAG=SLAPD_MOD_STATIC
2650         fi
2651         AC_DEFINE_UNQUOTED(SLAPD_OVER_CHAIN,$MFLAG,[define for Dynamic Group overlay])
2652 fi
2653
2654 if test "$ol_enable_denyop" != no ; then
2655         BUILD_DENYOP=$ol_enable_denyop
2656         if test "$ol_enable_denyop" = mod ; then
2657                 MFLAG=SLAPD_MOD_DYNAMIC
2658                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS denyop.la"
2659         else
2660                 MFLAG=SLAPD_MOD_STATIC
2661         fi
2662         AC_DEFINE_UNQUOTED(SLAPD_OVER_DENYOP,$MFLAG,[define for Dynamic Group overlay])
2663 fi
2664
2665 if test "$ol_enable_dyngroup" != no ; then
2666         BUILD_DYNGROUP=$ol_enable_dyngroup
2667         if test "$ol_enable_dyngroup" = mod ; then
2668                 MFLAG=SLAPD_MOD_DYNAMIC
2669                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dyngroup.la"
2670         else
2671                 MFLAG=SLAPD_MOD_STATIC
2672         fi
2673         AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay])
2674 fi
2675
2676 if test "$ol_enable_lastmod" != no ; then
2677         BUILD_LASTMOD=$ol_enable_lastmod
2678         if test "$ol_enable_lastmod" = mod ; then
2679                 MFLAG=SLAPD_MOD_DYNAMIC
2680                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS lastmod.la"
2681         else
2682                 MFLAG=SLAPD_MOD_STATIC
2683         fi
2684         AC_DEFINE_UNQUOTED(SLAPD_OVER_LASTMOD,$MFLAG,[define for Last Modification overlay])
2685 fi
2686
2687 if test "$ol_enable_ppolicy" != no ; then
2688         BUILD_PPOLICY=$ol_enable_ppolicy
2689         if test "$ol_enable_ppolicy" = mod ; then
2690                 MFLAG=SLAPD_MOD_DYNAMIC
2691                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS ppolicy.la"
2692         else
2693                 MFLAG=SLAPD_MOD_STATIC
2694         fi
2695         AC_DEFINE_UNQUOTED(SLAPD_OVER_PPOLICY,$MFLAG,[define for Password Policy overlay])
2696 fi
2697
2698 if test "$ol_enable_proxycache" != no ; then
2699         BUILD_PROXYCACHE=$ol_enable_proxycache
2700         if test "$ol_enable_proxycache" = mod ; then
2701                 MFLAG=SLAPD_MOD_DYNAMIC
2702                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS pcache.la"
2703         else
2704                 MFLAG=SLAPD_MOD_STATIC
2705         fi
2706         AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay])
2707 fi
2708
2709 if test "$ol_enable_refint" != no ; then
2710         BUILD_REFINT=$ol_enable_refint
2711         if test "$ol_enable_refint" = mod ; then
2712                 MFLAG=SLAPD_MOD_DYNAMIC
2713                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la"
2714         else
2715                 MFLAG=SLAPD_MOD_STATIC
2716         fi
2717         AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay])
2718 fi
2719
2720 if test "$ol_enable_rwm" != no ; then
2721         BUILD_REWRITE=yes
2722         BUILD_RWM=$ol_enable_rwm
2723         if test "$ol_enable_rwm" = mod ; then
2724                 MFLAG=SLAPD_MOD_DYNAMIC
2725                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS rwm.la"
2726         else
2727                 MFLAG=SLAPD_MOD_STATIC
2728         fi
2729         AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
2730 fi
2731
2732 if test "$ol_enable_unique" != no ; then
2733         BUILD_UNIQUE=$ol_enable_unique
2734         if test "$ol_enable_unique" = mod ; then
2735                 MFLAG=SLAPD_MOD_DYNAMIC
2736                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la"
2737         else
2738                 MFLAG=SLAPD_MOD_STATIC
2739         fi
2740         AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay])
2741 fi
2742
2743 if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \
2744         $BUILD_SLAPD = yes ; then
2745         BUILD_SLURPD=yes
2746 fi
2747
2748 if test "$ol_enable_rewrite" != no ; then
2749         AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta])
2750         BUILD_REWRITE=yes
2751 fi
2752
2753 if test "$ol_enable_slapi" != no ; then
2754         AC_DEFINE(ENABLE_SLAPI,1,[define to enable slapi library])
2755         BUILD_SLAPI=yes
2756         SLAPD_SLAPI_DEPEND=libslapi.a
2757 fi
2758
2759 dnl ----------------------------------------------------------------
2760
2761 dnl
2762 dnl For Windows build, we don't want to include -dlopen flags.
2763 dnl They hurt more than they help.
2764 dnl
2765
2766 if test "$ac_cv_mingw32" = yes ; then
2767         PLAT=NT
2768         SLAPD_MODULES_LDFLAGS=
2769 else
2770         PLAT=UNIX
2771 fi
2772
2773 if test -z "$SLAPD_STATIC_BACKENDS"; then
2774         SLAPD_NO_STATIC='#'
2775 else
2776         SLAPD_NO_STATIC=
2777 fi
2778
2779 AC_SUBST(LIBSRCS)
2780 AC_SUBST(PLAT)
2781 AC_SUBST(WITH_SASL)
2782 AC_SUBST(WITH_TLS)
2783 AC_SUBST(BUILD_LIBS_DYNAMIC)
2784
2785 AC_SUBST(BUILD_SLAPD)
2786 dnl slapi
2787   AC_SUBST(BUILD_SLAPI)
2788   AC_SUBST(SLAPD_SLAPI_DEPEND)
2789 dnl backends
2790   AC_SUBST(BUILD_BDB)
2791   AC_SUBST(BUILD_DNSSRV)
2792   AC_SUBST(BUILD_HDB)
2793   AC_SUBST(BUILD_LDAP)
2794   AC_SUBST(BUILD_LDBM)
2795   AC_SUBST(BUILD_META)
2796   AC_SUBST(BUILD_MONITOR)
2797   AC_SUBST(BUILD_NULL)
2798   AC_SUBST(BUILD_PASSWD)
2799   AC_SUBST(BUILD_RELAY)
2800   AC_SUBST(BUILD_PERL)
2801   AC_SUBST(BUILD_SHELL)
2802   AC_SUBST(BUILD_SQL)
2803 dnl overlays
2804   AC_SUBST(BUILD_CHAIN)
2805   AC_SUBST(BUILD_DENYOP)
2806   AC_SUBST(BUILD_DYNGROUP)
2807   AC_SUBST(BUILD_LASTMOD)
2808   AC_SUBST(BUILD_PPOLICY)
2809   AC_SUBST(BUILD_PROXYCACHE)
2810   AC_SUBST(BUILD_REFINT)
2811   AC_SUBST(BUILD_RWM)
2812   AC_SUBST(BUILD_UNIQUE)
2813 AC_SUBST(BUILD_SLURPD)
2814
2815 AC_SUBST(LDAP_LIBS)
2816 AC_SUBST(SLAPD_LIBS)
2817 AC_SUBST(SLURPD_LIBS)
2818 AC_SUBST(LDBM_LIBS)
2819 AC_SUBST(LTHREAD_LIBS)
2820 AC_SUBST(LUTIL_LIBS)
2821 AC_SUBST(WRAP_LIBS)
2822
2823 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
2824 AC_SUBST(SLAPD_MODULES_LDFLAGS)
2825
2826 AC_SUBST(SLAPD_NO_STATIC)
2827 AC_SUBST(SLAPD_STATIC_BACKENDS)
2828 AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
2829 AC_SUBST(SLAPD_DYNAMIC_OVERLAYS)
2830
2831 AC_SUBST(PERL_CPPFLAGS)
2832 AC_SUBST(SLAPD_PERL_LDFLAGS)
2833 AC_SUBST(MOD_PERL_LDFLAGS)
2834
2835 AC_SUBST(KRB4_LIBS)
2836 AC_SUBST(KRB5_LIBS)
2837 AC_SUBST(SASL_LIBS)
2838 AC_SUBST(TLS_LIBS)
2839 AC_SUBST(MODULES_LIBS)
2840 AC_SUBST(SLAPI_LIBS)
2841 AC_SUBST(LIBSLAPI)
2842 AC_SUBST(LIBSLAPITOOLS)
2843 AC_SUBST(AUTH_LIBS)
2844
2845 AC_SUBST(SLAPD_SLP_LIBS)
2846
2847 AC_SUBST(SLAPD_SQL_LDFLAGS)
2848 AC_SUBST(SLAPD_SQL_LIBS)
2849 AC_SUBST(SLAPD_SQL_INCLUDES)
2850
2851 dnl ----------------------------------------------------------------
2852 dnl final help output
2853 AC_ARG_WITH(xxinstall,[
2854 See INSTALL file for further details.])
2855
2856 dnl ----------------------------------------------------------------
2857 dnl final output
2858 dnl
2859
2860 AC_OUTPUT( \
2861 Makefile:build/top.mk:Makefile.in:build/dir.mk \
2862 doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk \
2863 doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk \
2864 doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk \
2865 doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk \
2866 doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk \
2867 doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk \
2868 clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk \
2869 clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk \
2870 include/Makefile:build/top.mk:include/Makefile.in \
2871 libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk      \
2872 libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk  \
2873 libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk  \
2874 libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk      \
2875 libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk  \
2876 libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk        \
2877 libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk \
2878 servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk \
2879 servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk \
2880 servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk \
2881 servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk \
2882 servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk \
2883 servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk \
2884 servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/mod.mk \
2885 servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk \
2886 servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk \
2887 servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk \
2888 servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk \
2889 servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk \
2890 servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk \
2891 servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk \
2892 servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk \
2893 servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk \
2894 servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk  \
2895 servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk \
2896 servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk \
2897 tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk \
2898 tests/run \
2899 tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk \
2900 ,[
2901 chmod +x tests/run
2902 date > stamp-h
2903 echo Please run \"make depend\" to build dependencies
2904 ])