gecko-dev/db/dist/configure.in
1998-10-15 03:56:37 +00:00

648 lines
19 KiB
Plaintext

dnl @(#)configure.in 10.63 (Sleepycat) 5/26/98
dnl Process this file with autoconf to produce a configure script.
AC_INIT(../db/db.c)
AC_CONFIG_HEADER(config.h)
dnl Configure setup.
AC_PROG_INSTALL()
AC_CANONICAL_HOST
AC_ARG_PROGRAM()
dnl This is where we handle stuff that autoconf can't handle: compiler,
dnl preprocessor and load flags, libraries that the standard tests don't
dnl look for. The default optimization is -O.
dnl
dnl XXX
dnl Don't override anything if it's already set from the environment.
AC_SUBST(CFLAGS)
AC_SUBST(CPPFLAGS)
AC_SUBST(CXX)
AC_SUBST(CXXFLAGS)
AC_SUBST(LDFLAGS)
case "$host_os" in
aix4.1*) CFLAGS=${CFLAGS-"-O3"};;
bsd4.4) CFLAGS=${CFLAGS-"-O2"};;
bsdi4*) CFLAGS=${CFLAGS-"-O2"};;
bsdi*) CC=${CC-"shlicc2"}
CFLAGS=${CFLAGS-"-O2"}
LIBS="-lipc $LIBS";;
irix*) CFLAGS=${CFLAGS-"-O2"};;
nextstep3) CFLAGS=${CFLAGS-"-O2"};;
linux*) CFLAGS=${CFLAGS-"-O2"};;
mpeix*) CPPFLAGS="-D_POSIX_SOURCE -D_SOCKET_SOURCE $CPPFLAGS"
LIBS="-lsocket -lsvipc $LIBS";;
sco*) CFLAGS="$CFLAGS -b elf"
LIBS="-lsocket -lnsl $LIBS";;
*) CFLAGS=${CFLAGS-"-O"};;
esac
CXXFLAGS=${CXXFLAGS-"$CFLAGS"}
dnl If the user wants a debugging environment, add -g to the CFLAGS value.
dnl
dnl XXX
dnl Some compilers can't mix optimizing and debug flags. The only way to
dnl handle this is to specify CFLAGS in the environment before configuring.
AC_MSG_CHECKING(if --enable-debug option specified)
AC_ARG_ENABLE(debug,
[ --enable-debug Build a debugging version.],
[db_cv_debug="$enable_debug"], [db_cv_debug="no"])
AC_MSG_RESULT($db_cv_debug)
if test "$db_cv_debug" = yes; then
AC_DEFINE(DEBUG)
CFLAGS="$CFLAGS -g"
CXXFLAGS="$CXXFLAGS -g"
fi
dnl The default compiler is cc (NOT gcc), the default CFLAGS is as specified
dnl above, NOT what is set by AC_PROG_CC, as it won't set optimization flags.
AC_SUBST(CC)
CC=${CC-"cc"}
AC_PROG_CC
dnl If the user wants run-time checks, define DIAGNOSTIC.
AC_MSG_CHECKING(if --enable-diagnostic option specified)
AC_ARG_ENABLE(diagnostic,
[ --enable-diagnostic Build a version with run-time diagnostics.],
[db_cv_diagnostic="$enable_diagnostic"], [db_cv_diagnostic="no"])
AC_MSG_RESULT($db_cv_diagnostic)
if test "$db_cv_diagnostic" = yes; then
AC_DEFINE(DIAGNOSTIC)
fi
dnl Optional C++ API..
dnl
dnl XXX
dnl Versions of GCC up to 2.8.0 required -fhandle-exceptions, but it is
dnl the default in versions 2.8.0 and after.
AC_MSG_CHECKING(if --enable-cxx option specified)
AC_ARG_ENABLE(cxx,
[ --enable-cxx Provide C++ interfaces.],
[db_cv_cxx="$enable_cxx"], [db_cv_cxx="no"])
AC_MSG_RESULT($db_cv_cxx)
if test "$db_cv_cxx" = "yes"; then
AC_PROG_CXX
if test "$GXX" = "yes"; then
CXXFLAGS="-fhandle-exceptions $CXXFLAGS"
fi
LIBOBJS="$LIBOBJS \$(COBJS)"
fi
dnl There are additional libraries we need for some compiler/architecture
dnl combinations.
AC_SUBST(LIBS)
dnl Optional DB 1.85 compatibility API.
AC_MSG_CHECKING(if --enable-compat185 option specified)
AC_ARG_ENABLE(compat185,
[ --enable-compat185 Include DB 1.85 compatibility API.],
[db_cv_compat185="$enable_compat185"], [db_cv_compat185="no"])
AC_MSG_RESULT($db_cv_compat185)
if test "$db_cv_compat185" = "yes"; then
LIBOBJS="db185.o $LIBOBJS"
fi
dnl Optional utilities.
AC_SUBST(build_additional)
AC_MSG_CHECKING(if --enable-dump185 option specified)
AC_ARG_ENABLE(dump185,
[ --enable-dump185 Build db_dump185(1) to dump 1.85 databases.],
[db_cv_dump185="$enable_dump185"], [db_cv_dump185="no"])
AC_MSG_RESULT($db_cv_dump185)
if test "$db_cv_dump185" = "yes"; then
build_additional="db_dump185 $build_additional"
fi
dnl Check for programs used in building and installation.
AC_PATH_PROG(db_cv_path_ar, ar, missing_ar)
if test "$db_cv_path_ar" = missing_ar; then
AC_MSG_ERROR([No ar utility found.])
fi
AC_PATH_PROG(db_cv_path_chmod, chmod, missing_chmod)
if test "$db_cv_path_chmod" = missing_chmod; then
AC_MSG_ERROR([No chmod utility found.])
fi
AC_PATH_PROG(db_cv_path_cp, cp, missing_cp)
if test "$db_cv_path_cp" = missing_cp; then
AC_MSG_ERROR([No cp utility found.])
fi
AC_PATH_PROG(db_cv_path_mkdir, mkdir, missing_mkdir)
if test "$db_cv_path_mkdir" = missing_mkdir; then
AC_MSG_ERROR([No mkdir utility found.])
fi
AC_PATH_PROG(db_cv_path_ranlib, ranlib, missing_ranlib)
AC_PATH_PROG(db_cv_path_rm, rm, missing_rm)
if test "$db_cv_path_rm" = missing_rm; then
AC_MSG_ERROR([No rm utility found.])
fi
AC_PATH_PROG(db_cv_path_sh, sh, missing_sh)
if test "$db_cv_path_sh" = missing_sh; then
AC_MSG_ERROR([No sh utility found.])
fi
AC_PATH_PROG(db_cv_path_strip, strip, missing_strip)
if test "$db_cv_path_strip" = missing_strip; then
AC_MSG_ERROR([No strip utility found.])
fi
dnl Checks for typedefs, structures, and compiler characteristics.
AC_CHECK_TYPE(ssize_t, int)
AC_C_BIGENDIAN
AC_C_CONST
AC_STRUCT_ST_BLKSIZE
AC_HEADER_STAT
AC_TYPE_MODE_T
AC_TYPE_OFF_T
AC_TYPE_PID_T
AC_TYPE_SIZE_T
dnl Checks for header files.
AC_HEADER_DIRENT
AC_CHECK_HEADERS(sys/select.h)
AC_CHECK_HEADERS(sys/time.h)
dnl Checks for library functions for which we have replacements.
dnl
dnl XXX
dnl The only portable getcwd call is getcwd(char *, size_t), where the
dnl buffer is non-NULL -- Solaris can't handle a NULL buffer, and they
dnl deleted getwd().
AC_REPLACE_FUNCS(getcwd getopt memcmp memcpy memmove)
AC_REPLACE_FUNCS(raise snprintf strerror strsep vsnprintf)
dnl A/UX has a broken getopt(3).
case "$host_os" in
aux*) LIBOBJS="getopt.o $LIBOBJS";;
esac
dnl Checks for library functions for which we don't have replacements.
dnl
dnl XXX
dnl FreeBSD has the shmget(2) interfaces, but as ftok(3) is not in the C
dnl library, so we ignore them.
dnl
dnl HP/UX has the shmget(2) interfaces, but you can't use them to hold
dnl mutexes, so they're useless.
dnl
dnl SunOS has the shmget(2) interfaces, but there appears to be a missing
dnl #include <debug/debug.h> file!?
case "$host_os" in
hpux*)
ac_cv_func_shmget="no"
AC_MSG_WARN([shmget(2) interface ignored on the HP/UX architecture.]);;
sunos*)
ac_cv_func_shmget="no"
AC_MSG_WARN([shmget(2) interface ignored on the SunOS architecture.]);;
*)
AC_CHECK_FUNC(ftok, AC_CHECK_FUNCS(shmget));;
esac
dnl Nextstep (version 3.3) apparently supports mmap(2) (the mmap symbol is
dnl defined in the C library) but does not support munmap(2).
AC_CHECK_FUNC(munmap, AC_CHECK_FUNCS(mmap))
AC_CHECK_FUNCS(getuid select sysconf)
dnl We require mmap/munmap(2) or shmget(2), and select(2).
if test "$ac_cv_func_mmap" = no -a "$ac_cv_func_shmget" = no; then
AC_MSG_ERROR([Neither mmap/munmap(2) or shmget(2) library functions.])
fi
if test "$ac_cv_func_select" = no; then
AC_MSG_ERROR([No select(2) library function.])
fi
dnl Check for the sigfillset macro/function. If it exists, we assume we can
dnl use it and sigprocmask to we block signals when creating temporary files.
AC_CACHE_CHECK([for sigfillset], db_cv_have_sigfillset, [dnl
AC_TRY_LINK([#include <signal.h>], [sigset_t set; sigfillset(&set);],
[db_cv_have_sigfillset=yes], [db_cv_have_sigfillset=no])])
if test "$db_cv_have_sigfillset" = yes; then
AC_DEFINE(HAVE_SIGFILLSET)
fi
dnl Some versions of sprintf return a pointer to the first argument instead
dnl of a character count. We assume that the return value of snprintf and
dnl vsprintf etc. will be the same as sprintf, and check the easy one.
AC_CACHE_CHECK([for int type sprintf return value], db_cv_sprintf_count, [dnl
AC_TRY_RUN([main(){char buf[20]; exit(sprintf(buf, "XXX") != 3);}],
[db_cv_sprintf_count=yes], [db_cv_sprintf_count=no])])
if test "$db_cv_sprintf_count" = no; then
AC_DEFINE(SPRINTF_RET_CHARPNT)
fi
dnl Vendors are doing 64-bit lseek in different ways.
dnl AIX, HP/UX and Solaris all use _FILE_OFFSET_BITS to specify a "big-file"
dnl environment.
AC_MSG_CHECKING(if --disable-bigfile option specified)
AC_ARG_ENABLE(bigfile,
[ --disable-bigfile Disable AIX, HP/UX, Solaris big files.],
[db_cv_bigfile="$enable_bigfile"], [db_cv_bigfile="yes"])
if test "$db_cv_bigfile" = yes; then
case "$host_os" in
bsdi*|aix*|hpux*|solaris*) AC_DEFINE(HAVE_FILE_OFFSET_BITS);;
esac
AC_MSG_RESULT("no")
else
AC_MSG_RESULT("yes")
fi
dnl Figure out if we have spinlocks for the compiler/architecture.
AC_CACHE_CHECK([for spinlocks], db_cv_spinlocks, [dnl
db_cv_spinlocks=no
dnl msemaphore: HPPA
dnl Try HPPA before general msem test, it needs special mutex alignment.
if test "$db_cv_spinlocks" = no; then
AC_TRY_RUN([main(){
#if defined(__hppa)
#include <sys/mman.h>
typedef msemaphore tsl_t;
msemaphore x; msem_init(&x, 0); msem_lock(&x, 0); msem_unlock(&x, 0);
exit(0);
#else
exit(1);
#endif
}], [db_cv_spinlocks=msem-hppa/func])
fi
dnl msemaphore: OSF/1
if test "$db_cv_spinlocks" = no; then
AC_TRY_LINK([#include <sys/types.h>],
[#include <sys/mman.h>;
typedef msemaphore tsl_t;
msemaphore x; msem_init(&x, 0); msem_lock(&x, 0); msem_unlock(&x, 0);],
[db_cv_spinlocks=msem/func])
fi
dnl ReliantUNIX
if test "$db_cv_spinlocks" = no; then
saved_libs="$LIBS"
LIBS="$LIBS -lmproc"
AC_TRY_LINK([#include <ulocks.h>],
[typedef spinlock_t tsl_t;
spinlock_t x; initspin(&x, 1); cspinlock(&x); spinunlock(&x);],
[db_cv_spinlocks=reliant/func],[LIBS="$saved_libs"])
fi
dnl SCO: UnixWare has threads in libthread, but OpenServer doesn't.
if test "$db_cv_spinlocks" = no; then
AC_TRY_RUN([main(){
#if defined(__USLC__)
exit(0);
#endif
exit(1);}], [db_cv_spinlocks=sco/cc])
fi
dnl abilock_t: SGI
if test "$db_cv_spinlocks" = no; then
AC_TRY_LINK([#include <abi_mutex.h>],
[typedef abilock_t tsl_t;
abilock_t x; init_lock(&x); acquire_lock(&x); release_lock(&x);],
[db_cv_spinlocks=sgi/func])
fi
dnl sema_t: Solaris
dnl The semaphore calls do not work on Solaris 5.5.
if test "$db_cv_spinlocks" = NOTYET; then
AC_TRY_LINK([#include <synch.h>],
[typedef sema_t tsl_t;
sema_t x;
sema_init(&x, 1, USYNC_PROCESS, NULL); sema_wait(&x); sema_post(&x);],
[db_cv_spinlocks=solaris/func])
fi
dnl _lock_try/_lock_clear: Solaris
if test "$db_cv_spinlocks" = no; then
AC_TRY_LINK([#include <sys/machlock.h>],
[typedef lock_t tsl_t;
lock_t x;
_lock_try(&x); _lock_clear(&x);],
[db_cv_spinlocks=solaris/func])
fi
dnl _check_lock/_clear_lock: AIX
if test "$db_cv_spinlocks" = no; then
AC_TRY_LINK([#include <sys/atomic_op.h>],
[int x; _check_lock(x,0,1); _clear_lock(x,0);],
[db_cv_spinlocks=aix/func])
fi
dnl PaRisc/gcc: HP/UX
if test "$db_cv_spinlocks" = no; then
AC_TRY_RUN([main(){
#if defined(__hppa)
#if defined(__GNUC__)
exit(0);
#endif
#endif
exit(1);}], [db_cv_spinlocks=parisc/gcc])
fi
dnl Sparc/gcc: Solaris
if test "$db_cv_spinlocks" = no; then
AC_TRY_RUN([main(){
#if defined(__sparc__)
#if defined(__GNUC__)
exit(0);
#endif
#endif
exit(1);}], [db_cv_spinlocks=sparc/gcc])
fi
dnl 68K/gcc: SunOS
if test "$db_cv_spinlocks" = no; then
AC_TRY_RUN([main(){
#if (defined(mc68020) || defined(sun3))
#if defined(__GNUC__)
exit(0);
#endif
#endif
exit(1);}], [db_cv_spinlocks=mc68020/gcc])
fi
dnl x86/gcc: BSD/OS, FreeBSD, NetBSD, Linux
if test "$db_cv_spinlocks" = no; then
AC_TRY_RUN([main(){
#if defined(i386)
#if defined(__GNUC__)
exit(0);
#endif
#endif
exit(1);}], [db_cv_spinlocks=x86/gcc])
fi
dnl: uts/cc: UTS
if test "$db_cv_spinlocks" = no; then
AC_TRY_RUN([main(){
#if defined(_UTS)
exit(0);
#endif
exit(1);}], [db_cv_spinlocks=uts4/cc])
fi
])
if test "$db_cv_spinlocks" = no; then
AC_MSG_WARN([SPINLOCKS NOT IMPLEMENTED FOR THIS COMPILER/ARCHITECTURE.])
else
AC_DEFINE(HAVE_SPINLOCKS)
fi
dnl Some architectures require special flags and/or libraries for threaded
dnl applications.
case "$host_os" in
irix*) CPPFLAGS="-D_SGI_MP_SOURCE $CPPFLAGS";;
osf*) CPPFLAGS="-D_REENTRANT $CPPFLAGS";;
solaris*) CPPFLAGS="-D_REENTRANT $CPPFLAGS"
LIBS="-lthread $LIBS";;
esac
AC_SUBST(spin_line1)
AC_SUBST(spin_line2)
AC_SUBST(spin_line3)
AC_SUBST(mutex_align)
case "$db_cv_spinlocks" in
aix/func)
AC_DEFINE(HAVE_FUNC_AIX)
mutex_align="sizeof(int)"
spin_line1="#include <sys/atomic_op.h>"
spin_line2="typedef int tsl_t;";;
mc68020/gcc)
AC_DEFINE(HAVE_ASSEM_MC68020_GCC)
mutex_align="1"
spin_line1="typedef unsigned char tsl_t;";;
msem-hppa/func)
AC_DEFINE(HAVE_FUNC_MSEM)
mutex_align="16"
spin_line1="#include <sys/mman.h>"
spin_line2="typedef msemaphore tsl_t;";;
msem/func)
AC_DEFINE(HAVE_FUNC_MSEM)
mutex_align="sizeof(int)"
spin_line1="#include <sys/mman.h>"
spin_line2="typedef msemaphore tsl_t;";;
parisc/gcc)
AC_DEFINE(HAVE_ASSEM_PARISC_GCC)
mutex_align="16"
spin_line1="typedef u_int32_t tsl_t;";;
reliant/func)
AC_DEFINE(HAVE_FUNC_RELIANT)
mutex_align="1"
spin_line1="#include <ulocks.h>"
spin_line2="typedef spinlock_t tsl_t;";;
sgi/func)
AC_DEFINE(HAVE_FUNC_SGI)
mutex_align="sizeof(int)"
spin_line1="#include <abi_mutex.h>"
spin_line2="typedef abilock_t tsl_t;";;
NOTYET_solaris/func)
AC_DEFINE(HAVE_FUNC_SOLARIS)
mutex_align="sizeof(int)"
spin_line1="#include <synch.h>"
spin_line2="typedef sema_t tsl_t;";;
sco/cc)
AC_DEFINE(HAVE_ASSEM_SCO_CC)
mutex_align="1"
spin_line1="typedef unsigned char tsl_t;";;
solaris/func)
AC_DEFINE(HAVE_FUNC_SOLARIS)
mutex_align="sizeof(int)"
spin_line1="#include <sys/machlock.h>"
spin_line2="typedef lock_t tsl_t;";;
sparc/gcc)
AC_DEFINE(HAVE_ASSEM_SPARC_GCC)
mutex_align="1"
spin_line1="typedef unsigned char tsl_t;";;
uts4/cc)
AC_DEFINE(HAVE_ASSEM_UTS4_CC)
mutex_align="sizeof(int)"
spin_line1="typedef int tsl_t;"
LIBOBJS="$LIBOBJS uts4.cc.o";;
x86/gcc)
AC_DEFINE(HAVE_ASSEM_X86_GCC)
mutex_align="1"
spin_line1="typedef unsigned char tsl_t;";;
*)
mutex_align="1";;
esac
dnl Check for the standard shorthand types.
AC_SUBST(u_char_decl)
AC_CACHE_CHECK([for u_char], db_cv_uchar, [dnl
AC_TRY_COMPILE([#include <sys/types.h>], u_char foo;,
[db_cv_uchar=yes], [db_cv_uchar=no])])
if test "$db_cv_uchar" = no; then
u_char_decl="typedef unsigned char u_char;"
fi
AC_SUBST(u_short_decl)
AC_CACHE_CHECK([for u_short], db_cv_ushort, [dnl
AC_TRY_COMPILE([#include <sys/types.h>], u_short foo;,
[db_cv_ushort=yes], [db_cv_ushort=no])])
if test "$db_cv_ushort" = no; then
u_short_decl="typedef unsigned short u_short;"
fi
AC_SUBST(u_int_decl)
AC_CACHE_CHECK([for u_int], db_cv_uint, [dnl
AC_TRY_COMPILE([#include <sys/types.h>], u_int foo;,
[db_cv_uint=yes], [db_cv_uint=no])])
if test "$db_cv_uint" = no; then
u_int_decl="typedef unsigned int u_int;"
fi
AC_SUBST(u_long_decl)
AC_CACHE_CHECK([for u_long], db_cv_ulong, [dnl
AC_TRY_COMPILE([#include <sys/types.h>], u_long foo;,
[db_cv_ulong=yes], [db_cv_ulong=no])])
if test "$db_cv_ulong" = no; then
u_long_decl="typedef unsigned long u_long;"
fi
dnl DB/Vi use specific integer sizes.
AC_SUBST(u_int8_decl)
AC_CACHE_CHECK([for u_int8_t], db_cv_uint8, [dnl
AC_TRY_COMPILE([#include <sys/types.h>], u_int8_t foo;,
[db_cv_uint8=yes],
AC_TRY_RUN([main(){exit(sizeof(unsigned char) != 1);}],
[db_cv_uint8="unsigned char"], [db_cv_uint8=no]))])
if test "$db_cv_uint8" = no; then
AC_MSG_ERROR(No unsigned 8-bit integral type.)
fi
if test "$db_cv_uint8" != yes; then
u_int8_decl="typedef $db_cv_uint8 u_int8_t;"
fi
AC_SUBST(u_int16_decl)
AC_CACHE_CHECK([for u_int16_t], db_cv_uint16, [dnl
AC_TRY_COMPILE([#include <sys/types.h>], u_int16_t foo;,
[db_cv_uint16=yes],
AC_TRY_RUN([main(){exit(sizeof(unsigned short) != 2);}],
[db_cv_uint16="unsigned short"],
AC_TRY_RUN([main(){exit(sizeof(unsigned int) != 2);}],
[db_cv_uint16="unsigned int"], [db_cv_uint16=no])))])
if test "$db_cv_uint16" = no; then
AC_MSG_ERROR([No unsigned 16-bit integral type.])
fi
if test "$db_cv_uint16" != yes; then
u_int16_decl="typedef $db_cv_uint16 u_int16_t;"
fi
AC_SUBST(int16_decl)
AC_CACHE_CHECK([for int16_t], db_cv_int16, [dnl
AC_TRY_COMPILE([#include <sys/types.h>], int16_t foo;,
[db_cv_int16=yes],
AC_TRY_RUN([main(){exit(sizeof(short) != 2);}],
[db_cv_int16="short"],
AC_TRY_RUN([main(){exit(sizeof(int) != 2);}],
[db_cv_int16="int"], [db_cv_int16=no])))])
if test "$db_cv_int16" = no; then
AC_MSG_ERROR([No signed 16-bit integral type.])
fi
if test "$db_cv_int16" != yes; then
int16_decl="typedef $db_cv_int16 int16_t;"
fi
AC_SUBST(u_int32_decl)
AC_CACHE_CHECK([for u_int32_t], db_cv_uint32, [dnl
AC_TRY_COMPILE([#include <sys/types.h>], u_int32_t foo;,
[db_cv_uint32=yes],
AC_TRY_RUN([main(){exit(sizeof(unsigned int) != 4);}],
[db_cv_uint32="unsigned int"],
AC_TRY_RUN([main(){exit(sizeof(unsigned long) != 4);}],
[db_cv_uint32="unsigned long"], [db_cv_uint32=no])))])
if test "$db_cv_uint32" = no; then
AC_MSG_ERROR([No unsigned 32-bit integral type.])
fi
if test "$db_cv_uint32" != yes; then
u_int32_decl="typedef $db_cv_uint32 u_int32_t;"
fi
AC_SUBST(int32_decl)
AC_CACHE_CHECK([for int32_t], db_cv_int32, [dnl
AC_TRY_COMPILE([#include <sys/types.h>], int32_t foo;,
[db_cv_int32=yes],
AC_TRY_RUN([main(){exit(sizeof(int) != 4);}],
[db_cv_int32="int"],
AC_TRY_RUN([main(){exit(sizeof(long) != 4);}],
[db_cv_int32="long"], [db_cv_int32=no])))])
if test "$db_cv_int32" = no; then
AC_MSG_ERROR([No signed 32-bit integral type.])
fi
if test "$db_cv_int32" != yes; then
int32_decl="typedef $db_cv_int32 int32_t;"
fi
AC_MSG_CHECKING(if --enable-test option specified)
AC_ARG_ENABLE(test,
[ --enable-test Build the Tcl-based test suite.],
[db_cv_test="$enable_test"], [db_cv_test="no"])
AC_MSG_RESULT($db_cv_test)
if test "$db_cv_test" = yes; then
dnl Try to find the Tk/Tcl library.
dnl
dnl XXX
dnl Some systems require -ldl (Linux, BSD/OS 3.X), and we have to
dnl figure that out. There are two problems here: (1) assume that
dnl loading Tcl_Eval, Tcl_VarEval and Tcl_EvalFile will force a
dnl load error if -ldl or -lm are needed and not there. (2) use
dnl different function names on each test, otherwise we find the
dnl result of the first test in the cache and don't do subsequent
dnl checks.
AC_CHECK_LIB(tcl, Tcl_Eval, [db_cv_tcl="-ltcl"],
[AC_CHECK_LIB(tcl, Tcl_VarEval, [db_cv_tcl="-ltcl -ldl -lm"],
[AC_CHECK_LIB(tcl, Tcl_EvalFile, [db_cv_tcl="-ltcl -lm"],
[db_cv_tcl=no], -lm)], -ldl -lm)])
if test "$db_cv_tcl" = "no"; then
AC_MSG_ERROR([No Tcl library: unable to build test program.])
else
build_additional="dbtest $build_additional"
LIBS="$LIBS $db_cv_tcl"
fi
dnl Check for programs used in testing.
AC_PATH_PROG(db_cv_path_cmp, cmp, missing_cmp)
if test "$db_cv_path_cmp" = missing_cmp; then
AC_MSG_ERROR([No cmp utility found.])
fi
AC_PATH_PROG(db_cv_path_diff, diff, missing_diff)
if test "$db_cv_path_diff" = missing_diff; then
AC_MSG_ERROR([No diff utility found.])
fi
AC_PATH_PROG(db_cv_path_kill, kill, missing_kill)
if test "$db_cv_path_kill" = missing_kill; then
AC_MSG_ERROR([No kill utility found.])
fi
AC_PATH_PROG(db_cv_path_ls, ls, missing_ls)
if test "$db_cv_path_ls" = missing_ls; then
AC_MSG_ERROR([No ls utility found.])
fi
AC_PATH_PROG(db_cv_path_mv, mv, missing_mv)
if test "$db_cv_path_mv" = missing_mv; then
AC_MSG_ERROR([No mv utility found.])
fi
AC_PATH_PROG(db_cv_path_sed, sed, missing_sed)
if test "$db_cv_path_sed" = missing_sed; then
AC_MSG_ERROR([No sed utility found.])
fi
AC_PATH_PROG(db_cv_path_sleep, sleep, missing_sleep)
if test "$db_cv_path_sleep" = missing_sleep; then
AC_MSG_ERROR([No sleep utility found.])
fi
AC_PATH_PROG(db_cv_path_sort, sort, missing_sort)
if test "$db_cv_path_sort" = missing_sort; then
AC_MSG_ERROR([No sort utility found.])
fi
AC_PATH_PROG(db_cv_path_tr, tr, missing_tr)
if test "$db_cv_path_tr" = missing_tr; then
AC_MSG_ERROR([No tr utility found.])
fi
fi
AC_OUTPUT(Makefile include.tcl:../test/include.tcl.src \
db.h:../include/db.h.src db_int.h:../include/db_int.h.src \
db_185.h:../include/db_185.h.src)