OSDN Git Service

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