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