*cygwin* ) LN_S='cp -p';;
esac
-dnl
-dnl libgc checks
-dnl
-
-gc_headers=no
-gc=included
-gc_msg="included Boehm"
-use_included_gc=no
+#
+# libgc defaults
+#
libgc_configure_args=
if test -d $srcdir/libgc ; then
- gc_default=included
+ libgc_default=included
else
- gc_default=boehm
+ libgc_default=boehm
fi
# These variables are the CPPFLAGS/CFLAGS passed to libgc's configure
libmono_ldflags="-mms-bitfields -mwindows"
libdl=
libgc_threads=win32
- gc_default=included
+ libgc_default=included
with_sigaltstack=no
+ with_tls=pthread
LN_S=cp
# This forces libgc to use the DllMain based thread registration code on win32
libgc_configure_args="$libgc_configure_args --enable-win32-dllmain=yes"
need_link_unlink=yes
AC_DEFINE(PTHREAD_POINTER_ID)
libdl=
- gc_default=boehm
+ libgc_default=boehm
libgc_threads=pthreads
with_sigaltstack=no
use_sigposix=yes
libmono_cflags="-D_REENTRANT"
libdl=
libgc_threads=pthreads
- gc_default=boehm
+ libgc_default=boehm
use_sigposix=yes
ikvm_native=no
AC_DEFINE(DISABLE_SOCKETS,1,[Disable sockets support])
fi
fi
-AC_ARG_WITH([libgdiplus],
- [ --with-libgdiplus=installed|sibling|<path> Override the libgdiplus used for System.Drawing tests (defaults to installed)],
- [], [with_libgdiplus=installed])
-
-case $with_libgdiplus in
-no|installed) libgdiplus_loc= ;;
-yes|sibling) libgdiplus_loc=`cd ../libgdiplus && pwd`/src/libgdiplus.la ;;
-/*) libgdiplus_loc=$with_libgdiplus ;;
-*) libgdiplus_loc=`pwd`/$with_libgdiplus ;;
-esac
-AC_SUBST([libgdiplus_loc])
-
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
pkg_config_path=
AC_SUBST(BUILD_GLIB_CFLAGS)
AC_SUBST(BUILD_GLIB_LIBS)
-AC_ARG_WITH(gc, [ --with-gc=boehm,included,none Controls the Boehm GC config, default=included],[gc=$with_gc],[gc=$gc_default])
-
# Enable support for fast thread-local storage
# Some systems have broken support, so we allow to disable it.
AC_ARG_WITH(tls, [ --with-tls=__thread,pthread select Thread Local Storage implementation (defaults to __thread)],[],[with_tls=__thread])
AC_MSG_RESULT(no)
])
+dnl
+dnl Boehm GC configuration
+dnl
+
+AC_ARG_WITH(libgc, [ --with-gc=boehm,included,none Controls the Boehm GC config, default=included],[libgc=$with_gc],[libgc=$libgc_default])
+
+AC_ARG_ENABLE(boehm, [ --disable-boehm Disable the Boehm GC.], support_boehm=$enableval,support_boehm=${support_boehm:-yes})
+AM_CONDITIONAL(SUPPORT_BOEHM, test x$support_boehm = xyes)
+
AC_ARG_ENABLE(parallel-mark, [ --enable-parallel-mark Enables GC Parallel Marking], enable_parallel_mark=$enableval, enable_parallel_mark=$parallel_mark)
if test x$enable_parallel_mark = xyes; then
libgc_configure_args="$libgc_configure_args --enable-parallel-mark"
fi
-AC_ARG_ENABLE(boehm, [ --disable-boehm Disable the Boehm GC.], support_boehm=$enableval,support_boehm=${support_boehm:-yes})
-AM_CONDITIONAL(SUPPORT_BOEHM, test x$support_boehm = xyes)
-
-dnl
-dnl Boehm GC configuration
-dnl
+gc_headers=no
+gc_msg=""
+use_included_gc=no
LIBGC_CPPFLAGS=
LIBGC_LIBS=
LIBGC_STATIC_LIBS=
libgc_dir=
-case "x$gc" in
+case "x$libgc" in
xboehm|xbohem|xyes)
AC_CHECK_HEADERS(gc.h gc/gc.h, gc_headers=yes)
AC_CHECK_LIB(gc, GC_malloc, found_boehm="yes",,$libdl)
fi
# check whether we need to explicitly allow
- # thread registering
- AC_CHECK_LIB(gc, GC_allow_register_threads, found_allow_register_threads="yes",,$libdl)
- if test "x$found_allow_register_threads" = "xyes"; then
- AC_DEFINE(HAVE_GC_ALLOW_REGISTER_THREADS, 1, [GC requires thread registration])
- fi
-
+ # thread registering
+ AC_CHECK_LIB(gc, GC_allow_register_threads, found_allow_register_threads="yes",,$libdl)
+ if test "x$found_allow_register_threads" = "xyes"; then
+ AC_DEFINE(HAVE_GC_ALLOW_REGISTER_THREADS, 1, [GC requires thread registration])
+ fi
;;
xincluded)
use_included_gc=yes
- libgc_dir=libgc
+ if test "x$support_boehm" = "xyes"; then
+ libgc_dir=libgc
+ fi
LIBGC_CPPFLAGS='-I$(top_srcdir)/libgc/include'
LIBGC_LIBS='$(top_builddir)/libgc/libmonogc.la'
CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DGC_BUILD -DGC_NOT_DLL"
fi
- gc_msg="bundled Boehm GC with typed GC"
+ gc_msg="Included Boehm GC with typed GC"
if test x$enable_parallel_mark = xyes; then
AC_DEFINE_UNQUOTED(DEFAULT_GC_NAME, "Included Boehm (with typed GC and Parallel Mark)", [GC description])
gc_msg="$gc_msg and parallel mark"
AC_SUBST(BOEHM_DEFINES)
dnl
-dnl End of libgc checks
+dnl End of Boehm GC Configuration
dnl
dnl *************************************
openbsd*|freebsd*)
sgen_supported=true
;;
+ mingw*)
+ sgen_supported=true
+ ;;
esac
case "$host" in
x86_64-*-nacl*)
ACCESS_UNALIGNED="no"
JIT_SUPPORTED=yes
CPPFLAGS="$CPPFLAGS -D__ARM_EABI__"
- # libgc's gc_locks.h depends on this
- CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC"
sgen_supported=true
;;
arm*-linux*)
sizeof_register=8
target_byte_order=G_BIG_ENDIAN
;;
-
powerpc64-xbox360-linux-gnu)
TARGET=POWERPC64
arch_target=powerpc64
AC_SUBST(libsuffix)
+AC_ARG_WITH([libgdiplus],
+ [ --with-libgdiplus=installed|sibling|<path> Override the libgdiplus used for System.Drawing tests (defaults to installed)],
+ [], [with_libgdiplus=installed])
+
+# default install location
+libgdiplus_install_loc=libgdiplus${libsuffix}
+case $with_libgdiplus in
+ no|installed)
+ libgdiplus_loc=
+ ;;
+
+ yes|sibling)
+ libgdiplus_loc=`cd ../libgdiplus && pwd`/src/libgdiplus.la
+ ;;
+
+ /*) # absolute path, assume it is an install location
+ libgdiplus_loc=$with_libgdiplus
+ libgdiplus_install_loc=$with_libgdiplus
+ ;;
+
+ *)
+ libgdiplus_loc=`pwd`/$with_libgdiplus
+ ;;
+esac
+AC_SUBST([libgdiplus_loc])
+AC_SUBST([libgdiplus_install_loc])
+
AC_ARG_ENABLE(icall-symbol-map,[ --enable-icall-symbol-map Generate tables which map icall functions to their C symbols], icall_symbol_map=$enableval, icall_symbol_map=no)
if test "x$icall_symbol_map" = "xyes"; then
AC_DEFINE(ENABLE_ICALL_SYMBOL_MAP, 1, [Icall symbol map enabled])
CPPFLAGS="$CPPFLAGS -DNO_UNALIGNED_ACCESS"
fi
-case "x$gc" in
+case "x$libgc" in
xincluded)
# Pass CPPFLAGS to libgc configure
# We should use a separate variable for this to avoid passing useless and
# (infinite recursion, undefined parking behavior, etc)
TMP_CPPFLAGS=`echo $TMP_CPPFLAGS | sed -e 's/-finstrument-for-thread-suspension//g'`
ac_configure_args="$ac_configure_args --disable-embed-check --with-libgc-threads=$libgc_threads $libgc_configure_args \"CPPFLAGS_FOR_LIBGC=$TMP_CPPFLAGS\" \"CFLAGS_FOR_LIBGC=$CFLAGS_FOR_LIBGC\""
- AC_CONFIG_SUBDIRS(libgc)
+ if test "x$support_boehm" = "xyes"; then
+ AC_CONFIG_SUBDIRS(libgc)
+ fi
;;
esac
AM_CONDITIONAL(JIT_SUPPORTED, test x$JIT_SUPPORTED = xyes)
AM_CONDITIONAL(INTERP_SUPPORTED, test x$interp_wanted = xtrue)
-AM_CONDITIONAL(INCLUDED_LIBGC, test x$gc = xincluded)
+AM_CONDITIONAL(INCLUDED_LIBGC, test x$libgc = xincluded)
AC_SUBST(LIBC)
AC_SUBST(INTL)
mcs source: $mcsdir
Engine:
+ Host: $host
+ Target: $target
GC: $gc_msg
TLS: $with_tls
SIGALTSTACK: $with_sigaltstack