version 1.1, 2002/07/24 08:00:08 |
version 1.2, 2003/06/24 05:11:32 |
|
|
# modified is included with the above copyright notice. |
# modified is included with the above copyright notice. |
# |
# |
# Original author: Tom Tromey |
# Original author: Tom Tromey |
|
# Modified by: Grzegorz Jakacki <jakacki at acm dot org> |
|
|
dnl Process this file with autoconf to produce configure. |
dnl Process this file with autoconf to produce configure. |
|
|
AC_INIT(gc, 6.1, Hans_Boehm@hp.com) |
# Initialization |
|
# ============== |
|
|
AM_INIT_AUTOMAKE(gc, 6.1, no-define) |
AC_INIT(gc,6.2alpha6,Hans.Boehm@hp.com) |
|
## version must conform to [0-9]+[.][0-9]+(alpha[0-9]+)? |
AC_CONFIG_SRCDIR(gcj_mlc.c) |
AC_CONFIG_SRCDIR(gcj_mlc.c) |
|
AC_CANONICAL_TARGET |
|
AC_PREREQ(2.53) |
|
AC_REVISION($Revision$) |
|
GC_SET_VERSION |
|
AM_INIT_AUTOMAKE |
|
|
dnl Can't be done in GC_CONFIGURE because that confuses automake. |
AC_SUBST(PACKAGE) |
dnl AC_CONFIG_AUX_DIR(.) |
AC_SUBST(GC_VERSION) |
|
|
AC_CANONICAL_HOST |
|
|
|
AC_PROG_CC |
AC_PROG_CC |
AC_PROG_CXX |
AC_PROG_CXX |
|
|
AM_PROG_AS |
AM_PROG_AS |
AC_CHECK_TOOL(AR, ar) |
AC_CHECK_TOOL(AR, ar) |
AC_CHECK_TOOL(RANLIB, ranlib, :) |
AC_CHECK_TOOL(RANLIB, ranlib, :) # :) |
|
|
AC_PROG_INSTALL |
AC_PROG_INSTALL |
|
|
AM_MAINTAINER_MODE |
AM_MAINTAINER_MODE |
|
|
if test "[$]{srcdir}" = "."; then |
|
if test "[$]{with_target_subdir}" != "." -a -n "[$]{with_target_subdir}"; then |
|
gc_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" |
|
else |
|
gc_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" |
|
fi |
|
else |
|
gc_basedir="[$]{srcdir}/$1" |
|
fi |
|
AC_SUBST(gc_basedir) |
|
|
|
# We need AC_EXEEXT to keep automake happy in cygnus mode. However, |
|
# at least currently, we never actually build a program, so we never |
|
# need to use $(EXEEXT). Moreover, the test for EXEEXT normally |
|
# fails, because we are probably configuring with a cross compiler |
|
# which can't create executables. So we include AC_EXEEXT to keep |
|
# automake happy, but we don't execute it, since we don't care about |
|
# the result. |
|
if false; then |
|
# autoconf 2.50 runs AC_EXEEXT by default, and the macro expands |
|
# to nothing, so nothing would remain between `then' and `fi' if it |
|
# were not for the `:' below. |
|
: |
|
AC_EXEEXT |
|
fi |
|
|
|
. [$]{srcdir}/configure.host |
. [$]{srcdir}/configure.host |
|
|
GC_CFLAGS=${gc_cflags} |
GC_CFLAGS=${gc_cflags} |
Line 84 AC_ARG_ENABLE(parallel-mark, |
|
Line 63 AC_ARG_ENABLE(parallel-mark, |
|
esac] |
esac] |
) |
) |
|
|
|
AC_ARG_ENABLE(cplusplus, |
|
[ --enable-cplusplus install C++ support], |
|
) |
|
|
INCLUDES=-I${srcdir}/include |
INCLUDES=-I${srcdir}/include |
THREADLIBS= |
THREADLIBS= |
case "$THREADS" in |
case "$THREADS" in |
Line 94 case "$THREADS" in |
|
Line 77 case "$THREADS" in |
|
THREADS=posix |
THREADS=posix |
THREADLIBS=-lpthread |
THREADLIBS=-lpthread |
case "$host" in |
case "$host" in |
x86-*-linux* | ia64-*-linux* | i586-*-linux* | i686-*-linux*) |
x86-*-linux* | ia64-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* | alpha-*-linux*) |
AC_DEFINE(GC_LINUX_THREADS) |
AC_DEFINE(GC_LINUX_THREADS) |
AC_DEFINE(_REENTRANT) |
AC_DEFINE(_REENTRANT) |
if test "${enable_parallel_mark}" = yes; then |
if test "${enable_parallel_mark}" = yes; then |
Line 106 case "$THREADS" in |
|
Line 89 case "$THREADS" in |
|
AC_DEFINE(GC_LINUX_THREADS) |
AC_DEFINE(GC_LINUX_THREADS) |
AC_DEFINE(_REENTRANT) |
AC_DEFINE(_REENTRANT) |
;; |
;; |
|
*-*-aix*) |
|
AC_DEFINE(GC_AIX_THREADS) |
|
AC_DEFINE(_REENTRANT) |
|
;; |
*-*-hpux*) |
*-*-hpux*) |
AC_MSG_WARN("Only HP/UX 11 threads are supported.") |
AC_MSG_WARN("Only HP/UX 11 threads are supported.") |
AC_DEFINE(GC_HPUX_THREADS) |
AC_DEFINE(GC_HPUX_THREADS) |
Line 132 case "$THREADS" in |
|
Line 119 case "$THREADS" in |
|
*-*-cygwin*) |
*-*-cygwin*) |
AC_DEFINE(GC_WIN32_THREADS) |
AC_DEFINE(GC_WIN32_THREADS) |
;; |
;; |
|
*-*-darwin*) |
|
AC_DEFINE(GC_DARWIN_THREADS) |
|
AC_DEFINE(THREAD_LOCAL_ALLOC) |
|
if test "${enable_parallel_mark}" = yes; then |
|
AC_DEFINE(PARALLEL_MARK) |
|
fi |
|
;; |
|
*-*-osf*) |
|
AC_DEFINE(GC_OSF1_THREADS) |
|
if test "${enable_parallel_mark}" = yes; then |
|
AC_DEFINE(PARALLEL_MARK) |
|
AC_DEFINE(THREAD_LOCAL_ALLOC) |
|
# May want to enable it in other cases, too. |
|
# Measurements havent yet been done. |
|
fi |
|
INCLUDES="$INCLUDES -pthread" |
|
THREADLIBS="-lpthread -lrt" |
|
;; |
esac |
esac |
;; |
;; |
win32) |
win32) |
Line 141 case "$THREADS" in |
|
Line 146 case "$THREADS" in |
|
;; |
;; |
dgux386) |
dgux386) |
THREADS=dgux386 |
THREADS=dgux386 |
|
AC_MSG_RESULT($THREADLIBS) |
# Use pthread GCC switch |
# Use pthread GCC switch |
THREADLIBS=-pthread |
THREADLIBS=-pthread |
if test "${enable_parallel_mark}" = yes; then |
if test "${enable_parallel_mark}" = yes; then |
Line 161 case "$THREADS" in |
|
Line 167 case "$THREADS" in |
|
esac |
esac |
AC_SUBST(THREADLIBS) |
AC_SUBST(THREADLIBS) |
|
|
AC_CHECK_LIB(dl, dlopen, EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl") |
case "$host" in |
|
powerpc-*-darwin*) |
|
powerpc_darwin=true |
|
;; |
|
esac |
|
AM_CONDITIONAL(POWERPC_DARWIN,test x$powerpc_darwin = xtrue) |
|
|
|
# We never want libdl on darwin. It is a fake libdl that just ends up making |
|
# dyld calls anyway |
|
case "$host" in |
|
*-*-darwin*) ;; |
|
*) |
|
AC_CHECK_LIB(dl, dlopen, EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl") |
|
;; |
|
esac |
|
|
AC_SUBST(EXTRA_TEST_LIBS) |
AC_SUBST(EXTRA_TEST_LIBS) |
|
|
target_all=libgc.la |
target_all=libgc.la |
Line 178 TARGET_ECOS="$with_ecos" |
|
Line 199 TARGET_ECOS="$with_ecos" |
|
) |
) |
|
|
addobjs= |
addobjs= |
|
addlibs= |
|
addincludes= |
|
addtests= |
CXXINCLUDES= |
CXXINCLUDES= |
case "$TARGET_ECOS" in |
case "$TARGET_ECOS" in |
no) |
no) |
Line 188 case "$TARGET_ECOS" in |
|
Line 212 case "$TARGET_ECOS" in |
|
addobjs="$addobjs ecos.lo" |
addobjs="$addobjs ecos.lo" |
;; |
;; |
esac |
esac |
|
|
|
if test "${enable_cplusplus}" = yes; then |
|
addincludes="$addincludes include/gc_cpp.h include/gc_allocator.h" |
|
addtests="$addtests test_cpp" |
|
fi |
|
|
|
AM_CONDITIONAL(CPLUSPLUS, test "${enable_cplusplus}" = yes) |
|
|
AC_SUBST(CXX) |
AC_SUBST(CXX) |
|
|
AC_SUBST(INCLUDES) |
AC_SUBST(INCLUDES) |
AC_SUBST(CXXINCLUDES) |
AC_SUBST(CXXINCLUDES) |
|
|
machdep= |
# Configuration of shared libraries |
|
# |
|
AC_MSG_CHECKING(whether to build shared libraries) |
|
AC_ENABLE_SHARED |
|
|
case "$host" in |
case "$host" in |
alpha-*-openbsd*) |
alpha-*-openbsd*) |
AC_DISABLE_SHARED |
enable_shared=no |
|
AC_MSG_RESULT(no) |
;; |
;; |
*) |
*) |
AC_ENABLE_SHARED |
AC_MSG_RESULT(yes) |
;; |
;; |
esac |
esac |
|
|
|
# Configuration of machine-dependent code |
|
# |
|
AC_MSG_CHECKING(which machine-dependent code should be used) |
|
machdep= |
case "$host" in |
case "$host" in |
alpha-*-openbsd*) |
alpha-*-openbsd*) |
machdep="alpha_mach_dep.lo" |
machdep="alpha_mach_dep.lo" |
|
|
AC_MSG_WARN(OpenBSD/Alpha without dlopen(). Shared library support is disabled) |
AC_MSG_WARN(OpenBSD/Alpha without dlopen(). Shared library support is disabled) |
fi |
fi |
;; |
;; |
alpha*-*-*) |
alpha*-*-linux*) |
machdep="alpha_mach_dep.lo" |
machdep="alpha_mach_dep.lo" |
;; |
;; |
i?86-*-solaris2.[[89]]*) |
i?86-*-solaris2.[[89]]*) |
|
|
;; |
;; |
mips-nec-sysv*|mips-unknown-sysv*) |
mips-nec-sysv*|mips-unknown-sysv*) |
;; |
;; |
|
mips*-*-linux*) |
|
;; |
mips-*-*) |
mips-*-*) |
machdep="mips_sgi_mach_dep.lo" |
machdep="mips_sgi_mach_dep.lo" |
AC_DEFINE(NO_EXECUTE_PERMISSION) |
AC_DEFINE(NO_EXECUTE_PERMISSION) |
|
|
;; |
;; |
esac |
esac |
if test x"$machdep" = x; then |
if test x"$machdep" = x; then |
|
AC_MSG_RESULT($machdep) |
machdep="mach_dep.lo" |
machdep="mach_dep.lo" |
fi |
fi |
addobjs="$addobjs $machdep" |
addobjs="$addobjs $machdep" |
AC_SUBST(addobjs) |
AC_SUBST(addobjs) |
|
AC_SUBST(addincludes) |
|
AC_SUBST(addlibs) |
|
AC_SUBST(addtests) |
|
|
AC_PROG_LIBTOOL |
AC_PROG_LIBTOOL |
|
|
dnl checks for AViiON Machines running DGUX |
# |
|
# Check for AViiON Machines running DGUX |
|
# |
AC_MSG_CHECKING(if host is AViiON running DGUX) |
AC_MSG_CHECKING(if host is AViiON running DGUX) |
ac_is_dgux=no |
ac_is_dgux=no |
AC_CHECK_HEADER(sys/dg_sys_info.h, |
AC_CHECK_HEADER(sys/dg_sys_info.h, |
[ac_is_dgux=yes;]) |
[ac_is_dgux=yes;]) |
|
|
|
AC_MSG_RESULT($ac_is_dgux) |
|
## :GOTCHA: we do not check anything but sys/dg_sys_info.h |
if test $ac_is_dgux = yes; then |
if test $ac_is_dgux = yes; then |
if test "$enable_full_debug" = "yes"; then |
if test "$enable_full_debug" = "yes"; then |
CFLAGS="-g -mstandard -DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" |
CFLAGS="-g -mstandard -DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" |
CXXFLAGS="-g -mstandard -DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" |
CXXFLAGS="-g -mstandard -DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" |
else |
else |
CFLAGS="-DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" |
CFLAGS="-DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" |
CXXFLAGS="-DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" |
CXXFLAGS="-DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" |
fi |
fi |
AC_SUBST(CFLAGS) |
AC_SUBST(CFLAGS) |
AC_SUBST(CXXFLAGS) |
AC_SUBST(CXXFLAGS) |
fi |
fi |
|
|
dnl We use these options to decide which functions to include. |
dnl We use these options to decide which functions to include. |
Line 278 AC_ARG_WITH(target-subdir, |
|
Line 328 AC_ARG_WITH(target-subdir, |
|
AC_ARG_WITH(cross-host, |
AC_ARG_WITH(cross-host, |
[ --with-cross-host=HOST configuring with a cross compiler]) |
[ --with-cross-host=HOST configuring with a cross compiler]) |
|
|
AM_MAINTAINER_MODE |
|
# automake wants to see AC_EXEEXT. But we don't need it. And having |
# automake wants to see AC_EXEEXT. But we don't need it. And having |
# it is actually a problem, because the compiler we're passed can't |
# it is actually a problem, because the compiler we're passed can't |
# necessarily do a full link. So we fool automake here. |
# necessarily do a full link. So we fool automake here. |
|
|
AC_EXEEXT |
AC_EXEEXT |
fi |
fi |
|
|
AC_MSG_CHECKING([for threads package to use]) |
|
|
|
dnl As of 4.13a2, the collector will not properly work on Solaris when |
dnl As of 4.13a2, the collector will not properly work on Solaris when |
dnl built with gcc and -O. So we remove -O in the appropriate case. |
dnl built with gcc and -O. So we remove -O in the appropriate case. |
|
dnl |
|
AC_MSG_CHECKING(whether Solaris gcc optimization fix is necessary) |
case "$host" in |
case "$host" in |
sparc-sun-solaris2*) |
sparc-sun-solaris2*) |
if test "$GCC" = yes; then |
if test "$GCC" = yes; then |
|
AC_MSG_RESULT(yes) |
new_CFLAGS= |
new_CFLAGS= |
for i in $CFLAGS; do |
for i in $CFLAGS; do |
case "$i" in |
case "$i" in |
|
|
esac |
esac |
done |
done |
CFLAGS="$new_CFLAGS" |
CFLAGS="$new_CFLAGS" |
|
else |
|
AC_MSG_RESULT(no) |
fi |
fi |
;; |
;; |
|
*) AC_MSG_RESULT(no) ;; |
esac |
esac |
|
|
dnl We need to override the top-level CFLAGS. This is how we do it. |
dnl We need to override the top-level CFLAGS. This is how we do it. |
Line 348 AC_ARG_ENABLE(full-debug, |
|
Line 401 AC_ARG_ENABLE(full-debug, |
|
ia64-*-linux* ) |
ia64-*-linux* ) |
AC_DEFINE(MAKE_BACK_GRAPH) |
AC_DEFINE(MAKE_BACK_GRAPH) |
;; |
;; |
x86-*-linux* | i586-*-linux* | i686-*-linux* ) |
x86-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* ) |
AC_DEFINE(MAKE_BACK_GRAPH) |
AC_DEFINE(MAKE_BACK_GRAPH) |
AC_MSG_WARN("Client must not use -fomit-frame-pointer.") |
AC_MSG_WARN("Client must not use -fomit-frame-pointer.") |
AC_DEFINE(SAVE_CALL_COUNT, 8) |
AC_DEFINE(SAVE_CALL_COUNT, 8) |
Line 366 if test "${enable_redirect_malloc}" = yes; then |
|
Line 419 if test "${enable_redirect_malloc}" = yes; then |
|
if test "${enable_full_debug}" = yes; then |
if test "${enable_full_debug}" = yes; then |
AC_DEFINE(REDIRECT_MALLOC, GC_debug_malloc_replacement) |
AC_DEFINE(REDIRECT_MALLOC, GC_debug_malloc_replacement) |
AC_DEFINE(REDIRECT_REALLOC, GC_debug_realloc_replacement) |
AC_DEFINE(REDIRECT_REALLOC, GC_debug_realloc_replacement) |
|
AC_DEFINE(REDIRECT_FREE, GC_debug_free) |
else |
else |
AC_DEFINE(REDIRECT_MALLOC, GC_malloc) |
AC_DEFINE(REDIRECT_MALLOC, GC_malloc) |
fi |
fi |
fi |
fi |
|
|
AM_CONDITIONAL(USE_LIBDIR, test -z "$with_cross_host") |
AC_ARG_ENABLE(gc-assertions, |
|
[ --enable-gc-assertions collector-internal assertion checking]) |
if test "${multilib}" = "yes"; then |
if test "${enable_gc_assertions}" = yes; then |
multilib_arg="--enable-multilib" |
AC_DEFINE(GC_ASSERTIONS) |
else |
|
multilib_arg= |
|
fi |
fi |
|
|
AC_OUTPUT(Makefile,, |
AM_CONDITIONAL(USE_LIBDIR, test -z "$with_cross_host") |
|
|
|
AC_OUTPUT([Makefile doc/Makefile include/Makefile],, |
srcdir=${srcdir} |
srcdir=${srcdir} |
host=${host} |
host=${host} |
with_multisubdir=${with_multisubdir} |
|
ac_configure_args="${multilib_arg} ${ac_configure_args}" |
|
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} |
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} |
gc_basedir=${gc_basedir} |
|
CC="${CC}" |
CC="${CC}" |
DEFS="$DEFS" |
DEFS="$DEFS" |
) |
) |