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