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