aboutsummaryrefslogtreecommitdiffstats
path: root/gc/configure.in
diff options
context:
space:
mode:
Diffstat (limited to 'gc/configure.in')
-rw-r--r--gc/configure.in169
1 files changed, 142 insertions, 27 deletions
diff --git a/gc/configure.in b/gc/configure.in
index aef5ebe..515dae1 100644
--- a/gc/configure.in
+++ b/gc/configure.in
@@ -13,28 +13,46 @@
dnl Process this file with autoconf to produce configure.
-AC_INIT(gcj_mlc.c)
+AC_INIT(gc, 6.1, Hans_Boehm@hp.com)
+
+AM_INIT_AUTOMAKE(gc, 6.1, no-define)
+
+AC_CONFIG_SRCDIR(gcj_mlc.c)
dnl Can't be done in GC_CONFIGURE because that confuses automake.
-AC_CONFIG_AUX_DIR(.)
+dnl AC_CONFIG_AUX_DIR(.)
-AC_CANONICAL_SYSTEM
+AC_CANONICAL_HOST
-GC_CONFIGURE(.)
+AC_PROG_CC
+AC_PROG_CXX
-AM_PROG_LIBTOOL
+AM_PROG_AS
+AC_CHECK_TOOL(AR, ar)
+AC_CHECK_TOOL(RANLIB, ranlib, :)
-dnl We use these options to decide which functions to include.
-AC_ARG_WITH(target-subdir,
-[ --with-target-subdir=SUBDIR
- configuring with a cross compiler])
-AC_ARG_WITH(cross-host,
-[ --with-cross-host=HOST configuring with a cross compiler])
+AC_PROG_INSTALL
AM_MAINTAINER_MODE
-# 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
-# necessarily do a full link. So we fool automake here.
+
+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
@@ -43,7 +61,11 @@ if false; then
AC_EXEEXT
fi
-AC_MSG_CHECKING([for threads package to use])
+. [$]{srcdir}/configure.host
+
+GC_CFLAGS=${gc_cflags}
+AC_SUBST(GC_CFLAGS)
+
AC_ARG_ENABLE(threads, [ --enable-threads=TYPE choose threading package],
THREADS=$enableval,
[ AC_MSG_CHECKING([for thread model used by GCC])
@@ -75,7 +97,7 @@ case "$THREADS" in
x86-*-linux* | ia64-*-linux* | i586-*-linux* | i686-*-linux*)
AC_DEFINE(GC_LINUX_THREADS)
AC_DEFINE(_REENTRANT)
- if test "${enable_parallel_mark}"; then
+ if test "${enable_parallel_mark}" = yes; then
AC_DEFINE(PARALLEL_MARK)
fi
AC_DEFINE(THREAD_LOCAL_ALLOC)
@@ -107,9 +129,30 @@ case "$THREADS" in
*-*-irix*)
AC_DEFINE(GC_IRIX_THREADS)
;;
+ *-*-cygwin*)
+ AC_DEFINE(GC_WIN32_THREADS)
+ ;;
esac
;;
- decosf1 | irix | mach | os2 | solaris | win32 | dce | vxworks)
+ win32)
+ AC_DEFINE(GC_WIN32_THREADS)
+ dnl Wine getenv may not return NULL for missing entry
+ AC_DEFINE(NO_GETENV)
+ ;;
+ dgux386)
+ THREADS=dgux386
+ # Use pthread GCC switch
+ THREADLIBS=-pthread
+ if test "${enable_parallel_mark}" = yes; then
+ AC_DEFINE(PARALLEL_MARK)
+ fi
+ AC_DEFINE(THREAD_LOCAL_ALLOC)
+ AC_DEFINE(GC_DGUX386_THREADS)
+ AC_DEFINE(DGUX_THREADS)
+ # Enable _POSIX4A_DRAFT10_SOURCE with flag -pthread
+ INCLUDES="-pthread $INCLUDES"
+ ;;
+ decosf1 | irix | mach | os2 | solaris | dce | vxworks)
AC_MSG_ERROR(thread package $THREADS not yet supported)
;;
*)
@@ -151,21 +194,29 @@ AC_SUBST(INCLUDES)
AC_SUBST(CXXINCLUDES)
machdep=
+
case "$host" in
-# alpha_mach_dep.s assumes that pointers are not saved in fp registers.
-# Gcc on a 21264 can spill pointers to fp registers. Oops.
-# alpha*-*-*)
-# machdep="alpha_mach_dep.lo"
-# ;;
- i?86-*-solaris2.[[89]]*)
- AC_DEFINE(SOLARIS25_PROC_VDB_BUG_FIXED)
- ;;
alpha-*-openbsd*)
+ AC_DISABLE_SHARED
+ ;;
+ *)
+ AC_ENABLE_SHARED
+ ;;
+esac
+
+case "$host" in
+ alpha-*-openbsd*)
+ machdep="alpha_mach_dep.lo"
if test x"${ac_cv_lib_dl_dlopen}" != xyes ; then
AC_MSG_WARN(OpenBSD/Alpha without dlopen(). Shared library support is disabled)
- AM_DISABLE_SHARED
fi
;;
+ alpha*-*-*)
+ machdep="alpha_mach_dep.lo"
+ ;;
+ i?86-*-solaris2.[[89]]*)
+ AC_DEFINE(SOLARIS25_PROC_VDB_BUG_FIXED)
+ ;;
mipstx39-*-elf*)
machdep="mips_ultrix_mach_dep.lo"
AC_DEFINE(STACKBASE, __stackbase)
@@ -174,13 +225,22 @@ case "$host" in
mips-dec-ultrix*)
machdep="mips_ultrix_mach-dep.lo"
;;
+ mips-nec-sysv*|mips-unknown-sysv*)
+ ;;
mips-*-*)
machdep="mips_sgi_mach_dep.lo"
AC_DEFINE(NO_EXECUTE_PERMISSION)
;;
+ sparc-*-netbsd*)
+ machdep="sparc_netbsd_mach_dep.lo"
+ ;;
sparc-sun-solaris2.3*)
+ machdep="sparc_mach_dep.lo"
AC_DEFINE(SUNOS53_SHARED_LIB)
;;
+ sparc-sun-solaris2.*)
+ machdep="sparc_mach_dep.lo"
+ ;;
ia64-*-*)
machdep="mach_dep.lo ia64_save_regs_in_stack.lo"
;;
@@ -191,6 +251,47 @@ fi
addobjs="$addobjs $machdep"
AC_SUBST(addobjs)
+AC_PROG_LIBTOOL
+
+dnl checks for AViiON Machines running DGUX
+AC_MSG_CHECKING(if host is AViiON running DGUX)
+ac_is_dgux=no
+AC_CHECK_HEADER(sys/dg_sys_info.h,
+[ac_is_dgux=yes;])
+
+if test $ac_is_dgux = yes; then
+ if test "$enable_full_debug" = "yes"; then
+ CFLAGS="-g -mstandard -DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2"
+ CXXFLAGS="-g -mstandard -DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2"
+ else
+ CFLAGS="-DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2"
+ CXXFLAGS="-DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2"
+ fi
+ AC_SUBST(CFLAGS)
+ AC_SUBST(CXXFLAGS)
+fi
+
+dnl We use these options to decide which functions to include.
+AC_ARG_WITH(target-subdir,
+[ --with-target-subdir=SUBDIR
+ configuring with a cross compiler])
+AC_ARG_WITH(cross-host,
+[ --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
+# it is actually a problem, because the compiler we're passed can't
+# necessarily do a full link. So we fool automake here.
+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
+
+AC_MSG_CHECKING([for threads package to use])
+
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.
case "$host" in
@@ -252,9 +353,24 @@ AC_ARG_ENABLE(full-debug,
AC_MSG_WARN("Client must not use -fomit-frame-pointer.")
AC_DEFINE(SAVE_CALL_COUNT, 8)
;;
+ i[3456]86-*-dgux*)
+ AC_DEFINE(MAKE_BACK_GRAPH)
+ ;;
esac ]
fi)
+AC_ARG_ENABLE(redirect-malloc,
+[ --enable-redirect-malloc redirect malloc and friends to GC routines])
+
+if test "${enable_redirect_malloc}" = yes; then
+ if test "${enable_full_debug}" = yes; then
+ AC_DEFINE(REDIRECT_MALLOC, GC_debug_malloc_replacement)
+ AC_DEFINE(REDIRECT_REALLOC, GC_debug_realloc_replacement)
+ else
+ AC_DEFINE(REDIRECT_MALLOC, GC_malloc)
+ fi
+fi
+
AM_CONDITIONAL(USE_LIBDIR, test -z "$with_cross_host")
if test "${multilib}" = "yes"; then
@@ -266,7 +382,6 @@ fi
AC_OUTPUT(Makefile,,
srcdir=${srcdir}
host=${host}
-target=${target}
with_multisubdir=${with_multisubdir}
ac_configure_args="${multilib_arg} ${ac_configure_args}"
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}