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