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