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