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