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