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