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