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