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