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