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