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