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