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