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