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