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