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