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