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