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