m4_ifdef([_A][M_PROG_TAR],[_A][M_SET_OPTION([tar-ustar])])
AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(mono,2.9)
+AM_INIT_AUTOMAKE(mono,2.11)
AM_MAINTAINER_MODE
API_VER=2.0
use_sigposix=yes
ikvm_native=no
AC_DEFINE(DISABLE_SOCKETS,1,[Disable sockets support])
+ AC_DEFINE(DISABLE_ATTACH, 1, [Disable agent attach support])
;;
*-*-hpux*)
host_win32=no
if test "x$cross_compiling" = "xyes"; then
has_broken_apple_cpp=yes
fi
- dnl Snow Leopard is horribly broken -- it reports itself as i386-apple-darwin10.0.0, but
+ dnl Snow Leopard is horribly broken -- it reports itself as i386-apple-darwin*, but
dnl its gcc defaults to 64-bit mode. They have also deprecated the usage of ucontext
dnl we need to set some flags to build our 32-bit binaries on 10.6 properly
case "$host" in
- dnl Snow Leopard config.guess reports as this
- i*86-*-darwin10*)
+ dnl Snow Leopard and newer config.guess reports as this
+ i*86-*-darwin*)
BROKEN_DARWIN_FLAGS="-arch i386 -D_XOPEN_SOURCE -mmacosx-version-min=10.5"
CPPFLAGS="$CPPFLAGS $BROKEN_DARWIN_FLAGS"
CFLAGS="$CFLAGS $BROKEN_DARWIN_FLAGS"
fi
)
-AC_ARG_WITH([glib],
- [ --with-glib=embedded|system Choose glib API: system or embedded (default to embedded)],
- [], [with_glib=embedded])
-
ac_configure_args="$ac_configure_args \"CPPFLAGS_FOR_EGLIB=$EGLIB_CPPFLAGS\" \"CFLAGS_FOR_EGLIB=$CFLAGS_FOR_EGLIB\""
AC_CONFIG_SUBDIRS(eglib)
-case $with_glib in
-embedded)
- GLIB_CFLAGS='-I$(top_srcdir)/eglib/src -I$(top_builddir)/eglib/src'
- GLIB_LIBS='-L$(top_builddir)/eglib/src -leglib -lm'
- BUILD_GLIB_CFLAGS="$GLIB_CFLAGS"
- BUILD_GLIB_LIBS="$GLIB_LIBS"
- GMODULE_CFLAGS="$GLIB_CFLAGS"
- GMODULE_LIBS="$GLIB_LIBS"
- ;;
-system)
- AC_MSG_ERROR([--with-glib=system is no longer supported as of Mono 2.8])
- ;;
-*)
- AC_MSG_ERROR([Invalid argument to --with-glib.])
-esac
+GLIB_CFLAGS='-I$(top_srcdir)/eglib/src -I$(top_builddir)/eglib/src'
+GLIB_LIBS='-L$(top_builddir)/eglib/src -leglib -lm'
+BUILD_GLIB_CFLAGS="$GLIB_CFLAGS"
+BUILD_GLIB_LIBS="$GLIB_LIBS"
+GMODULE_CFLAGS="$GLIB_CFLAGS"
+GMODULE_LIBS="$GLIB_LIBS"
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)
with_shared_mono=no
fi
+case $host in
+*nacl* ) with_shared_mono=yes;;
+esac
+
if test "x$host_win32" = "xyes"; then
# Boehm GC requires the runtime to be in its own dll
with_static_mono=no
if test "x$found_gc_enable" = "xyes"; then
BOEHM_DEFINES="-DHAVE_GC_ENABLE $BOEHM_DEFINES"
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
+
;;
xincluded)
AC_DEFINE(HAVE_EPOLL, 1, [epoll supported])
fi
+ havekqueue=no
+ AC_CHECK_FUNCS(kqueue, , AC_MSG_CHECKING(for kqueue in sys/event.h)
+ AC_TRY_LINK([#include <sys/event.h>],
+ [ kqueue(); ],
+ AC_DEFINE(HAVE_KQUEUE, 1, [Have kqueue]) AC_MSG_RESULT(yes),
+ AC_MSG_RESULT(no)))
dnl ******************************
dnl *** Checks for SIOCGIFCONF ***
dnl ******************************
dnl * on xp+
AC_DEFINE(HAVE_GETPROCESSID, 1, [Define if GetProcessId is available])
else
+ dnl *********************************
+ dnl *** Checks for Windows compilation ***
+ dnl *********************************
+ AC_CHECK_HEADERS(winternl.h)
+
jdk_headers_found=no
AC_CHECK_LIB(ws2_32, main, LIBS="$LIBS -lws2_32", AC_ERROR(bad mingw install?))
AC_CHECK_LIB(psapi, main, LIBS="$LIBS -lpsapi", AC_ERROR(bad mingw install?))
dnl **************
AC_ARG_ENABLE(nacl_codegen, [ --enable-nacl-codegen Enable Native Client code generation], enable_nacl_codegen=$enableval, enable_nacl_codegen=no)
+AC_ARG_ENABLE(nacl_gc, [ --enable-nacl-gc Enable Native Client garbage collection], enable_nacl_gc=$enableval, enable_nacl_gc=no)
AM_CONDITIONAL(NACL_CODEGEN, test x$enable_nacl_codegen != xno)
if test "x$enable_nacl_codegen" = "xyes"; then
AC_DEFINE(TARGET_NACL, 1, [...])
else
MONO_NACL_ALIGN_MASK_OFF=0
+ CPPFLAGS="$CPPFLAGS -D__default_codegen__"
+fi
+if test "x$enable_nacl_gc" = "xyes"; then
+ CPPFLAGS="$CPPFLAGS -finstrument-for-thread-suspension -D__native_client_gc__"
fi
AC_SUBST(MONO_NACL_ALIGN_MASK_OFF)
sizeof_register="SIZEOF_VOID_P"
-jit_wanted=false
+jit_wanted=true
interp_wanted=false
sgen_supported=false
case "$host" in
arch_target=mips;
ACCESS_UNALIGNED="no"
JIT_SUPPORTED=yes
- jit_wanted=true
AC_MSG_CHECKING(for mips n32)
AC_TRY_COMPILE([], [
TARGET=X86;
arch_target=x86;
JIT_SUPPORTED=yes
- jit_wanted=true
case $host_os in
solaris*)
LIBC="libc.so"
TARGET=AMD64;
arch_target=amd64;
JIT_SUPPORTED=yes
- jit_wanted=true
case $host_os in
linux*)
sgen_supported=true
sgen_supported=true
;;
esac
+ case "$host" in
+ x86_64-*-nacl*)
+ AC_DEFINE(__mono_ilp32__, 1, [64 bit mode with 4 byte longs and pointers])
+ sizeof_register=8
+ ;;
+ esac
;;
ia64-*-*)
TARGET=IA64
arch_target=ia64
ACCESS_UNALIGNED="no"
JIT_SUPPORTED=yes
- jit_wanted=true
LIBC="libc.so.6.1"
INTL="libc.so.6.1"
AC_CHECK_LIB(unwind, _U_dyn_register, [], [AC_MSG_ERROR(library libunwind not found)])
LIBC="libc.so"
INTL="libintl.so"
esac
- jit_wanted=true
if test x"$GCC" = xyes; then
# We don't support v8 cpus
CFLAGS="$CFLAGS -Wno-cast-align -mcpu=v9"
TARGET=ALPHA;
ACCESS_UNALIGNED="no"
JIT_SUPPORTED=yes
- jit_wanted=true
arch_target=alpha;
CFLAGS="$CFLAGS -mieee -O0"
case $host_os in
arch_target=hppa;
ACCESS_UNALIGNED="no"
JIT_SUPPORTED=yes
- jit_wanted=true
;;
macppc-*-openbsd* | powerpc*-*-linux* | powerpc-*-openbsd* | \
powerpc-*-sysv* | powerpc-*-darwin* | powerpc-*-netbsd* | powerpc-*-freebsd* )
fi
arch_target=ppc;
JIT_SUPPORTED=yes
- jit_wanted=true
case $host_os in
linux*|darwin*)
sgen_supported=true
arch_target=arm;
ACCESS_UNALIGNED="no"
JIT_SUPPORTED=yes
- CPPFLAGS="$CPPFLAGS -DARM_FPU_NONE=1"
- jit_wanted=true
+ CPPFLAGS="$CPPFLAGS -DARM_FPU_VFP=1 -D__ARM_EABI__ -DHAVE_ARMV6=1"
sgen_supported=true
;;
arm*-linux*)
arch_target=arm;
ACCESS_UNALIGNED="no"
JIT_SUPPORTED=yes
- jit_wanted=true
sgen_supported=true
+ AOT_SUPPORTED="yes"
;;
s390-*-linux*)
TARGET=S390;
arch_target=s390;
ACCESS_UNALIGNED="yes"
JIT_SUPPORTED=yes
- jit_wanted=true
sgen_supported=true
# Required CFLAGS for s390[x]. USE_STRING_INLINES is automatic with gcc 4.1
CFLAGS="$CFLAGS -mbackchain -D__USE_STRING_INLINES"
arch_target=s390x;
ACCESS_UNALIGNED="yes"
JIT_SUPPORTED=yes
- jit_wanted=true
sgen_supported=true
CFLAGS="$CFLAGS -mbackchain -D__USE_STRING_INLINES"
;;
sizeof_register=8
target_byte_order=G_BIG_ENDIAN
;;
+ x86_64-*-nacl)
+ TARGET=AMD64
+ arch_target=amd64
+ AC_DEFINE(TARGET_AMD64, 1, [...])
+ AC_DEFINE(MONO_CROSS_COMPILE,1,[The runtime is compiled for cross-compiling mode])
+ AC_DEFINE(__mono_ilp32__, 1, [64 bit mode with 4 byte longs and pointers])
+ sizeof_register=8
+ ;;
+ armv7l-unknown-linux-gnueabi*)
+ # TEGRA
+ TARGET=ARM;
+ arch_target=arm;
+ ACCESS_UNALIGNED="no"
+ JIT_SUPPORTED=yes
+ CPPFLAGS="$CPPFLAGS -DARM_FPU_VFP=1 -D__ARM_EABI__"
+ jit_wanted=true
+ # Can't use tls, since it depends on the runtime detection of tls offsets
+ # in mono-compiler.h
+ with_tls=pthread
+ ;;
+ armv5tel-unknown-linux-gnueabi*)
+ TARGET=ARM;
+ arch_target=arm;
+ ACCESS_UNALIGNED="no"
+ JIT_SUPPORTED=yes
+ CPPFLAGS="$CPPFLAGS -D__ARM_EABI__"
+ jit_wanted=true
+ # Can't use tls, since it depends on the runtime detection of tls offsets
+ # in mono-compiler.h
+ with_tls=pthread
+ ;;
*)
AC_MSG_WARN([Cross compiling is only supported for targets matching 'powerpc64-{ps3,xbox360}-linux-gnu'])
esac
AC_DEFINE(TARGET_POWERPC, 1, [...])
AC_DEFINE(TARGET_POWERPC64, 1, [...])
;;
+S390x)
+ AC_DEFINE(TARGET_S390X, 1, [...])
+ ;;
esac
if test "x$sizeof_register" = "x4"; then
AC_SUBST(SGEN_DEFINES)
AM_CONDITIONAL(SUPPORT_SGEN, test x$buildsgen = xyes)
-AC_ARG_WITH(jit, [ --with-jit=yes,no If you want to build scripts that default to the JIT (defaults to no)],[
- if test x$withval = xyes; then
- jit_wanted=true
- else
- jit_wanted=false
- fi
-])
-
-AC_ARG_WITH(interp, [ --with-interp=yes,no If you want to build scripts that default to the interpreter (defaults to no)],[
- if test x$withval = xyes; then
- interp_wanted=true
- else
- interp_wanted=false
- fi
-])
-
USEJIT=false
if test x$JIT_SUPPORTED = xyes; then
if $jit_wanted; then
dnl ******************************************
AC_MSG_CHECKING(which FPU to use)
- AC_TRY_COMPILE([], [
- __asm__ ("ldfd f0, [r0]");
- ], fpu=FPA, fpu=NONE)
+ ORIG_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -mfpu=vfp -mfloat-abi=softfp"
+ AC_TRY_RUN([
+ int main () { __asm__ ("faddd d7, d6, d7"); return 0; }
+ ], fpu=VFP, fpu=NONE)
+ CFLAGS=$ORIG_CFLAGS
+
+ if test x$fpu = xNONE; then
+ AC_TRY_COMPILE([], [
+ __asm__ ("ldfd f0, [r0]");
+ ], fpu=FPA, fpu=NONE)
+ fi
AC_MSG_RESULT($fpu)
CPPFLAGS="$CPPFLAGS -DARM_FPU_$fpu=1"
unset fpu
+
+ AC_MSG_CHECKING(for ARMV6)
+ AC_TRY_RUN([
+ int main () { __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" : : "r" (0) : "memory"); return 0; }
+ ], armv6=yes, armv6=no)
+
+ AC_MSG_RESULT($armv6)
+ if test ${armv6} = yes; then
+ AC_DEFINE(HAVE_ARMV6, 1, "Host supports ARMV6 instructions")
+ fi
fi
if test ${TARGET} = unknown; then
if test x$TARGET = xSPARC -o x$TARGET = xSPARC64; then
LIBGC_CPPFLAGS=`echo $LIBGC_CPPFLAGS | sed -e 's/-D_FILE_OFFSET_BITS=64//g'`
fi
+ # Don't pass -finstrument-for-thread-suspension in,
+ # if these are instrumented it will be very bad news
+ # (infinite recursion, undefined parking behavior, etc)
+ LIBGC_CPPFLAGS=`echo $LIBGC_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=$LIBGC_CPPFLAGS\" \"CFLAGS_FOR_LIBGC=$CFLAGS_FOR_LIBGC\""
AC_CONFIG_SUBDIRS(libgc)
;;
MOONLIGHT_DEFINES="-DMOONLIGHT -DDISABLE_ASSEMBLY_REMAPPING "
fi
], [with_moonlight=no])
+AC_SUBST(MOONLIGHT_DEFINES)
-MOONLIGHT_GC=boehm
-AC_ARG_WITH(moon_gc, [ --with-moon-gc=boehm,sgen Select the gc to use with Moonlight (defaults to boehm)],[
- case "x$with_moon_gc" in
- xboehm)
- MOONLIGHT_GC=boehm
- MOONLIGHT_DEFINES="$MOONLIGHT_DEFINES $BOEHM_DEFINES"
- ;;
- xsgen)
- MOONLIGHT_GC=sgen
- MOONLIGHT_DEFINES="$MOONLIGHT_DEFINES $SGEN_DEFINES"
- ;;
- *)
- AC_MSG_ERROR([Invalid argument to --with-moon-gc.]) ;;
- esac
+AC_ARG_WITH(moon_gc, [ --with-moon-gc=boehm,sgen Select the gc to use with Moonlight (defaults to boehm)],[
+ if test "x$with_moon_gc" != "xsgen"; then
+ with_moon_gc=boehm
+ fi
], [with_moon_gc=boehm])
-AC_SUBST(MOONLIGHT_DEFINES)
-
AC_CHECK_HEADER([malloc.h],
[AC_DEFINE([HAVE_USR_INCLUDE_MALLOC_H], [1],
[Define to 1 if you have /usr/include/malloc.h.])],,)
data/net_2_0/Browsers/Makefile
data/mint.pc
data/mono-2.pc
+data/monosgen-2.pc
data/mono.pc
data/mono-cairo.pc
data/mono-nunit.pc
enable_system_aot=yes
fi
+ if test "x$enable_loadedllvm" = "xyes"; then
+ # This seems to fail on the x86 buildbots
+ enable_system_aot=no
+ fi
+
if test x$host_win32 = xno -a x$platform_darwin != xyes -a x$enable_system_aot = xyes; then
echo "ENABLE_AOT = 1" >> $mcs_topdir/build/config.make
fi
Engine:
GC: $gc_msg
- GLIB: $with_glib
TLS: $with_tls
SIGALTSTACK: $with_sigaltstack
Engine: $jit_status