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