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