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