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