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