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