]> git.sur5r.net Git - openldap/blob - configure.in
Misc configure cleanup
[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' 2>/dev/null`"
64 TN="`$SHTOOL echo -e '%b' 2>/dev/null`"
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 OL_PROG_LN_H
645 AC_PROG_LN_S
646
647 dnl ----------------------------------------------------------------
648 dnl Perl
649 ol_link_perl=no
650 if test $ol_enable_perl != no ; then
651         AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)
652
653         if test "no$PERLBIN" = "no" ; then
654                 if test $ol_enable_perl = yes ; then
655                         AC_MSG_ERROR([could not locate perl])
656                 fi
657
658         else
659                 PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
660                 if test x"$ol_with_perl_module" = "xstatic" ; then
661                         SLAPD_PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e s/-lc//`"
662                 else
663                         MOD_PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e s/-lc//`"
664                 fi
665                 dnl should check perl version
666                 ol_link_perl=yes
667         fi
668 fi
669
670 AC_PROG_CPP
671
672 dnl ----------------------------------------------------------------
673 dnl Cross compiling checks
674 if test $cross_compiling = yes -a $ol_enable_x_compile = yes; then
675         AC_MSG_WARN([cross compiling....  some functionality will be removed.])
676
677 elif test $cross_compiling = no -a $ol_enable_x_compile = yes; then
678         AC_MSG_WARN([programs compiled here do run here...])
679         AC_MSG_ERROR([  if not cross compiling, use --disable-x-compile.])
680
681 elif test $cross_compiling = yes -a $ol_enable_x_compile = no; then
682         AC_MSG_WARN([programs compiled here do not run here...])
683         AC_MSG_ERROR([  if cross compiling,  add --enable-x-compile.])
684 fi
685
686 dnl ----------------------------------------------------------------
687 dnl Checks for UNIX Variants
688 dnl AC_AIX
689 dnl AC_ISC_POSIX
690 dnl AC_MINIX
691
692 dnl ----------------------------------------------------------------
693 dnl Checks for system services
694 AC_CYGWIN
695 AC_MINGW32
696 AC_EXEEXT
697 AC_OBJEXT
698
699 AC_DEFINE_UNQUOTED(EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
700
701 dnl ----------------------------------------------------------------
702 dnl BeOS requires -lbe -lroot -lnet
703 AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])
704
705 dnl ----------------------------------------------------------------
706 dnl OpenLDAP requires STDC features
707 AM_PROG_CC_STDC
708 if test "X${am_cv_prog_cc_stdc}" = "Xno" ; then
709         AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
710 fi
711
712 dnl ----------------------------------------------------------------
713 dnl Check cc depend flags
714 OL_MKDEPEND
715 if test "${ol_cv_mkdep}" = no ; then
716         # this will soon become an error
717         AC_MSG_WARN([do not know how to generate dependencies])
718 fi
719
720 dnl ----------------------------------------------------------------
721 dnl Check for AIX security library
722 AC_CHECK_LIB(s, afopen, [
723         AUTH_LIBS=-ls
724         AC_DEFINE(HAVE_AIX_SECURITY,1,[define if you have AIX security lib])
725 ])
726
727 dnl ----------------------------------------------------------------
728 dnl Check for IBM OS/390
729 case "$target" in
730 *-ibm-openedition)
731         ac_cv_func_getopt=no
732         AC_DEFINE(BOTH_STRINGS_H,1,[define to use both <string.h> and <strings.h>])
733         ;;
734 esac
735
736 dnl ----------------------------------------------------------------
737 dnl Check for module support
738 ol_link_modules=no
739 if test $ol_enable_modules != no ; then
740         AC_CHECK_HEADERS(ltdl.h)
741
742         if test $ac_cv_header_ltdl_h = no ; then
743                 AC_MSG_ERROR([could not locate libtool ltdl.h])
744         fi
745
746         AC_CHECK_LIB(ltdl, lt_dlinit, [
747                 MODULES_LIBS=-lltdl
748                 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
749         ])
750
751         if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then
752                 AC_MSG_ERROR([could not locate libtool -lltdl])
753         fi
754         ol_link_modules=yes
755 else
756         ol_with_bdb_module=static
757         ol_with_dnssrv_module=static
758         ol_with_ldap_module=static
759         ol_with_ldbm_module=static
760         ol_with_meta_module=static
761         ol_with_monitor_module=static
762         ol_with_null_module=static
763         ol_with_passwd_module=static
764         ol_with_perl_module=static
765         ol_with_shell_module=static
766         ol_with_tcl_module=static
767         ol_with_sql_module=static
768 fi
769
770 dnl ----------------------------------------------------------------
771 dnl Checks for header files.
772 OL_HEADER_STDC
773
774 if test $ol_cv_header_stdc != yes; then
775         AC_MSG_WARN([could not locate Standard C compliant headers])
776 fi
777
778 AC_HEADER_DIRENT
779 AC_HEADER_SYS_WAIT
780 AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
781 if test $am_cv_sys_posix_termios = yes ; then
782         AC_DEFINE(HAVE_POSIX_TERMIOS,1,
783                 [define if you have POSIX termios])
784 fi
785
786 AC_CHECK_HEADERS(       \
787         arpa/inet.h             \
788         arpa/nameser.h  \
789         assert.h                \
790         conio.h                 \
791         crypt.h                 \
792         direct.h                \
793         errno.h                 \
794         fcntl.h                 \
795         filio.h                 \
796         getopt.h                \
797         grp.h                   \
798         io.h                    \
799         libutil.h               \
800         limits.h                \
801         locale.h                \
802         netinet/tcp.h   \
803         malloc.h                \
804         memory.h                \
805         psap.h                  \
806         pwd.h                   \
807         process.h               \
808         resolv.h                \
809         sgtty.h                 \
810         shadow.h                \
811         stddef.h                \
812         string.h                \
813         strings.h               \
814         sysexits.h              \
815         sys/file.h              \
816         sys/filio.h             \
817         sys/errno.h             \
818         sys/ioctl.h             \
819         sys/param.h             \
820         sys/resource.h  \
821         sys/select.h    \
822         sys/socket.h    \
823         sys/syslog.h    \
824         sys/time.h              \
825         sys/types.h             \
826         syslog.h                \
827         termios.h               \
828         unistd.h                \
829         winsock.h               \
830         winsock2.h              \
831 )
832
833
834 dnl ----------------------------------------------------------------
835 dnl Checks for libraries
836
837 AC_CHECK_FUNC(dlopen, :, [AC_CHECK_LIB(dl, dlopen)])
838
839 dnl HP-UX requires -lV3
840 dnl this is not needed on newer versions of HP-UX
841 AC_CHECK_LIB(V3, sigset)
842
843 dnl The following is INTENTIONALLY scripted out because shell does not
844 dnl support variable names with the '@' character, which is what
845 dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
846 AC_MSG_CHECKING(for winsock)
847 save_LIBS="$LIBS"
848 for curlib in ws2_32 wsock32; do
849         LIBS="$LIBS -l$curlib"
850         AC_TRY_LINK([
851                         char socket@12();
852                         char select@20();
853                         char closesocket@4();
854                         char gethostname@8();
855                         ],
856                         [
857                         socket@12();
858                         select@20();
859                         closesocket@4();
860                         gethostname@8();
861                         ],
862                         have_winsock=yes, have_winsock=no)
863
864         if test $have_winsock = yes; then
865                 AC_DEFINE(HAVE_WINSOCK, 1, [define if you have winsock])
866                 ac_cv_func_socket=yes
867                 ac_cv_func_select=yes
868                 ac_cv_func_closesocket=yes
869                 ac_cv_func_gethostname=yes
870                 if test $curlib = ws2_32; then
871                         have_winsock=winsock2
872                         AC_DEFINE(HAVE_WINSOCK2, 1,
873                                   [define if you have winsock2])
874                 fi
875                 break
876         fi
877         LIBS="$save_LIBS"
878 done
879 AC_MSG_RESULT($have_winsock)
880
881 dnl Find socket()
882 dnl Likely combinations:
883 dnl             -lsocket [ -lnsl_s | -lnsl ]
884 dnl             -linet
885
886 AC_CHECK_FUNC(socket, :, [      
887 dnl hopefully we won't include too many libraries
888         AC_CHECK_LIB(socket, main)
889         AC_CHECK_LIB(net, main)
890         AC_CHECK_LIB(nsl_s, main)
891         AC_CHECK_LIB(nsl, main)
892         AC_CHECK_LIB(inet, socket)
893         AC_CHECK_LIB(gen, main)
894 ])
895
896 dnl require select
897 AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
898
899 if test "${ac_cv_header_winsock_h}" != yes; then
900         dnl Select arg types
901         dnl (if this detection becomes permenent, it and the select() detection
902         dnl should be done before the yielding select test) 
903         AC_FUNC_SELECT_ARGTYPES
904 fi
905
906 dnl check to see if system call automatically restart
907 dnl AC_SYS_RESTARTABLE_SYSCALLS
908
909 dnl ----------------------------------------------------------------
910 dnl require POSIX regex
911 AC_CHECK_HEADERS( regex.h )
912 if test "$ac_cv_header_regex_h" != yes ; then
913         AC_MSG_ERROR([POSIX regex.h required.])
914 fi
915 AC_SEARCH_LIBS(regfree, [regex gnuregex],
916         :, AC_MSG_ERROR([POSIX regex required.]))
917
918 OL_POSIX_REGEX
919 if test "$ol_cv_c_posix_regex" = no ; then
920         AC_MSG_ERROR([broken POSIX regex!])
921 fi
922
923 dnl ----------------------------------------------------------------
924 dnl UUID Support
925
926 have_uuid=no
927 AC_CHECK_HEADERS(sys/uuid.h)
928 if test $ac_cv_header_sys_uuid_h = yes ; then
929         save_LIBS="$LIBS"
930         AC_SEARCH_LIBS(uuid_to_str, uuid, [have_uuid=yes], :)
931         LIBS="$save_LIBS"
932
933         if test have_uuid = yes ; then
934                 AC_DEFINE(HAVE_UUID_TO_STR,1,
935                         [define if you have uuid_to_str()])
936
937                 test "$ac_cv_search_uuid_to_str" = "none required" || \
938                         SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_to_str"
939         fi
940 fi
941
942 dnl For windows, check for the need of RPCRT for UUID function support
943 if test $have_uuid = no ; then
944         AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
945         save_LIBS="$LIBS"
946         LIBS="$LIBS -lrpcrt4"
947         AC_TRY_LINK([
948                 char UuidCreate@4();
949                 char UuidToStringA@8();
950                 ],
951                 [
952                 UuidCreate@4();
953                 UuidToStringA@8();
954                 ],
955                 need_rpcrt=yes, need_rpcrt=no)
956         if test $need_rpcrt = yes; then
957                 SLAPD_LIBS="$SLAPD_LIBS -lrpcrt4"
958         fi
959         LIBS="$save_LIBS"
960         AC_MSG_RESULT($need_rpcrt)
961 fi
962
963 dnl ----------------------------------------------------------------
964 dnl Check for resolver routines
965 dnl       need to check for both res_query and __res_query
966 dnl   need to check -lc, -lbind, and -lresolv
967 ol_link_dnssrv=no
968 AC_CHECK_FUNC(res_query,:)
969 if test $ac_cv_func_res_query = no ; then 
970         AC_CHECK_FUNC(__res_query,:)
971         ac_cv_func_res_query=$ac_cv_func___res_query
972 fi
973
974 if test $ac_cv_func_res_query = no ; then 
975         AC_CHECK_LIB(bind, res_query)
976         ac_cv_func_res_query=$ac_cv_lib_bind_res_query
977 fi
978
979 if test $ac_cv_func_res_query = no ; then 
980         AC_CHECK_LIB(bind, __res_query)
981         ac_cv_func_res_query=$ac_cv_lib_bind___res_query
982 fi
983
984 if test $ac_cv_func_res_query = no ; then 
985         AC_CHECK_LIB(resolv, res_query)
986         ac_cv_func_res_query=$ac_cv_lib_resolv_res_query
987 fi
988
989 if test $ac_cv_func_res_query = no ; then 
990         AC_CHECK_LIB(resolv, __res_query)
991         ac_cv_func_res_query=$ac_cv_lib_resolv___res_query
992 fi
993
994 if test "$ac_cv_func_res_query" = yes ; then
995         AC_DEFINE(HAVE_RES_QUERY,1,
996                 [define if you have res_query()])
997
998         if test $ol_enable_dnssrv != no ; then
999                 ol_link_dnssrv=yes
1000         fi
1001 fi
1002
1003 if test "$ol_enable_dnssrv" = yes -a "$ol_link_dnssrv" = no ; then
1004         AC_MSG_ERROR([DNSSRV requires res_query()])
1005 fi
1006
1007 dnl ----------------------------------------------------------------
1008 dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
1009 dnl PF_LOCAL may use getaddrinfo in available
1010 AC_CHECK_FUNCS( getaddrinfo gai_strerror inet_ntop )
1011
1012 ol_link_ipv6=no
1013 if test $ac_cv_func_getaddrinfo = no -o $ac_cv_func_inet_ntop = no ; then
1014         if test $ol_enable_ipv6 = yes ; then
1015                 AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
1016         fi
1017 elif test $ol_enable_ipv6 != no ; then
1018         AC_CACHE_CHECK([INET6_ADDRSTRLEN],[ol_cv_inet6_addrstrlen],[
1019                 AC_EGREP_CPP(__has_inet6_addrstrlen__,[
1020 #                       include <netinet/in.h>
1021 #                       ifdef INET6_ADDRSTRLEN
1022                                 __has_inet6_addrstrlen__;
1023 #                       endif
1024                 ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])])
1025
1026
1027         AC_CACHE_CHECK([struct sockaddr_storage],ol_cv_struct_sockaddr_storage,[
1028                 AC_TRY_COMPILE([
1029 #include <sys/types.h>
1030 #include <sys/socket.h>
1031 ],[
1032                         struct sockaddr_storage ss;
1033 ],                      [ol_cv_struct_sockaddr_storage=yes],
1034                         [ol_cv_struct_sockaddr_storage=no])])
1035
1036         if test $ol_cv_inet6_addrstrlen = yes \
1037                 -a $ol_cv_struct_sockaddr_storage = yes ; then
1038                 ol_link_ipv6=yes
1039         elif test $ol_enable_ipv6 = yes \
1040                         -a $ol_cv_inet6_addrstrlen = no ; then
1041                 AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
1042         elif test $ol_enable_ipv6 = yes \
1043                         -a $ol_cv_struct_sockaddr_storage = no ; then
1044                 AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage])
1045         fi
1046 fi
1047
1048 if test $ol_enable_local != no ; then
1049         AC_CHECK_HEADERS( sys/un.h )
1050
1051         if test $ol_enable_local = auto ; then
1052                 ol_enable_local=$ac_cv_header_sys_un_h
1053         elif test $ac_cv_header_sys_un_h = no ; then
1054                 AC_MSG_ERROR([AF_LOCAL domain support requires sys/un.h])
1055         fi
1056 fi
1057
1058 dnl ----------------------------------------------------------------
1059 dnl Kerberos
1060 ol_link_kbind=no
1061 ol_link_kpasswd=no
1062 ol_link_krb5=no
1063 ol_link_krb4=no
1064
1065 if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
1066         -o $ol_with_kerberos = k5 -o $ol_with_kerberos = k5only \
1067         -o $ol_with_kerberos = k425 ; then
1068
1069         AC_CHECK_HEADERS(krb5.h)
1070
1071         if test $ac_cv_header_krb5_h = yes ; then
1072                 dnl lazy check for Heimdal Kerberos
1073                 AC_CHECK_HEADERS(heim_err.h)
1074                 if test $ac_cv_header_heim_err_h = yes ; then
1075                         krb5_impl=heimdal
1076                 else
1077                         krb5_impl=mit
1078                 fi
1079
1080                 if test $krb5_impl = mit; then
1081                         AC_CHECK_LIB(k5crypto, main,
1082                                 [krb5crypto=k5crypto],
1083                                 [krb5crypto=crypto])
1084
1085                         AC_CHECK_LIB(krb5, main,
1086                                 [have_krb5=yes
1087                                 KRB5_LIBS="-lkrb5 -l$krb5crypto -lcom_err"],
1088                                 [have_krb5=no],
1089                                 [-l$krb5crypto -lcom_err])
1090
1091                 elif test $krb5_impl = heimdal; then
1092                         AC_CHECK_LIB(des, main,
1093                                 [krb5crypto=des],
1094                                 [krb5crypto=crypto])
1095
1096                         AC_CHECK_LIB(krb5, main,
1097                                 [have_krb5=yes
1098                                 KRB5_LIBS="-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err"],
1099                                 [have_krb5=no],
1100                                 [-l$krb5crypto -lasn1 -lroken -lcom_err])
1101
1102                         AC_DEFINE(HAVE_HEIMDAL_KERBEROS, 1,
1103                                 [define if you have HEIMDAL Kerberos])
1104
1105                 else
1106                         have_krb5=no
1107                         AC_MSG_WARN([Unrecongized Kerberos5 Implementation])
1108                 fi
1109
1110                 if test $have_krb5 = yes ; then
1111                         ol_link_krb5=yes
1112
1113                         AC_DEFINE(HAVE_KRB5, 1,
1114                                 [define if you have Kerberos V])
1115
1116                         if test $ol_enable_kpasswd != no ; then
1117                                 ol_link_kpasswd=yes;
1118                         fi
1119
1120                         if test $ol_with_kerberos = k5only ; then
1121                                 ol_with_kerberos=found
1122                         fi
1123
1124                 elif test $ol_with_kerberos != auto ; then
1125                         AC_MSG_ERROR([Required Kerberos 5 support not available])
1126                 fi
1127
1128         fi
1129 fi
1130
1131 if test $ol_link_krb5 = yes -a \( $ol_with_kerberos = yes -o \
1132         $ol_with_kerberos = auto -o $ol_with_kerberos = k425 \) ; then
1133
1134         AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
1135
1136         if test $ac_cv_header_kerberosIV_krb_h = yes ; then
1137                 if test $krb5_impl = mit; then
1138                         AC_CHECK_LIB(krb4, main, [have_k425=yes
1139                                 KRB4_LIBS="-lkrb4 -ldes425"], [have_k425=no],
1140                                 [-ldes425 -lkrb5 -l$krb5crypto -lcom_err])
1141
1142                 elif test $krb5_impl = heimdal; then
1143                         AC_CHECK_LIB(krb4, main, [have_k425=yes
1144                                 KRB4_LIBS="-lkrb4"], [have_k425=no],
1145                                 [-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err])
1146
1147                 else
1148                         have_425=no
1149                         AC_MSG_WARN([Unrecongized Kerberos V Implementation])
1150                 fi
1151
1152                 if test $have_k425 = yes ; then
1153                         ol_with_kerberos=found
1154                         ol_link_krb4=yes
1155
1156                         AC_DEFINE(HAVE_KRB425, 1,
1157                                 [define if you have Kerberos V with IV support])
1158                         AC_DEFINE(HAVE_KRB4, 1,
1159                                 [define if you have Kerberos IV])
1160
1161                         AC_CACHE_CHECK([for des_debug in Kerberos libraries],
1162                                 [ol_cv_var_des_debug], [
1163                                 dnl save the flags
1164                                 save_LIBS="$LIBS"
1165                                 LIBS="$KRB4_LIBS $KRB5_LIBS $LIBS"
1166                                 AC_TRY_LINK([
1167 #include <kerberosIV/krb.h>
1168 #include <kerberosIV/des.h>
1169 extern int des_debug;
1170 ],[
1171 des_debug = 1;
1172 ],                              ol_cv_var_des_debug=yes, ol_cv_var_des_debug=no)
1173                                 dnl restore the LIBS
1174                                 LIBS="$save_LIBS"
1175                         ])
1176
1177                         if test $ol_cv_var_des_debug = yes ; then
1178                                 AC_DEFINE(HAVE_DES_DEBUG,1,
1179                                         [define if you have Kerberos des_debug])
1180                         fi
1181
1182                         LIBS="$save_LIBS"
1183                 fi
1184         fi
1185 fi
1186
1187 if test $ol_link_krb5 = yes ; then
1188         ol_with_kerberos=found
1189 fi
1190
1191 if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
1192         -o $ol_with_kerberos = k4 -o $ol_with_kerberos = kth ; then
1193
1194         AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
1195
1196         if test $ac_cv_header_krb_h = yes ; then
1197                 AC_CHECK_LIB(krb, main, [have_k4=yes], [have_k4=no], [-ldes])
1198
1199                 if test $have_k4 = yes ; then
1200                         ol_with_kerberos=found
1201                         ol_link_krb4=yes
1202
1203                         AC_DEFINE(HAVE_KRB4, 1,
1204                                 [define if you have Kerberos IV])
1205
1206                         KRB4_LIBS="-lkrb -ldes"
1207
1208                         if test $ac_cv_header_krb_archaeology_h = yes ; then
1209                                 AC_DEFINE(HAVE_KTH_KERBEROS, 1,
1210                                         [define if you have Kth Kerberos])
1211                         fi
1212                 fi
1213         fi
1214 fi
1215
1216 if test $ol_link_krb4 = yes -a $ol_enable_kpasswd != no ; then
1217         ol_link_kpasswd=yes
1218 fi
1219
1220 if test $ol_link_krb4 = yes -a $ol_enable_kbind != no ; then
1221         ol_link_kbind=yes
1222
1223 elif test $ol_enable_kbind = yes ; then
1224         AC_MSG_ERROR([Kerberos IV detection failed])
1225 fi
1226
1227 if test $ol_link_krb4 = yes -o $ol_link_krb5 = yes ; then
1228         AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
1229
1230 elif test $ol_with_kerberos != auto -a $ol_with_kerberos != no ; then
1231         AC_MSG_ERROR([Kerberos detection failed])
1232 fi
1233
1234 dnl ----------------------------------------------------------------
1235 dnl TLS/SSL
1236 ol_link_tls=no
1237 if test $ol_with_tls != no ; then
1238         AC_CHECK_HEADERS(openssl/ssl.h ssl.h)
1239         
1240         if test $ac_cv_header_openssl_ssl_h = yes \
1241                 -o $ac_cv_header_ssl_h = yes ; then
1242                 AC_CHECK_LIB(ssl, SSLeay_add_ssl_algorithms, 
1243                         [have_ssleay=yes
1244                         need_rsaref=no],
1245                         [have_ssleay=no],
1246                         [-lcrypto])
1247                         
1248                 if test $have_ssleay = no ; then
1249                         AC_CHECK_LIB(ssl, SSL_library_init,
1250                                 [have_ssleay=yes
1251                                 need_rsaref=no], [have_ssleay=no],
1252                                 [-lcrypto])
1253                 fi
1254
1255                 if test $have_ssleay = no ; then
1256                         AC_CHECK_LIB(ssl, ssl3_accept, 
1257                                 [have_ssleay=yes
1258                                 need_rsaref=yes], [have_ssleay=no],
1259                                 [-lcrypto -lRSAglue -lrsaref])
1260                 fi
1261
1262                 if test $have_ssleay = yes ; then
1263                         ol_with_tls=found
1264                         ol_link_tls=yes
1265
1266                         AC_DEFINE(HAVE_SSLEAY, 1, 
1267                                 [define if you have SSLeay or OpenSSL])
1268
1269                         if test $need_rsaref = yes; then
1270                                 AC_DEFINE(HAVE_RSAREF, 1, 
1271                                         [define if you have RSAref])
1272
1273                                 TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
1274                         else
1275                                 TLS_LIBS="-lssl -lcrypto"
1276                         fi
1277                 fi
1278         fi
1279
1280 else
1281         AC_WARN([TLS data protection not supported!])
1282 fi
1283
1284 if test $ol_link_tls = yes ; then
1285         AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
1286
1287 elif test $ol_with_tls = auto ; then
1288         AC_WARN([Could not locate TLS/SSL package])
1289         AC_WARN([TLS data protection not supported!])
1290
1291 elif test $ol_with_tls != no ; then
1292         AC_ERROR([Could not locate TLS/SSL package])
1293 fi
1294
1295 dnl ----------------------------------------------------------------
1296 dnl LAN Manger password checking requires DES from OpenSSL
1297 if test $ol_enable_lmpasswd != no; then
1298         if test $ol_link_tls != yes ; then
1299                 AC_ERROR([LAN Manager passwords require OpenSSL])
1300         fi
1301
1302         AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
1303 fi
1304
1305 dnl ----------------------------------------------------------------
1306 dnl Tests for reentrant functions necessary to build a
1307 dnl thread_safe -lldap.
1308 AC_CHECK_FUNCS(         \
1309         ctime_r                 \
1310         gethostbyname_r gethostbyaddr_r \
1311 )
1312
1313 if test "$ac_cv_func_ctime_r" = no ; then
1314         ol_cv_func_ctime_r_nargs=0
1315 else
1316         OL_FUNC_CTIME_R_NARGS
1317 dnl     OL_FUNC_CTIME_R_TYPE
1318 fi
1319
1320 if test "$ac_cv_func_gethostbyname_r" = yes ; then
1321         OL_FUNC_GETHOSTBYNAME_R_NARGS
1322 else
1323         ol_cv_func_gethostbyname_r_nargs=0
1324 fi
1325  
1326 if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
1327         OL_FUNC_GETHOSTBYADDR_R_NARGS
1328 else
1329         ol_cv_func_gethostbyaddr_r_nargs=0
1330 fi
1331
1332 if test "$ac_cv_func_ctime_r" = yes \
1333         -a "$ol_cv_func_ctime_r_nargs" -ge 2 \
1334         -a "$ol_cv_func_ctime_r_nargs" -le 3 \
1335         -a "$ac_cv_func_gethostbyname_r" = yes \
1336         -a "$ol_cv_func_gethostbyname_r_nargs" -ge 5 \
1337         -a "$ol_cv_func_gethostbyname_r_nargs" -le 6 \
1338         -a "$ac_cv_func_gethostbyaddr_r" = yes \
1339         -a "$ol_cv_func_gethostbyaddr_r_nargs" -ge 5 \
1340         -a "$ol_cv_func_gethostbyaddr_r_nargs" -le 6 \
1341         ; then
1342  
1343         AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_REENTRANT,1)
1344 fi
1345
1346 dnl ----------------------------------------------------------------
1347 dnl Threads?
1348 ol_link_threads=no
1349
1350 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1351         -o $ol_with_threads = nt ; then
1352
1353         OL_NT_THREADS
1354
1355         if test "$ol_cv_nt_threads" = yes ; then
1356                 ol_link_threads=nt
1357                 ol_with_threads=found
1358                 ol_with_yielding_select=yes
1359
1360                 AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager])
1361                 AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log])
1362         fi
1363
1364         if test $ol_with_threads = nt ; then
1365                 AC_MSG_ERROR([could not locate NT Threads])
1366         fi
1367 fi
1368
1369 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1370         -o $ol_with_threads = posix ; then
1371
1372         AC_CHECK_HEADERS(pthread.h)
1373
1374         if test $ac_cv_header_pthread_h = yes ; then
1375                 OL_POSIX_THREAD_VERSION
1376
1377                 if test $ol_cv_pthread_version != 0 ; then
1378                         AC_DEFINE_UNQUOTED(HAVE_PTHREADS,$ol_cv_pthread_version,
1379                                 [define to pthreads API spec revision])
1380                 else
1381                         AC_MSG_ERROR([unknown pthread version])
1382                 fi
1383
1384                 # consider threads found
1385                 ol_with_threads=found
1386
1387                 OL_HEADER_LINUX_THREADS
1388                 OL_HEADER_GNU_PTH_PTHREAD_H
1389
1390                 if test $ol_cv_header_gnu_pth_pthread_h = no ; then
1391                         AC_CHECK_HEADERS(sched.h)
1392                 fi
1393
1394                 dnl Now the hard part, how to link?
1395                 dnl
1396                 dnl currently supported checks:
1397                 dnl
1398                 dnl Check for no flags 
1399                 dnl     pthread_create() in $LIBS
1400                 dnl
1401                 dnl Check special pthread (final) flags
1402                 dnl     [skipped] pthread_create() with -mt (Solaris) [disabled]
1403                 dnl     pthread_create() with -kthread (FreeBSD)
1404                 dnl     pthread_create() with -pthread (FreeBSD/Digital Unix)
1405                 dnl     pthread_create() with -pthreads (?)
1406                 dnl     pthread_create() with -mthreads (AIX)
1407                 dnl     pthread_create() with -thread (?)
1408                 dnl
1409                 dnl Check pthread (final) libraries
1410                 dnl     pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
1411                 dnl     pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
1412                 dnl     [skipped] pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
1413                 dnl     pthread_join() -Wl,-woff,85 -lpthread (IRIX)
1414                 dnl     pthread_create() in -lpthread (many)
1415                 dnl     pthread_create() in -lc_r (FreeBSD)
1416                 dnl
1417                 dnl Check pthread (draft4) flags (depreciated)
1418                 dnl     pthread_create() with -threads (OSF/1)
1419                 dnl
1420                 dnl Check pthread (draft4) libraries (depreciated)
1421                 dnl     pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
1422                 dnl     pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
1423                 dnl     pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
1424                 dnl     pthread_create() in -lpthreads (many)
1425                 dnl
1426
1427                 dnl pthread_create in $LIBS
1428                 AC_CACHE_CHECK([for pthread_create in default libraries],
1429                         ol_cv_pthread_create,[
1430                 AC_TRY_RUN(OL_PTHREAD_TEST_PROGRAM,
1431                         [ol_cv_pthread_create=yes],
1432                         [ol_cv_pthread_create=no],
1433                         [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION,
1434                                 [ol_cv_pthread_create=yes],
1435                                 [ol_cv_pthread_create=no])])])
1436
1437                 if test $ol_cv_pthread_create != no ; then
1438                         ol_link_threads=posix
1439                         ol_link_pthreads=""
1440                 fi
1441                 
1442 dnl             OL_PTHREAD_TRY([-mt],           [ol_cv_pthread_mt])
1443                 OL_PTHREAD_TRY([-kthread],      [ol_cv_pthread_kthread])
1444                 OL_PTHREAD_TRY([-pthread],      [ol_cv_pthread_pthread])
1445                 OL_PTHREAD_TRY([-pthreads],     [ol_cv_pthread_pthreads])
1446                 OL_PTHREAD_TRY([-mthreads],     [ol_cv_pthread_mthreads])
1447                 OL_PTHREAD_TRY([-thread],       [ol_cv_pthread_thread])
1448
1449                 OL_PTHREAD_TRY([-lpthread -lmach -lexc -lc_r],
1450                         [ol_cv_pthread_lpthread_lmach_lexc_lc_r])
1451                 OL_PTHREAD_TRY([-lpthread -lmach -lexc],
1452                         [ol_cv_pthread_lpthread_lmach_lexc])
1453 dnl             OL_PTHREAD_TRY([-lpthread -lexc],
1454 dnl                     [ol_cv_pthread_lpthread_lexc])
1455
1456                 OL_PTHREAD_TRY([-lpthread -Wl,-woff,85],
1457                         [ol_cv_pthread_lib_lpthread_woff])
1458
1459                 OL_PTHREAD_TRY([-lpthread],     [ol_cv_pthread_lpthread])
1460                 OL_PTHREAD_TRY([-lc_r],         [ol_cv_pthread_lc_r])
1461
1462                 OL_PTHREAD_TRY([-threads],      [ol_cv_pthread_threads])
1463
1464                 OL_PTHREAD_TRY([-lpthreads -lmach -lexc -lc_r],
1465                         [ol_cv_pthread_lpthreads_lmach_lexc_lc_r])
1466                 OL_PTHREAD_TRY([-lpthreads -lmach -lexc],
1467                         [ol_cv_pthread_lpthreads_lmach_lexc])
1468                 OL_PTHREAD_TRY([-lpthreads -lexc],
1469                         [ol_cv_pthread_lpthreads_lexc])
1470
1471                 OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
1472
1473                 if test $ol_link_threads != no ; then
1474                         LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
1475
1476                         dnl save flags
1477                         save_CPPFLAGS="$CPPFLAGS"
1478                         save_LIBS="$LIBS"
1479                         LIBS="$LTHREAD_LIBS $LIBS"
1480
1481                         dnl All POSIX Thread (final) implementations should have
1482                         dnl sched_yield instead of pthread yield.
1483                         dnl check for both, and thr_yield for Solaris
1484                         AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
1485
1486                         if test $ac_cv_func_sched_yield = no -a \
1487                                 $ac_cv_func_pthread_yield = no -a \
1488                                 $ac_cv_func_thr_yield = no ; then
1489                                 dnl Digital UNIX has sched_yield() in -lrt
1490                                 AC_CHECK_LIB(rt, sched_yield,
1491                                         [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
1492                                         AC_DEFINE(HAVE_SCHED_YIELD,1,
1493                                                 [Define if you have the sched_yield function.])
1494                                         ac_cv_func_sched_yield=yes],
1495                                         [ac_cv_func_sched_yield=no])
1496                         fi
1497                         if test $ac_cv_func_sched_yield = no -a \
1498                                 $ac_cv_func_pthread_yield = no -a \
1499                                 "$ac_cv_func_thr_yield" = no ; then
1500                                 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
1501                         fi
1502
1503                         dnl Check functions for compatibility
1504                         AC_CHECK_FUNCS(pthread_kill pthread_rwlock_destroy)
1505
1506                         dnl Check for pthread_detach with <pthread.h> inclusion
1507                         dnl as it's symbol may have been mangled.
1508                         AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
1509                                 [ol_cv_func_pthread_detach], [
1510                                 dnl save the flags
1511                                 AC_TRY_LINK([
1512 #include <pthread.h>
1513 #ifndef NULL
1514 #define NULL (void*)0
1515 #endif
1516 ],
1517                                         [pthread_detach(NULL);],
1518                                         [ol_cv_func_pthread_detach=yes],
1519                                         [ol_cv_func_pthread_detach=no])
1520                         ])
1521
1522                         if test $ol_cv_func_pthread_detach = no ; then
1523                                 AC_MSG_ERROR([could not locate pthread_detach()])
1524                         fi
1525
1526                         AC_DEFINE(HAVE_PTHREAD_DETACH,1,
1527                                 [define if you have pthread_detach function])
1528
1529                         dnl Check for setconcurreny functions
1530                         AC_CHECK_FUNCS( \
1531                                 pthread_setconcurrency \
1532                                 pthread_getconcurrency \
1533                                 thr_setconcurrency \
1534                                 thr_getconcurrency \
1535                         )
1536
1537                         OL_SYS_LINUX_THREADS
1538                         OL_LINUX_THREADS
1539
1540                         if test $ol_cv_linux_threads = error; then
1541                                 AC_MSG_ERROR([LinuxThreads header/library mismatch]);
1542                         fi
1543
1544                         AC_CACHE_CHECK([if pthread_create() works],
1545                                 ol_cv_pthread_create_works,[
1546                         AC_TRY_RUN(OL_PTHREAD_TEST_PROGRAM,
1547                                 [ol_cv_pthread_create_works=yes],
1548                                 [ol_cv_pthread_create_works=no],
1549                                 [dnl assume yes
1550                                 ol_cv_pthread_create_works=yes])])
1551
1552                         if test $ol_cv_pthread_create_works = no ; then
1553                                 AC_MSG_ERROR([pthread_create is not usable, check environment settings])
1554                         fi
1555
1556                         dnl Check if select causes an yield
1557                         if test $ol_with_yielding_select = auto ; then
1558                                 AC_CACHE_CHECK([if select yields when using pthreads],
1559                                         ol_cv_pthread_select_yields,[
1560                                 AC_TRY_RUN([
1561 #include <sys/types.h>
1562 #include <sys/time.h>
1563 #include <unistd.h>
1564 #include <pthread.h>
1565 #ifndef NULL
1566 #define NULL (void*) 0
1567 #endif
1568
1569 static int fildes[2];
1570
1571 static void *task(p)
1572         void *p;
1573 {
1574         int i;
1575         struct timeval tv;
1576
1577         fd_set rfds;
1578
1579         tv.tv_sec=10;
1580         tv.tv_usec=0;
1581
1582         FD_ZERO(&rfds);
1583         FD_SET(fildes[0], &rfds);
1584
1585         /* we're not interested in any fds */
1586         i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
1587
1588         if(i < 0) {
1589                 perror("select");
1590                 exit(10);
1591         }
1592
1593         exit(0); /* if we exit here, the select blocked the whole process */
1594 }
1595
1596 int main(argc, argv)
1597         int argc;
1598         char **argv;
1599 {
1600         pthread_t t;
1601
1602         /* create a pipe to select */
1603         if(pipe(&fildes[0])) {
1604                 perror("select");
1605                 exit(1);
1606         }
1607
1608 #ifdef HAVE_PTHREAD_SETCONCURRENCY
1609         (void) pthread_setconcurrency(2);
1610 #else
1611 #ifdef HAVE_THR_SETCONCURRENCY
1612         /* Set Solaris LWP concurrency to 2 */
1613         thr_setconcurrency(2);
1614 #endif
1615 #endif
1616
1617 #if HAVE_PTHREADS < 6
1618         pthread_create(&t, pthread_attr_default, task, NULL);
1619 #else
1620         pthread_create(&t, NULL, task, NULL);
1621 #endif
1622
1623         /* make sure task runs first */
1624 #if HAVE_THR_YIELD
1625         thr_yield();
1626 #elif defined( HAVE_SCHED_YIELD )
1627         sched_yield();
1628 #elif defined( HAVE_PTHREAD_YIELD )
1629         pthread_yield();
1630 #endif
1631
1632         exit(2);
1633 }],
1634                                 [ol_cv_pthread_select_yields=no],
1635                                 [ol_cv_pthread_select_yields=yes],
1636                                 [ol_cv_pthread_select_yields=cross])])
1637
1638                                 if test $ol_cv_pthread_select_yields = cross ; then
1639                                         AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])
1640                                 fi
1641
1642                                 if test $ol_cv_pthread_select_yields = yes ; then
1643                                         ol_with_yielding_select=yes
1644                                 fi
1645                         fi
1646
1647                         dnl restore flags
1648                         CPPFLAGS="$save_CPPFLAGS"
1649                         LIBS="$save_LIBS"
1650                 else
1651                         AC_MSG_ERROR([could not locate usable POSIX Threads])
1652                 fi
1653         fi
1654
1655         if test $ol_with_threads = posix ; then
1656                 AC_MSG_ERROR([could not locate POSIX Threads])
1657         fi
1658 fi
1659
1660 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1661         -o $ol_with_threads = mach ; then
1662
1663         dnl check for Mach CThreads
1664         AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
1665         if test $ac_cv_header_mach_cthreads_h = yes ; then
1666                 ol_with_threads=found
1667
1668                 dnl check for cthreads support in current $LIBS
1669                 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1670
1671                 if test $ol_link_threads = no ; then
1672                         dnl try -all_load
1673                         dnl this test needs work
1674                         AC_CACHE_CHECK([for cthread_fork with -all_load],
1675                                 [ol_cv_cthread_all_load], [
1676                                 dnl save the flags
1677                                 save_LIBS="$LIBS"
1678                                 LIBS="-all_load $LIBS"
1679                                 AC_TRY_LINK([#include <mach/cthreads.h>],[
1680                                         cthread_fork((void *)0, (void *)0);
1681                                         ], ol_cv_cthread_all_load=yes, ol_cv_cthread_all_load=no)
1682                                 dnl restore the LIBS
1683                                 LIBS="$save_LIBS"
1684                         ])
1685
1686                         if test $ol_cv_cthread_all_load = yes ; then
1687                                 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
1688                                 ol_link_threads=mach
1689                                 ol_with_threads=found
1690                         fi
1691                 fi
1692
1693         elif test $ac_cv_header_cthreads_h = yes ; then
1694                 dnl Hurd variant of Mach Cthreads
1695                 dnl uses <cthreads.h> and -lthreads
1696
1697                 ol_with_threads=found
1698  
1699                 dnl save the flags
1700                 save_LIBS="$LIBS"
1701                 LIBS="$LIBS -lthreads"
1702                 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1703                 LIBS="$save_LIBS"
1704
1705                 if test $ol_link_threads = yes ; then
1706                         LTHREAD_LIBS="-lthreads"
1707                         ol_link_threads=mach
1708                         ol_with_threads=found
1709                 else
1710                         AC_MSG_ERROR([could not link with Mach CThreads])
1711                 fi
1712
1713         elif test $ol_with_threads = mach ; then
1714                 AC_MSG_ERROR([could not locate Mach CThreads])
1715         fi
1716
1717         if test $ol_link_threads = mach ; then
1718                 AC_DEFINE(HAVE_MACH_CTHREADS,1,
1719                         [define if you have Mach Cthreads])
1720         elif test $ol_with_threads = found ; then
1721                 AC_MSG_ERROR([could not link with Mach CThreads])
1722         fi
1723 fi
1724
1725 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1726         -o $ol_with_threads = pth ; then
1727
1728         AC_CHECK_HEADERS(pth.h)
1729
1730         if test $ac_cv_header_pth_h = yes ; then
1731                 AC_CHECK_LIB(pth, pth_version, [have_pth=yes], [have_pth=no])
1732
1733                 if test $have_pth = yes ; then
1734                         AC_DEFINE(HAVE_GNU_PTH,1,[if you have GNU Pth])
1735                         LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
1736                         ol_link_threads=pth
1737                         ol_with_threads=found
1738
1739                         if test $ol_with_yielding_select = auto ; then
1740                                 ol_with_yielding_select=yes
1741                         fi
1742                 fi
1743         fi
1744 fi
1745
1746 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1747         -o $ol_with_threads = lwp ; then
1748
1749         dnl check for SunOS5 LWP
1750         AC_CHECK_HEADERS(thread.h synch.h)
1751         if test $ac_cv_header_thread_h = yes -a $ac_cv_header_synch_h = yes ; then
1752                 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
1753
1754                 if test $have_thr = yes ; then
1755                         AC_DEFINE(HAVE_THR,1,
1756                                 [if you have Solaris LWP (thr) package])
1757                         LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
1758                         ol_link_threads=thr
1759
1760                         if test $ol_with_yielding_select = auto ; then
1761                                 ol_with_yielding_select=yes
1762                         fi
1763
1764                         dnl Check for setconcurreny functions
1765                         AC_CHECK_FUNCS( \
1766                                 thr_setconcurrency \
1767                                 thr_getconcurrency \
1768                         )
1769                 fi
1770         fi
1771
1772         dnl check for SunOS4 LWP
1773         AC_CHECK_HEADERS(lwp/lwp.h)
1774         if test $ac_cv_header_lwp_lwp_h = yes ; then
1775                 AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
1776
1777                 if test $have_lwp = yes ; then
1778                         AC_DEFINE(HAVE_LWP,1,
1779                                 [if you have SunOS LWP package])
1780                         LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
1781                         ol_link_threads=lwp
1782
1783                         if test $ol_with_yielding_select = auto ; then
1784                                 ol_with_yielding_select=no
1785                         fi
1786                 fi
1787         fi
1788 fi
1789
1790 if test $ol_with_yielding_select = yes ; then
1791         AC_DEFINE(HAVE_YIELDING_SELECT,1,
1792                 [define if select implicitly yields])
1793 fi
1794
1795 if test $ol_with_threads = manual ; then
1796         dnl User thinks he can manually configure threads.
1797         ol_link_threads=yes
1798
1799         AC_MSG_WARN([thread defines and link options must be set manually])
1800
1801         AC_CHECK_HEADERS(pthread.h sched.h)
1802         AC_CHECK_FUNCS(sched_yield pthread_yield)
1803         OL_HEADER_LINUX_THREADS
1804
1805         AC_CHECK_HEADERS(mach/cthreads.h)
1806         AC_CHECK_HEADERS(lwp/lwp.h)
1807         AC_CHECK_HEADERS(thread.h synch.h)
1808 fi
1809
1810 if test $ol_link_threads != no -a $ol_link_threads != nt ; then  
1811         dnl needed to get reentrant/threadsafe versions
1812         dnl
1813         AC_DEFINE(REENTRANT,1)
1814         AC_DEFINE(_REENTRANT,1)
1815         AC_DEFINE(THREAD_SAFE,1)
1816         AC_DEFINE(_THREAD_SAFE,1)
1817         AC_DEFINE(THREADSAFE,1)
1818         AC_DEFINE(_THREADSAFE,1)
1819         AC_DEFINE(_SGI_MP_SOURCE,1)
1820
1821         dnl The errno declaration may dependent upon _REENTRANT.
1822         dnl If it does, we must link with thread support.
1823         AC_CACHE_CHECK([for thread specific errno],
1824                 [ol_cv_errno_thread_specific], [
1825                 AC_TRY_LINK([#include <errno.h>], [errno = 0;],
1826                         [ol_cv_errno_thread_specific=yes],
1827                         [ol_cv_errno_thread_specific=no])
1828         ])
1829
1830         dnl The h_errno declaration may dependent upon _REENTRANT.
1831         dnl If it does, we must link with thread support.
1832         AC_CACHE_CHECK([for thread specific h_errno],
1833                 [ol_cv_h_errno_thread_specific], [
1834                 AC_TRY_LINK([#include <netdb.h>], [h_errno = 0;],
1835                         [ol_cv_h_errno_thread_specific=yes],
1836                         [ol_cv_h_errno_thread_specific=no])
1837         ])
1838
1839         if test $ol_cv_errno_thread_specific != yes \
1840                 -o $ol_cv_h_errno_thread_specific != yes ; then
1841                 LIBS="$LTHREAD_LIBS $LIBS"
1842                 LTHREAD_LIBS=""
1843         fi
1844
1845 dnl When in thread environment, use 
1846 dnl             #if defined( HAVE_REENTRANT_FUNCTIONS ) \ 
1847 dnl                     || defined( HAVE_FUNC_R )
1848 dnl                     func_r(...);
1849 dnl             #else
1850 dnl             #       if defined( HAVE_THREADS ) 
1851 dnl                             /* lock */
1852 dnl             #       endif
1853 dnl                             func(...);
1854 dnl             #       if defined( HAVE_THREADS ) 
1855 dnl                             /* unlock */
1856 dnl             #       endif
1857 dnl             #endif
1858 dnl
1859 dnl HAVE_REENTRANT_FUNCTIONS is derived from:
1860 dnl             _POSIX_REENTRANT_FUNCTIONS
1861 dnl             _POSIX_THREAD_SAFE_FUNCTIONS
1862 dnl             _POSIX_THREADSAFE_FUNCTIONS
1863 dnl
1864 dnl             and is currently defined in lthread.h
1865 dnl
1866 dnl HAVE_THREADS is defined by lthread.h iff -UNO_THREADS
1867 dnl 
1868 dnl libldap/*.c should only include <lthread.h> iff
1869 dnl LDAP_R_COMPILE is defined.  ie:
1870 dnl             #ifdef LDAP_R_COMPILE
1871 dnl             #       include LDAP_R_COMPILE
1872 dnl             #endif
1873 dnl
1874 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
1875 dnl specifically for compiling the threadsafe version of
1876 dnl     the ldap library (-lldap_r).
1877 dnl             
1878 dnl     dnl check for reentrant/threadsafe functions
1879 dnl     dnl
1880 dnl     dnl note: these should only be used when linking
1881 dnl     dnl             with $LTHREAD_LIBS
1882 dnl     dnl
1883 dnl     save_CPPFLAGS="$CPPFLAGS"
1884 dnl     save_LIBS="$LIBS"
1885 dnl     LIBS="$LTHREAD_LIBS $LIBS"
1886 dnl     AC_CHECK_FUNCS( \
1887 dnl             gmtime_r \
1888 dnl             gethostbyaddr_r gethostbyname_r \
1889 dnl             feof_unlocked unlocked_feof \
1890 dnl             putc_unlocked unlocked_putc \
1891 dnl             flockfile ftrylockfile \
1892 dnl     )
1893 dnl     CPPFLAGS="$save_CPPFLAGS"
1894 dnl     LIBS="$save_LIBS"
1895 fi  
1896
1897 if test $ol_link_threads = no ; then
1898         if test $ol_with_threads = yes ; then
1899                 AC_MSG_ERROR([no suitable thread support])
1900         fi
1901
1902         if test $ol_with_threads = auto ; then
1903                 AC_MSG_WARN([no suitable thread support, disabling threads])
1904                 ol_with_threads=no
1905         fi
1906
1907         AC_DEFINE(NO_THREADS,1,
1908                 [define if you have (or want) no threads])
1909         LTHREAD_LIBS=""
1910 fi
1911
1912 if test $ol_link_threads != no ; then
1913         AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1)
1914 fi
1915
1916 dnl ----------------------------------------------------------------
1917 ol_link_ldbm=no 
1918
1919 if test $ol_with_ldbm_api = auto \
1920         -o $ol_with_ldbm_api = berkeley \
1921         -o $ol_with_ldbm_api = bcompat ; then
1922
1923         if test $ol_with_ldbm_api = bcompat; then \
1924                 OL_BERKELEY_COMPAT_DB
1925         else
1926                 OL_BERKELEY_DB
1927         fi
1928
1929         if test $ol_cv_berkeley_db != no ; then
1930                 AC_DEFINE(HAVE_BERKELEY_DB,1,
1931                         [define this if Berkeley DB is available])
1932
1933                 ol_link_ldbm=berkeley
1934                 ol_with_ldbm_api=berkeley
1935
1936                 if test $ol_with_ldbm_type = hash ; then
1937                         AC_DEFINE(LDBM_USE_DBHASH,1,
1938                                 [define this to use DBHASH w/ LDBM backend])
1939                 else
1940                         AC_DEFINE(LDBM_USE_DBBTREE,1,
1941                                 [define this to use DBBTREE w/ LDBM backend])
1942                 fi
1943
1944                 dnl $ol_cv_lib_db should be yes or -ldb
1945                 dnl (it could be no, but that would be an error
1946                 if test $ol_cv_lib_db != yes ; then
1947                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
1948                 fi
1949         fi
1950 fi
1951
1952 if test $ol_enable_bdb = yes -a $ol_link_ldbm != berkeley ; then
1953         AC_MSG_ERROR(BDB: BerkeleyDB not available)
1954 elif test $ol_enable_bdb != no -a $ol_link_ldbm = berkeley ; then
1955         OL_BDB_COMPAT
1956
1957         if test $ol_cv_bdb_compat = yes ; then
1958                 ol_enable_bdb=yes
1959         elif test $ol_enable_bdb = yes ; then
1960                 AC_MSG_ERROR(BDB: BerkeleyDB version incompatible)
1961         else
1962                 ol_enable_bdb=no
1963         fi
1964 fi
1965
1966 if test $ol_link_ldbm = no -a $ol_with_ldbm_type = btree ; then
1967         AC_MSG_WARN(Could not find LDBM with BTREE support)
1968         ol_with_ldbm_api=none
1969 fi
1970
1971 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = mdbm ; then
1972         OL_MDBM
1973
1974         if test $ol_cv_mdbm = yes ; then
1975                 ol_link_ldbm=mdbm
1976                 ol_with_ldbm_api=mdbm
1977                 if test $ol_cv_lib_mdbm != yes ; then
1978                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_mdbm"
1979                 fi
1980         fi
1981 fi
1982
1983 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = gdbm ; then
1984         OL_GDBM
1985
1986         if test $ol_cv_gdbm = yes ; then
1987                 ol_link_ldbm=gdbm
1988                 ol_with_ldbm_api=gdbm
1989
1990                 if test $ol_cv_lib_gdbm != yes ; then
1991                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
1992                 fi
1993         fi
1994 fi
1995
1996 if test $ol_with_ldbm_api = ndbm ; then
1997         OL_NDBM
1998
1999         if test $ol_cv_ndbm = yes ; then
2000                 ol_link_ldbm=ndbm
2001                 ol_with_ldbm_api=ndbm
2002
2003                 if test $ol_cv_lib_ndbm != yes ; then
2004                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
2005                 fi
2006         fi
2007 fi
2008
2009 if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
2010         AC_MSG_WARN(could not find suitable LDBM backend)
2011         if test $ol_enable_ldbm = yes ; then
2012                 AC_MSG_ERROR(select appropriate LDBM options or disable)
2013         fi
2014
2015         AC_MSG_WARN(disabling LDBM)
2016         ol_enable_ldbm=no
2017 fi
2018
2019 dnl ----------------------------------------------------------------
2020 if test $ol_enable_dynamic = yes -a $enable_shared = yes ; then
2021         BUILD_LIBS_DYNAMIC=shared
2022         AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
2023 else
2024         BUILD_LIBS_DYNAMIC=static
2025 fi
2026
2027 dnl ----------------------------------------------------------------
2028 if test $ol_enable_wrappers != no ; then
2029         AC_CHECK_HEADERS(tcpd.h,[
2030                 AC_MSG_CHECKING([for TCP wrappers library])
2031                 save_LIBS="$LIBS"
2032                 LIBS="$LIBS -lwrap"
2033                 AC_TRY_LINK([
2034 #include <tcpd.h>
2035 int allow_severity = 0;
2036 int deny_severity  = 0;
2037
2038 struct request_info *req;
2039                 ],[
2040 hosts_access(req)
2041                 ],[AC_MSG_RESULT([-lwrap])
2042                 have_wrappers=yes
2043                 LIBS="$save_LIBS"],[
2044                 dnl try with -lnsl
2045                 LIBS="$LIBS -lnsl"
2046                 AC_TRY_LINK([
2047 #include <tcpd.h>
2048 int allow_severity = 0;
2049 int deny_severity  = 0;
2050
2051 struct request_info *req;
2052                 ],[
2053 hosts_access(req)
2054                 ],[AC_MSG_RESULT([-lwrap -lnsl])
2055                 have_wrappers=yes
2056                 LIBS="$save_LIBS -lnsl"],[
2057                 AC_MSG_RESULT(no)
2058                 have_wrappers=no
2059                 LIBS=$save_LIBS])],[
2060                 have_wrappers=no])],[have_wrappers=no])
2061
2062         if test $have_wrappers = yes ; then
2063                 AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
2064                 WRAP_LIBS="-lwrap"
2065         elif test $ol_enable_wrappers = yes ; then
2066                 AC_MSG_ERROR([could not find TCP wrappers, select apppropriate options ore disable])
2067         else
2068                 AC_MSG_WARN([could not find TCP wrappers, support disabled])
2069                 WRAP_LIBS=""
2070         fi
2071 fi
2072
2073 dnl ----------------------------------------------------------------
2074 if test $ol_enable_syslog != no ; then
2075         AC_CHECK_FUNC(openlog)
2076         if test $ac_cv_func_openlog = no -a $ol_enable_syslog = yes; then
2077                 AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
2078         fi
2079         ol_enable_syslog=$ac_cv_func_openlog
2080 fi
2081
2082 dnl ----------------------------------------------------------------
2083 dnl dmalloc support (deprecated in favor of -DCSRIMALLOC support)
2084 dnl if test $ol_enable_dmalloc != no ; then
2085 dnl     AC_CHECK_HEADERS(dmalloc.h)
2086 dnl     AC_CHECK_LIB(dmalloc, dmalloc_shutdown)
2087 dnl fi
2088
2089 dnl ----------------------------------------------------------------
2090 dnl SQL
2091 ol_link_sql=no
2092 if test $ol_enable_sql != no ; then
2093         AC_CHECK_LIB(iodbc,SQLDriverConnect,[have_iodbc=yes],[have_iodbc=no])
2094         if test $have_iodbc = yes ; then
2095                 ol_link_sql="-liodbc"
2096         else
2097                 AC_CHECK_LIB(odbc,SQLDriverConnect,[have_odbc=yes],[have_odbc=no])
2098                 if test $have_odbc = yes ; then
2099                         ol_link_sql="-lodbc"
2100                 fi
2101         fi
2102
2103         if test $ol_link_sql != no ; then
2104                 SLAPD_SQL_LIBS="$ol_link_sql"
2105
2106         elif test $ol_enable_sql != auto ; then
2107                 AC_MSG_ERROR([could not locate suitable ODBC library])
2108         fi
2109 fi
2110
2111 dnl ----------------------------------------------------------------
2112 dnl TCL
2113 if test $ol_enable_tcl != no ; then
2114         AC_CHECK_HEADERS(tcl.h)
2115
2116         if test $ac_cv_header_tcl_h != yes ; then
2117                 have_tcl=no
2118         else
2119                 for lib in tcl tcl7.6 tcl8.0 tcl8.2 ; do
2120                         AC_CHECK_LIB($lib,main,
2121                           [have_tcl=yes
2122                            if test x"$ol_with_tcl_module" = "xstatic" ; then
2123                                         SLAPD_LIBS="$SLAPD_LIBS -l${lib}"
2124                            else
2125                                         MOD_TCL_LIB="-l${lib}"
2126                            fi;break],[have_tcl=no])
2127                 done
2128         fi
2129
2130         if test $have_tcl != yes ; then
2131                 AC_MSG_WARN([could not find -ltcl])
2132                 if test $ol_enable_tcl = yes ; then
2133                         AC_MSG_ERROR([could not find tcl, select appropriate options or disable])
2134                 fi
2135
2136                 ol_enable_tcl=no
2137         fi
2138 fi
2139
2140 dnl ----------------------------------------------------------------
2141 dnl ud needs termcap (should insert check here)
2142 ol_link_termcap=no
2143 AC_CHECK_HEADERS(termcap.h ncurses.h)
2144
2145 if test $ol_link_termcap = no ; then
2146         AC_CHECK_LIB(termcap, tputs, [have_termcap=yes], [have_termcap=no])
2147         if test $have_termcap = yes ; then
2148                 AC_DEFINE(HAVE_TERMCAP, 1, [define if you have -ltermcap])
2149                 ol_link_termcap=yes
2150                 TERMCAP_LIBS=-ltermcap
2151         fi
2152 fi
2153
2154 if test $ol_link_termcap = no ; then
2155         AC_CHECK_LIB(ncurses, initscr, [have_ncurses=yes], [have_ncurses=no])
2156         if test $have_ncurses = yes ; then
2157                 AC_DEFINE(HAVE_NCURSES, 1, [define if you have -lncurses])
2158                 ol_link_termcap=yes
2159                 TERMCAP_LIBS=-lncurses
2160         fi
2161 fi
2162
2163 if test $ol_link_termcap = no ; then
2164         AC_DEFINE(NO_TERMCAP,1, [define if you have no termcap support])
2165         TERMCAP_LIBS=
2166 fi
2167
2168 dnl ----------------------------------------------------------------
2169 dnl
2170 dnl Check for Cyrus SASL
2171 dnl
2172 ol_link_sasl=no
2173 ol_link_spasswd=no
2174 if test $ol_with_cyrus_sasl != no ; then
2175         AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
2176
2177         if test $ac_cv_header_sasl_sasl_h = yes -o $ac_cv_header_sasl_h = yes; then
2178                 AC_CHECK_LIB(sasl2, sasl_client_init,
2179                         [ol_link_sasl="-lsasl2"],
2180                         [AC_CHECK_LIB(sasl, sasl_client_init,
2181                                 [ol_link_sasl="-lsasl"])])
2182         fi
2183
2184         if test $ol_link_sasl = no ; then
2185                 if test $ol_with_cyrus_sasl != auto ; then
2186                         AC_MSG_ERROR([Could not locate Cyrus SASL])
2187                 else
2188                         AC_MSG_WARN([Could not locate Cyrus SASL])
2189                         AC_MSG_WARN([SASL authentication not supported!])
2190                         if test $ol_link_tls = no ; then
2191                                 AC_MSG_WARN([Strong authentication not supported!])
2192                         fi
2193                 fi
2194         else
2195                 OL_SASL_COMPAT
2196                 if test $ol_cv_sasl_compat = no ; then
2197                         ol_link_sasl=no
2198                         AC_MSG_ERROR([Cyrus SASL library located but incompatible])
2199                 fi
2200
2201                 AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
2202                 SASL_LIBS="$ol_link_sasl"
2203                 if test $ol_enable_spasswd != no ; then
2204                         ol_link_spasswd=yes
2205                 fi
2206
2207                 ac_save_LIBS="$LIBS"
2208                 LIBS="$LIBS $ol_link_sasl"
2209                 AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1,
2210                         [define if your SASL library has sasl_version()])])
2211                 LIBS="$ac_save_LIBS"
2212         fi
2213
2214 else
2215         AC_MSG_WARN([SASL authentication not supported!])
2216         if test $ol_link_tls = no ; then
2217                 AC_MSG_WARN([Strong authentication not supported!])
2218         fi
2219 fi
2220
2221 dnl ----------------------------------------------------------------
2222 dnl Check for entropy sources
2223 if test $cross_compiling != yes -a "$ac_cv_mingw32" != yes ; then
2224         dev=no
2225         if test -r /dev/urandom ; then
2226                 dev="/dev/urandom";
2227         elif test -r /idev/urandom ; then
2228                 dev="/idev/urandom";
2229         elif test -r /dev/srandom ; then
2230                 dev="/dev/srandom";
2231         elif test -r /dev/random ; then
2232                 dev="/dev/random";
2233         elif test -r /idev/random ; then
2234                 dev="/idev/random";
2235         fi
2236
2237         if test $dev != no ; then
2238                 AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
2239         fi
2240 fi
2241
2242 dnl ----------------------------------------------------------------
2243 dnl
2244 dnl Check for fetch URL support
2245 dnl             should be extended to support other fetch URL APIs
2246 dnl
2247 ol_link_fetch=no
2248 if test $ol_with_fetch != no ; then
2249         OL_LIB_FETCH
2250
2251         if test $ol_cv_lib_fetch != no ; then
2252                 LDIF_LIBS="$LDIF_LIBS $ol_link_fetch"
2253                 ol_link_fetch=freebsd
2254
2255         elif test $ol_with_fetch != auto ; then
2256                 AC_MSG_ERROR(no suitable API for --with-fetch=$ol_with_fetch)
2257         fi 
2258 fi
2259
2260 dnl ----------------------------------------------------------------
2261 dnl
2262 dnl Check for GNU readline
2263 dnl
2264 ol_link_readline=no
2265 if test $ol_with_readline != no ; then
2266         AC_CHECK_HEADERS(readline/readline.h readline/history.h)
2267
2268         if test $ac_cv_header_readline_readline_h = yes ; then
2269                 save_LIBS="$LIBS"
2270                 LIBS="$TERMCAP_LIBS $LIBS"
2271                 AC_CHECK_LIB(readline, readline, 
2272                         [have_readline=yes], [have_readline=no])
2273                 LIBS="$save_LIBS"
2274                         
2275                 if test $have_readline = yes ; then
2276                         ol_with_readline=found
2277                         ol_link_readline=yes
2278
2279                         READLINE_LIBS="-lreadline"
2280                 fi
2281         fi
2282 fi
2283
2284 if test $ol_link_readline = yes ; then
2285         AC_DEFINE(HAVE_READLINE, 1, [define if you have -lreadline])
2286 fi
2287
2288
2289 dnl ----------------------------------------------------------------
2290 dnl FreeBSD (and others) have crypt(3) in -lcrypt
2291 if test $ol_enable_crypt != no ; then
2292         save_LIBS="$LIBS"
2293         LIBS="$TLS_LIBS $LIBS"
2294
2295         AC_CHECK_FUNC(crypt, [have_crypt=yes], [
2296                 LIBS="$save_LIBS"
2297                 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
2298                         have_crypt=yes], [have_crypt=no])])
2299
2300         LIBS="$save_LIBS"
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         setpwfile               \
2455         setgid                  \
2456         setegid                 \
2457         setsid                  \
2458         setuid                  \
2459         seteuid                 \
2460         sigaction               \
2461         signal                  \
2462         sigset                  \
2463         strdup                  \
2464         strerror                \
2465         strpbrk                 \
2466         strrchr                 \
2467         strsep                  \
2468         strstr                  \
2469         strtol                  \
2470         strtoul                 \
2471         strspn                  \
2472         sysconf                 \
2473         usleep                  \
2474         waitpid                 \
2475         wait4                   \
2476         write                   \
2477         send                    \
2478         sendto                  \
2479 )
2480
2481 dnl We actually may need to replace more than this.
2482 AC_REPLACE_FUNCS(getopt)
2483
2484 if test "$ac_cv_func_getopt" != yes; then
2485         LIBSRCS="$LIBSRCS getopt.c"
2486 fi
2487 if test "$ac_cv_func_snprintf" != yes -o "$ac_cv_func_vsnprintf" != yes; then
2488         if test "$ac_cv_func_snprintf" != yes; then
2489                 AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
2490         fi
2491         if test "$ac_cv_func_vsnprintf" != yes; then
2492                 AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine])
2493         fi
2494 fi
2495
2496 dnl ----------------------------------------------------------------
2497 # Check Configuration
2498 OL_SYS_ERRLIST
2499
2500 dnl ----------------------------------------------------------------
2501 dnl Sort out defines
2502
2503 if test "$ol_enable_debug" != no ; then
2504         AC_DEFINE(LDAP_DEBUG,1,
2505                 [define this to add debugging code])
2506 fi
2507 if test "$ol_enable_syslog" = yes ; then
2508         AC_DEFINE(LDAP_SYSLOG,1,
2509                 [define this to add syslog code])
2510 fi
2511 if test "$ol_enable_cache" = no ; then
2512         AC_DEFINE(LDAP_NOCACHE,1,
2513                 [define this to remove -lldap cache support])
2514 fi
2515 if test "$ol_link_kbind" != no ; then
2516         AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND,LDAP_VENDOR_VERSION)
2517 fi
2518 if test "$ol_enable_proctitle" != no ; then
2519         AC_DEFINE(LDAP_PROCTITLE,1,
2520                 [define this for LDAP process title support])
2521 fi
2522 if test "$ol_enable_referrals" != no ; then
2523         AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION)
2524 fi
2525 if test "$ol_enable_local" != no; then
2526         AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
2527 fi
2528 if test "$ol_link_ipv6" != no; then
2529         AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
2530 fi
2531 if test "$ol_enable_cleartext" != no ; then
2532         AC_DEFINE(SLAPD_CLEARTEXT,1,[define to support cleartext passwords])
2533 fi
2534 if test "$ol_enable_crypt" != no ; then
2535         AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords])
2536 fi
2537 if test "$ol_link_kpasswd" != no ; then
2538         AC_DEFINE(SLAPD_KPASSWD,1,[define to support Kerberos passwords])
2539 fi
2540 if test "$ol_link_spasswd" != no ; then
2541         AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
2542 fi
2543 if test "$ol_enable_multimaster" != no ; then
2544         AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
2545 fi
2546 if test "$ol_enable_phonetic" != no ; then
2547         AC_DEFINE(SLAPD_PHONETIC,1,[define to support phonetic])
2548 fi
2549 if test "$ol_enable_rlookups" != no ; then
2550         AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
2551 fi
2552 if test "$ol_enable_aci" != no ; then
2553         AC_DEFINE(SLAPD_ACI_ENABLED,1,[define to support per-object ACIs])
2554 fi
2555
2556 if test "$ol_link_modules" != no ; then
2557         AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
2558         BUILD_SLAPD=yes
2559         SLAPD_MODULES_LDFLAGS="-dlopen self"
2560 fi
2561
2562 if test "$ol_enable_bdb" != no ; then
2563         AC_DEFINE(SLAPD_BDB,1,[define to support BDB backend])
2564         BUILD_SLAPD=yes
2565         BUILD_BDB=yes
2566         if test "$ol_with_bdb_module" != static ; then
2567                 AC_DEFINE(SLAPD_BDB_DYNAMIC,1,
2568                         [define to support dynamic BDB backend])
2569                 BUILD_BDB=mod
2570                 BUILD_BDB_DYNAMIC=shared
2571                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
2572         else
2573                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
2574         fi
2575 fi
2576
2577 if test "$ol_link_dnssrv" != no ; then
2578         AC_DEFINE(SLAPD_DNSSRV,1,[define to support DNS SRV backend])
2579         BUILD_SLAPD=yes
2580         BUILD_DNSSRV=yes
2581         if test "$ol_with_dnssrv_module" != static ; then
2582                 AC_DEFINE(SLAPD_DNSSRV_DYNAMIC,1,
2583                         [define to support dynamic DNS SRV backend])
2584                 BUILD_DNSSRV=mod
2585                 BUILD_DNSSRV_DYNAMIC=shared
2586                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
2587         else
2588                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
2589         fi
2590 fi
2591
2592 if test "$ol_enable_ldap" != no ; then
2593         AC_DEFINE(SLAPD_LDAP,1,[define to support LDAP backend])
2594         BUILD_SLAPD=yes
2595         BUILD_LDAP=yes
2596         if test "$ol_with_ldap_module" != static ; then
2597                 AC_DEFINE(SLAPD_LDAP_DYNAMIC,1,
2598                         [define to support dynamic LDAP backend])
2599                 BUILD_LDAP=mod
2600                 BUILD_LDAP_DYNAMIC=shared
2601                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
2602         else
2603                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
2604         fi
2605 fi
2606
2607 if test "$ol_link_ldbm" != no -a $ol_enable_ldbm != no; then
2608         AC_DEFINE(SLAPD_LDBM,1,[define to support LDBM backend])
2609         BUILD_SLAPD=yes
2610         BUILD_LDBM=yes
2611         if test "$ol_with_ldbm_module" != static ; then
2612                 AC_DEFINE(SLAPD_LDBM_DYNAMIC,1,
2613                         [define to support dynamic LDBM backend])
2614                 BUILD_LDBM=mod
2615                 BUILD_LDBM_DYNAMIC=shared
2616                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldbm"
2617         else
2618                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldbm"
2619         fi
2620 fi
2621
2622 if test "$ol_enable_meta" != no ; then
2623         if test "$ol_enable_ldap" = no ; then
2624                 AC_MSG_ERROR([need --enable-ldap to use --enable-meta])
2625         fi
2626         if test "$ol_enable_rewrite" = no ; then
2627                 AC_MSG_ERROR([need --enable-rewrite to use --enable-meta])
2628         fi
2629         AC_DEFINE(SLAPD_META,1,[define to support LDAP Metadirectory backend])
2630         BUILD_SLAPD=yes
2631         BUILD_META=yes
2632         BUILD_LDAP=yes
2633         BUILD_REWRITE=yes
2634         if test "$ol_with_meta_module" != static ; then
2635                 AC_DEFINE(SLAPD_META_DYNAMIC,1,
2636                         [define to support dynamic LDAP Metadirectory backend])
2637                 BUILD_META=mod
2638                 BUILD_META_DYNAMIC=shared
2639                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
2640         else
2641                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
2642         fi
2643 fi
2644
2645 if test "$ol_enable_monitor" != no ; then
2646         AC_DEFINE(SLAPD_MONITOR,1,[define to support cn=Monitor backend])
2647         BUILD_SLAPD=yes
2648         BUILD_MONITOR=yes
2649         if test "$ol_with_monitor_module" != static ; then
2650                 AC_DEFINE(SLAPD_MONITOR_DYNAMIC,1,
2651                         [define to support dynamic cn=Monitor backend])
2652                 BUILD_MONITOR=mod
2653                 BUILD_MONITOR_DYNAMIC=shared
2654                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
2655         else
2656                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
2657         fi
2658 fi
2659
2660 if test "$ol_enable_null" != no ; then
2661         AC_DEFINE(SLAPD_NULL,1,[define to support NULL backend])
2662         BUILD_SLAPD=yes
2663         BUILD_NULL=yes
2664         if test "$ol_with_null_module" != static ; then
2665                 AC_DEFINE(SLAPD_NULL_DYNAMIC,1,
2666                         [define to support dynamic NULL backend])
2667                 BUILD_NULL=mod
2668                 BUILD_NULL_DYNAMIC=shared
2669                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
2670         else
2671                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
2672         fi
2673 fi
2674
2675 if test "$ol_enable_passwd" != no ; then
2676         AC_DEFINE(SLAPD_PASSWD,1,[define to support PASSWD backend])
2677         BUILD_SLAPD=yes
2678         BUILD_PASSWD=yes
2679         if test "$ol_with_passwd_module" != static ; then
2680                 AC_DEFINE(SLAPD_PASSWD_DYNAMIC,1,
2681                         [define to support dynamic PASSWD backend])
2682                 BUILD_PASSWD=mod
2683                 BUILD_PASSWD_DYNAMIC=shared
2684                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
2685         else
2686                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
2687         fi
2688 fi
2689
2690 if test "$ol_link_perl" != no ; then
2691         AC_DEFINE(SLAPD_PERL,1,[define to support PERL backend])
2692         BUILD_SLAPD=yes
2693         BUILD_PERL=yes
2694         if test "$ol_with_perl_module" != static ; then
2695                 AC_DEFINE(SLAPD_PERL_DYNAMIC,1,
2696                         [define to support dynamic PERL backend])
2697                 BUILD_PERL=mod
2698                 BUILD_PERL_DYNAMIC=shared
2699                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
2700         else
2701                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
2702         fi
2703 fi
2704
2705 if test "$ol_enable_shell" != no ; then
2706         if test "$ol_link_thread" != no ; then
2707                 AC_MSG_WARN([Use of --without-threads is recommended with back-shell])
2708         fi
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 ])