]> git.sur5r.net Git - openldap/blob - configure.in
cleanup
[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 dnl require POSIX regex
887 AC_CHECK_HEADERS( regex.h )
888 if test "$ac_cv_header_regex_h" != yes ; then
889         AC_MSG_ERROR([POSIX regex.h required.])
890 fi
891 AC_SEARCH_LIBS(regfree, [regex gnuregex],
892         :, AC_MSG_ERROR([POSIX regex required.]))
893
894 OL_POSIX_REGEX
895 if test "$ol_cv_c_posix_regex" = no ; then
896         AC_MSG_ERROR([broken POSIX regex!])
897 fi
898
899 dnl ----------------------------------------------------------------
900 dnl UUID Support
901
902 have_uuid=no
903 AC_CHECK_HEADERS(sys/uuid.h)
904 if test $ac_cv_header_sys_uuid_h = yes ; then
905         save_LIBS="$LIBS"
906         AC_SEARCH_LIBS(uuid_to_str, uuid, [have_uuid=yes], :)
907         LIBS="$save_LIBS"
908
909         if test have_uuid = yes ; then
910                 AC_DEFINE(HAVE_UUID_TO_STR,1,
911                         [define if you have uuid_to_str()])
912
913                 test "$ac_cv_search_uuid_to_str" = "none required" || \
914                         SLAPD_LIBS="$SLAPD_LIBS $ac_cv_search_uuid_to_str"
915         fi
916 fi
917
918 dnl For windows, check for the need of RPCRT for UUID function support
919 if test $have_uuid = no ; then
920         AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
921         save_LIBS="$LIBS"
922         LIBS="$LIBS -lrpcrt4"
923         AC_TRY_LINK([
924                 int __stdcall UuidCreate(void *);
925                 int __stdcall UuidToStringA(void *,void **);
926                 ],
927                 [
928                 UuidCreate(0);
929                 UuidToStringA(0,0);
930                 ],
931                 need_rpcrt=yes, need_rpcrt=no)
932         if test $need_rpcrt = yes; then
933                 SLAPD_LIBS="$SLAPD_LIBS -lrpcrt4"
934         fi
935         LIBS="$save_LIBS"
936         AC_MSG_RESULT($need_rpcrt)
937 fi
938
939 dnl ----------------------------------------------------------------
940 dnl Check for resolver routines
941 dnl       need to check for both res_query and __res_query
942 dnl   need to check -lc, -lbind, and -lresolv
943 ol_link_dnssrv=no
944 AC_CHECK_FUNC(res_query,:)
945 if test $ac_cv_func_res_query = no ; then 
946         AC_CHECK_FUNC(__res_query,:)
947         ac_cv_func_res_query=$ac_cv_func___res_query
948 fi
949
950 if test $ac_cv_func_res_query = no ; then 
951         AC_CHECK_LIB(bind, res_query)
952         ac_cv_func_res_query=$ac_cv_lib_bind_res_query
953 fi
954
955 if test $ac_cv_func_res_query = no ; then 
956         AC_CHECK_LIB(bind, __res_query)
957         ac_cv_func_res_query=$ac_cv_lib_bind___res_query
958 fi
959
960 if test $ac_cv_func_res_query = no ; then 
961         AC_CHECK_LIB(resolv, res_query)
962         ac_cv_func_res_query=$ac_cv_lib_resolv_res_query
963 fi
964
965 if test $ac_cv_func_res_query = no ; then 
966         AC_CHECK_LIB(resolv, __res_query)
967         ac_cv_func_res_query=$ac_cv_lib_resolv___res_query
968 fi
969
970 if test "$ac_cv_func_res_query" = yes ; then
971         AC_DEFINE(HAVE_RES_QUERY,1,
972                 [define if you have res_query()])
973
974         if test $ol_enable_dnssrv != no ; then
975                 ol_link_dnssrv=yes
976         fi
977 fi
978
979 if test "$ol_enable_dnssrv" != no -a "$ol_link_dnssrv" = no ; then
980         AC_MSG_ERROR([DNSSRV requires res_query()])
981 fi
982
983 dnl ----------------------------------------------------------------
984 dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
985 dnl PF_LOCAL may use getaddrinfo in available
986 AC_CHECK_FUNCS( getaddrinfo getnameinfo gai_strerror inet_ntop )
987
988 ol_link_ipv6=no
989 if test $ac_cv_func_getaddrinfo = no -o $ac_cv_func_inet_ntop = no ; then
990         if test $ol_enable_ipv6 = yes ; then
991                 AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
992         fi
993 elif test $ol_enable_ipv6 != no ; then
994         AC_CACHE_CHECK([INET6_ADDRSTRLEN],[ol_cv_inet6_addrstrlen],[
995                 AC_EGREP_CPP(__has_inet6_addrstrlen__,[
996 #                       include <netinet/in.h>
997 #                       ifdef INET6_ADDRSTRLEN
998                                 __has_inet6_addrstrlen__;
999 #                       endif
1000                 ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])])
1001
1002
1003         AC_CACHE_CHECK([struct sockaddr_storage],ol_cv_struct_sockaddr_storage,[
1004                 AC_TRY_COMPILE([
1005 #include <sys/types.h>
1006 #include <sys/socket.h>
1007 ],[
1008                         struct sockaddr_storage ss;
1009 ],                      [ol_cv_struct_sockaddr_storage=yes],
1010                         [ol_cv_struct_sockaddr_storage=no])])
1011
1012         if test $ol_cv_inet6_addrstrlen = yes \
1013                 -a $ol_cv_struct_sockaddr_storage = yes ; then
1014                 ol_link_ipv6=yes
1015         elif test $ol_enable_ipv6 = yes \
1016                         -a $ol_cv_inet6_addrstrlen = no ; then
1017                 AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
1018         elif test $ol_enable_ipv6 = yes \
1019                         -a $ol_cv_struct_sockaddr_storage = no ; then
1020                 AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage])
1021         fi
1022 fi
1023
1024 if test $ol_enable_local != no ; then
1025         AC_CHECK_HEADERS( sys/un.h )
1026
1027         if test $ol_enable_local = auto ; then
1028                 ol_enable_local=$ac_cv_header_sys_un_h
1029         elif test $ac_cv_header_sys_un_h = no ; then
1030                 AC_MSG_ERROR([AF_LOCAL domain support requires sys/un.h])
1031         fi
1032 fi
1033
1034 dnl ----------------------------------------------------------------
1035 dnl Kerberos
1036 ol_link_kbind=no
1037 ol_link_krb5=no
1038 ol_link_krb4=no
1039
1040 if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
1041         -o $ol_with_kerberos = k5 -o $ol_with_kerberos = k5only \
1042         -o $ol_with_kerberos = k425 ; then
1043
1044         AC_CHECK_HEADERS(krb5.h)
1045
1046         if test $ac_cv_header_krb5_h = yes ; then
1047                 dnl lazy check for Heimdal Kerberos
1048                 AC_CHECK_HEADERS(heim_err.h)
1049                 if test $ac_cv_header_heim_err_h = yes ; then
1050                         krb5_impl=heimdal
1051                 else
1052                         krb5_impl=mit
1053                 fi
1054
1055                 if test $krb5_impl = mit; then
1056                         AC_CHECK_LIB(k5crypto, main,
1057                                 [krb5crypto=k5crypto],
1058                                 [krb5crypto=crypto])
1059
1060                         AC_CHECK_LIB(krb5, main,
1061                                 [have_krb5=yes
1062                                 KRB5_LIBS="-lkrb5 -l$krb5crypto -lcom_err"],
1063                                 [have_krb5=no],
1064                                 [-l$krb5crypto -lcom_err])
1065
1066                 elif test $krb5_impl = heimdal; then
1067                         AC_CHECK_LIB(des, main,
1068                                 [krb5crypto=des],
1069                                 [krb5crypto=crypto])
1070
1071                         AC_CHECK_LIB(krb5, main,
1072                                 [have_krb5=yes
1073                                 KRB5_LIBS="-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err"],
1074                                 [have_krb5=no],
1075                                 [-l$krb5crypto -lasn1 -lroken -lcom_err])
1076
1077                         AC_DEFINE(HAVE_HEIMDAL_KERBEROS, 1,
1078                                 [define if you have HEIMDAL Kerberos])
1079
1080                 else
1081                         have_krb5=no
1082                         AC_MSG_WARN([Unrecognized Kerberos5 Implementation])
1083                 fi
1084
1085                 if test $have_krb5 = yes ; then
1086                         ol_link_krb5=yes
1087
1088                         AC_DEFINE(HAVE_KRB5, 1,
1089                                 [define if you have Kerberos V])
1090
1091                         if test $ol_with_kerberos = k5only ; then
1092                                 ol_with_kerberos=found
1093                         fi
1094
1095                 elif test $ol_with_kerberos != auto ; then
1096                         AC_MSG_ERROR([Required Kerberos 5 support not available])
1097                 fi
1098
1099         fi
1100 fi
1101
1102 if test $ol_link_krb5 = yes -a \( $ol_with_kerberos = yes -o \
1103         $ol_with_kerberos = auto -o $ol_with_kerberos = k425 \) ; then
1104
1105         AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
1106
1107         if test $ac_cv_header_kerberosIV_krb_h = yes ; then
1108                 if test $krb5_impl = mit; then
1109                         AC_CHECK_LIB(krb4, main, [have_k425=yes
1110                                 KRB4_LIBS="-lkrb4 -ldes425"], [have_k425=no],
1111                                 [-ldes425 -lkrb5 -l$krb5crypto -lcom_err])
1112
1113                 elif test $krb5_impl = heimdal; then
1114                         AC_CHECK_LIB(krb4, main, [have_k425=yes
1115                                 KRB4_LIBS="-lkrb4"], [have_k425=no],
1116                                 [-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err])
1117
1118                 else
1119                         have_425=no
1120                         AC_MSG_WARN([Unrecongized Kerberos V Implementation])
1121                 fi
1122
1123                 if test $have_k425 = yes ; then
1124                         ol_with_kerberos=found
1125                         ol_link_krb4=yes
1126
1127                         AC_DEFINE(HAVE_KRB425, 1,
1128                                 [define if you have Kerberos V with IV support])
1129                         AC_DEFINE(HAVE_KRB4, 1,
1130                                 [define if you have Kerberos IV])
1131
1132                         AC_CACHE_CHECK([for des_debug in Kerberos libraries],
1133                                 [ol_cv_var_des_debug], [
1134                                 dnl save the flags
1135                                 save_LIBS="$LIBS"
1136                                 LIBS="$KRB4_LIBS $KRB5_LIBS $LIBS"
1137                                 AC_TRY_LINK([
1138 #include <kerberosIV/krb.h>
1139 #include <kerberosIV/des.h>
1140 extern int des_debug;
1141 ],[
1142 des_debug = 1;
1143 ],                              ol_cv_var_des_debug=yes, ol_cv_var_des_debug=no)
1144                                 dnl restore the LIBS
1145                                 LIBS="$save_LIBS"
1146                         ])
1147
1148                         if test $ol_cv_var_des_debug = yes ; then
1149                                 AC_DEFINE(HAVE_DES_DEBUG,1,
1150                                         [define if you have Kerberos des_debug])
1151                         fi
1152
1153                         LIBS="$save_LIBS"
1154                 fi
1155         fi
1156 fi
1157
1158 if test $ol_link_krb5 = yes ; then
1159         ol_with_kerberos=found
1160 fi
1161
1162 if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
1163         -o $ol_with_kerberos = k4 -o $ol_with_kerberos = kth ; then
1164
1165         AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
1166
1167         if test $ac_cv_header_krb_h = yes ; then
1168                 AC_CHECK_LIB(krb, main, [have_k4=yes], [have_k4=no], [-ldes])
1169
1170                 if test $have_k4 = yes ; then
1171                         ol_with_kerberos=found
1172                         ol_link_krb4=yes
1173
1174                         AC_DEFINE(HAVE_KRB4, 1,
1175                                 [define if you have Kerberos IV])
1176
1177                         KRB4_LIBS="-lkrb -ldes"
1178
1179                         if test $ac_cv_header_krb_archaeology_h = yes ; then
1180                                 AC_DEFINE(HAVE_KTH_KERBEROS, 1,
1181                                         [define if you have Kth Kerberos])
1182                         fi
1183                 fi
1184         fi
1185 fi
1186
1187 if test $ol_link_krb4 = yes -a $ol_enable_kbind != no ; then
1188         ol_link_kbind=yes
1189
1190 elif test $ol_enable_kbind = yes ; then
1191         AC_MSG_ERROR([Kerberos IV detection failed])
1192 fi
1193
1194 if test $ol_link_krb4 = yes -o $ol_link_krb5 = yes ; then
1195         AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
1196
1197 elif test $ol_with_kerberos != auto -a $ol_with_kerberos != no ; then
1198         AC_MSG_ERROR([Kerberos detection failed])
1199 fi
1200
1201 dnl ----------------------------------------------------------------
1202 dnl TLS/SSL
1203 ol_link_tls=no
1204 if test $ol_with_tls != no ; then
1205         AC_CHECK_HEADERS(openssl/ssl.h ssl.h)
1206         
1207         if test $ac_cv_header_openssl_ssl_h = yes \
1208                 -o $ac_cv_header_ssl_h = yes ; then
1209                 AC_CHECK_LIB(ssl, SSLeay_add_ssl_algorithms, 
1210                         [have_ssleay=yes
1211                         need_rsaref=no],
1212                         [have_ssleay=no],
1213                         [-lcrypto])
1214                         
1215                 if test $have_ssleay = no ; then
1216                         AC_CHECK_LIB(ssl, SSL_library_init,
1217                                 [have_ssleay=yes
1218                                 need_rsaref=no], [have_ssleay=no],
1219                                 [-lcrypto])
1220                 fi
1221
1222                 if test $have_ssleay = no ; then
1223                         AC_CHECK_LIB(ssl, ssl3_accept, 
1224                                 [have_ssleay=yes
1225                                 need_rsaref=yes], [have_ssleay=no],
1226                                 [-lcrypto -lRSAglue -lrsaref])
1227                 fi
1228
1229                 if test $have_ssleay = yes ; then
1230                         ol_with_tls=found
1231                         ol_link_tls=yes
1232
1233                         AC_DEFINE(HAVE_SSLEAY, 1, 
1234                                 [define if you have SSLeay or OpenSSL])
1235
1236                         if test $need_rsaref = yes; then
1237                                 AC_DEFINE(HAVE_RSAREF, 1, 
1238                                         [define if you have RSAref])
1239
1240                                 TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
1241                         else
1242                                 TLS_LIBS="-lssl -lcrypto"
1243                         fi
1244                 fi
1245         fi
1246
1247 else
1248         AC_WARN([TLS data protection not supported!])
1249 fi
1250
1251 WITH_TLS=no
1252 if test $ol_link_tls = yes ; then
1253         AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
1254         WITH_TLS=yes
1255
1256 elif test $ol_with_tls = auto ; then
1257         AC_WARN([Could not locate TLS/SSL package])
1258         AC_WARN([TLS data protection not supported!])
1259
1260 elif test $ol_with_tls != no ; then
1261         AC_ERROR([Could not locate TLS/SSL package])
1262 fi
1263
1264 dnl ----------------------------------------------------------------
1265 dnl LAN Manger password checking requires DES from OpenSSL
1266 if test $ol_enable_lmpasswd != no; then
1267         if test $ol_link_tls != yes ; then
1268                 AC_ERROR([LAN Manager passwords require OpenSSL])
1269         fi
1270
1271         AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
1272 fi
1273
1274 dnl ----------------------------------------------------------------
1275 dnl Threads?
1276 ol_link_threads=no
1277
1278 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1279         -o $ol_with_threads = nt ; then
1280
1281         OL_NT_THREADS
1282
1283         if test "$ol_cv_nt_threads" = yes ; then
1284                 ol_link_threads=nt
1285                 ol_with_threads=found
1286                 ol_with_yielding_select=yes
1287
1288                 AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager])
1289                 AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log])
1290         fi
1291
1292         if test $ol_with_threads = nt ; then
1293                 AC_MSG_ERROR([could not locate NT Threads])
1294         fi
1295 fi
1296
1297 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1298         -o $ol_with_threads = posix ; then
1299
1300         AC_CHECK_HEADERS(pthread.h)
1301
1302         if test $ac_cv_header_pthread_h = yes ; then
1303                 OL_POSIX_THREAD_VERSION
1304
1305                 if test $ol_cv_pthread_version != 0 ; then
1306                         AC_DEFINE_UNQUOTED(HAVE_PTHREADS,$ol_cv_pthread_version,
1307                                 [define to pthreads API spec revision])
1308                 else
1309                         AC_MSG_ERROR([unknown pthread version])
1310                 fi
1311
1312                 # consider threads found
1313                 ol_with_threads=found
1314
1315                 OL_HEADER_LINUX_THREADS
1316                 OL_HEADER_GNU_PTH_PTHREAD_H
1317
1318                 if test $ol_cv_header_gnu_pth_pthread_h = no ; then
1319                         AC_CHECK_HEADERS(sched.h)
1320                 fi
1321
1322                 dnl Now the hard part, how to link?
1323                 dnl
1324                 dnl currently supported checks:
1325                 dnl
1326                 dnl Check for no flags 
1327                 dnl     pthread_create() in $LIBS
1328                 dnl
1329                 dnl Check special pthread (final) flags
1330                 dnl     [skipped] pthread_create() with -mt (Solaris) [disabled]
1331                 dnl     pthread_create() with -kthread (FreeBSD)
1332                 dnl     pthread_create() with -pthread (FreeBSD/Digital Unix)
1333                 dnl     pthread_create() with -pthreads (?)
1334                 dnl     pthread_create() with -mthreads (AIX)
1335                 dnl     pthread_create() with -thread (?)
1336                 dnl
1337                 dnl Check pthread (final) libraries
1338                 dnl     pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
1339                 dnl     pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
1340                 dnl     [skipped] pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
1341                 dnl     pthread_join() -Wl,-woff,85 -lpthread (IRIX)
1342                 dnl     pthread_create() in -lpthread (many)
1343                 dnl     pthread_create() in -lc_r (FreeBSD)
1344                 dnl
1345                 dnl Check pthread (draft4) flags (depreciated)
1346                 dnl     pthread_create() with -threads (OSF/1)
1347                 dnl
1348                 dnl Check pthread (draft4) libraries (depreciated)
1349                 dnl     pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
1350                 dnl     pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
1351                 dnl     pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
1352                 dnl     pthread_create() in -lpthreads (many)
1353                 dnl
1354
1355                 dnl pthread_create in $LIBS
1356                 AC_CACHE_CHECK([for pthread_create in default libraries],
1357                         ol_cv_pthread_create,[
1358                 AC_TRY_RUN(OL_PTHREAD_TEST_PROGRAM,
1359                         [ol_cv_pthread_create=yes],
1360                         [ol_cv_pthread_create=no],
1361                         [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION,
1362                                 [ol_cv_pthread_create=yes],
1363                                 [ol_cv_pthread_create=no])])])
1364
1365                 if test $ol_cv_pthread_create != no ; then
1366                         ol_link_threads=posix
1367                         ol_link_pthreads=""
1368                 fi
1369                 
1370 dnl             OL_PTHREAD_TRY([-mt],           [ol_cv_pthread_mt])
1371                 OL_PTHREAD_TRY([-kthread],      [ol_cv_pthread_kthread])
1372                 OL_PTHREAD_TRY([-pthread],      [ol_cv_pthread_pthread])
1373                 OL_PTHREAD_TRY([-pthreads],     [ol_cv_pthread_pthreads])
1374                 OL_PTHREAD_TRY([-mthreads],     [ol_cv_pthread_mthreads])
1375                 OL_PTHREAD_TRY([-thread],       [ol_cv_pthread_thread])
1376
1377                 OL_PTHREAD_TRY([-lpthread -lmach -lexc -lc_r],
1378                         [ol_cv_pthread_lpthread_lmach_lexc_lc_r])
1379                 OL_PTHREAD_TRY([-lpthread -lmach -lexc],
1380                         [ol_cv_pthread_lpthread_lmach_lexc])
1381 dnl             OL_PTHREAD_TRY([-lpthread -lexc],
1382 dnl                     [ol_cv_pthread_lpthread_lexc])
1383
1384                 OL_PTHREAD_TRY([-lpthread -Wl,-woff,85],
1385                         [ol_cv_pthread_lib_lpthread_woff])
1386
1387                 OL_PTHREAD_TRY([-lpthread],     [ol_cv_pthread_lpthread])
1388                 OL_PTHREAD_TRY([-lc_r],         [ol_cv_pthread_lc_r])
1389
1390                 OL_PTHREAD_TRY([-threads],      [ol_cv_pthread_threads])
1391
1392                 OL_PTHREAD_TRY([-lpthreads -lmach -lexc -lc_r],
1393                         [ol_cv_pthread_lpthreads_lmach_lexc_lc_r])
1394                 OL_PTHREAD_TRY([-lpthreads -lmach -lexc],
1395                         [ol_cv_pthread_lpthreads_lmach_lexc])
1396                 OL_PTHREAD_TRY([-lpthreads -lexc],
1397                         [ol_cv_pthread_lpthreads_lexc])
1398
1399                 OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
1400
1401                 if test $ol_link_threads != no ; then
1402                         LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
1403
1404                         dnl save flags
1405                         save_CPPFLAGS="$CPPFLAGS"
1406                         save_LIBS="$LIBS"
1407                         LIBS="$LTHREAD_LIBS $LIBS"
1408
1409                         dnl All POSIX Thread (final) implementations should have
1410                         dnl sched_yield instead of pthread yield.
1411                         dnl check for both, and thr_yield for Solaris
1412                         AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield)
1413
1414                         if test $ac_cv_func_sched_yield = no -a \
1415                                 $ac_cv_func_pthread_yield = no -a \
1416                                 $ac_cv_func_thr_yield = no ; then
1417                                 dnl Digital UNIX has sched_yield() in -lrt
1418                                 AC_CHECK_LIB(rt, sched_yield,
1419                                         [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
1420                                         AC_DEFINE(HAVE_SCHED_YIELD,1,
1421                                                 [Define if you have the sched_yield function.])
1422                                         ac_cv_func_sched_yield=yes],
1423                                         [ac_cv_func_sched_yield=no])
1424                         fi
1425                         if test $ac_cv_func_sched_yield = no -a \
1426                                 $ac_cv_func_pthread_yield = no -a \
1427                                 "$ac_cv_func_thr_yield" = no ; then
1428                                 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
1429                         fi
1430
1431                         dnl Check functions for compatibility
1432                         AC_CHECK_FUNCS(pthread_kill pthread_rwlock_destroy)
1433
1434                         dnl Check for pthread_detach with <pthread.h> inclusion
1435                         dnl as it's symbol may have been mangled.
1436                         AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
1437                                 [ol_cv_func_pthread_detach], [
1438                                 dnl save the flags
1439                                 AC_TRY_LINK([
1440 #include <pthread.h>
1441 #ifndef NULL
1442 #define NULL (void*)0
1443 #endif
1444 ],
1445                                         [pthread_detach(NULL);],
1446                                         [ol_cv_func_pthread_detach=yes],
1447                                         [ol_cv_func_pthread_detach=no])
1448                         ])
1449
1450                         if test $ol_cv_func_pthread_detach = no ; then
1451                                 AC_MSG_ERROR([could not locate pthread_detach()])
1452                         fi
1453
1454                         AC_DEFINE(HAVE_PTHREAD_DETACH,1,
1455                                 [define if you have pthread_detach function])
1456
1457                         dnl Check for setconcurreny functions
1458                         AC_CHECK_FUNCS( \
1459                                 pthread_setconcurrency \
1460                                 pthread_getconcurrency \
1461                                 thr_setconcurrency \
1462                                 thr_getconcurrency \
1463                         )
1464
1465                         OL_SYS_LINUX_THREADS
1466                         OL_LINUX_THREADS
1467
1468                         if test $ol_cv_linux_threads = error; then
1469                                 AC_MSG_ERROR([LinuxThreads header/library mismatch]);
1470                         fi
1471
1472                         AC_CACHE_CHECK([if pthread_create() works],
1473                                 ol_cv_pthread_create_works,[
1474                         AC_TRY_RUN(OL_PTHREAD_TEST_PROGRAM,
1475                                 [ol_cv_pthread_create_works=yes],
1476                                 [ol_cv_pthread_create_works=no],
1477                                 [dnl assume yes
1478                                 ol_cv_pthread_create_works=yes])])
1479
1480                         if test $ol_cv_pthread_create_works = no ; then
1481                                 AC_MSG_ERROR([pthread_create is not usable, check environment settings])
1482                         fi
1483
1484                         dnl Check if select causes an yield
1485                         if test $ol_with_yielding_select = auto ; then
1486                                 AC_CACHE_CHECK([if select yields when using pthreads],
1487                                         ol_cv_pthread_select_yields,[
1488                                 AC_TRY_RUN([
1489 #include <sys/types.h>
1490 #include <sys/time.h>
1491 #include <unistd.h>
1492 #include <pthread.h>
1493 #ifndef NULL
1494 #define NULL (void*) 0
1495 #endif
1496
1497 static int fildes[2];
1498
1499 static void *task(p)
1500         void *p;
1501 {
1502         int i;
1503         struct timeval tv;
1504
1505         fd_set rfds;
1506
1507         tv.tv_sec=10;
1508         tv.tv_usec=0;
1509
1510         FD_ZERO(&rfds);
1511         FD_SET(fildes[0], &rfds);
1512
1513         /* we're not interested in any fds */
1514         i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
1515
1516         if(i < 0) {
1517                 perror("select");
1518                 exit(10);
1519         }
1520
1521         exit(0); /* if we exit here, the select blocked the whole process */
1522 }
1523
1524 int main(argc, argv)
1525         int argc;
1526         char **argv;
1527 {
1528         pthread_t t;
1529
1530         /* create a pipe to select */
1531         if(pipe(&fildes[0])) {
1532                 perror("select");
1533                 exit(1);
1534         }
1535
1536 #ifdef HAVE_PTHREAD_SETCONCURRENCY
1537         (void) pthread_setconcurrency(2);
1538 #else
1539 #ifdef HAVE_THR_SETCONCURRENCY
1540         /* Set Solaris LWP concurrency to 2 */
1541         thr_setconcurrency(2);
1542 #endif
1543 #endif
1544
1545 #if HAVE_PTHREADS < 6
1546         pthread_create(&t, pthread_attr_default, task, NULL);
1547 #else
1548         pthread_create(&t, NULL, task, NULL);
1549 #endif
1550
1551         /* make sure task runs first */
1552 #if HAVE_THR_YIELD
1553         thr_yield();
1554 #elif defined( HAVE_SCHED_YIELD )
1555         sched_yield();
1556 #elif defined( HAVE_PTHREAD_YIELD )
1557         pthread_yield();
1558 #endif
1559
1560         exit(2);
1561 }],
1562                                 [ol_cv_pthread_select_yields=no],
1563                                 [ol_cv_pthread_select_yields=yes],
1564                                 [ol_cv_pthread_select_yields=cross])])
1565
1566                                 if test $ol_cv_pthread_select_yields = cross ; then
1567                                         AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])
1568                                 fi
1569
1570                                 if test $ol_cv_pthread_select_yields = yes ; then
1571                                         ol_with_yielding_select=yes
1572                                 fi
1573                         fi
1574
1575                         dnl restore flags
1576                         CPPFLAGS="$save_CPPFLAGS"
1577                         LIBS="$save_LIBS"
1578                 else
1579                         AC_MSG_ERROR([could not locate usable POSIX Threads])
1580                 fi
1581         fi
1582
1583         if test $ol_with_threads = posix ; then
1584                 AC_MSG_ERROR([could not locate POSIX Threads])
1585         fi
1586 fi
1587
1588 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1589         -o $ol_with_threads = mach ; then
1590
1591         dnl check for Mach CThreads
1592         AC_CHECK_HEADERS(mach/cthreads.h cthreads.h)
1593         if test $ac_cv_header_mach_cthreads_h = yes ; then
1594                 ol_with_threads=found
1595
1596                 dnl check for cthreads support in current $LIBS
1597                 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1598
1599                 if test $ol_link_threads = no ; then
1600                         dnl try -all_load
1601                         dnl this test needs work
1602                         AC_CACHE_CHECK([for cthread_fork with -all_load],
1603                                 [ol_cv_cthread_all_load], [
1604                                 dnl save the flags
1605                                 save_LIBS="$LIBS"
1606                                 LIBS="-all_load $LIBS"
1607                                 AC_TRY_LINK([#include <mach/cthreads.h>],[
1608                                         cthread_fork((void *)0, (void *)0);
1609                                         ], ol_cv_cthread_all_load=yes, ol_cv_cthread_all_load=no)
1610                                 dnl restore the LIBS
1611                                 LIBS="$save_LIBS"
1612                         ])
1613
1614                         if test $ol_cv_cthread_all_load = yes ; then
1615                                 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
1616                                 ol_link_threads=mach
1617                                 ol_with_threads=found
1618                         fi
1619                 fi
1620
1621         elif test $ac_cv_header_cthreads_h = yes ; then
1622                 dnl Hurd variant of Mach Cthreads
1623                 dnl uses <cthreads.h> and -lthreads
1624
1625                 ol_with_threads=found
1626  
1627                 dnl save the flags
1628                 save_LIBS="$LIBS"
1629                 LIBS="$LIBS -lthreads"
1630                 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1631                 LIBS="$save_LIBS"
1632
1633                 if test $ol_link_threads = yes ; then
1634                         LTHREAD_LIBS="-lthreads"
1635                         ol_link_threads=mach
1636                         ol_with_threads=found
1637                 else
1638                         AC_MSG_ERROR([could not link with Mach CThreads])
1639                 fi
1640
1641         elif test $ol_with_threads = mach ; then
1642                 AC_MSG_ERROR([could not locate Mach CThreads])
1643         fi
1644
1645         if test $ol_link_threads = mach ; then
1646                 AC_DEFINE(HAVE_MACH_CTHREADS,1,
1647                         [define if you have Mach Cthreads])
1648         elif test $ol_with_threads = found ; then
1649                 AC_MSG_ERROR([could not link with Mach CThreads])
1650         fi
1651 fi
1652
1653 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1654         -o $ol_with_threads = pth ; then
1655
1656         AC_CHECK_HEADERS(pth.h)
1657
1658         if test $ac_cv_header_pth_h = yes ; then
1659                 AC_CHECK_LIB(pth, pth_version, [have_pth=yes], [have_pth=no])
1660
1661                 if test $have_pth = yes ; then
1662                         AC_DEFINE(HAVE_GNU_PTH,1,[if you have GNU Pth])
1663                         LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
1664                         ol_link_threads=pth
1665                         ol_with_threads=found
1666
1667                         if test $ol_with_yielding_select = auto ; then
1668                                 ol_with_yielding_select=yes
1669                         fi
1670                 fi
1671         fi
1672 fi
1673
1674 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1675         -o $ol_with_threads = lwp ; then
1676
1677         dnl check for SunOS5 LWP
1678         AC_CHECK_HEADERS(thread.h synch.h)
1679         if test $ac_cv_header_thread_h = yes -a $ac_cv_header_synch_h = yes ; then
1680                 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
1681
1682                 if test $have_thr = yes ; then
1683                         AC_DEFINE(HAVE_THR,1,
1684                                 [if you have Solaris LWP (thr) package])
1685                         LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
1686                         ol_link_threads=thr
1687
1688                         if test $ol_with_yielding_select = auto ; then
1689                                 ol_with_yielding_select=yes
1690                         fi
1691
1692                         dnl Check for setconcurreny functions
1693                         AC_CHECK_FUNCS( \
1694                                 thr_setconcurrency \
1695                                 thr_getconcurrency \
1696                         )
1697                 fi
1698         fi
1699
1700         dnl check for SunOS4 LWP
1701         AC_CHECK_HEADERS(lwp/lwp.h)
1702         if test $ac_cv_header_lwp_lwp_h = yes ; then
1703                 AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
1704
1705                 if test $have_lwp = yes ; then
1706                         AC_DEFINE(HAVE_LWP,1,
1707                                 [if you have SunOS LWP package])
1708                         LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
1709                         ol_link_threads=lwp
1710
1711                         if test $ol_with_yielding_select = auto ; then
1712                                 ol_with_yielding_select=no
1713                         fi
1714                 fi
1715         fi
1716 fi
1717
1718 if test $ol_with_yielding_select = yes ; then
1719         AC_DEFINE(HAVE_YIELDING_SELECT,1,
1720                 [define if select implicitly yields])
1721 fi
1722
1723 if test $ol_with_threads = manual ; then
1724         dnl User thinks he can manually configure threads.
1725         ol_link_threads=yes
1726
1727         AC_MSG_WARN([thread defines and link options must be set manually])
1728
1729         AC_CHECK_HEADERS(pthread.h sched.h)
1730         AC_CHECK_FUNCS(sched_yield pthread_yield)
1731         OL_HEADER_LINUX_THREADS
1732
1733         AC_CHECK_HEADERS(mach/cthreads.h)
1734         AC_CHECK_HEADERS(lwp/lwp.h)
1735         AC_CHECK_HEADERS(thread.h synch.h)
1736 fi
1737
1738 if test $ol_link_threads != no -a $ol_link_threads != nt ; then  
1739         dnl needed to get reentrant/threadsafe versions
1740         dnl
1741         AC_DEFINE(REENTRANT,1)
1742         AC_DEFINE(_REENTRANT,1)
1743         AC_DEFINE(THREAD_SAFE,1)
1744         AC_DEFINE(_THREAD_SAFE,1)
1745         AC_DEFINE(THREADSAFE,1)
1746         AC_DEFINE(_THREADSAFE,1)
1747         AC_DEFINE(_SGI_MP_SOURCE,1)
1748
1749         dnl The errno declaration may dependent upon _REENTRANT.
1750         dnl If it does, we must link with thread support.
1751         AC_CACHE_CHECK([for thread specific errno],
1752                 [ol_cv_errno_thread_specific], [
1753                 AC_TRY_LINK([#include <errno.h>], [errno = 0;],
1754                         [ol_cv_errno_thread_specific=yes],
1755                         [ol_cv_errno_thread_specific=no])
1756         ])
1757
1758         dnl The h_errno declaration may dependent upon _REENTRANT.
1759         dnl If it does, we must link with thread support.
1760         AC_CACHE_CHECK([for thread specific h_errno],
1761                 [ol_cv_h_errno_thread_specific], [
1762                 AC_TRY_LINK([#include <netdb.h>], [h_errno = 0;],
1763                         [ol_cv_h_errno_thread_specific=yes],
1764                         [ol_cv_h_errno_thread_specific=no])
1765         ])
1766
1767         if test $ol_cv_errno_thread_specific != yes \
1768                 -o $ol_cv_h_errno_thread_specific != yes ; then
1769                 LIBS="$LTHREAD_LIBS $LIBS"
1770                 LTHREAD_LIBS=""
1771         fi
1772
1773 dnl When in thread environment, use 
1774 dnl             #if defined( HAVE_REENTRANT_FUNCTIONS ) || defined( HAVE_FUNC_R )
1775 dnl                     func_r(...);
1776 dnl             #else
1777 dnl             #       if defined( HAVE_THREADS ) 
1778 dnl                             /* lock */
1779 dnl             #       endif
1780 dnl                             func(...);
1781 dnl             #       if defined( HAVE_THREADS ) 
1782 dnl                             /* unlock */
1783 dnl             #       endif
1784 dnl             #endif
1785 dnl
1786 dnl HAVE_REENTRANT_FUNCTIONS is derived from:
1787 dnl             _POSIX_REENTRANT_FUNCTIONS
1788 dnl             _POSIX_THREAD_SAFE_FUNCTIONS
1789 dnl             _POSIX_THREADSAFE_FUNCTIONS
1790 dnl
1791 dnl             and is currently defined in <ldap_pvt_thread.h>
1792 dnl
1793 dnl HAVE_THREADS is defined by <ldap_pvt_thread.h> iff -UNO_THREADS
1794 dnl 
1795 dnl libldap/*.c should only include <ldap_pvt_thread.h> iff
1796 dnl LDAP_R_COMPILE is defined.  ie:
1797 dnl             #ifdef LDAP_R_COMPILE
1798 dnl             #       include <ldap_pvt_thread.h>
1799 dnl             #endif
1800 dnl
1801 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
1802 dnl specifically for compiling the threadsafe version of
1803 dnl     the ldap library (-lldap_r).
1804 dnl             
1805 dnl     dnl check for reentrant/threadsafe functions
1806 dnl     dnl
1807 dnl     dnl note: these should only be used when linking
1808 dnl     dnl             with $LTHREAD_LIBS
1809 dnl     dnl
1810 dnl     save_CPPFLAGS="$CPPFLAGS"
1811 dnl     save_LIBS="$LIBS"
1812 dnl     LIBS="$LTHREAD_LIBS $LIBS"
1813 dnl     AC_CHECK_FUNCS( \
1814 dnl             gmtime_r \
1815 dnl             gethostbyaddr_r gethostbyname_r \
1816 dnl             feof_unlocked unlocked_feof \
1817 dnl             putc_unlocked unlocked_putc \
1818 dnl             flockfile ftrylockfile \
1819 dnl     )
1820 dnl     CPPFLAGS="$save_CPPFLAGS"
1821 dnl     LIBS="$save_LIBS"
1822 fi  
1823
1824 if test $ol_link_threads = no ; then
1825         if test $ol_with_threads = yes ; then
1826                 AC_MSG_ERROR([no suitable thread support])
1827         fi
1828
1829         if test $ol_with_threads = auto ; then
1830                 AC_MSG_WARN([no suitable thread support, disabling threads])
1831                 ol_with_threads=no
1832         fi
1833
1834         AC_DEFINE(NO_THREADS,1,
1835                 [define if you have (or want) no threads])
1836         LTHREAD_LIBS=""
1837 fi
1838
1839 if test $ol_link_threads != no ; then
1840         AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1)
1841 fi
1842
1843 dnl ----------------------------------------------------------------
1844 dnl Tests for reentrant functions necessary to build -lldap_r
1845 AC_CHECK_FUNCS(         \
1846         ctime_r                 \
1847         gethostbyname_r gethostbyaddr_r \
1848 )
1849
1850 if test "$ac_cv_func_ctime_r" = no ; then
1851         ol_cv_func_ctime_r_nargs=0
1852 else
1853         OL_FUNC_CTIME_R_NARGS
1854 dnl     OL_FUNC_CTIME_R_TYPE
1855 fi
1856
1857 if test "$ac_cv_func_gethostbyname_r" = yes ; then
1858         OL_FUNC_GETHOSTBYNAME_R_NARGS
1859 else
1860         ol_cv_func_gethostbyname_r_nargs=0
1861 fi
1862  
1863 if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
1864         OL_FUNC_GETHOSTBYADDR_R_NARGS
1865 else
1866         ol_cv_func_gethostbyaddr_r_nargs=0
1867 fi
1868
1869 dnl ----------------------------------------------------------------
1870 ol_link_ldbm=no 
1871
1872 if test $ol_with_ldbm_api = auto \
1873         -o $ol_with_ldbm_api = berkeley \
1874         -o $ol_with_ldbm_api = bcompat ; then
1875
1876         if test $ol_with_ldbm_api = bcompat; then \
1877                 OL_BERKELEY_COMPAT_DB
1878         else
1879                 OL_BERKELEY_DB
1880         fi
1881
1882         if test $ol_cv_berkeley_db != no ; then
1883                 AC_DEFINE(HAVE_BERKELEY_DB,1,
1884                         [define this if Berkeley DB is available])
1885
1886                 ol_link_ldbm=berkeley
1887                 ol_with_ldbm_api=berkeley
1888
1889                 if test $ol_with_ldbm_type = hash ; then
1890                         AC_DEFINE(LDBM_USE_DBHASH,1,
1891                                 [define this to use DBHASH w/ LDBM backend])
1892                 else
1893                         AC_DEFINE(LDBM_USE_DBBTREE,1,
1894                                 [define this to use DBBTREE w/ LDBM backend])
1895                 fi
1896
1897                 dnl $ol_cv_lib_db should be yes or -ldb
1898                 dnl (it could be no, but that would be an error
1899                 if test $ol_cv_lib_db != yes ; then
1900                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
1901                 fi
1902         fi
1903 fi
1904
1905 if test $ol_enable_bdb != no -o $ol_enable_hdb != no; then
1906         if test $ol_link_ldbm != berkeley ; then
1907                 AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
1908         else
1909                 OL_BDB_COMPAT
1910
1911                 if test $ol_cv_bdb_compat != yes ; then
1912                         AC_MSG_ERROR([BDB/HDB: BerkeleyDB version incompatible])
1913                 fi
1914         fi
1915 fi
1916
1917 if test $ol_link_ldbm = no -a $ol_with_ldbm_type = btree ; then
1918         AC_MSG_WARN([Could not find LDBM with BTREE support])
1919         ol_with_ldbm_api=none
1920 fi
1921
1922 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = mdbm ; then
1923         OL_MDBM
1924
1925         if test $ol_cv_mdbm = yes ; then
1926                 ol_link_ldbm=mdbm
1927                 ol_with_ldbm_api=mdbm
1928                 if test $ol_cv_lib_mdbm != yes ; then
1929                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_mdbm"
1930                 fi
1931         fi
1932 fi
1933
1934 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = gdbm ; then
1935         OL_GDBM
1936
1937         if test $ol_cv_gdbm = yes ; then
1938                 ol_link_ldbm=gdbm
1939                 ol_with_ldbm_api=gdbm
1940
1941                 if test $ol_cv_lib_gdbm != yes ; then
1942                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
1943                 fi
1944         fi
1945 fi
1946
1947 if test $ol_with_ldbm_api = ndbm ; then
1948         OL_NDBM
1949
1950         if test $ol_cv_ndbm = yes ; then
1951                 ol_link_ldbm=ndbm
1952                 ol_with_ldbm_api=ndbm
1953
1954                 if test $ol_cv_lib_ndbm != yes ; then
1955                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
1956                 fi
1957         fi
1958 fi
1959
1960 if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
1961         AC_MSG_ERROR([could not find suitable LDBM backend])
1962 fi
1963
1964 if test $ol_enable_bdb = yes -o \
1965         $ol_enable_hdb = yes -o \
1966         $ol_enable_ldbm = yes ; then
1967         SLAPD_LIBS="$SLAPD_LIBS \$(LDBM_LIBS)"
1968 fi
1969
1970 dnl ----------------------------------------------------------------
1971
1972 if test $ol_enable_dynamic = yes -a $enable_shared = yes ; then
1973         BUILD_LIBS_DYNAMIC=shared
1974         AC_DEFINE(LDAP_LIBS_DYNAMIC, 1, [define if LDAP libs are dynamic])
1975         LTSTATIC=""
1976 else
1977         BUILD_LIBS_DYNAMIC=static
1978         LTSTATIC="-static"
1979 fi
1980 AC_SUBST(LTSTATIC)dnl
1981
1982 dnl ----------------------------------------------------------------
1983 if test $ol_enable_wrappers != no ; then
1984         AC_CHECK_HEADERS(tcpd.h,[
1985                 AC_MSG_CHECKING([for TCP wrappers library])
1986                 save_LIBS="$LIBS"
1987                 LIBS="$LIBS -lwrap"
1988                 AC_TRY_LINK([
1989 #include <tcpd.h>
1990 int allow_severity = 0;
1991 int deny_severity  = 0;
1992
1993 struct request_info *req;
1994                 ],[
1995 hosts_access(req)
1996                 ],[AC_MSG_RESULT([-lwrap])
1997                 have_wrappers=yes
1998                 LIBS="$save_LIBS"],[
1999                 dnl try with -lnsl
2000                 LIBS="$LIBS -lnsl"
2001                 AC_TRY_LINK([
2002 #include <tcpd.h>
2003 int allow_severity = 0;
2004 int deny_severity  = 0;
2005
2006 struct request_info *req;
2007                 ],[
2008 hosts_access(req)
2009                 ],[AC_MSG_RESULT([-lwrap -lnsl])
2010                 have_wrappers=yes
2011                 LIBS="$save_LIBS -lnsl"],[
2012                 AC_MSG_RESULT(no)
2013                 have_wrappers=no
2014                 LIBS=$save_LIBS])],[
2015                 have_wrappers=no])],[have_wrappers=no])
2016
2017         if test $have_wrappers = yes ; then
2018                 AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
2019                 WRAP_LIBS="-lwrap"
2020         elif test $ol_enable_wrappers = yes ; then
2021                 AC_MSG_ERROR([could not find TCP wrappers, select apppropriate options or disable])
2022         else
2023                 AC_MSG_WARN([could not find TCP wrappers, support disabled])
2024                 WRAP_LIBS=""
2025         fi
2026 fi
2027
2028 dnl ----------------------------------------------------------------
2029 if test $ol_enable_syslog != no ; then
2030         AC_CHECK_FUNC(openlog)
2031         if test $ac_cv_func_openlog = no -a $ol_enable_syslog = yes; then
2032                 AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
2033         fi
2034         ol_enable_syslog=$ac_cv_func_openlog
2035 fi
2036
2037 dnl ----------------------------------------------------------------
2038 dnl dmalloc support (deprecated in favor of -DCSRIMALLOC support)
2039 dnl if test $ol_enable_dmalloc != no ; then
2040 dnl     AC_CHECK_HEADERS(dmalloc.h)
2041 dnl     AC_CHECK_LIB(dmalloc, dmalloc_shutdown)
2042 dnl fi
2043
2044 dnl ----------------------------------------------------------------
2045 dnl SQL
2046 ol_link_sql=no
2047 if test $ol_enable_sql != no ; then
2048         AC_CHECK_HEADERS(sql.h sqlext.h,[],[
2049                 AC_MSG_ERROR([could not locate SQL headers])
2050         ])
2051
2052         AC_CHECK_LIB(iodbc,SQLDriverConnect,[have_iodbc=yes],[have_iodbc=no])
2053         if test $have_iodbc = yes ; then
2054                 ol_link_sql="-liodbc"
2055         else
2056                 AC_CHECK_LIB(odbc,SQLDriverConnect,[have_odbc=yes],[have_odbc=no])
2057                 if test $have_odbc = yes ; then
2058                         ol_link_sql="-lodbc"
2059                 fi
2060         fi
2061
2062         if test $ol_link_sql != no ; then
2063                 SLAPD_SQL_LIBS="$ol_link_sql"
2064
2065         elif test $ol_enable_sql != auto ; then
2066                 AC_MSG_ERROR([could not locate suitable ODBC library])
2067         fi
2068 fi
2069
2070 dnl ----------------------------------------------------------------
2071 dnl
2072 dnl Check for Cyrus SASL
2073 dnl
2074 ol_link_sasl=no
2075 ol_link_spasswd=no
2076 if test $ol_with_cyrus_sasl != no ; then
2077         AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
2078
2079         if test $ac_cv_header_sasl_sasl_h = yes -o $ac_cv_header_sasl_h = yes; then
2080                 AC_CHECK_LIB(sasl2, sasl_client_init,
2081                         [ol_link_sasl="-lsasl2"],
2082                         [AC_CHECK_LIB(sasl, sasl_client_init,
2083                                 [ol_link_sasl="-lsasl"])])
2084         fi
2085
2086         if test $ol_link_sasl = no ; then
2087                 if test $ol_with_cyrus_sasl != auto ; then
2088                         AC_MSG_ERROR([Could not locate Cyrus SASL])
2089                 else
2090                         AC_MSG_WARN([Could not locate Cyrus SASL])
2091                         AC_MSG_WARN([SASL authentication not supported!])
2092                         if test $ol_link_tls = no ; then
2093                                 AC_MSG_WARN([Strong authentication not supported!])
2094                         fi
2095                 fi
2096         else
2097                 OL_SASL_COMPAT
2098                 if test $ol_cv_sasl_compat = no ; then
2099                         ol_link_sasl=no
2100                         AC_MSG_ERROR([Cyrus SASL library located but is incompatible])
2101                 fi
2102
2103                 AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
2104                 SASL_LIBS="$ol_link_sasl"
2105                 if test $ol_enable_spasswd != no ; then
2106                         ol_link_spasswd=yes
2107                 fi
2108
2109                 ac_save_LIBS="$LIBS"
2110                 LIBS="$LIBS $ol_link_sasl"
2111                 AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1,
2112                         [define if your SASL library has sasl_version()])])
2113                 LIBS="$ac_save_LIBS"
2114         fi
2115
2116 else
2117         AC_MSG_WARN([SASL authentication not supported!])
2118         if test $ol_link_tls = no ; then
2119                 AC_MSG_WARN([Strong authentication not supported!])
2120         fi
2121 fi
2122
2123 dnl ----------------------------------------------------------------
2124 dnl Check for entropy sources
2125 if test $cross_compiling != yes -a "$ac_cv_mingw32" != yes ; then
2126         dev=no
2127         if test -r /dev/urandom ; then
2128                 dev="/dev/urandom";
2129         elif test -r /idev/urandom ; then
2130                 dev="/idev/urandom";
2131         elif test -r /dev/srandom ; then
2132                 dev="/dev/srandom";
2133         elif test -r /dev/random ; then
2134                 dev="/dev/random";
2135         elif test -r /idev/random ; then
2136                 dev="/idev/random";
2137         fi
2138
2139         if test $dev != no ; then
2140                 AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
2141         fi
2142 fi
2143
2144 dnl ----------------------------------------------------------------
2145 dnl
2146 dnl Check for fetch URL support
2147 dnl             should be extended to support other fetch URL APIs
2148 dnl
2149 ol_link_fetch=no
2150 if test $ol_with_fetch != no ; then
2151         OL_LIB_FETCH
2152
2153         if test $ol_cv_lib_fetch != no ; then
2154                 LUTIL_LIBS="$LUTIL_LIBS $ol_link_fetch"
2155                 ol_link_fetch=freebsd
2156
2157         elif test $ol_with_fetch != auto ; then
2158                 AC_MSG_ERROR(no suitable API for --with-fetch=$ol_with_fetch)
2159         fi 
2160 fi
2161
2162 dnl ----------------------------------------------------------------
2163 dnl FreeBSD (and others) have crypt(3) in -lcrypt
2164 if test $ol_enable_crypt != no ; then
2165         save_LIBS="$LIBS"
2166         LIBS="$TLS_LIBS $LIBS"
2167
2168         AC_CHECK_FUNC(crypt, [have_crypt=yes], [
2169                 LIBS="$save_LIBS"
2170                 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
2171                         have_crypt=yes], [have_crypt=no])])
2172
2173         LIBS="$save_LIBS"
2174
2175         if test $have_crypt = yes ; then
2176                 AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
2177         else
2178                 AC_MSG_WARN([could not find crypt])
2179                 if test $ol_enable_crypt = yes ; then
2180                         AC_MSG_ERROR([could not find crypt, select appropriate options or disable])
2181                 fi
2182
2183                 AC_MSG_WARN([disabling crypt support])
2184                 ol_enable_crypt=no
2185         fi
2186 fi
2187
2188 dnl ----------------------------------------------------------------
2189 dnl FreeBSD (and others) have setproctitle(3) in -lutil
2190 if test $ol_enable_proctitle != no ; then
2191         AC_CHECK_FUNC(setproctitle,     [have_setproctitle=yes], [
2192                 AC_CHECK_LIB(util, setproctitle,
2193                         [have_setproctitle=yes
2194                         LUTIL_LIBS="$LUTIL_LIBS -lutil"],
2195                         [have_setproctitle=no
2196                         LIBOBJS="$LIBOBJS setproctitle.o"
2197                         LIBSRCS="$LIBSRCS setproctitle.c"])])
2198
2199         if test $have_setproctitle = yes ; then
2200                 AC_DEFINE(HAVE_SETPROCTITLE,1,
2201                         [define if setproctitle(3) is available])
2202         fi
2203 fi
2204
2205 dnl ----------------------------------------------------------------
2206 dnl Check for SLPv2 Compliant API Library
2207 if test $ol_enable_slp != no ; then
2208         AC_CHECK_HEADERS( slp.h )
2209
2210         if test $ac_cv_header_slp_h = yes ; then
2211                 AC_CHECK_LIB(slp, SLPOpen, [have_slp=yes], [have_slp=no])
2212                 if test $have_slp = yes ; then
2213                         AC_DEFINE(HAVE_SLP, 1, [define if you have -lslp])
2214                         SLAPD_SLP_LIBS=-lslp
2215                 fi
2216
2217         elif test $ol_enable_slp = yes ; then
2218                 AC_MSG_ERROR([SLP not found])
2219         fi
2220 fi
2221
2222 dnl ----------------------------------------------------------------
2223 dnl Checks for typedefs, structures, and compiler characteristics.
2224
2225 dnl Checks for long long
2226 AC_CACHE_CHECK([long long], ol_cv_type_long_long, [
2227         AC_TRY_COMPILE([], [long long x;],
2228                 [ol_cv_type_long_long=yes],
2229                 [ol_cv_type_long_long=no])])
2230 if test $ol_cv_type_long_long = yes; then
2231         AC_DEFINE(HAVE_LONG_LONG, 1, [define if you have 'long long'])
2232 fi
2233
2234 AC_TYPE_MODE_T
2235 AC_TYPE_OFF_T
2236 AC_TYPE_PID_T
2237 AM_TYPE_PTRDIFF_T
2238 AC_TYPE_SIGNAL
2239 AC_TYPE_SIZE_T
2240
2241 AC_CHECK_TYPE(ssize_t, [signed int])
2242 AC_CHECK_TYPE(caddr_t,  [char *])
2243
2244 OL_TYPE_SOCKLEN_T
2245 AC_STRUCT_ST_BLKSIZE
2246 AC_HEADER_TIME
2247 AC_STRUCT_TM
2248 AC_TYPE_UID_T
2249 OL_TYPE_SIG_ATOMIC_T
2250
2251 dnl AC_TYPE_GETGROUPS
2252
2253 OL_STRUCT_PASSWD_PW_GECOS
2254 OL_STRUCT_PASSWD_PW_PASSWD
2255
2256 OL_C_UPPER_LOWER
2257 AC_C_CONST
2258 OL_C_VOLATILE
2259
2260 if test $cross_compiling = yes ; then
2261         AC_MSG_WARN([Crossing compiling... all bets are off!])
2262         AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
2263 else
2264         AC_C_BIGENDIAN
2265 fi
2266
2267 AC_COMPILE_CHECK_SIZEOF(short) 
2268 AC_COMPILE_CHECK_SIZEOF(int) 
2269 AC_COMPILE_CHECK_SIZEOF(long)
2270 AC_COMPILE_CHECK_SIZEOF(wchar_t)
2271
2272 if test "$ac_cv_sizeof_int" -lt 4 ; then
2273         AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
2274
2275         AC_DEFINE(LBER_INT_T,long)
2276 else
2277         AC_DEFINE(LBER_INT_T,int)
2278 fi
2279
2280 AC_DEFINE(LBER_LEN_T,long)
2281 AC_DEFINE(LBER_SOCKET_T,int)
2282 AC_DEFINE(LBER_TAG_T,long)
2283
2284 dnl ----------------------------------------------------------------
2285 dnl Checks for library functions.
2286 AC_FUNC_MEMCMP
2287 dnl AM_FUNC_MKTIME dnl checks for sys/time.h and unistd.h
2288 AC_FUNC_STRFTIME
2289 dnl AM_FUNC_STRTOD
2290
2291 OL_FUNC_INET_ATON
2292
2293 dnl Check for NT specific routines
2294 AC_CHECK_FUNC(_spawnlp, AC_DEFINE(HAVE_SPAWNLP,1,[if you have spawnlp()]))
2295
2296 AC_CHECK_FUNC(_snprintf, [ac_cv_func_snprintf=yes
2297         AC_DEFINE(snprintf, _snprintf, [define to snprintf routine])
2298 ])
2299
2300 AC_CHECK_FUNC(_vsnprintf, [ac_cv_func_vsnprintf=yes
2301         AC_DEFINE(vsnprintf, _vsnprintf, [define to vsnprintf routine])
2302 ])
2303
2304 AC_FUNC_VPRINTF
2305
2306 if test $ac_cv_func_vprintf = yes ; then
2307         dnl check for vsnprintf
2308         AC_CHECK_FUNCS(snprintf vsnprintf)
2309 fi
2310
2311 AC_CHECK_FUNCS(         \
2312         bcopy                   \
2313         closesocket             \
2314         chroot                  \
2315         endgrent                \
2316         endpwent                \
2317         fcntl                   \
2318         flock                   \
2319         fstat                   \
2320         getdtablesize   \
2321         getgrgid                \
2322         gethostname             \
2323         getpass                 \
2324         getpassphrase   \
2325         getpwuid                \
2326         getpwnam                \
2327         getspnam                \
2328         gettimeofday    \
2329         initgroups              \
2330         lockf                   \
2331         memcpy                  \
2332         memmove                 \
2333         mkstemp                 \
2334         mktemp                  \
2335         pipe                    \
2336         read                    \
2337         recv                    \
2338         recvfrom                \
2339         setpwfile               \
2340         setgid                  \
2341         setegid                 \
2342         setsid                  \
2343         setuid                  \
2344         seteuid                 \
2345         sigaction               \
2346         signal                  \
2347         sigset                  \
2348         strdup                  \
2349         strerror                \
2350         strpbrk                 \
2351         strrchr                 \
2352         strsep                  \
2353         strstr                  \
2354         strtol                  \
2355         strtoul                 \
2356         strtoq                  \
2357         strtouq                 \
2358         strtoll                 \
2359         strspn                  \
2360         sysconf                 \
2361         usleep                  \
2362         waitpid                 \
2363         wait4                   \
2364         write                   \
2365         send                    \
2366         sendmsg                 \
2367         sendto                  \
2368 )
2369
2370 dnl We actually may need to replace more than this.
2371 AC_REPLACE_FUNCS(getopt getpeereid)
2372
2373 if test "$ac_cv_func_getopt" != yes; then
2374         LIBSRCS="$LIBSRCS getopt.c"
2375 fi
2376 if test "$ac_cv_func_getpeereid" != yes; then
2377         OL_MSGHDR_MSG_ACCRIGHTS
2378         LIBSRCS="$LIBSRCS getpeereid.c"
2379 fi
2380 if test "$ac_cv_func_snprintf" != yes -o "$ac_cv_func_vsnprintf" != yes; then
2381         if test "$ac_cv_func_snprintf" != yes; then
2382                 AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine])
2383         fi
2384         if test "$ac_cv_func_vsnprintf" != yes; then
2385                 AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine])
2386         fi
2387 fi
2388
2389 dnl ----------------------------------------------------------------
2390 # Check Configuration
2391 OL_SYS_ERRLIST
2392
2393 dnl ----------------------------------------------------------------
2394 dnl Sort out defines
2395
2396 if test "$ol_enable_slapi" != no ; then
2397         dnl This check is done also if --enable-modules is used;
2398         dnl it is duplicated here, 'cause it'd be cached anyway
2399         AC_CHECK_HEADERS(ltdl.h)
2400
2401         if test $ac_cv_header_ltdl_h != yes ; then
2402                 AC_MSG_ERROR([could not locate <ltdl.h>])
2403         fi
2404         AC_CHECK_LIB(ltdl, lt_dlinit, [
2405                 SLAPI_LIBS=-lltdl
2406                 LIBSLAPI=libslapi.a
2407                 LIBSLAPITOOLS=../libslapi.a
2408                 AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
2409         ],[AC_MSG_ERROR([could not locate libtool -lltdl])])
2410
2411         AC_DEFINE(LDAP_SLAPI,1, [define this to add SLAPI code])
2412 fi
2413
2414 if test "$ol_enable_debug" != no ; then
2415         AC_DEFINE(LDAP_DEBUG,1,
2416                 [define this to add debugging code])
2417 fi
2418 if test "$ol_enable_syslog" = yes ; then
2419         AC_DEFINE(LDAP_SYSLOG,1,
2420                 [define this to add syslog code])
2421 fi
2422 if test "$ol_link_kbind" != no ; then
2423         AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND,LDAP_VENDOR_VERSION)
2424 fi
2425 if test "$ol_enable_proctitle" != no ; then
2426         AC_DEFINE(LDAP_PROCTITLE,1,
2427                 [define this for LDAP process title support])
2428 fi
2429 if test "$ol_enable_referrals" != no ; then
2430         AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION)
2431 fi
2432 if test "$ol_enable_local" != no; then
2433         AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
2434 fi
2435 if test "$ol_link_ipv6" != no; then
2436         AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
2437 fi
2438 if test "$ol_enable_cleartext" != no ; then
2439         AC_DEFINE(SLAPD_CLEARTEXT,1,[define to support cleartext passwords])
2440 fi
2441 if test "$ol_enable_crypt" != no ; then
2442         AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords])
2443 fi
2444 if test "$ol_link_spasswd" != no ; then
2445         AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
2446 fi
2447 if test "$ol_enable_multimaster" != no ; then
2448         AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
2449 fi
2450 if test "$ol_enable_rlookups" != no ; then
2451         AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
2452 fi
2453 if test "$ol_enable_aci" != no ; then
2454         AC_DEFINE(SLAPD_ACI_ENABLED,1,[define to support per-object ACIs])
2455 fi
2456
2457 if test "$ol_link_modules" != no ; then
2458         AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
2459         BUILD_SLAPD=yes
2460         SLAPD_MODULES_LDFLAGS="-dlopen self"
2461 fi
2462
2463 AC_DEFINE(SLAPD_MOD_STATIC,1,[statically linked module])
2464 AC_DEFINE(SLAPD_MOD_DYNAMIC,2,[dynamically linked module])
2465
2466 if test "$ol_enable_bdb" != no ; then
2467         BUILD_SLAPD=yes
2468         BUILD_BDB=$ol_enable_bdb
2469         if test "$ol_enable_bdb" = mod ; then
2470                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-bdb"
2471                 MFLAG=SLAPD_MOD_DYNAMIC
2472         else
2473                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-bdb"
2474                 MFLAG=SLAPD_MOD_STATIC
2475         fi
2476         AC_DEFINE_UNQUOTED(SLAPD_BDB,$MFLAG,[define to support BDB backend])
2477 fi
2478
2479 if test "$ol_enable_dnssrv" != no ; then
2480         BUILD_SLAPD=yes
2481         BUILD_DNSSRV=$ol_enable_dnssrv
2482         if test "$ol_enable_dnssrv" = mod ; then
2483                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-dnssrv"
2484                 MFLAG=SLAPD_MOD_DYNAMIC
2485         else
2486                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-dnssrv"
2487                 MFLAG=SLAPD_MOD_STATIC
2488         fi
2489         AC_DEFINE_UNQUOTED(SLAPD_DNSSRV,$MFLAG,[define to support DNS SRV backend])
2490 fi
2491
2492 if test "$ol_enable_hdb" != no ; then
2493         BUILD_SLAPD=yes
2494         BUILD_HDB=$ol_enable_hdb
2495         if test "$ol_enable_hdb" = mod ; then
2496                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-hdb"
2497                 MFLAG=SLAPD_MOD_DYNAMIC
2498         else
2499                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-hdb"
2500                 MFLAG=SLAPD_MOD_STATIC
2501         fi
2502         AC_DEFINE_UNQUOTED(SLAPD_HDB,$MFLAG,[define to support HDB backend])
2503 fi
2504
2505 if test "$ol_enable_ldap" != no ; then
2506         BUILD_SLAPD=yes
2507         BUILD_LDAP=$ol_enable_ldap
2508         if test "$ol_enable_ldap" = mod ; then
2509                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldap"
2510                 MFLAG=SLAPD_MOD_DYNAMIC
2511         else
2512                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldap"
2513                 MFLAG=SLAPD_MOD_STATIC
2514         fi
2515         AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
2516 fi
2517
2518 if test "$ol_link_ldbm" != no -a $ol_enable_ldbm != no; then
2519         BUILD_SLAPD=yes
2520         BUILD_LDBM=$ol_enable_ldbm
2521         if test "$ol_enable_ldbm" = mod ; then
2522                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-ldbm"
2523                 MFLAG=SLAPD_MOD_DYNAMIC
2524         else
2525                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-ldbm"
2526                 MFLAG=SLAPD_MOD_STATIC
2527         fi
2528         AC_DEFINE_UNQUOTED(SLAPD_LDBM,$MFLAG,[define to support LDBM backend])
2529 fi
2530
2531 if test "$ol_enable_meta" != no ; then
2532         BUILD_SLAPD=yes
2533         BUILD_META=$ol_enable_meta
2534         BUILD_REWRITE=yes
2535         if test "$ol_enable_meta" = mod ; then
2536                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-meta"
2537                 MFLAG=SLAPD_MOD_DYNAMIC
2538         else
2539                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-meta"
2540                 MFLAG=SLAPD_MOD_STATIC
2541         fi
2542         AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
2543 fi
2544
2545 if test "$ol_enable_monitor" != no ; then
2546         BUILD_SLAPD=yes
2547         BUILD_MONITOR=$ol_enable_monitor
2548         if test "$ol_enable_monitor" = mod ; then
2549                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-monitor"
2550                 MFLAG=SLAPD_MOD_DYNAMIC
2551         else
2552                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-monitor"
2553                 MFLAG=SLAPD_MOD_STATIC
2554         fi
2555         AC_DEFINE_UNQUOTED(SLAPD_MONITOR,$MFLAG,[define to support cn=Monitor backend])
2556 fi
2557
2558 if test "$ol_enable_null" != no ; then
2559         BUILD_SLAPD=yes
2560         BUILD_NULL=$ol_enable_null
2561         if test "$ol_enable_null" = mod ; then
2562                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-null"
2563                 MFLAG=SLAPD_MOD_DYNAMIC
2564         else
2565                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-null"
2566                 MFLAG=SLAPD_MOD_STATIC
2567         fi
2568         AC_DEFINE_UNQUOTED(SLAPD_NULL,$MFLAG,[define to support NULL backend])
2569 fi
2570
2571 if test "$ol_enable_passwd" != no ; then
2572         BUILD_SLAPD=yes
2573         BUILD_PASSWD=$ol_enable_passwd
2574         if test "$ol_enable_passwd" = mod ; then
2575                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-passwd"
2576                 MFLAG=SLAPD_MOD_DYNAMIC
2577         else
2578                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-passwd"
2579                 MFLAG=SLAPD_MOD_STATIC
2580         fi
2581         AC_DEFINE_UNQUOTED(SLAPD_PASSWD,$MFLAG,[define to support PASSWD backend])
2582 fi
2583
2584 if test "$ol_link_perl" != no ; then
2585         BUILD_SLAPD=yes
2586         BUILD_PERL=$ol_enable_perl
2587         if test "$ol_enable_perl" = mod ; then
2588                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-perl"
2589                 MFLAG=SLAPD_MOD_DYNAMIC
2590         else
2591                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-perl"
2592                 MFLAG=SLAPD_MOD_STATIC
2593         fi
2594         AC_DEFINE_UNQUOTED(SLAPD_PERL,$MFLAG,[define to support PERL backend])
2595 fi
2596
2597 if test "$ol_enable_relay" != no ; then
2598         BUILD_SLAPD=yes
2599         BUILD_RELAY=$ol_enable_relay
2600         if test "$ol_enable_relay" = mod ; then
2601                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-relay"
2602                 MFLAG=SLAPD_MOD_DYNAMIC
2603         else
2604                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-relay"
2605                 MFLAG=SLAPD_MOD_STATIC
2606         fi
2607         AC_DEFINE_UNQUOTED(SLAPD_RELAY,$MFLAG,[define to support relay backend])
2608 fi
2609
2610 if test "$ol_enable_shell" != no ; then
2611         if test "$ol_link_thread" != no ; then
2612                 AC_MSG_WARN([Use of --without-threads is recommended with back-shell])
2613         fi
2614         BUILD_SLAPD=yes
2615         BUILD_SHELL=$ol_enable_shell
2616         if test "$ol_enable_shell" = mod ; then
2617                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-shell"
2618                 MFLAG=SLAPD_MOD_DYNAMIC
2619         else
2620                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-shell"
2621                 MFLAG=SLAPD_MOD_STATIC
2622         fi
2623         AC_DEFINE_UNQUOTED(SLAPD_SHELL,$MFLAG,[define to support SHELL backend])
2624 fi
2625
2626 if test "$ol_link_sql" != no ; then
2627         BUILD_SLAPD=yes
2628         BUILD_SQL=$ol_enable_sql
2629         if test "$ol_enable_sql" = mod; then
2630                 SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-sql"
2631                 MFLAG=SLAPD_MOD_DYNAMIC
2632         else
2633                 SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-sql"
2634                 MFLAG=SLAPD_MOD_STATIC
2635         fi
2636         AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend])
2637 fi
2638
2639 if test "$ol_enable_chain" != no ; then
2640         BUILD_CHAIN=$ol_enable_chain
2641         if test "$ol_enable_chain" = mod ; then
2642                 MFLAG=SLAPD_MOD_DYNAMIC
2643                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS chain.la"
2644         else
2645                 MFLAG=SLAPD_MOD_STATIC
2646         fi
2647         AC_DEFINE_UNQUOTED(SLAPD_OVER_CHAIN,$MFLAG,[define for Dynamic Group overlay])
2648 fi
2649
2650 if test "$ol_enable_denyop" != no ; then
2651         BUILD_DENYOP=$ol_enable_denyop
2652         if test "$ol_enable_denyop" = mod ; then
2653                 MFLAG=SLAPD_MOD_DYNAMIC
2654                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS denyop.la"
2655         else
2656                 MFLAG=SLAPD_MOD_STATIC
2657         fi
2658         AC_DEFINE_UNQUOTED(SLAPD_OVER_DENYOP,$MFLAG,[define for Dynamic Group overlay])
2659 fi
2660
2661 if test "$ol_enable_dyngroup" != no ; then
2662         BUILD_DYNGROUP=$ol_enable_dyngroup
2663         if test "$ol_enable_dyngroup" = mod ; then
2664                 MFLAG=SLAPD_MOD_DYNAMIC
2665                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dyngroup.la"
2666         else
2667                 MFLAG=SLAPD_MOD_STATIC
2668         fi
2669         AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay])
2670 fi
2671
2672 if test "$ol_enable_lastmod" != no ; then
2673         BUILD_LASTMOD=$ol_enable_lastmod
2674         if test "$ol_enable_lastmod" = mod ; then
2675                 MFLAG=SLAPD_MOD_DYNAMIC
2676                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS lastmod.la"
2677         else
2678                 MFLAG=SLAPD_MOD_STATIC
2679         fi
2680         AC_DEFINE_UNQUOTED(SLAPD_OVER_LASTMOD,$MFLAG,[define for Last Modification overlay])
2681 fi
2682
2683 if test "$ol_enable_ppolicy" != no ; then
2684         BUILD_PPOLICY=$ol_enable_ppolicy
2685         if test "$ol_enable_ppolicy" = mod ; then
2686                 MFLAG=SLAPD_MOD_DYNAMIC
2687                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS ppolicy.la"
2688         else
2689                 MFLAG=SLAPD_MOD_STATIC
2690         fi
2691         AC_DEFINE_UNQUOTED(SLAPD_OVER_PPOLICY,$MFLAG,[define for Password Policy overlay])
2692 fi
2693
2694 if test "$ol_enable_proxycache" != no ; then
2695         BUILD_PROXYCACHE=$ol_enable_proxycache
2696         if test "$ol_enable_proxycache" = mod ; then
2697                 MFLAG=SLAPD_MOD_DYNAMIC
2698                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS pcache.la"
2699         else
2700                 MFLAG=SLAPD_MOD_STATIC
2701         fi
2702         AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay])
2703 fi
2704
2705 if test "$ol_enable_refint" != no ; then
2706         BUILD_REFINT=$ol_enable_refint
2707         if test "$ol_enable_refint" = mod ; then
2708                 MFLAG=SLAPD_MOD_DYNAMIC
2709                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la"
2710         else
2711                 MFLAG=SLAPD_MOD_STATIC
2712         fi
2713         AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay])
2714 fi
2715
2716 if test "$ol_enable_rwm" != no ; then
2717         BUILD_REWRITE=yes
2718         BUILD_RWM=$ol_enable_rwm
2719         if test "$ol_enable_rwm" = mod ; then
2720                 MFLAG=SLAPD_MOD_DYNAMIC
2721                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS rwm.la"
2722         else
2723                 MFLAG=SLAPD_MOD_STATIC
2724         fi
2725         AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
2726 fi
2727
2728 if test "$ol_enable_unique" != no ; then
2729         BUILD_UNIQUE=$ol_enable_unique
2730         if test "$ol_enable_unique" = mod ; then
2731                 MFLAG=SLAPD_MOD_DYNAMIC
2732                 SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la"
2733         else
2734                 MFLAG=SLAPD_MOD_STATIC
2735         fi
2736         AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay])
2737 fi
2738
2739 if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \
2740         $BUILD_SLAPD = yes ; then
2741         BUILD_SLURPD=yes
2742 fi
2743
2744 if test "$ol_enable_rewrite" != no ; then
2745         AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta])
2746         BUILD_REWRITE=yes
2747 fi
2748
2749 if test "$ol_enable_slapi" != no ; then
2750         AC_DEFINE(ENABLE_SLAPI,1,[define to enable slapi library])
2751         BUILD_SLAPI=yes
2752         SLAPD_SLAPI_DEPEND=libslapi.a
2753 fi
2754
2755 dnl ----------------------------------------------------------------
2756
2757 dnl
2758 dnl For Windows build, we don't want to include -dlopen flags.
2759 dnl They hurt more than they help.
2760 dnl
2761
2762 if test "$ac_cv_mingw32" = yes ; then
2763         PLAT=NT
2764         SLAPD_MODULES_LDFLAGS=
2765 else
2766         PLAT=UNIX
2767 fi
2768
2769 if test -z "$SLAPD_STATIC_BACKENDS"; then
2770         SLAPD_NO_STATIC='#'
2771 else
2772         SLAPD_NO_STATIC=
2773 fi
2774
2775 AC_SUBST(LIBSRCS)
2776 AC_SUBST(PLAT)
2777 AC_SUBST(WITH_TLS)
2778 AC_SUBST(BUILD_LIBS_DYNAMIC)
2779
2780 AC_SUBST(BUILD_SLAPD)
2781 dnl slapi
2782   AC_SUBST(BUILD_SLAPI)
2783   AC_SUBST(SLAPD_SLAPI_DEPEND)
2784 dnl backends
2785   AC_SUBST(BUILD_BDB)
2786   AC_SUBST(BUILD_DNSSRV)
2787   AC_SUBST(BUILD_HDB)
2788   AC_SUBST(BUILD_LDAP)
2789   AC_SUBST(BUILD_LDBM)
2790   AC_SUBST(BUILD_META)
2791   AC_SUBST(BUILD_MONITOR)
2792   AC_SUBST(BUILD_NULL)
2793   AC_SUBST(BUILD_PASSWD)
2794   AC_SUBST(BUILD_RELAY)
2795   AC_SUBST(BUILD_PERL)
2796   AC_SUBST(BUILD_SHELL)
2797   AC_SUBST(BUILD_SQL)
2798 dnl overlays
2799   AC_SUBST(BUILD_CHAIN)
2800   AC_SUBST(BUILD_DENYOP)
2801   AC_SUBST(BUILD_DYNGROUP)
2802   AC_SUBST(BUILD_LASTMOD)
2803   AC_SUBST(BUILD_PPOLICY)
2804   AC_SUBST(BUILD_PROXYCACHE)
2805   AC_SUBST(BUILD_REFINT)
2806   AC_SUBST(BUILD_RWM)
2807   AC_SUBST(BUILD_UNIQUE)
2808 AC_SUBST(BUILD_SLURPD)
2809
2810 AC_SUBST(LDAP_LIBS)
2811 AC_SUBST(SLAPD_LIBS)
2812 AC_SUBST(SLURPD_LIBS)
2813 AC_SUBST(LDBM_LIBS)
2814 AC_SUBST(LTHREAD_LIBS)
2815 AC_SUBST(LUTIL_LIBS)
2816 AC_SUBST(WRAP_LIBS)
2817
2818 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
2819 AC_SUBST(SLAPD_MODULES_LDFLAGS)
2820
2821 AC_SUBST(SLAPD_NO_STATIC)
2822 AC_SUBST(SLAPD_STATIC_BACKENDS)
2823 AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
2824 AC_SUBST(SLAPD_DYNAMIC_OVERLAYS)
2825
2826 AC_SUBST(PERL_CPPFLAGS)
2827 AC_SUBST(SLAPD_PERL_LDFLAGS)
2828 AC_SUBST(MOD_PERL_LDFLAGS)
2829
2830 AC_SUBST(KRB4_LIBS)
2831 AC_SUBST(KRB5_LIBS)
2832 AC_SUBST(SASL_LIBS)
2833 AC_SUBST(TLS_LIBS)
2834 AC_SUBST(MODULES_LIBS)
2835 AC_SUBST(SLAPI_LIBS)
2836 AC_SUBST(LIBSLAPI)
2837 AC_SUBST(LIBSLAPITOOLS)
2838 AC_SUBST(AUTH_LIBS)
2839
2840 AC_SUBST(SLAPD_SLP_LIBS)
2841
2842 AC_SUBST(SLAPD_SQL_LDFLAGS)
2843 AC_SUBST(SLAPD_SQL_LIBS)
2844 AC_SUBST(SLAPD_SQL_INCLUDES)
2845
2846 dnl ----------------------------------------------------------------
2847 dnl final help output
2848 AC_ARG_WITH(xxinstall,[
2849 See INSTALL file for further details.])
2850
2851 dnl ----------------------------------------------------------------
2852 dnl final output
2853 dnl
2854
2855 AC_OUTPUT( \
2856 Makefile:build/top.mk:Makefile.in:build/dir.mk \
2857 doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk \
2858 doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk \
2859 doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk \
2860 doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk \
2861 doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk \
2862 doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk \
2863 clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk \
2864 clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk \
2865 include/Makefile:build/top.mk:include/Makefile.in \
2866 libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk      \
2867 libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk  \
2868 libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk  \
2869 libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk      \
2870 libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk  \
2871 libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk        \
2872 libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk \
2873 servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk \
2874 servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk \
2875 servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk \
2876 servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk \
2877 servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk \
2878 servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk \
2879 servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/mod.mk \
2880 servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk \
2881 servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk \
2882 servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk \
2883 servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk \
2884 servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk \
2885 servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk \
2886 servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk \
2887 servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk \
2888 servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk \
2889 servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk  \
2890 servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk \
2891 servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk \
2892 tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk \
2893 tests/run \
2894 tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk \
2895 ,[
2896 chmod +x tests/run
2897 date > stamp-h
2898 echo Please run \"make depend\" to build dependencies
2899 ])