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