summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in157
1 files changed, 100 insertions, 57 deletions
diff --git a/configure.in b/configure.in
index 8e2c949..4f9e0d7 100644
--- a/configure.in
+++ b/configure.in
@@ -10,57 +10,36 @@
# modified is included with the above copyright notice.
#
# Original author: Tom Tromey
+# Modified by: Grzegorz Jakacki <jakacki at acm dot org>
dnl Process this file with autoconf to produce configure.
-AC_INIT(gc, 6.1, Hans_Boehm@hp.com)
-
-AM_INIT_AUTOMAKE(gc, 6.1, no-define)
+# Initialization
+# ==============
+AC_INIT(gc,6.2,Hans.Boehm@hp.com)
+ ## version must conform to [0-9]+[.][0-9]+(alpha[0-9]+)?
AC_CONFIG_SRCDIR(gcj_mlc.c)
+AC_CANONICAL_TARGET
+AC_PREREQ(2.53)
+AC_REVISION($Revision: 1.2 $)
+GC_SET_VERSION
+AM_INIT_AUTOMAKE
-dnl Can't be done in GC_CONFIGURE because that confuses automake.
-dnl AC_CONFIG_AUX_DIR(.)
-
-AC_CANONICAL_HOST
+AC_SUBST(PACKAGE)
+AC_SUBST(GC_VERSION)
AC_PROG_CC
AC_PROG_CXX
AM_PROG_AS
AC_CHECK_TOOL(AR, ar)
-AC_CHECK_TOOL(RANLIB, ranlib, :)
+AC_CHECK_TOOL(RANLIB, ranlib, :) # :)
AC_PROG_INSTALL
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
GC_CFLAGS=${gc_cflags}
@@ -84,6 +63,10 @@ AC_ARG_ENABLE(parallel-mark,
esac]
)
+AC_ARG_ENABLE(cplusplus,
+[ --enable-cplusplus install C++ support],
+)
+
INCLUDES=-I${srcdir}/include
THREADLIBS=
case "$THREADS" in
@@ -106,6 +89,10 @@ case "$THREADS" in
AC_DEFINE(GC_LINUX_THREADS)
AC_DEFINE(_REENTRANT)
;;
+ *-*-aix*)
+ AC_DEFINE(GC_AIX_THREADS)
+ AC_DEFINE(_REENTRANT)
+ ;;
*-*-hpux*)
AC_MSG_WARN("Only HP/UX 11 threads are supported.")
AC_DEFINE(GC_HPUX_THREADS)
@@ -132,6 +119,13 @@ case "$THREADS" in
*-*-cygwin*)
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
@@ -152,6 +146,7 @@ case "$THREADS" in
;;
dgux386)
THREADS=dgux386
+AC_MSG_RESULT($THREADLIBS)
# Use pthread GCC switch
THREADLIBS=-pthread
if test "${enable_parallel_mark}" = yes; then
@@ -163,6 +158,12 @@ case "$THREADS" in
# Enable _POSIX4A_DRAFT10_SOURCE with flag -pthread
INCLUDES="-pthread $INCLUDES"
;;
+ aix)
+ THREADS=posix
+ THREADLIBS=-lpthread
+ AC_DEFINE(GC_AIX_THREADS)
+ AC_DEFINE(_REENTRANT)
+ ;;
decosf1 | irix | mach | os2 | solaris | dce | vxworks)
AC_MSG_ERROR(thread package $THREADS not yet supported)
;;
@@ -172,7 +173,22 @@ case "$THREADS" in
esac
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)
target_all=libgc.la
@@ -189,6 +205,9 @@ TARGET_ECOS="$with_ecos"
)
addobjs=
+addlibs=
+addincludes=
+addtests=
CXXINCLUDES=
case "$TARGET_ECOS" in
no)
@@ -199,22 +218,38 @@ case "$TARGET_ECOS" in
addobjs="$addobjs ecos.lo"
;;
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(INCLUDES)
AC_SUBST(CXXINCLUDES)
-machdep=
+# Configuration of shared libraries
+#
+AC_MSG_CHECKING(whether to build shared libraries)
+AC_ENABLE_SHARED
case "$host" in
alpha-*-openbsd*)
- AC_DISABLE_SHARED
+ enable_shared=no
+ AC_MSG_RESULT(no)
;;
*)
- AC_ENABLE_SHARED
+ AC_MSG_RESULT(yes)
;;
esac
+# Configuration of machine-dependent code
+#
+AC_MSG_CHECKING(which machine-dependent code should be used)
+machdep=
case "$host" in
alpha-*-openbsd*)
machdep="alpha_mach_dep.lo"
@@ -259,29 +294,37 @@ case "$host" in
;;
esac
if test x"$machdep" = x; then
+AC_MSG_RESULT($machdep)
machdep="mach_dep.lo"
fi
addobjs="$addobjs $machdep"
AC_SUBST(addobjs)
+AC_SUBST(addincludes)
+AC_SUBST(addlibs)
+AC_SUBST(addtests)
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_is_dgux=no
AC_CHECK_HEADER(sys/dg_sys_info.h,
[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 "$enable_full_debug" = "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
+ 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
+ AC_SUBST(CFLAGS)
+ AC_SUBST(CXXFLAGS)
fi
dnl We use these options to decide which functions to include.
@@ -291,7 +334,6 @@ AC_ARG_WITH(target-subdir,
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.
@@ -303,13 +345,14 @@ if false; then
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.
+dnl
+AC_MSG_CHECKING(whether Solaris gcc optimization fix is necessary)
case "$host" in
sparc-sun-solaris2*)
if test "$GCC" = yes; then
+ AC_MSG_RESULT(yes)
new_CFLAGS=
for i in $CFLAGS; do
case "$i" in
@@ -321,8 +364,11 @@ case "$host" in
esac
done
CFLAGS="$new_CFLAGS"
+ else
+ AC_MSG_RESULT(no)
fi
;;
+ *) AC_MSG_RESULT(no) ;;
esac
dnl We need to override the top-level CFLAGS. This is how we do it.
@@ -385,21 +431,18 @@ if test "${enable_redirect_malloc}" = yes; then
fi
fi
-AM_CONDITIONAL(USE_LIBDIR, test -z "$with_cross_host")
-
-if test "${multilib}" = "yes"; then
- multilib_arg="--enable-multilib"
-else
- multilib_arg=
+AC_ARG_ENABLE(gc-assertions,
+[ --enable-gc-assertions collector-internal assertion checking])
+if test "${enable_gc_assertions}" = yes; then
+ AC_DEFINE(GC_ASSERTIONS)
fi
-AC_OUTPUT(Makefile,,
+AM_CONDITIONAL(USE_LIBDIR, test -z "$with_cross_host")
+
+AC_OUTPUT([Makefile doc/Makefile include/Makefile],,
srcdir=${srcdir}
host=${host}
-with_multisubdir=${with_multisubdir}
-ac_configure_args="${multilib_arg} ${ac_configure_args}"
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-gc_basedir=${gc_basedir}
CC="${CC}"
DEFS="$DEFS"
)