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