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