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