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