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