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