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