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