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