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