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