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