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