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