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