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