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