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