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