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