]> git.sur5r.net Git - openldap/blob - configure.in
unifdef -DSLAPD_SCHEMA_NOT_COMPAT -USLAPD_SCHEMA_COMPAT
[openldap] / configure.in
1 dnl $OpenLDAP$
2 dnl
3 dnl Copyright 1998-2000 The OpenLDAP Foundation.  All Rights Reserved.
4 dnl 
5 dnl Redistribution and use in source and binary forms are permitted only
6 dnl as authorized by the OpenLDAP Public License.  A copy of this
7 dnl license is available at http://www.OpenLDAP.org/license.html or
8 dnl in file LICENSE in the top-level directory of the distribution.
9 dnl
10 dnl ----------------------------------------------------------------
11 dnl Redefine AC_INIT_BINSH to provide RCS IDs and copyright notice
12 dnl at top of generated configure script.  Prints simple copyright.
13 define([AC_INIT_BINSH],
14 [[#! /bin/sh
15 # $]OpenLDAP[$
16 # from] translit([$OpenLDAP$], $")] [
17
18 # Copyright 1998-2000 The OpenLDAP Foundation.  All Rights Reserved.
19
20 # Redistribution and use in source and binary forms are permitted only
21 # as authorized by the OpenLDAP Public License.  A copy of this
22 # license is available at http://www.OpenLDAP.org/license.html or
23 # in file LICENSE in the top-level directory of the distribution.
24
25 echo "Copyright 1998-2000 The OpenLDAP Foundation,  All Rights Reserved."
26 echo "Copying restrictions apply, see COPYRIGHT file."
27 ])dnl
28 dnl ----------------------------------------------------------------
29 dnl Disable config.cache!
30 define([AC_CACHE_LOAD], )dnl
31 define([AC_CACHE_SAVE], )dnl
32 dnl ================================================================
33 dnl Configure.in for OpenLDAP
34 AC_INIT(build/version)dnl
35 AC_CONFIG_AUX_DIR(build)dnl
36
37 OL_VERSION=`cat $ac_aux_dir/version`
38 if test -z "$OL_VERSION"; then
39         AC_MSG_ERROR([could not determine version])
40 fi
41
42 echo "Configuring OpenLDAP $OL_VERSION ..."
43
44 dnl Determine host platform
45 dnl             we try not to use this for much
46 AC_CANONICAL_SYSTEM
47
48 AM_INIT_AUTOMAKE(OpenLDAP,[$OL_VERSION], [no defines])dnl
49 AC_SUBST(PACKAGE)
50 AC_SUBST(VERSION)
51 AC_DEFINE_UNQUOTED(OPENLDAP_PACKAGE,"$PACKAGE",Package)
52 AC_DEFINE_UNQUOTED(OPENLDAP_VERSION,"$VERSION",Version)
53
54 dnl We use autoconf features new to 2.13.
55 dnl aclocal.m4 should be built using aclocal from automake 1.4
56 dnl libtool 1.3.3 should be installed.
57 AC_PREREQ(2.13)dnl Required Autoconf version
58
59 AC_CONFIG_HEADER(include/portable.h include/ldap_features.h include/lber_types.h)dnl
60
61 dnl ================================================================
62 dnl Start Args
63 AC_MSG_CHECKING(configure arguments)
64 AC_PREFIX_DEFAULT(/usr/local)
65
66 top_builddir=`pwd`
67 AC_SUBST(top_builddir)dnl
68
69 dnl ----------------------------------------------------------------
70 dnl --with-subdir
71 ldap_subdir="/openldap"
72
73 AC_ARG_WITH(subdir,
74 [  --with-subdir=DIR change default subdirectory used for installs],
75 [case "$withval" in
76         no) ldap_subdir=""
77                 ;;
78         yes)
79                 ;;
80         /*|\\*)
81                 ldap_subdir="$withval"
82                 ;;
83         *)
84                 ldap_subdir="/$withval"
85                 ;;
86 esac
87 ])dnl
88
89 AC_SUBST(ldap_subdir)dnl
90
91 dnl ----------------------------------------------------------------
92 dnl General "enable" options
93 OL_ARG_ENABLE(debug,[  --enable-debug   enable debugging], yes)dnl
94 OL_ARG_ENABLE(syslog,[  --enable-syslog enable syslog support], auto)dnl
95 OL_ARG_ENABLE(proctitle,[  --enable-proctitle   enable proctitle support], yes)dnl
96 OL_ARG_ENABLE(cache,[  --enable-cache   enable caching], yes)dnl
97 OL_ARG_ENABLE(referrals,[  --enable-referrals   enable V2 Referrals extension], yes)dnl
98 OL_ARG_ENABLE(kbind,[  --enable-kbind   enable V2 Kerberos IV bind], auto)dnl
99 OL_ARG_ENABLE(cldap,[  --enable-cldap   enable connectionless ldap], no)dnl
100 OL_ARG_ENABLE(ldapi,[  --enable-ldapi   enable domain socket (PF_LOCAL) ldap], no)dnl
101 OL_ARG_ENABLE(x_compile,[  --enable-x-compile   enable cross compiling],
102         no, [yes no])dnl
103
104 dnl ----------------------------------------------------------------
105 dnl General "with" options
106 dnl OL_ARG_ENABLE(dmalloc,[  --enable-dmalloc   enable debug malloc support], no)dnl
107
108 OL_ARG_WITH(cyrus_sasl,[  --with-cyrus-sasl     with Cyrus SASL support],
109         auto, [auto yes no] )
110 OL_ARG_WITH(fetch,[  --with-fetch               with fetch URL support],
111         auto, [auto yes no] )
112 OL_ARG_WITH(kerberos,[  --with-kerberos with support],
113         auto, [auto k5 k5only k425 kth k4 afs yes no])
114 OL_ARG_WITH(readline,[  --with-readline with readline support],
115         auto, [auto yes no] )
116 OL_ARG_WITH(threads,[  --with-threads   use threads],
117         auto, [auto nt posix mach pth lwp yes no manual] )
118 OL_ARG_WITH(tls,[  --with-tls           with TLS/SSL support],
119         auto, [auto ssleay openssl yes no] )
120 OL_ARG_WITH(yielding_select,[  --with-yielding-select   with implicitly yielding select],
121         auto, [auto yes no manual] )
122
123 dnl ----------------------------------------------------------------
124 dnl Server options
125 dnl ----------------------------------------------------------------
126
127 dnl ----------------------------------------------------------------
128 dnl SLAPD OPTIONS
129 AC_ARG_WITH(xxslapdoptions,[SLAPD (Standalone LDAP Daemon) Options:])
130 OL_ARG_ENABLE(slapd,[  --enable-slapd   enable building slapd], yes)dnl
131 OL_ARG_ENABLE(cleartext,[    --enable-cleartext enable cleartext passwords], yes)dnl
132 OL_ARG_ENABLE(crypt,[    --enable-crypt enable crypt(3) passwords], auto)dnl
133 OL_ARG_ENABLE(kpasswd,[    --enable-kpasswd     enable kerberos password verification], no)dnl
134 OL_ARG_ENABLE(spasswd,[    --enable-spasswd     enable (Cyrus) SASL password verification], no)dnl
135 OL_ARG_ENABLE(modules,[    --enable-modules     enable dynamic module support], no)dnl
136 OL_ARG_ENABLE(multimaster,[    --enable-multimaster     enable multimaster replication], no)dnl
137 OL_ARG_ENABLE(phonetic,[    --enable-phonetic   enable phonetic/soundex], no)dnl
138 OL_ARG_ENABLE(quipu,[    --enable-quipu build quipu migration tools], no)dnl
139 OL_ARG_ENABLE(rlookups,[    --enable-rlookups   enable reverse lookups], auto)dnl
140 OL_ARG_ENABLE(aci,[    --enable-aci     enable per-object ACIs], no)dnl
141 OL_ARG_ENABLE(wrappers,[    --enable-wrappers   enable tcp wrapper support], no)dnl
142 OL_ARG_ENABLE(dynamic,[    --enable-dynamic     enable linking built binaries with dynamic libs], no)dnl
143
144 dnl SLAPD Backend options
145 OL_ARG_ENABLE(dnssrv,[    --enable-dnssrv       enable dnssrv backend], no)dnl
146 OL_ARG_WITH(dnssrv_module,[      --with-dnssrv-module   module type], static,
147         [static dynamic])
148 OL_ARG_ENABLE(ldap,[    --enable-ldap   enable ldap backend], no)dnl
149 OL_ARG_WITH(ldap_module,[      --with-ldap-module       module type], static,
150         [static dynamic])
151 OL_ARG_ENABLE(ldbm,[    --enable-ldbm   enable ldbm backend], yes)dnl
152 OL_ARG_WITH(ldbm_api,[      --with-ldbm-api     use LDBM API], auto,
153         [auto berkeley bcompat mdbm gdbm])
154 OL_ARG_WITH(ldbm_module,[      --with-ldbm-module       module type], static,
155         [static dynamic])
156 OL_ARG_WITH(ldbm_type,[      --with-ldbm-type   use LDBM type], auto,
157         [auto btree hash])
158 OL_ARG_ENABLE(passwd,[    --enable-passwd       enable passwd backend], no)dnl
159 OL_ARG_WITH(passwd_module,[      --with-passwd-module   module type], static,
160         [static dynamic])
161 OL_ARG_ENABLE(perl,[    --enable-perl   enable perl backend], no)dnl
162 OL_ARG_WITH(perl_module,[      --with-perl-module       module type], static,
163         [static dynamic])
164 OL_ARG_ENABLE(shell,[    --enable-shell enable shell backend], no)dnl
165 OL_ARG_WITH(shell_module,[      --with-shell-module     module type], static,
166         [static dynamic])
167 OL_ARG_ENABLE(sql,[    --enable-sql     enable sql backend], no)dnl
168 OL_ARG_WITH(sql_module,[      --with-sql-module module type], static,
169         [static dynamic])
170 OL_ARG_ENABLE(tcl,[    --enable-tcl     enable tcl backend], no)dnl
171 OL_ARG_WITH(tcl_module,[      --with-tcl-module module type], static,
172         [static dynamic])
173
174 dnl ----------------------------------------------------------------
175 dnl SLURPD OPTIONS
176 AC_ARG_WITH(xxslurpdoptions,[SLURPD (Replication Daemon) Options:])
177 OL_ARG_ENABLE(slurpd,[  --enable-slurpd enable building slurpd], auto)dnl
178
179 dnl ----------------------------------------------------------------
180 AC_ARG_WITH(xxliboptions,[Library Generation & Linking Options])
181 AC_ENABLE_STATIC
182 dnl AC_DISABLE_SHARED
183 AC_ENABLE_SHARED
184
185 dnl ----------------------------------------------------------------
186
187 dnl General "enable" options
188 # validate options
189 if test $ol_enable_slapd = no ; then
190         dnl SLAPD was specificallly disabled
191         if test $ol_enable_dnssrv = yes ; then
192                 AC_MSG_WARN([slapd disabled, ignoring --enable-dnssrv argument])
193         fi
194         if test $ol_enable_ldap = yes ; then
195                 AC_MSG_WARN([slapd disabled, ignoring --enable-ldap argument])
196         fi
197         if test $ol_enable_ldbm = yes ; then
198                 AC_MSG_WARN([slapd disabled, ignoring --enable-ldbm argument])
199         fi
200         if test $ol_enable_passwd = yes ; then
201                 AC_MSG_WARN([slapd disabled, ignoring --enable-passwd argument])
202         fi
203         if test $ol_enable_perl = yes ; then
204                 AC_MSG_WARN([slapd disabled, ignoring --enable-perl argument])
205         fi
206         if test $ol_enable_shell = yes ; then
207                 AC_MSG_WARN([slapd disabled, ignoring --enable-shell argument])
208         fi
209         if test $ol_enable_tcl = yes ; then
210                 AC_MSG_WARN([slapd disabled, ignoring --enable-tcl argument])
211         fi
212         if test $ol_enable_sql = yes ; then
213                 AC_MSG_WARN([slapd disabled, ignoring --enable-sql argument])
214         fi
215         if test $ol_enable_modules = yes ; then
216                 AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
217         fi
218         if test $ol_enable_multimaster = yes ; then
219                 AC_MSG_WARN([slapd disabled, ignoring --enable-multimaster argument])
220         fi
221         if test $ol_enable_wrappers = yes ; then
222                 AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
223         fi
224         if test $ol_enable_phonetic = yes ; then
225                 AC_MSG_WARN([slapd disabled, ignoring --enable-phonetic argument])
226         fi
227         if test $ol_enable_quipu = yes ; then
228                 AC_MSG_WARN([slapd disabled, ignoring --enable-quipu argument])
229         fi
230         if test $ol_enable_rlookups = yes ; then
231                 AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
232         fi
233         if test $ol_enable_aci = yes ; then
234                 AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
235         fi
236         if test $ol_with_ldbm_api != auto ; then
237                 AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-api argument])
238         fi
239         if test $ol_with_ldbm_type != auto ; then
240                 AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-type argument])
241         fi
242         if test $ol_with_dnssrv_module != static ; then
243                 AC_MSG_WARN([slapd disabled, ignoring --with-dnssrv-module argument])
244         fi
245         if test $ol_with_ldap_module != static ; then
246                 AC_MSG_WARN([slapd disabled, ignoring --with-ldap-module argument])
247         fi
248         if test $ol_with_ldbm_module != static ; then
249                 AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-module argument])
250         fi
251         if test $ol_with_passwd_module != static ; then
252                 AC_MSG_WARN([slapd disabled, ignoring --with-passwd-module argument])
253         fi
254         if test $ol_with_perl_module != static ; then
255                 AC_MSG_WARN([slapd disabled, ignoring --with-perl-module argument])
256         fi
257         if test $ol_with_shell_module != static ; then
258                 AC_MSG_WARN([slapd disabled, ignoring --with-shell-module argument])
259         fi
260         if test $ol_with_tcl_module != static ; then
261                 AC_MSG_WARN([slapd disabled, ignoring --with-tcl-module argument])
262         fi
263         if test $ol_with_sql_module != static ; then
264                 AC_MSG_WARN([slapd disabled, ignoring --with-sql-module argument])
265         fi
266         if test $ol_enable_slurpd = yes ; then
267                 AC_MSG_ERROR([slurpd requires slapd])
268         fi
269
270         # force settings to no
271         ol_enable_dnssrv=no
272         ol_enable_ldap=no
273         ol_enable_ldbm=no
274         ol_enable_passwd=no
275         ol_enable_perl=no
276         ol_enable_shell=no
277         ol_enable_tcl=no
278         ol_enable_sql=no
279
280         ol_enable_modules=no
281         ol_enable_multimaster=no
282         ol_enable_phonetic=no
283         ol_enable_quipu=no
284         ol_enable_rlookups=no
285         ol_enable_aci=no
286         ol_enable_wrappers=no
287         ol_enable_dynamic=no
288
289         ol_with_ldbm_api=no
290         ol_with_ldbm_type=no
291
292         ol_with_dnssrv_module=static
293         ol_with_ldap_module=static
294         ol_with_ldbm_module=static
295         ol_with_passwd_module=static
296         ol_with_perl_module=static
297         ol_with_shell_module=static
298         ol_with_tcl_module=static
299         ol_with_sql_module=static
300
301         ol_enable_slurpd=no
302
303 elif test $ol_enable_ldbm = no ; then
304         dnl SLAPD without LDBM
305
306         if test $ol_with_ldbm_api != auto ; then
307                 AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-api argument])
308         fi
309
310         if test $ol_with_ldbm_type != auto ; then
311                 AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-type argument])
312         fi
313
314         if test $ol_with_ldbm_module != static ; then
315                 AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-module argument])
316         fi
317
318         if test $ol_enable_modules != yes -a \
319                 $ol_enable_dnssrv = no -a \
320                 $ol_enable_ldap = no -a \
321                 $ol_enable_passwd = no -a \
322                 $ol_enable_perl = no -a \
323                 $ol_enable_shell = no -a \
324                 $ol_enable_sql = no -a \
325                 $ol_enable_tcl = no ; then
326                 AC_MSG_ERROR([slapd requires a backend])
327         fi
328
329         ol_with_ldbm_api=no
330         ol_with_ldbm_type=no
331         ol_with_ldbm_module=static
332
333 else
334         dnl SLAPD with LDBM
335         if test $ol_with_ldbm_api = gdbm -a \
336                 $ol_with_ldbm_type = btree ; then
337                 AC_MSG_ERROR([GDBM only supports LDBM type hash])
338         fi
339         if test $ol_with_ldbm_api = mdbm -a \
340                 $ol_with_ldbm_type = btree ; then
341                 AC_MSG_ERROR([MDBM only supports LDBM type hash])
342         fi
343         if test $ol_with_ldbm_api = ndbm -a \
344                 $ol_with_ldbm_type = btree ; then
345                 AC_MSG_ERROR([NDBM only supports LDBM type hash])
346         fi
347 fi
348
349 if test $ol_enable_slurpd = yes ; then
350         dnl SLURPD was specifically enabled
351         if test $ol_with_threads = no ; then
352                 AC_MSG_ERROR([slurpd requires threads])
353         fi
354 fi
355
356 if test $ol_enable_kbind = yes -o $ol_enable_kpasswd = yes ; then
357         if test $ol_with_kerberos = no ; then
358                 AC_MSG_ERROR([options require --with-kerberos])
359         fi
360 elif test $ol_enable_kbind = no -o $ol_enable_kpasswd = no ; then
361         if test $ol_with_kerberos != auto ; then
362                 AC_MSG_WARN([Kerberos detection enabled unnecessarily]);
363         else
364                 ol_with_kerberos=no
365         fi
366 fi
367
368 if test $ol_enable_spasswd = yes ; then
369         if test $ol_with_cyrus_sasl = no ; then
370                 AC_MSG_ERROR([options require --with-cyrus-sasl])
371         fi
372         ol_link_spasswd=yes
373 fi
374
375 AC_MSG_RESULT(done)
376
377 dnl ----------------------------------------------------------------
378 dnl Initialize vars
379 LDAP_LIBS=
380 LDIF_LIBS=
381 LDBM_LIBS=
382 LTHREAD_LIBS=
383 LUTIL_LIBS=
384
385 QUIPU_LIBS=
386 SLAPD_LIBS=
387 SLURPD_LIBS=
388
389 BUILD_SLAPD=no
390 BUILD_SLURPD=no
391
392 BUILD_QUIPU=no
393 BUILD_THREAD=no
394
395 BUILD_DNSSRV=no
396 BUILD_LDAP=no
397 BUILD_LDBM=no
398 BUILD_PASSWD=no
399 BUILD_PERL=no
400 BUILD_SHELL=no
401 BUILD_SQL=no
402 BUILD_TCL=no
403
404 BUILD_DNSSRV_DYNAMIC=static
405 BUILD_LDAP_DYNAMIC=static
406 BUILD_LDBM_DYNAMIC=static
407 BUILD_PASSWD_DYNAMIC=static
408 BUILD_PERL_DYNAMIC=static
409 BUILD_SHELL_DYNAMIC=static
410 BUILD_TCL_DYNAMIC=static
411 BUILD_SQL_DYNAMIC=static
412
413 SLAPD_MODULES_LDFLAGS=
414 SLAPD_MODULES_CPPFLAGS=
415 SLAPD_MODULES_LIST=
416
417 SLAPD_PERL_LDFLAGS=
418 MOD_PERL_LDFLAGS=
419 PERL_CPPFLAGS=
420
421 SLAPD_SQL_LDFLAGS=
422 SLAPD_SQL_LIBS=
423 SLAPD_SQL_INCLUDES=
424
425 MOD_TCL_LIB=
426 KRB4_LIBS=
427 KRB5_LIBS=
428 READLINE_LIBS=
429 SASL_LIBS=
430 TERMCAP_LIBS=
431 TLS_LIBS=
432 MODULES_LIBS=
433 AUTH_LIBS=
434
435 dnl ================================================================
436 dnl Checks for programs
437
438 dnl AC_PROG_INSTALL
439
440 AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
441
442 dnl ----------------------------------------------------------------
443 dnl
444 dnl Determine which C translator to use
445 dnl
446
447 dnl AIX Thread requires we use cc_r or xlc_r.
448 dnl But only do this IF AIX and CC is not set
449 dnl and threads are auto|yes|posix.
450 dnl
451 dnl If we find cc_r|xlc_r, force pthreads and assume
452 dnl             pthread_create is in $LIBS (ie: don't bring in
453 dnl             any additional thread libraries)
454 dnl If we do not find cc_r|xlc_r, disable threads
455
456 ol_aix_threads=no
457 case "$target" in
458 *-*-aix*) dnl all AIX is not a good idea.
459         if test -z "$CC" ; then
460                 case "$ol_with_threads" in
461                 auto | yes |  posix) ol_aix_threads=yes ;;
462                 esac
463         fi
464 ;;
465 esac
466
467 if test $ol_aix_threads = yes ; then
468         if test -z "${CC}" ; then
469                 AC_CHECK_PROGS(CC,cc_r xlc_r cc)
470
471                 if test "$CC" = cc ; then
472                         dnl no CC! don't allow --with-threads
473                         if test $ol_with_threads != auto ; then
474                                 AC_MSG_ERROR([--with-threads requires cc_r (or other suitable compiler) on AIX])
475                         else
476                                 AC_MSG_WARN([disabling threads, no cc_r on AIX])
477                         fi
478                         ol_with_threads=no
479                 fi
480         fi
481
482         if test "${CC}" = "cc_r" -o "${CC}" = "xlc_r" ; then
483                 ol_with_threads=posix
484                 ol_cv_pthread_create=yes
485         fi
486 fi
487
488 if test -z "${CC}"; then
489         AC_CHECK_PROGS(CC,cc)
490 fi
491
492 dnl The default CFLAGS is empty NOT whatever AC_PROG_CC sets.
493 dnl (for now, let autoconf sort this out)
494 dnl CFLAGS=${CFLAGS-""}
495
496 AC_LIBTOOL_WIN32_DLL
497 AC_LIBTOOL_DLOPEN
498 AC_PROG_LIBTOOL
499
500 AC_PROG_AWK
501 OL_PROG_LN_H
502 AC_PROG_LN_S
503
504 if test "$LN_H" = "cp" -a "$LN_S" = "ln"; then
505         LN_S="$LN_H"
506 fi
507
508 AC_PATH_PROG(SENDMAIL, sendmail, /usr/lib/sendmail,
509         $PATH:/usr/libexec:/usr/lib:/usr/sbin:/usr/etc:/etc)
510 AC_PATH_PROG(EDITOR, vi, /usr/ucb/vi, $PATH:/usr/ucb)
511 AC_PATH_PROG(FINGER, finger, /usr/ucb/finger, $PATH:/usr/ucb)
512
513 dnl ----------------------------------------------------------------
514 dnl Perl
515 ol_link_perl=no
516 if test $ol_enable_perl != no ; then
517         AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)
518
519         if test "no$PERLBIN" = "no" ; then
520                 if test $ol_enable_perl = yes ; then
521                         AC_MSG_ERROR([could not locate perl])
522                 fi
523
524         else
525                 PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
526                 if test x"$ol_with_perl_module" = "xstatic" ; then
527                         SLAPD_PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e s/-lc//`"
528                 else
529                         MOD_PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e s/-lc//`"
530                 fi
531                 dnl should check perl version
532                 ol_link_perl=yes
533         fi
534 fi
535
536 AC_PROG_CPP
537
538 dnl ----------------------------------------------------------------
539 dnl Cross compiling checks
540 if test $cross_compiling = yes -a $ol_enable_x_compile = yes; then
541         AC_MSG_WARN([cross compiling....  some functionality will be removed.])
542
543 elif test $cross_compiling = no -a $ol_enable_x_compile = yes; then
544         AC_MSG_WARN([programs compiled here do run here...])
545         AC_MSG_ERROR([  if not cross compiling, use --disable-x-compile.])
546
547 elif test $cross_compiling = yes -a $ol_enable_x_compile = no; then
548         AC_MSG_WARN([programs compiled here do not run here...])
549         AC_MSG_ERROR([  if cross compiling,  add --enable-x-compile.])
550 fi
551
552 dnl ----------------------------------------------------------------
553 dnl Checks for UNIX Variants
554 AC_AIX
555 AC_ISC_POSIX
556 AC_MINIX
557
558 dnl ----------------------------------------------------------------
559 dnl Checks for system services
560 AC_CYGWIN
561 AC_MINGW32
562 AC_EXEEXT
563 AC_OBJEXT
564
565 AC_DEFINE_UNQUOTED( EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
566
567 dnl ----------------------------------------------------------------
568 dnl BeOS requires -lbe -lroot -lnet
569 AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])
570
571 dnl ----------------------------------------------------------------
572 dnl OpenLDAP requires STDC features
573 AM_PROG_CC_STDC
574 if test "X${am_cv_prog_cc_stdc}" = "Xno" ; then
575         AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
576 fi
577
578 dnl ----------------------------------------------------------------
579 dnl Check cc depend flags
580 OL_MKDEPEND
581 if test "${ol_cv_mkdep}" = no ; then
582         # this will soon become an error
583         AC_MSG_WARN([do not know how to generate dependencies])
584 fi
585
586 dnl ----------------------------------------------------------------
587 dnl Check for AIX security library
588 AC_CHECK_LIB(s, afopen, [
589         AUTH_LIBS=-ls
590         AC_DEFINE(HAVE_AIX_SECURITY,1,[define if you have AIX security lib])
591 ])
592
593 dnl ----------------------------------------------------------------
594 dnl Check for module support
595 ol_link_modules=no
596 if test $ol_enable_modules != no ; then
597         AC_CHECK_HEADERS(ltdl.h)
598
599         if test $ac_cv_header_ltdl_h = no ; then
600                 AC_MSG_ERROR([could not locate libtool ltdl.h])
601         fi
602
603         AC_CHECK_LIB(ltdl, lt_dlinit, [
604             MODULES_LIBS=-lltdl
605             AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
606         ])
607
608         if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then
609                 AC_MSG_ERROR([could not locate libtool -lltdl])
610         fi
611         ol_link_modules=yes
612 else
613         ol_with_dnssrv_module=static
614         ol_with_ldap_module=static
615         ol_with_ldbm_module=static
616         ol_with_passwd_module=static
617         ol_with_perl_module=static
618         ol_with_shell_module=static
619         ol_with_tcl_module=static
620         ol_with_sql_module=static
621 fi
622
623 dnl ----------------------------------------------------------------
624 dnl Checks for header files.
625 OL_HEADER_STDC
626
627 if test $ol_cv_header_stdc != yes; then
628         AC_MSG_WARN([could not locate Standard C compliant headers])
629 fi
630
631 AC_HEADER_DIRENT
632 AC_HEADER_SYS_WAIT
633 AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
634 if test $am_cv_sys_posix_termios = yes ; then
635         AC_DEFINE(HAVE_POSIX_TERMIOS,1,
636                 [define if you have POSIX termios])
637 fi
638
639 AC_CHECK_HEADERS(       \
640         arpa/inet.h             \
641         arpa/nameser.h  \
642         assert.h                \
643         conio.h                 \
644         crypt.h                 \
645         direct.h                \
646         errno.h                 \
647         fcntl.h                 \
648         filio.h                 \
649         getopt.h                \
650         grp.h                   \
651         io.h                    \
652         libutil.h               \
653         limits.h                \
654         locale.h                \
655         netinet/tcp.h   \
656         malloc.h                \
657         memory.h                \
658         psap.h                  \
659         pwd.h                   \
660         process.h               \
661         resolv.h                \
662         sgtty.h                 \
663         shadow.h                \
664         stddef.h                \
665         string.h                \
666         strings.h               \
667         sysexits.h              \
668         sys/file.h              \
669         sys/filio.h             \
670         sys/errno.h             \
671         sys/ioctl.h             \
672         sys/param.h             \
673         sys/resource.h  \
674         sys/select.h    \
675         sys/socket.h    \
676         sys/syslog.h    \
677         sys/time.h              \
678         sys/types.h             \
679         syslog.h                \
680         termios.h               \
681         unistd.h                \
682         winsock.h               \
683 )
684
685
686 dnl ----------------------------------------------------------------
687 dnl Checks for libraries
688
689 dnl HP-UX requires -lV3
690 AC_CHECK_LIB(V3, sigset)
691
692 dnl Gotta check for winsock manually
693 if test $ac_cv_header_winsock_h = yes; then
694         AC_CACHE_CHECK([for winsock], [ol_cv_winsock], 
695         AC_TRY_LINK([#include <winsock.h>],[
696                         socket(0,0,0);
697                         select(0,NULL,NULL,NULL,NULL);
698                         closesocket(0);
699                         gethostname(NULL,0);
700         ],[ol_cv_winsock=yes],[ol_cv_winsock=no])])
701
702         if test $ol_cv_winsock = yes ; then
703                 AC_DEFINE(HAVE_WINSOCK,1,[define if you have winsock])
704                 ac_cv_func_socket=yes
705                 ac_cv_func_select=yes
706                 ac_cv_func_closesocket=yes
707                 ac_cv_func_gethostname=yes
708         fi
709 fi
710
711 dnl Find socket()
712 dnl Likely combinations:
713 dnl             -lsocket [ -lnsl_s | -lnsl ]
714 dnl             -linet
715
716 AC_CHECK_FUNC(socket, :, [      
717 dnl hopefully we won't include too many libraries
718         AC_CHECK_LIB(socket, main)
719         AC_CHECK_LIB(net, main)
720         AC_CHECK_LIB(nsl_s, main)
721         AC_CHECK_LIB(nsl, main)
722         AC_CHECK_LIB(inet, socket)
723         AC_CHECK_LIB(gen, main)
724 ])
725
726 dnl require select
727 AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
728
729 if test "${ac_cv_header_winsock_h}" != yes; then
730     dnl Select arg types
731     dnl (if this detection becomes permenent, it and the select() detection
732     dnl should be done before the yielding select test) 
733     AC_FUNC_SELECT_ARGTYPES
734 fi
735
736 dnl check to see if system call automatically restart
737 dnl AC_SYS_RESTARTABLE_SYSCALLS
738
739 dnl ----------------------------------------------------------------
740 dnl require POSIX regex
741 AC_CHECK_HEADERS( regex.h )
742 if test "$ac_cv_header_regex_h" != yes ; then
743         AC_MSG_ERROR([POSIX regex.h required.])
744 fi
745 AC_CHECK_FUNC(regfree, :, AC_MSG_ERROR([POSIX regex required.]))
746
747 OL_POSIX_REGEX
748 if test "$ol_cv_c_posix_regex" = no ; then
749         AC_MSG_ERROR([broken POSIX regex!])
750 fi
751
752 dnl ----------------------------------------------------------------
753 dnl Check for resolver routines
754 ol_link_dnssrv=no
755 AC_CHECK_FUNC(res_query,:)
756 if test $ac_cv_func_res_query = no ; then 
757         AC_CHECK_LIB(bind, res_query)
758         ac_cv_func_res_query=$ac_cv_lib_bind_res_query
759 fi
760
761 if test $ac_cv_func_res_query = no ; then 
762         AC_CHECK_LIB(bind, __res_query)
763         ac_cv_func_res_query=$ac_cv_lib_bind___res_query
764 fi
765
766 if test $ac_cv_func_res_query = no ; then 
767         AC_CHECK_LIB(resolv, res_query)
768         ac_cv_func_res_query=$ac_cv_lib_resolv_res_query
769 fi
770
771 if test "$ac_cv_func_res_query" = yes ; then
772         AC_DEFINE(HAVE_RES_QUERY,1,
773                 [define if you have res_query()])
774
775         if test $ol_enable_dnssrv != no ; then
776                 ol_link_dnssrv=yes
777         fi
778 fi
779
780 if test "$ol_enable_dnssrv" = yes -a "$ol_link_dnssrv" = no ; then
781         AC_MSG_ERROR([DNSSRV requires res_query()])
782 fi
783
784 dnl ----------------------------------------------------------------
785 dnl QUIPU
786 if test $ol_enable_quipu != no ; then
787         AC_CHECK_HEADERS(quipu/commonarg.h)
788
789         if test $ac_cv_header_quipu_commonarg_h = yes ; then
790                 BUILD_QUIPU=yes
791         elif test $ol_enable_quipu = auto ; then
792                 AC_MSG_WARN([no quipu for --enable-quipu=auto, disabling])
793         else
794                 AC_MSG_ERROR(no quipu for --enable-quipu=$ol_enable_quipu)
795         fi
796 fi
797
798 dnl ----------------------------------------------------------------
799 dnl Kerberos
800 ol_link_kbind=no
801 ol_link_kpasswd=no
802 ol_link_krb5=no
803 ol_link_krb4=no
804
805 if test $ol_with_kerberos = auto -o $ol_with_kerberos = k5 \
806         -o $ol_with_kerberos = k5only -o $ol_with_kerberos = k425 ; then
807
808         AC_CHECK_HEADERS(krb5.h)
809
810         if test $ac_cv_header_krb5_h = yes ; then
811                 dnl lazy check for Heimdal Kerberos
812                 AC_CHECK_HEADERS(heim_err.h)
813                 if test $ac_cv_header_heim_err_h = yes ; then
814                         krb5_impl=heimdal
815                 else
816                         krb5_impl=mit
817                 fi
818
819                 if test $krb5_impl = mit; then
820                         AC_CHECK_LIB(krb5, main,
821                                 [have_krb5=yes
822                                 KRB5_LIBS="-lkrb5 -lcrypto -lcom_err"],
823                                 [have_krb5=no],
824                                 [-lcrypto -lcom_err])
825
826                 elif test $krb5_impl = heimdal; then
827                         AC_CHECK_LIB(krb5, main,
828                                 [have_krb5=yes
829                                 KRB5_LIBS="-lkrb5 -ldes -lasn1 -lroken -lcom_err"],
830                                 [have_krb5=no],
831                                 [-ldes -lasn1 -lroken -lcom_err])
832
833                         AC_DEFINE(HAVE_HEIMDAL_KERBEROS, 1,
834                                 [define if you have HEIMDAL Kerberos])
835                 else
836                         have_krb5=no
837                         AC_MSG_WARN([Unrecongized Kerberos5 Implementation])
838                 fi
839
840                 if test $have_krb5 = yes ; then
841                         ol_link_krb5=yes
842
843                         AC_DEFINE(HAVE_KRB5, 1,
844                                 [define if you have Kerberos V])
845
846                         if test $ol_enable_kpasswd != no ; then
847                                 ol_link_kpasswd=yes;
848                         fi
849
850                         if test $ol_with_kerberos = k5only ; then
851                                 ol_with_kerberos=found
852                         fi
853
854                 elif test $ol_with_kerberos != auto ; then
855                         AC_MSG_ERROR([Required Kerberos 5 support not available])
856                 fi
857
858         fi
859 fi
860
861 if test $ol_link_krb5 = yes -a \
862         \( $ol_with_kerberos = auto -o $ol_with_kerberos = k425 \) ; then
863
864         AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
865
866         if test $ac_cv_header_kerberosIV_krb_h = yes ; then
867                 if test $krb5_impl = mit; then
868                         AC_CHECK_LIB(krb4, main, [have_k425=yes
869                                 KRB4_LIBS="-lkrb4 -ldes425"], [have_k425=no],
870                                 [-ldes425 -lkrb5 -lcrypto -lcom_err])
871
872                 elif test $krb5_impl = heimdal; then
873                         AC_CHECK_LIB(krb4, main, [have_k425=yes
874                                 KRB4_LIBS="-lkrb4"], [have_k425=no],
875                                 [-lkrb5 -ldes -lasn1 -lroken -lcom_err])
876
877                 else
878                         have_425=no
879                         AC_MSG_WARN([Unrecongized Kerberos5 Implementation])
880                 fi
881
882                 if test $have_k425 = yes ; then
883                         ol_with_kerberos=found
884                         ol_link_krb4=yes
885
886                         AC_DEFINE(HAVE_KRB425, 1,
887                                 [define if you have Kerberos V with IV support])
888                         AC_DEFINE(HAVE_KRB4, 1,
889                                 [define if you have Kerberos IV])
890
891                         AC_CACHE_CHECK([for des_debug in Kerberos libraries],
892                                 [ol_cv_var_des_debug], [
893                                 dnl save the flags
894                                 save_LIBS="$LIBS"
895                                 LIBS="$KRB4_LIBS $KRB5_LIBS $LIBS"
896                                 AC_TRY_LINK([
897 #include <kerberosIV/krb.h>
898 #include <kerberosIV/des.h>
899 extern int des_debug;
900 ],[
901 des_debug = 1;
902 ],                              ol_cv_var_des_debug=yes, ol_cv_var_des_debug=no)
903                                 dnl restore the LIBS
904                                 LIBS="$save_LIBS"
905                         ])
906
907                         if test $ol_cv_var_des_debug = yes ; then
908                                 AC_DEFINE(HAVE_DES_DEBUG,1,
909                                         [define if you have Kerberos des_debug])
910                         fi
911
912                         LIBS="$save_LIBS"
913                 fi
914         fi
915 fi
916
917 if test $ol_link_krb5 = yes ; then
918         ol_with_kerberos=found
919 fi
920
921 if test $ol_with_kerberos = auto -o $ol_with_kerberos = k4 \
922         -o $ol_with_kerberos = kth ; then
923
924         AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
925
926         if test $ac_cv_header_krb_h = yes ; then
927                 AC_CHECK_LIB(krb, main, [have_k4=yes], [have_k4=no], [-ldes])
928
929                 if test $have_k4 = yes ; then
930                         ol_with_kerberos=found
931                         ol_link_krb4=yes
932
933                         AC_DEFINE(HAVE_KRB4, 1,
934                                 [define if you have Kerberos IV])
935
936                         KRB4_LIBS="-lkrb -ldes"
937
938                         if test $ac_cv_header_krb_archaeology_h = yes ; then
939                                 AC_DEFINE(HAVE_KTH_KERBEROS, 1,
940                                         [define if you have Kth Kerberos])
941                         fi
942                 fi
943         fi
944 fi
945
946 if test $ol_link_krb4 = yes -a $ol_enable_kpasswd != no ; then
947         ol_link_kpasswd=yes;
948 fi
949
950 if test $ol_link_krb4 = yes -o $ol_link_krb5 = yes ; then
951         AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
952
953 elif test $ol_with_kerberos != auto -a $ol_with_kerberos != no ; then
954         AC_MSG_ERROR([Kerberos detection failed.])
955 fi
956
957 dnl ----------------------------------------------------------------
958 dnl TLS/SSL
959 ol_link_tls=no
960 if test $ol_with_tls != no ; then
961         
962         AC_CHECK_HEADERS(openssl/ssl.h ssl.h)
963         
964         if test $ac_cv_header_openssl_ssl_h = yes -o $ac_cv_header_ssl_h = yes ; then
965                 AC_CHECK_LIB(ssl, SSLeay_add_ssl_algorithms, 
966                         [have_ssleay=yes
967                         need_rsaref=no],
968                         [have_ssleay=no],
969                         [-lcrypto])
970                         
971                 if test $have_ssleay = no ; then
972                         AC_CHECK_LIB(ssl, SSL_library_init,
973                                 [have_ssleay=yes
974                                 need_rsaref=no], [have_ssleay=no],
975                                 [-lcrypto])
976                 fi
977
978                 if test $have_ssleay = no ; then
979                         AC_CHECK_LIB(ssl, ssl3_accept, 
980                                 [have_ssleay=yes
981                                 need_rsaref=yes], [have_ssleay=no],
982                                 [-lcrypto -lRSAglue -lrsaref])
983                 fi
984
985                 if test $have_ssleay = yes ; then
986                         ol_with_tls=found
987                         ol_link_tls=yes
988
989                         AC_DEFINE(HAVE_SSLEAY, 1, 
990                                 [define if you have SSLeay or OpenSSL])
991
992                         if test $need_rsaref = yes; then
993                                 AC_DEFINE(HAVE_RSAREF, 1, 
994                                         [define if you have RSAref])
995
996                                 TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
997                         else
998                                 TLS_LIBS="-lssl -lcrypto"
999                         fi
1000                 fi
1001         fi
1002 fi
1003
1004 if test $ol_link_tls = yes ; then
1005         AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
1006 fi      
1007
1008 dnl ----------------------------------------------------------------
1009 dnl Tests for reentrant functions necessary to build a
1010 dnl thread_safe -lldap.
1011 AC_CHECK_FUNCS(         \
1012         ctime_r                 \
1013         gethostbyname_r gethostbyaddr_r \
1014 )
1015
1016 if test "$ac_cv_func_ctime_r" = no ; then
1017         ol_cv_func_ctime_r_nargs=0
1018 else
1019         OL_FUNC_CTIME_R_NARGS
1020 dnl     OL_FUNC_CTIME_R_TYPE
1021 fi
1022
1023 if test "$ac_cv_func_gethostbyname_r" = yes ; then
1024         OL_FUNC_GETHOSTBYNAME_R_NARGS
1025 else
1026         ol_cv_func_gethostbyname_r_nargs=0
1027 fi
1028  
1029 if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
1030         OL_FUNC_GETHOSTBYADDR_R_NARGS
1031 else
1032         ol_cv_func_gethostbyaddr_r_nargs=0
1033 fi
1034
1035 if test "$ac_cv_func_ctime_r" = yes \
1036         -a "$ol_cv_func_ctime_r_nargs" -ge 2 \
1037         -a "$ol_cv_func_ctime_r_nargs" -le 3 \
1038         -a "$ac_cv_func_gethostbyname_r" = yes \
1039         -a "$ol_cv_func_gethostbyname_r_nargs" -ge 5 \
1040         -a "$ol_cv_func_gethostbyname_r_nargs" -le 6 \
1041         -a "$ac_cv_func_gethostbyaddr_r" = yes \
1042         -a "$ol_cv_func_gethostbyaddr_r_nargs" -ge 5 \
1043         -a "$ol_cv_func_gethostbyaddr_r_nargs" -le 6 \
1044         ; then
1045  
1046         AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_REENTRANT,1)
1047 fi
1048
1049 dnl ----------------------------------------------------------------
1050 dnl Threads?
1051 ol_link_threads=no
1052
1053 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1054         -o $ol_with_threads = nt ; then
1055
1056         OL_NT_THREADS
1057
1058         if test "$ol_cv_nt_threads" = yes ; then
1059         ol_link_threads=nt
1060         ol_with_threads=found
1061         ol_with_yielding_select=yes
1062
1063                 AC_DEFINE(HAVE_NT_SERVICE_MANAGER,1,[if you have NT Service Manager])
1064                 AC_DEFINE(HAVE_NT_EVENT_LOG,1,[if you have NT Event Log])
1065         fi
1066
1067         if test $ol_with_threads = nt ; then
1068                 AC_MSG_ERROR([could not locate NT Threads])
1069         fi
1070 fi
1071
1072 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1073         -o $ol_with_threads = posix ; then
1074
1075         AC_CHECK_HEADERS(pthread.h)
1076
1077         if test $ac_cv_header_pthread_h = yes ; then
1078                 OL_POSIX_THREAD_VERSION
1079
1080                 if test $ol_cv_pthread_version = final ; then
1081                         AC_DEFINE(HAVE_PTHREADS_FINAL,1,
1082                                 [define if pthreads API compatible with final spec])
1083                 elif test $ol_cv_pthread_version = draft4 ; then
1084                         AC_DEFINE(HAVE_PTHREADS_D4,1,
1085                                 [define if pthreads API compatible with draft4 spec])
1086                 else
1087                         AC_MSG_ERROR([unknown pthread version])
1088                 fi
1089
1090                 # consider threads found
1091                 ol_with_threads=found
1092
1093                 OL_HEADER_LINUX_THREADS
1094                 OL_HEADER_GNU_PTH_PTHREAD_H
1095
1096                 if test $ol_cv_header_gnu_pth_pthread_h = no ; then
1097                         AC_CHECK_HEADERS(sched.h)
1098                 fi
1099
1100                 dnl Now the hard part, how to link?
1101                 dnl
1102                 dnl currently supported checks:
1103                 dnl
1104                 dnl Check for no flags 
1105                 dnl     pthread_create() in $LIBS
1106                 dnl
1107                 dnl Check special pthread (final) flags
1108                 dnl     [skipped] pthread_create() with -mt (Solaris) [disabled]
1109                 dnl     pthread_create() with -kthread (FreeBSD)
1110                 dnl     pthread_create() with -pthread (FreeBSD/Digital Unix)
1111                 dnl     pthread_create() with -pthreads (?)
1112                 dnl     pthread_create() with -mthreads (AIX)
1113                 dnl     pthread_create() with -thread (?)
1114                 dnl
1115                 dnl Check pthread (final) libraries
1116                 dnl     pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
1117                 dnl     pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
1118                 dnl     [skipped] pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
1119                 dnl     pthread_join() -Wl,-woff,85 -lpthread (IRIX)
1120                 dnl     pthread_create() in -lpthread (many)
1121                 dnl     pthread_create() in -lc_r (FreeBSD)
1122                 dnl
1123                 dnl Check pthread (draft4) flags (depreciated)
1124                 dnl     pthread_create() with -threads (OSF/1)
1125                 dnl
1126                 dnl Check pthread (draft4) libraries (depreciated)
1127                 dnl     pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
1128                 dnl     pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
1129                 dnl     pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
1130                 dnl     pthread_create() in -lpthreads (many)
1131                 dnl
1132
1133                 dnl pthread_create in $LIBS
1134                 AC_CACHE_CHECK([for pthread_create in default libraries],
1135                         ol_cv_pthread_create,[
1136                 AC_TRY_RUN(OL_PTHREAD_TEST_PROGRAM,
1137                         [ol_cv_pthread_create=yes],
1138                         [ol_cv_pthread_create=no],
1139                         [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION,
1140                                 [ol_cv_pthread_create=yes],
1141                                 [ol_cv_pthread_create=no])])])
1142
1143                 if test $ol_cv_pthread_create != no ; then
1144                         ol_link_threads=posix
1145                         ol_link_pthreads=""
1146                 fi
1147                 
1148 dnl             OL_PTHREAD_TRY([-mt],           [ol_cv_pthread_mt])
1149                 OL_PTHREAD_TRY([-kthread],      [ol_cv_pthread_kthread])
1150                 OL_PTHREAD_TRY([-pthread],      [ol_cv_pthread_pthread])
1151                 OL_PTHREAD_TRY([-pthreads],     [ol_cv_pthread_pthreads])
1152                 OL_PTHREAD_TRY([-mthreads],     [ol_cv_pthread_mthreads])
1153                 OL_PTHREAD_TRY([-thread],       [ol_cv_pthread_thread])
1154
1155                 OL_PTHREAD_TRY([-lpthread -lmach -lexc -lc_r],
1156                         [ol_cv_pthread_lpthread_lmach_lexc_lc_r])
1157                 OL_PTHREAD_TRY([-lpthread -lmach -lexc],
1158                         [ol_cv_pthread_lpthread_lmach_lexc])
1159 dnl             OL_PTHREAD_TRY([-lpthread -lexc],
1160 dnl                     [ol_cv_pthread_lpthread_lexc])
1161
1162                 OL_PTHREAD_TRY([-lpthread -Wl,-woff,85],
1163                         [ol_cv_pthread_lib_lpthread_woff])
1164
1165                 OL_PTHREAD_TRY([-lpthread],     [ol_cv_pthread_lpthread])
1166                 OL_PTHREAD_TRY([-lc_r],         [ol_cv_pthread_lc_r])
1167
1168                 OL_PTHREAD_TRY([-threads],      [ol_cv_pthread_threads])
1169
1170                 OL_PTHREAD_TRY([-lpthreads -lmach -lexc -lc_r],
1171                         [ol_cv_pthread_lpthreads_lmach_lexc_lc_r])
1172                 OL_PTHREAD_TRY([-lpthreads -lmach -lexc],
1173                         [ol_cv_pthread_lpthreads_lmach_lexc])
1174                 OL_PTHREAD_TRY([-lpthreads -lexc],
1175                         [ol_cv_pthread_lpthreads_lexc])
1176
1177                 OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
1178
1179                 if test $ol_link_threads != no ; then
1180                         AC_DEFINE(HAVE_PTHREADS,1,
1181                                 [define if you have POSIX Threads])
1182
1183                         LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
1184
1185                         dnl save flags
1186                         save_CPPFLAGS="$CPPFLAGS"
1187                         save_LIBS="$LIBS"
1188                         LIBS="$LTHREAD_LIBS $LIBS"
1189
1190                         dnl All POSIX Thread (final) implementations should have
1191                         dnl sched_yield instead of pthread yield.
1192                         dnl check for both
1193                         AC_CHECK_FUNCS(sched_yield pthread_yield)
1194
1195                         if test $ac_cv_func_sched_yield = no -a \
1196                                 $ac_cv_func_pthread_yield = no ; then
1197                                 dnl Digital UNIX has sched_yield() in -lrt
1198                                 AC_CHECK_LIB(rt, sched_yield,
1199                                         [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
1200                                         AC_DEFINE(HAVE_SCHED_YIELD,1,
1201                                                 [Define if you have the sched_yield function.])
1202                                         ac_cv_func_sched_yield=yes],
1203                                         [ac_cv_func_sched_yield=no])
1204                         fi
1205                         if test $ac_cv_func_sched_yield = no -a \
1206                                 $ac_cv_func_pthread_yield = no ; then
1207                                 dnl Solaris has sched_yield() stub in -lposix4
1208                                 dnl but we'll use thr_yield instead.
1209                                 AC_CHECK_FUNCS(thr_yield)
1210                         fi
1211                         if test $ac_cv_func_sched_yield = no -a \
1212                                 $ac_cv_func_pthread_yield = no -a \
1213                                 "$ac_cv_func_thr_yield" = no ; then
1214                                 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
1215                         fi
1216
1217                         dnl Check functions for compatibility
1218                         AC_CHECK_FUNCS(pthread_kill)
1219
1220                         dnl Check for pthread_detach with <pthread.h> inclusion
1221                         dnl as it's symbol may have been mangled.
1222                         AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
1223                                 [ol_cv_func_pthread_detach], [
1224                                 dnl save the flags
1225                                 AC_TRY_LINK([
1226 #include <pthread.h>
1227 #ifndef NULL
1228 #define NULL (void*)0
1229 #endif
1230 ],
1231                                         [pthread_detach(NULL);],
1232                                         [ol_cv_func_pthread_detach=yes],
1233                                         [ol_cv_func_pthread_detach=no])
1234                         ])
1235
1236                         if test $ol_cv_func_pthread_detach = no ; then
1237                                 AC_MSG_ERROR([could not locate pthread_detach()])
1238                         fi
1239
1240                         AC_DEFINE(HAVE_PTHREAD_DETACH,1,
1241                                 [define if you have pthread_detach function])
1242
1243                         dnl Check for setconcurreny functions
1244                         AC_CHECK_FUNCS( \
1245                                 pthread_setconcurrency \
1246                                 pthread_getconcurrency \
1247                                 thr_setconcurrency \
1248                                 thr_getconcurrency \
1249                         )
1250
1251                         OL_SYS_LINUX_THREADS
1252                         OL_LINUX_THREADS
1253
1254                         if test $ol_cv_linux_threads = error; then
1255                                 AC_MSG_ERROR([LinuxThreads header/library mismatch]);
1256                         fi
1257
1258                         AC_CACHE_CHECK([if pthread_create() works],
1259                                 ol_cv_pthread_create_works,[
1260                         AC_TRY_RUN(OL_PTHREAD_TEST_PROGRAM,
1261                                 [ol_cv_pthread_create_works=yes],
1262                                 [ol_cv_pthread_create_works=no],
1263                                 [dnl assume yes
1264                                 ol_cv_pthread_create_works=yes])])
1265
1266                         if test $ol_cv_pthread_create_works = no ; then
1267                                 AC_MSG_ERROR([pthread_create is not usable, check environment settings])
1268                         fi
1269
1270                         dnl Check if select causes an yield
1271                         if test $ol_with_yielding_select = auto ; then
1272                                 AC_CACHE_CHECK([if select yields when using pthreads],
1273                                         ol_cv_pthread_select_yields,[
1274                                 AC_TRY_RUN([
1275 #include <sys/types.h>
1276 #include <sys/time.h>
1277 #include <unistd.h>
1278 #include <pthread.h>
1279 #ifndef NULL
1280 #define NULL (void*) 0
1281 #endif
1282
1283 static int fildes[2];
1284
1285 static void *task(p)
1286         void *p;
1287 {
1288         int i;
1289         struct timeval tv;
1290
1291         fd_set rfds;
1292
1293         tv.tv_sec=10;
1294         tv.tv_usec=0;
1295
1296         FD_ZERO(&rfds);
1297         FD_SET(fildes[0], &rfds);
1298
1299         /* we're not interested in any fds */
1300         i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
1301
1302         if(i < 0) {
1303                 perror("select");
1304                 exit(10);
1305         }
1306
1307         exit(0); /* if we exit here, the select blocked the whole process */
1308 }
1309
1310 int main(argc, argv)
1311         int argc;
1312         char **argv;
1313 {
1314         pthread_t t;
1315
1316         /* create a pipe to select */
1317         if(pipe(&fildes[0])) {
1318                 perror("select");
1319                 exit(1);
1320         }
1321
1322 #ifdef HAVE_PTHREAD_SETCONCURRENCY
1323         (void) pthread_setconcurrency(2);
1324 #else
1325 #ifdef HAVE_THR_SETCONCURRENCY
1326         /* Set Solaris LWP concurrency to 2 */
1327         thr_setconcurrency(2);
1328 #endif
1329 #endif
1330
1331 #if HAVE_PTHREADS_D4
1332         pthread_create(&t, pthread_attr_default, task, NULL);
1333 #else
1334         pthread_create(&t, NULL, task, NULL);
1335 #endif
1336
1337 #if HAVE_SCHED_YIELD
1338         sched_yield();  /* make sure task runs first */
1339 #else
1340 #ifdef HAVE_PTHREAD_YIELD
1341         pthread_yield();        /* make sure task runs first */
1342 #endif
1343 #endif
1344
1345         exit(2);
1346 }],
1347                                 [ol_cv_pthread_select_yields=no],
1348                                 [ol_cv_pthread_select_yields=yes],
1349                                 [ol_cv_pthread_select_yields=cross])])
1350
1351                                 if test $ol_cv_pthread_select_yields = cross ; then
1352                                         AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])
1353                                 fi
1354
1355                                 if test $ol_cv_pthread_select_yields = yes ; then
1356                                         ol_with_yielding_select=yes
1357                                 fi
1358                         fi
1359
1360                         dnl restore flags
1361                         CPPFLAGS="$save_CPPFLAGS"
1362                         LIBS="$save_LIBS"
1363                 else
1364                         AC_MSG_ERROR([could not link with POSIX Threads])
1365                 fi
1366         fi
1367
1368         if test $ol_with_threads = posix ; then
1369                 AC_MSG_ERROR([could not locate POSIX Threads])
1370         fi
1371 fi
1372
1373 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1374         -o $ol_with_threads = mach ; then
1375
1376         dnl check for Mach CThreads
1377         AC_CHECK_HEADERS(mach/cthreads.h)
1378         if test $ac_cv_header_mach_cthreads_h = yes ; then
1379                 ol_with_threads=found
1380
1381                 dnl check for cthread support in current $LIBS
1382                 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1383
1384                 if test $ol_link_threads = no ; then
1385                         dnl try -all_load
1386                         dnl this test needs work
1387                         AC_CACHE_CHECK([for cthread_fork with -all_load],
1388                                 [ol_cv_cthread_all_load], [
1389                                 dnl save the flags
1390                                 save_LIBS="$LIBS"
1391                                 LIBS="-all_load $LIBS"
1392                                 AC_TRY_LINK([#include <mach/cthreads.h>],[
1393                                         cthread_fork((void *)0, (void *)0);
1394                                         ], ol_cv_cthread_all_load=yes, ol_cv_cthread_all_load=no)
1395                                 dnl restore the LIBS
1396                                 LIBS="$save_LIBS"
1397                         ])
1398
1399                         if test $ol_cv_cthread_all_load = yes ; then
1400                                 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
1401                                 ol_link_threads=mach
1402                         fi
1403                 fi
1404
1405                 if test $ol_link_threads != no ; then
1406                         : check for cthread specific functionality here
1407                         AC_DEFINE(HAVE_MACH_CTHREADS,1,
1408                                 [define if you have Mach Cthreads])
1409                 else
1410                         AC_MSG_ERROR([could not link with Mach CThreads])
1411                 fi
1412         fi
1413
1414         if test $ol_with_threads = mach ; then
1415                 AC_MSG_ERROR([could not locate Mach CThreads])
1416         fi
1417 fi
1418
1419 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1420         -o $ol_with_threads = pth ; then
1421
1422         AC_CHECK_HEADERS(pth.h)
1423
1424         if test $ac_cv_header_pth_h = yes ; then
1425                 AC_CHECK_LIB(pth, pth_version, [have_pth=yes], [have_pth=no])
1426
1427                 if test $have_pth = yes ; then
1428                         AC_DEFINE(HAVE_GNU_PTH,1,[if you have GNU Pth])
1429                         LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
1430                         ol_link_threads=pth
1431
1432                         if test $ol_with_yielding_select = auto ; then
1433                                 ol_with_yielding_select=yes
1434                         fi
1435                 fi
1436         fi
1437 fi
1438
1439 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1440         -o $ol_with_threads = lwp ; then
1441
1442         dnl check for SunOS5 LWP
1443         AC_CHECK_HEADERS(thread.h synch.h)
1444         if test $ac_cv_header_thread_h = yes -a $ac_cv_header_synch_h = yes ; then
1445                 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
1446
1447                 if test $have_thr = yes ; then
1448                         AC_DEFINE(HAVE_THR,1,
1449                                 [if you have Solaris LWP (thr) package])
1450                         LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
1451                         ol_link_threads=thr
1452
1453                         if test $ol_with_yielding_select = auto ; then
1454                                 ol_with_yielding_select=yes
1455                         fi
1456
1457                         dnl Check for setconcurreny functions
1458                         AC_CHECK_FUNCS( \
1459                                 thr_setconcurrency \
1460                                 thr_getconcurrency \
1461                         )
1462                 fi
1463         fi
1464
1465         dnl check for SunOS4 LWP
1466         AC_CHECK_HEADERS(lwp/lwp.h)
1467         if test $ac_cv_header_lwp_lwp_h = yes ; then
1468                 AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
1469
1470                 if test $have_lwp = yes ; then
1471                         AC_DEFINE(HAVE_LWP,1,
1472                                 [if you have SunOS LWP package])
1473                         LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
1474                         ol_link_threads=lwp
1475
1476                         if test $ol_with_yielding_select = auto ; then
1477                                 ol_with_yielding_select=no
1478                         fi
1479                 fi
1480         fi
1481 fi
1482
1483 if test $ol_with_yielding_select = yes ; then
1484         AC_DEFINE(HAVE_YIELDING_SELECT,1,
1485                 [define if select implicitly yields])
1486 fi
1487
1488 if test $ol_with_threads = manual ; then
1489         dnl User thinks he can manually configure threads.
1490         ol_link_threads=yes
1491
1492         AC_MSG_WARN([thread defines and link options must be set manually])
1493
1494         AC_CHECK_HEADERS(pthread.h sched.h)
1495         AC_CHECK_FUNCS(sched_yield pthread_yield)
1496         OL_HEADER_LINUX_THREADS
1497
1498         AC_CHECK_HEADERS(mach/cthreads.h)
1499         AC_CHECK_HEADERS(lwp/lwp.h)
1500         AC_CHECK_HEADERS(thread.h synch.h)
1501 fi
1502
1503 if test $ol_link_threads != no -a $ol_link_threads != nt ; then  
1504         dnl needed to get reentrant/threadsafe versions
1505         dnl
1506         AC_DEFINE(REENTRANT,1)
1507         AC_DEFINE(_REENTRANT,1)
1508         AC_DEFINE(THREAD_SAFE,1)
1509         AC_DEFINE(_THREAD_SAFE,1)
1510         AC_DEFINE(THREADSAFE,1)
1511         AC_DEFINE(_THREADSAFE,1)
1512         AC_DEFINE(_SGI_MP_SOURCE,1)
1513
1514         dnl The errno declaration may dependent upon _REENTRANT.
1515         dnl If it does, we must link with thread support.
1516         AC_CACHE_CHECK([for thread specific errno],
1517                 [ol_cv_errno_thread_specific], [
1518                 AC_TRY_LINK([#include <errno.h>], [errno = 0;],
1519                         [ol_cv_errno_thread_specific=yes],
1520                         [ol_cv_errno_thread_specific=no])
1521         ])
1522
1523         dnl The h_errno declaration may dependent upon _REENTRANT.
1524         dnl If it does, we must link with thread support.
1525         AC_CACHE_CHECK([for thread specific h_errno],
1526                 [ol_cv_h_errno_thread_specific], [
1527                 AC_TRY_LINK([#include <netdb.h>], [h_errno = 0;],
1528                         [ol_cv_h_errno_thread_specific=yes],
1529                         [ol_cv_h_errno_thread_specific=no])
1530         ])
1531
1532         if test $ol_cv_errno_thread_specific != yes \
1533                 -o $ol_cv_h_errno_thread_specific != yes ; then
1534                 LIBS="$LTHREAD_LIBS $LIBS"
1535                 LTHREAD_LIBS=""
1536         fi
1537
1538 dnl When in thread environment, use 
1539 dnl             #if defined( HAVE_REENTRANT_FUNCTIONS ) \ 
1540 dnl                     || defined( HAVE_FUNC_R )
1541 dnl                     func_r(...);
1542 dnl             #else
1543 dnl             #       if defined( HAVE_THREADS ) 
1544 dnl                             /* lock */
1545 dnl             #       endif
1546 dnl                             func(...);
1547 dnl             #       if defined( HAVE_THREADS ) 
1548 dnl                             /* unlock */
1549 dnl             #       endif
1550 dnl             #endif
1551 dnl
1552 dnl HAVE_REENTRANT_FUNCTIONS is derived from:
1553 dnl             _POSIX_REENTRANT_FUNCTIONS
1554 dnl             _POSIX_THREAD_SAFE_FUNCTIONS
1555 dnl             _POSIX_THREADSAFE_FUNCTIONS
1556 dnl
1557 dnl             and is currently defined in lthread.h
1558 dnl
1559 dnl HAVE_THREADS is defined by lthread.h iff -UNO_THREADS
1560 dnl 
1561 dnl libldap/*.c should only include <lthread.h> iff
1562 dnl LDAP_R_COMPILE is defined.  ie:
1563 dnl             #ifdef LDAP_R_COMPILE
1564 dnl             #       include LDAP_R_COMPILE
1565 dnl             #endif
1566 dnl
1567 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
1568 dnl specifically for compiling the threadsafe version of
1569 dnl     the ldap library (-lldap_r).
1570 dnl             
1571 dnl     dnl check for reentrant/threadsafe functions
1572 dnl     dnl
1573 dnl     dnl note: these should only be used when linking
1574 dnl     dnl       with $LTHREAD_LIBS
1575 dnl     dnl
1576 dnl     save_CPPFLAGS="$CPPFLAGS"
1577 dnl     save_LIBS="$LIBS"
1578 dnl     LIBS="$LTHREAD_LIBS $LIBS"
1579 dnl     AC_CHECK_FUNCS( \
1580 dnl             gmtime_r \
1581 dnl             gethostbyaddr_r gethostbyname_r \
1582 dnl             feof_unlocked unlocked_feof \
1583 dnl             putc_unlocked unlocked_putc \
1584 dnl             flockfile ftrylockfile \
1585 dnl     )
1586 dnl     CPPFLAGS="$save_CPPFLAGS"
1587 dnl     LIBS="$save_LIBS"
1588 fi  
1589
1590 if test $ol_link_threads = no ; then
1591         if test $ol_with_threads = yes ; then
1592                 AC_MSG_ERROR([no suitable thread support])
1593         fi
1594
1595         if test $ol_with_threads = auto ; then
1596                 AC_MSG_WARN([no suitable thread support, disabling threads])
1597                 ol_with_threads=no
1598         fi
1599
1600         AC_DEFINE(NO_THREADS,1,
1601                 [define if you have (or want) no threads])
1602         LTHREAD_LIBS=""
1603 fi
1604
1605 if test $ol_link_threads != no ; then
1606         AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1)
1607 fi
1608
1609 dnl ----------------------------------------------------------------
1610 ol_link_ldbm=no 
1611
1612 if test $ol_with_ldbm_api = auto \
1613         -o $ol_with_ldbm_api = berkeley \
1614         -o $ol_with_ldbm_api = bcompat ; then
1615
1616         if test $ol_with_ldbm_api = bcompat; then \
1617                 OL_BERKELEY_COMPAT_DB
1618         else
1619                 OL_BERKELEY_DB
1620         fi
1621
1622         if test $ol_cv_berkeley_db != no ; then
1623                 AC_DEFINE(HAVE_BERKELEY_DB,1,
1624                         [define this if Berkeley DB is available])
1625
1626                 ol_link_ldbm=berkeley
1627                 ol_with_ldbm_api=db
1628
1629                 if test $ol_with_ldbm_type = hash ; then
1630                         AC_DEFINE(LDBM_USE_DBHASH,1,
1631                                 [define this to use DBHASH w/ LDBM backend])
1632                 else
1633                         AC_DEFINE(LDBM_USE_DBBTREE,1,
1634                                 [define this to use DBBTREE w/ LDBM backend])
1635                 fi
1636
1637                 dnl $ol_cv_lib_db should be yes or -ldb
1638                 dnl (it could be no, but that would be an error
1639                 if test $ol_cv_lib_db != yes ; then
1640                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
1641                 fi
1642         fi
1643 fi
1644
1645 if test $ol_link_ldbm = no -a $ol_with_ldbm_type = btree ; then
1646         AC_MSG_WARN(Could not find LDBM with BTREE support)
1647         ol_with_ldbm_api=none
1648 fi
1649
1650 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = mdbm ; then
1651         OL_MDBM
1652
1653         if test $ol_cv_mdbm = yes ; then
1654                 ol_link_ldbm=mdbm
1655                 ol_with_ldbm_api=mdbm
1656                 if test $ol_cv_lib_mdbm != yes ; then
1657                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_mdbm"
1658                 fi
1659         fi
1660 fi
1661
1662 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = gdbm ; then
1663         OL_GDBM
1664
1665         if test $ol_cv_gdbm = yes ; then
1666                 ol_link_ldbm=gdbm
1667                 ol_with_ldbm_api=gdbm
1668
1669                 if test $ol_cv_lib_gdbm != yes ; then
1670                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
1671                 fi
1672         fi
1673 fi
1674
1675 if test $ol_with_ldbm_api = ndbm ; then
1676         OL_NDBM
1677
1678         if test $ol_cv_ndbm = yes ; then
1679                 ol_link_ldbm=ndbm
1680                 ol_with_ldbm_api=ndbm
1681
1682                 if test $ol_cv_lib_ndbm != yes ; then
1683                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
1684                 fi
1685         fi
1686 fi
1687
1688 if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
1689         AC_MSG_WARN(could not find suitable LDBM backend)
1690         if test $ol_enable_ldbm = yes ; then
1691                 AC_MSG_ERROR(select appropriate LDBM options or disable)
1692         fi
1693
1694         AC_MSG_WARN(disabling LDBM)
1695         ol_enable_ldbm=no
1696 fi
1697
1698 dnl ----------------------------------------------------------------
1699 if test $ol_enable_dynamic = yes -a $enable_shared = yes ; then
1700         LINK_BINS_DYNAMIC="yes"
1701 else
1702         LINK_BINS_DYNAMIC="no"
1703 fi
1704
1705 dnl ----------------------------------------------------------------
1706 if test $ol_enable_wrappers != no ; then
1707         AC_CHECK_HEADERS(tcpd.h)
1708
1709         if test $ac_cv_header_tcpd_h != yes ; then
1710                 have_wrappers=no
1711         else
1712                 AC_TRY_COMPILE([
1713 int allow_severity = 0;
1714 int deny_severity  = 0;
1715                 ],[hosts_access()],[have_wrappers=yes],[have_wrappers=no])
1716         fi
1717
1718         if test $have_wrappers = yes ; then
1719                 AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
1720                 WRAP_LIBS="-lwrap"
1721
1722                 dnl We add another check for -lnsl since some libwrap's
1723                 dnl need it, but it isn't always included from above
1724                 AC_CHECK_LIB(nsl, main)
1725         else
1726                 AC_MSG_WARN(could not find -lwrap)
1727                 if test $ol_enable_wrappers = yes ; then
1728                         AC_MSG_ERROR(could not find wrappers, select appropriate options or disable)
1729                 fi
1730
1731                 AC_MSG_WARN(disabling wrappers support)
1732                 ol_enable_wrappers=no
1733                 WRAP_LIBS=""
1734         fi
1735 fi
1736
1737 dnl ----------------------------------------------------------------
1738 if test $ol_enable_syslog != no ; then
1739         AC_CHECK_FUNC(openlog)
1740         if test $ac_cv_func_openlog = no -a $ol_enable_syslog = yes; then
1741                 AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
1742         fi
1743         ol_enable_syslog=$ac_cv_func_openlog
1744 fi
1745
1746 dnl ----------------------------------------------------------------
1747 dnl dmalloc support (deprecated in favor of -DCSRIMALLOC support)
1748 dnl if test $ol_enable_dmalloc != no ; then
1749 dnl     AC_CHECK_HEADERS(dmalloc.h)
1750 dnl     AC_CHECK_LIB(dmalloc, dmalloc_shutdown)
1751 dnl fi
1752 dnl ----------------------------------------------------------------
1753 dnl TCL
1754 if test $ol_enable_tcl != no ; then
1755         AC_CHECK_HEADERS(tcl.h)
1756
1757         if test $ac_cv_header_tcl_h != yes ; then
1758                 have_tcl=no
1759         else
1760                 for lib in tcl tcl7.6 tcl8.0 tcl8.2 ; do
1761                         AC_CHECK_LIB($lib,main,
1762                           [have_tcl=yes
1763                            if test x"$ol_with_tcl_module" = "xstatic" ; then
1764                                SLAPD_LIBS="$SLAPD_LIBS -l${lib}"
1765                            else
1766                                MOD_TCL_LIB="-l${lib}"
1767                            fi;break],[have_tcl=no])
1768                 done
1769         fi
1770
1771         if test $have_tcl != yes ; then
1772                 AC_MSG_WARN([could not find -ltcl])
1773                 if test $ol_enable_tcl = yes ; then
1774                         AC_MSG_ERROR([could not find tcl, select appropriate options or disable])
1775                 fi
1776
1777                 ol_enable_tcl=no
1778         fi
1779 fi
1780
1781 dnl ----------------------------------------------------------------
1782 dnl ud needs termcap (should insert check here)
1783 ol_link_termcap=no
1784 AC_CHECK_HEADERS(termcap.h ncurses.h)
1785
1786 if test $ol_link_termcap = no ; then
1787         AC_CHECK_LIB(termcap, tputs, [have_termcap=yes], [have_termcap=no])
1788         if test $have_termcap = yes ; then
1789                 AC_DEFINE(HAVE_TERMCAP, 1, [define if you have -ltermcap])
1790                 ol_link_termcap=yes
1791                 TERMCAP_LIBS=-ltermcap
1792         fi
1793 fi
1794
1795 if test $ol_link_termcap = no ; then
1796         AC_CHECK_LIB(ncurses, initscr, [have_ncurses=yes], [have_ncurses=no])
1797         if test $have_ncurses = yes ; then
1798                 AC_DEFINE(HAVE_NCURSES, 1, [define if you have -lncurses])
1799                 ol_link_termcap=yes
1800                 TERMCAP_LIBS=-lncurses
1801         fi
1802 fi
1803
1804 if test $ol_link_termcap = no ; then
1805         AC_DEFINE(NO_TERMCAP,1, [define if you have no termcap support])
1806         TERMCAP_LIBS=
1807 fi
1808
1809 dnl ----------------------------------------------------------------
1810 dnl
1811 dnl Check for Cyrus SASL
1812 dnl
1813 ol_link_sasl=no
1814 ol_link_spasswd=no
1815 if test $ol_with_cyrus_sasl != no ; then
1816         AC_CHECK_HEADER(sasl.h)
1817
1818         if test $ac_cv_header_sasl_h = yes ; then
1819                 AC_CHECK_LIB(sasl, sasl_client_init,
1820                         [have_cyrus_sasl=yes], [have_cyrus_sasl=no])
1821
1822                 if test $have_cyrus_sasl != no ; then
1823                         SASL_LIBS="-lsasl"
1824                         AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
1825                         ol_link_sasl=yes
1826                 fi
1827         fi
1828
1829         if test $ol_link_sasl = no -a $ol_with_cyrus_sasl = yes ; then
1830                 AC_MSG_ERROR(no suitable API for --with-cyrus-sasl=$ol_with_cyrus_sasl)
1831         fi
1832 fi
1833
1834 dnl ----------------------------------------------------------------
1835 dnl Check for entropy sources
1836 if test $cross_compiling != yes ; then
1837         dev=no
1838         if test -r /dev/urandom ; then
1839                 dev="/dev/urandom";
1840         elif test -r /idev/urandom ; then
1841                 dev="/idev/urandom";
1842         elif test -r /dev/srandom ; then
1843                 dev="/dev/srandom";
1844         elif test -r /dev/random ; then
1845                 dev="/dev/random";
1846         elif test -r /idev/random ; then
1847                 dev="/idev/random";
1848         fi
1849
1850         if test $dev != no ; then
1851                 AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
1852         fi
1853 fi
1854
1855 dnl ----------------------------------------------------------------
1856 dnl
1857 dnl Check for fetch URL support
1858 dnl             should be extended to support other fetch URL APIs
1859 dnl
1860 ol_link_fetch=no
1861 if test $ol_with_fetch != no ; then
1862         OL_LIB_FETCH
1863
1864         if test $ol_cv_lib_fetch != no ; then
1865                 LDIF_LIBS="$LDIF_LIBS $ol_link_fetch"
1866                 ol_link_fetch=freebsd
1867
1868         elif test $ol_with_fetch != auto ; then
1869                 AC_MSG_ERROR(no suitable API for --with-fetch=$ol_with_fetch)
1870         fi 
1871 fi
1872
1873 dnl ----------------------------------------------------------------
1874 dnl
1875 dnl Check for GNU readline
1876 dnl
1877 ol_link_readline=no
1878 if test $ol_with_readline != no ; then
1879         AC_CHECK_HEADERS(readline/readline.h readline/history.h)
1880
1881         if test $ac_cv_header_readline_readline_h = yes ; then
1882                 save_LIBS="$LIBS"
1883                 LIBS="$TERMCAP_LIBS $LIBS"
1884                 AC_CHECK_LIB(readline, readline, 
1885                         [have_readline=yes], [have_readline=no])
1886                 LIBS="$save_LIBS"
1887                         
1888                 if test $have_readline = yes ; then
1889                         ol_with_readline=found
1890                         ol_link_readline=yes
1891
1892                         READLINE_LIBS="-lreadline"
1893                 fi
1894         fi
1895 fi
1896
1897 if test $ol_link_readline = yes ; then
1898         AC_DEFINE(HAVE_READLINE, 1, [define if you have -lreadline])
1899 fi
1900
1901
1902 dnl ----------------------------------------------------------------
1903 dnl FreeBSD (and others) have crypt(3) in -lcrypt
1904 if test $ol_enable_crypt != no ; then
1905         AC_CHECK_FUNC(crypt, [have_crypt=yes], [
1906                 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
1907                         have_crypt=yes], [have_crypt=no])])
1908
1909         if test $have_crypt = yes ; then
1910                 AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
1911         else
1912                 AC_MSG_WARN(could not find crypt)
1913                 if test $ol_enable_crypt = yes ; then
1914                         AC_MSG_ERROR(could not find crypt, select appropriate options or disable)
1915                 fi
1916
1917                 AC_MSG_WARN(disabling crypt support)
1918                 ol_enable_crypt=no
1919         fi
1920 fi
1921
1922 dnl ----------------------------------------------------------------
1923 dnl FreeBSD (and others) have setproctitle(3) in -lutil
1924 if test $ol_enable_proctitle != no ; then
1925         AC_CHECK_FUNC(setproctitle,     [have_setproctitle=yes], [
1926                 AC_CHECK_LIB(util, setproctitle,
1927                         [have_setproctitle=yes
1928                         LUTIL_LIBS="$LUTIL_LIBS -lutil"],
1929                         [have_setproctitle=no
1930                         LIBOBJS="$LIBOBJS setproctitle.o"
1931                         LIBSRCS="$LIBSRCS setproctitle.c"])])
1932
1933         if test $have_setproctitle = yes ; then
1934                 AC_DEFINE(HAVE_SETPROCTITLE,1,
1935                         [define if setproctitle(3) is available])
1936         fi
1937 fi
1938
1939 dnl ----------------------------------------------------------------
1940 dnl Checks for typedefs, structures, and compiler characteristics.
1941 AC_TYPE_MODE_T
1942 AC_TYPE_OFF_T
1943 AC_TYPE_PID_T
1944 AM_TYPE_PTRDIFF_T
1945 AC_TYPE_SIGNAL
1946 AC_TYPE_SIZE_T
1947
1948 AC_CHECK_TYPE(ssize_t, [signed int])
1949 AC_CHECK_TYPE(caddr_t,  [char *])
1950
1951 OL_TYPE_SOCKLEN_T
1952 AC_STRUCT_ST_BLKSIZE
1953 AC_HEADER_TIME
1954 AC_STRUCT_TM
1955 AC_TYPE_UID_T
1956 OL_TYPE_SIG_ATOMIC_T
1957
1958 dnl AC_TYPE_GETGROUPS
1959
1960 OL_STRUCT_PASSWD_PW_GECOS
1961 OL_STRUCT_PASSWD_PW_PASSWD
1962
1963 OL_C_UPPER_LOWER
1964 AC_C_CONST
1965 OL_C_VOLATILE
1966
1967 if test $cross_compiling = yes ; then
1968         AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
1969 else
1970         AC_C_BIGENDIAN
1971 fi
1972
1973 AC_COMPILE_CHECK_SIZEOF(short) 
1974 AC_COMPILE_CHECK_SIZEOF(int) 
1975 AC_COMPILE_CHECK_SIZEOF(long)
1976
1977 if test "$ac_cv_sizeof_int" -lt 4 ; then
1978         AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
1979
1980         AC_DEFINE(LBER_INT_T,long)
1981 else
1982         AC_DEFINE(LBER_INT_T,int)
1983 fi
1984
1985 AC_DEFINE(LBER_LEN_T,long)
1986 AC_DEFINE(LBER_SOCKET_T,int)
1987 AC_DEFINE(LBER_TAG_T,long)
1988
1989 dnl ----------------------------------------------------------------
1990 dnl Checks for library functions.
1991 AC_FUNC_MEMCMP
1992 dnl AM_FUNC_MKTIME dnl checks for sys/time.h and unistd.h
1993 AC_FUNC_STRFTIME
1994 dnl AM_FUNC_STRTOD
1995
1996 OL_FUNC_INET_ATON
1997
1998 dnl Check for NT specific routines
1999 AC_CHECK_FUNC(_spawnlp, AC_DEFINE(HAVE_SPAWNLP,1,[if you have spawnlp()]))
2000
2001 AC_CHECK_FUNC(_snprintf, [ac_cv_func_snprintf=yes
2002         AC_DEFINE(snprintf, _snprintf, [define to snprintf routine])
2003 ])
2004
2005 AC_CHECK_FUNC(_vsnprintf, [ac_cv_func_vsnprintf=yes
2006         AC_DEFINE(vsnprintf, _vsnprintf, [define to vsnprintf routine])
2007 ])
2008
2009 AC_FUNC_VPRINTF
2010
2011 if test $ac_cv_func_vprintf = yes ; then
2012         dnl check for vsnprintf
2013         AC_CHECK_FUNCS(vsnprintf vsprintf)
2014 fi
2015
2016 AC_CHECK_FUNCS(         \
2017         bcopy                   \
2018         closesocket             \
2019         chroot                  \
2020         endgrent                \
2021         endpwent                \
2022         flock                   \
2023         getdtablesize   \
2024         getgrgid                \
2025         gethostname             \
2026         getpass                 \
2027         getpassphrase   \
2028         getpwuid                \
2029         getpwnam                \
2030         getspnam                \
2031         gettimeofday    \
2032         initgroups              \
2033         lockf                   \
2034         memcpy                  \
2035         memmove                 \
2036         mkstemp                 \
2037         pipe                    \
2038         read                    \
2039         recv                    \
2040         recvfrom                \
2041         setpwfile               \
2042         setgid                  \
2043         setegid                 \
2044         setsid                  \
2045         setuid                  \
2046         seteuid                 \
2047         sigaction               \
2048         signal                  \
2049         sigset                  \
2050         snprintf                \
2051         strdup                  \
2052         strerror                \
2053         strpbrk                 \
2054         strrchr                 \
2055         strsep                  \
2056         strstr                  \
2057         strtol                  \
2058         strtoul                 \
2059         strspn                  \
2060         sysconf                 \
2061         waitpid                 \
2062         wait4                   \
2063         write                   \
2064         send                    \
2065         sendto                  \
2066 )
2067
2068 dnl We actually may need to replace more than this.
2069 AC_REPLACE_FUNCS(getopt tempnam)
2070
2071 if test "$ac_cv_func_getopt" != yes; then
2072     LIBSRCS="$LIBSRCS getopt.c"
2073 fi
2074
2075 if test "$ac_cv_func_tempnam" != yes; then
2076     LIBSRCS="$LIBSRCS tempnam.c"
2077 fi
2078
2079 dnl ----------------------------------------------------------------
2080 # Check Configuration
2081 OL_SYS_ERRLIST
2082
2083 dnl ----------------------------------------------------------------
2084 dnl Sort out defines
2085
2086 if test "$ol_enable_debug" != no ; then
2087         AC_DEFINE(LDAP_DEBUG,1,
2088                 [define this to add debugging code])
2089 fi
2090 if test "$ol_enable_syslog" = yes ; then
2091         AC_DEFINE(LDAP_SYSLOG,1,
2092                 [define this to add syslog code])
2093 fi
2094 if test "$ol_enable_libui" = yes ; then
2095         AC_DEFINE(LDAP_LIBUI,1,
2096                 [define this for LDAP User Interface support])
2097 fi
2098 if test "$ol_enable_cache" = no ; then
2099         AC_DEFINE(LDAP_NOCACHE,1,
2100                 [define this to remove -lldap cache support])
2101 fi
2102 if test "$ol_link_kbind" != no ; then
2103         AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND,LDAP_VENDOR_VERSION)
2104 fi
2105 if test "$ol_enable_proctitle" != no ; then
2106         AC_DEFINE(LDAP_PROCTITLE,1,
2107                 [define this for LDAP process title support])
2108 fi
2109 if test "$ol_enable_referrals" != no ; then
2110         AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION)
2111 fi
2112 if test "$ol_enable_cldap" != no ; then
2113         AC_DEFINE(LDAP_CONNECTIONLESS,1,[define to support CLDAP])
2114 fi
2115 if test "$ol_enable_ldapi" != no; then
2116         AC_DEFINE(USE_PF_LOCAL,1,[define to support PF_LOCAL transport])
2117 fi
2118
2119 if test "$ol_enable_cleartext" != no ; then
2120         AC_DEFINE(SLAPD_CLEARTEXT,1,[define to support cleartext passwords])
2121 fi
2122 if test "$ol_enable_crypt" != no ; then
2123         AC_DEFINE(SLAPD_CRYPT,1,[define to support crypt(3) passwords])
2124 fi
2125 if test "$ol_link_kpasswd" != no ; then
2126         AC_DEFINE(SLAPD_KPASSWD,1,[define to support Kerberos passwords])
2127 fi
2128 if test "$ol_link_spasswd" != no ; then
2129         AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
2130 fi
2131 if test "$ol_enable_multimaster" != no ; then
2132         AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
2133 fi
2134 if test "$ol_enable_phonetic" != no ; then
2135         AC_DEFINE(SLAPD_PHONETIC,1,[define to support phonetic])
2136 fi
2137 if test "$ol_enable_rlookups" != no ; then
2138         AC_DEFINE(SLAPD_RLOOKUPS,1,[define to support reverse lookups])
2139 fi
2140 if test "$ol_enable_aci" != no ; then
2141         AC_DEFINE(SLAPD_ACI_ENABLED,1,[define to support per-object ACIs])
2142 fi
2143
2144 if test "$ol_link_modules" != no ; then
2145         AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
2146         BUILD_SLAPD=yes
2147         SLAPD_MODULES_LDFLAGS="-dlopen self"
2148 fi
2149
2150 if test "$ol_link_dnssrv" != no ; then
2151         AC_DEFINE(SLAPD_DNSSRV,1,[define to support DNS SRV backend])
2152         BUILD_SLAPD=yes
2153         BUILD_DNSSRV=yes
2154         if test "$ol_with_dnssrv_module" != static ; then
2155                 AC_DEFINE(SLAPD_DNSSRV_DYNAMIC,1,
2156                         [define to support dynamic DNS SRV backend])
2157                 BUILD_DNSSRV=mod
2158                 BUILD_DNSSRV_DYNAMIC=shared
2159                 SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-dnssrv/back_dnssrv.la"
2160         fi
2161 fi
2162
2163 if test "$ol_enable_ldap" != no ; then
2164         AC_DEFINE(SLAPD_LDAP,1,[define to support LDAP backend])
2165         BUILD_SLAPD=yes
2166         BUILD_LDAP=yes
2167         if test "$ol_with_ldap_module" != static ; then
2168                 AC_DEFINE(SLAPD_LDAP_DYNAMIC,1,
2169                         [define to support dynamic LDAP backend])
2170                 BUILD_LDAP=mod
2171                 BUILD_LDAP_DYNAMIC=shared
2172                 SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-ldap/back_ldap.la"
2173         fi
2174 fi
2175
2176 if test "$ol_link_ldbm" != no ; then
2177         AC_DEFINE(SLAPD_LDBM,1,[define to support LDBM backend])
2178         BUILD_SLAPD=yes
2179         BUILD_LDBM=yes
2180         if test "$ol_with_ldbm_module" != static ; then
2181                 AC_DEFINE(SLAPD_LDBM_DYNAMIC,1,
2182                         [define to support dynamic LDBM backend])
2183                 BUILD_LDBM=mod
2184                 BUILD_LDBM_DYNAMIC=shared
2185                 SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-ldbm/back_ldbm.la"
2186         fi
2187 fi
2188
2189 if test "$ol_enable_passwd" != no ; then
2190         AC_DEFINE(SLAPD_PASSWD,1,[define to support PASSWD backend])
2191         BUILD_SLAPD=yes
2192         BUILD_PASSWD=yes
2193         if test "$ol_with_passwd_module" != static ; then
2194                 AC_DEFINE(SLAPD_PASSWD_DYNAMIC,1,
2195                         [define to support dynamic PASSWD backend])
2196                 BUILD_PASSWD=mod
2197                 BUILD_PASSWD_DYNAMIC=shared
2198                 SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-passwd/back_passwd.la"
2199         fi
2200 fi
2201
2202 if test "$ol_link_perl" != no ; then
2203         AC_DEFINE(SLAPD_PERL,1,[define to support PERL backend])
2204         BUILD_SLAPD=yes
2205         BUILD_PERL=yes
2206         if test "$ol_with_perl_module" != static ; then
2207                 AC_DEFINE(SLAPD_PERL_DYNAMIC,1,
2208                         [define to support dynamic PERL backend])
2209                 BUILD_PERL=mod
2210                 BUILD_PERL_DYNAMIC=shared
2211                 SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-perl/back_perl.la"
2212         fi
2213 fi
2214
2215 if test "$ol_enable_shell" != no ; then
2216         AC_DEFINE(SLAPD_SHELL,1,[define to support SHELL backend])
2217         BUILD_SLAPD=yes
2218         BUILD_SHELL=yes
2219         if test "$ol_with_shell_module" != static ; then
2220                 AC_DEFINE(SLAPD_SHELL_DYNAMIC,1,
2221                         [define to support dynamic SHELL backend])
2222                 BUILD_SHELL=mod
2223                 BUILD_SHELL_DYNAMIC=shared
2224                 SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-shell/back_shell.la"
2225         fi
2226 fi
2227
2228 if test "$ol_enable_tcl" != no ; then
2229         AC_DEFINE(SLAPD_TCL,1,[define to support TCL backend])
2230         BUILD_SLAPD=yes
2231         BUILD_TCL=yes
2232         if test "$ol_with_tcl_module" != static; then
2233                 AC_DEFINE(SLAPD_TCL_DYNAMIC,1,
2234                         [define to support dynamic TCL backend])
2235                 BUILD_TCL=mod
2236                 BUILD_TCL_DYNAMIC=shared
2237                 SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-tcl/back_tcl.la"
2238         fi
2239 fi
2240
2241 if test "$ol_enable_sql" != no ; then
2242         AC_DEFINE(SLAPD_SQL,1,[define to support SQL backend])
2243         BUILD_SLAPD=yes
2244         BUILD_SQL=yes
2245         SLAPD_SQL_LIBS=-liodbc
2246         if test "$ol_with_sql_module" != static; then
2247                 AC_DEFINE(SLAPD_SQL_DYNAMIC,1,
2248                         [define to support dynamic SQL backend])
2249                 BUILD_SQL=mod
2250                 BUILD_SQL_DYNAMIC=shared
2251                 SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-sql/back_sql.la"
2252         fi
2253 fi
2254
2255 if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \
2256         $BUILD_SLAPD = yes ; then
2257         BUILD_SLURPD=yes
2258 fi
2259
2260 dnl ----------------------------------------------------------------
2261
2262 if test "$LINK_BINS_DYNAMIC" = yes; then
2263     LIB_LINKAGE=DYN
2264     LT_LIB_LINKAGE=shared
2265 else
2266     LIB_LINKAGE=STAT
2267     LT_LIB_LINKAGE=static
2268 fi
2269
2270 if test "$ac_cv_mingw32" = yes ; then
2271     PLAT=NT
2272     DYN_EXT=dll
2273 else
2274     PLAT=UNIX
2275     DYN_EXT=so
2276 fi
2277
2278 AC_SUBST(LIBSRCS)
2279
2280 AC_SUBST(PLAT)
2281 AC_SUBST(LIB_LINKAGE)
2282 AC_SUBST(LT_LIB_LINKAGE)
2283 AC_SUBST(DYN_EXT)
2284
2285 AC_SUBST(BUILD_SLAPD)
2286   AC_SUBST(BUILD_DNSSRV)
2287   AC_SUBST(BUILD_LDAP)
2288   AC_SUBST(BUILD_LDBM)
2289   AC_SUBST(BUILD_PASSWD)
2290   AC_SUBST(BUILD_PERL)
2291   AC_SUBST(BUILD_QUIPU)
2292   AC_SUBST(BUILD_SHELL)
2293   AC_SUBST(BUILD_SQL)
2294   AC_SUBST(BUILD_TCL)
2295   AC_SUBST(BUILD_DNSSRV_DYNAMIC)
2296   AC_SUBST(BUILD_LDAP_DYNAMIC)
2297   AC_SUBST(BUILD_LDBM_DYNAMIC)
2298   AC_SUBST(BUILD_PASSWD_DYNAMIC)
2299   AC_SUBST(BUILD_PERL_DYNAMIC)
2300   AC_SUBST(BUILD_SHELL_DYNAMIC)
2301   AC_SUBST(BUILD_SQL_DYNAMIC)
2302   AC_SUBST(BUILD_TCL_DYNAMIC)
2303 AC_SUBST(BUILD_SLURPD)
2304
2305 AC_SUBST(LDAP_LIBS)
2306 AC_SUBST(LDIF_LIBS)
2307 AC_SUBST(SLAPD_LIBS)
2308 AC_SUBST(QUIPU_LIBS)
2309 AC_SUBST(SLURPD_LIBS)
2310 AC_SUBST(LDBM_LIBS)
2311 AC_SUBST(LTHREAD_LIBS)
2312 AC_SUBST(LUTIL_LIBS)
2313 AC_SUBST(WRAP_LIBS)
2314 AC_SUBST(MOD_TCL_LIB)
2315 AC_SUBST(LINK_BINS_DYNAMIC)
2316
2317 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
2318 AC_SUBST(SLAPD_MODULES_LDFLAGS)
2319 AC_SUBST(SLAPD_MODULES_LIST)
2320
2321 AC_SUBST(PERL_CPPFLAGS)
2322 AC_SUBST(SLAPD_PERL_LDFLAGS)
2323 AC_SUBST(MOD_PERL_LDFLAGS)
2324
2325 AC_SUBST(KRB4_LIBS)
2326 AC_SUBST(KRB5_LIBS)
2327 AC_SUBST(READLINE_LIBS)
2328 AC_SUBST(SASL_LIBS)
2329 AC_SUBST(TERMCAP_LIBS)
2330 AC_SUBST(TLS_LIBS)
2331 AC_SUBST(MODULES_LIBS)
2332 AC_SUBST(AUTH_LIBS)
2333
2334 AC_SUBST(SLAPD_SQL_LDFLAGS)
2335 AC_SUBST(SLAPD_SQL_LIBS)
2336 AC_SUBST(SLAPD_SQL_INCLUDES)
2337
2338 dnl ----------------------------------------------------------------
2339 dnl final output
2340 dnl
2341
2342 AC_OUTPUT( \
2343 Makefile:build/top.mk:Makefile.in:build/dir.mk \
2344 doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk \
2345 doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk \
2346 doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk \
2347 doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk \
2348 doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk \
2349 doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk \
2350 clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk \
2351 clients/finger/Makefile:build/top.mk:clients/finger/Makefile.in:build/rules.mk \
2352 clients/fax500/Makefile:build/top.mk:clients/fax500/Makefile.in:build/rules.mk \
2353 clients/gopher/Makefile:build/top.mk:clients/gopher/Makefile.in:build/rules.mk \
2354 clients/mail500/Makefile:build/top.mk:clients/mail500/Makefile.in:build/rules.mk \
2355 clients/rcpt500/Makefile:build/top.mk:clients/rcpt500/Makefile.in:build/rules.mk \
2356 clients/ud/Makefile:build/top.mk:clients/ud/Makefile.in:build/rules.mk \
2357 clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk \
2358 include/Makefile:build/top.mk:include/Makefile.in \
2359 libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk      \
2360 libraries/libavl/Makefile:build/top.mk:libraries/libavl/Makefile.in:build/lib.mk:build/lib-static.mk    \
2361 libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk  \
2362 libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk  \
2363 libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk      \
2364 libraries/libldbm/Makefile:build/top.mk:libraries/libldbm/Makefile.in:build/lib.mk:build/lib-static.mk  \
2365 libraries/libldif/Makefile:build/top.mk:libraries/libldif/Makefile.in:build/lib.mk:build/lib-static.mk  \
2366 libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk  \
2367 libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk        \
2368 servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk \
2369 servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk \
2370 servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk \
2371 servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk \
2372 servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/mod.mk \
2373 servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk \
2374 servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk \
2375 servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk \
2376 servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk \
2377 servers/slapd/back-tcl/Makefile:build/top.mk:servers/slapd/back-tcl/Makefile.in:build/mod.mk \
2378 servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk \
2379 servers/slapd/tools/Makefile:build/top.mk:servers/slapd/tools/Makefile.in \
2380 servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk \
2381 tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk \
2382 tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk \
2383 contrib/Makefile:build/top.mk:contrib/Makefile.in:build/dir.mk \
2384 contrib/saucer/Makefile:build/top.mk:contrib/saucer/Makefile.in:build/rules.mk \
2385 contrib/web_ldap/Makefile:build/top.mk:contrib/web_ldap/Makefile.in:build/rules.mk \
2386 ,[
2387 date > stamp-h
2388 echo Please \"make depend\" to build dependencies
2389 ])