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