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