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