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