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