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