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