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