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