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