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