X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=configure.in;h=8012c62bcb981f01fba54233e616e7c7fe353186;hb=1b25957fbfc250746c9f46331cc12f971667c9d8;hp=38ea790819d4a11ffb87cc05ebfc67a19eb02003;hpb=deb5bf02c9ab52af12a0ed6147fa55c9468f95dd;p=mono.git diff --git a/configure.in b/configure.in index 38ea790819d..8012c62bcb9 100644 --- a/configure.in +++ b/configure.in @@ -6,7 +6,7 @@ AC_CANONICAL_SYSTEM 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 @@ -196,6 +196,7 @@ case "$host" in 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 @@ -247,12 +248,12 @@ case "$host" in 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" @@ -560,28 +561,15 @@ AC_ARG_WITH(crosspkgdir, [ --with-crosspkgdir=/path/to/pkg-config/dir Chan 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) @@ -611,6 +599,10 @@ if test "x$enable_shared" = "xno"; then 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 @@ -846,6 +838,14 @@ case "x$gc" in 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) @@ -1547,6 +1547,12 @@ if test x$target_win32 = xno; then 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 ], + [ kqueue(); ], + AC_DEFINE(HAVE_KQUEUE, 1, [Have kqueue]) AC_MSG_RESULT(yes), + AC_MSG_RESULT(no))) dnl ****************************** dnl *** Checks for SIOCGIFCONF *** dnl ****************************** @@ -1741,6 +1747,11 @@ if test x$target_win32 = xno; then 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?)) @@ -1980,6 +1991,7 @@ dnl *** NaCl *** 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 @@ -1988,6 +2000,10 @@ 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) @@ -2056,7 +2072,7 @@ X11="libX11.so" sizeof_register="SIZEOF_VOID_P" -jit_wanted=false +jit_wanted=true interp_wanted=false sgen_supported=false case "$host" in @@ -2069,7 +2085,6 @@ case "$host" in arch_target=mips; ACCESS_UNALIGNED="no" JIT_SUPPORTED=yes - jit_wanted=true AC_MSG_CHECKING(for mips n32) AC_TRY_COMPILE([], [ @@ -2089,7 +2104,6 @@ case "$host" in TARGET=X86; arch_target=x86; JIT_SUPPORTED=yes - jit_wanted=true case $host_os in solaris*) LIBC="libc.so" @@ -2121,7 +2135,7 @@ case "$host" in sgen_supported=true AOT_SUPPORTED="yes" ;; - darwin*|openbsd*) + darwin*|openbsd*|freebsd*) sgen_supported=true ;; esac @@ -2130,23 +2144,27 @@ case "$host" in TARGET=AMD64; arch_target=amd64; JIT_SUPPORTED=yes - jit_wanted=true case $host_os in linux*) sgen_supported=true AOT_SUPPORTED="yes" ;; - darwin*|openbsd*) + darwin*|openbsd*|freebsd*) 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)]) @@ -2167,7 +2185,6 @@ case "$host" in 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" @@ -2180,7 +2197,6 @@ case "$host" in TARGET=ALPHA; ACCESS_UNALIGNED="no" JIT_SUPPORTED=yes - jit_wanted=true arch_target=alpha; CFLAGS="$CFLAGS -mieee -O0" case $host_os in @@ -2207,7 +2223,6 @@ case "$host" 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* ) @@ -2221,7 +2236,6 @@ case "$host" in fi arch_target=ppc; JIT_SUPPORTED=yes - jit_wanted=true case $host_os in linux*|darwin*) sgen_supported=true @@ -2233,8 +2247,7 @@ case "$host" in 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*) @@ -2242,15 +2255,14 @@ case "$host" in 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" @@ -2260,7 +2272,6 @@ case "$host" in arch_target=s390x; ACCESS_UNALIGNED="yes" JIT_SUPPORTED=yes - jit_wanted=true sgen_supported=true CFLAGS="$CFLAGS -mbackchain -D__USE_STRING_INLINES" ;; @@ -2291,6 +2302,37 @@ if test "x$host" != "x$target"; then 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 @@ -2314,6 +2356,9 @@ POWERPC64) AC_DEFINE(TARGET_POWERPC, 1, [...]) AC_DEFINE(TARGET_POWERPC64, 1, [...]) ;; +S390x) + AC_DEFINE(TARGET_S390X, 1, [...]) + ;; esac if test "x$sizeof_register" = "x4"; then @@ -2362,22 +2407,6 @@ fi 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 @@ -2517,13 +2546,32 @@ if test ${TARGET} = ARM && test x$cross_compiling = xno && test x$enable_mcs_bui 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 @@ -2548,6 +2596,10 @@ case "x$gc" in 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) ;; @@ -2593,11 +2645,17 @@ fi MOONLIGHT_DEFINES= AC_ARG_WITH(moonlight, [ --with-moonlight=yes|no|only If you want to build Mono for Moonlight (defaults to no)],[ - MOONLIGHT_DEFINES="-DMOONLIGHT -DDISABLE_ASSEMBLY_REMAPPING" + if test x$with_moonlight != xno; then + MOONLIGHT_DEFINES="-DMOONLIGHT -DDISABLE_ASSEMBLY_REMAPPING " + fi ], [with_moonlight=no]) AC_SUBST(MOONLIGHT_DEFINES) - +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_CHECK_HEADER([malloc.h], [AC_DEFINE([HAVE_USR_INCLUDE_MALLOC_H], [1], @@ -2625,6 +2683,9 @@ libmono_ldflags="$libmono_ldflags $LIBS" AM_CONDITIONAL(MOONLIGHT, [test "x$with_moonlight" != "xno"]) AM_CONDITIONAL(ONLY_MOONLIGHT, [test "x$with_moonlight" = "xonly"]) +AM_CONDITIONAL(MOONLIGHT_BOEHM, [test "x$with_moon_gc" = "xboehm"]) +AM_CONDITIONAL(MOONLIGHT_SGEN, [test "x$with_moon_gc" = "xsgen"]) + AM_CONDITIONAL(INSTALL_4_0, [test "x$with_profile4" = xyes]) AM_CONDITIONAL(INSTALL_MONODROID, [test "x$with_monodroid" = xyes]) AM_CONDITIONAL(INSTALL_MONOTOUCH, [test "x$with_monotouch" = xyes]) @@ -2839,6 +2900,7 @@ data/net_4_0/Makefile 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 @@ -2926,6 +2988,11 @@ fi 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 @@ -2966,7 +3033,6 @@ echo " Engine: GC: $gc_msg - GLIB: $with_glib TLS: $with_tls SIGALTSTACK: $with_sigaltstack Engine: $jit_status @@ -2977,7 +3043,7 @@ echo " LLVM Back End: $enable_llvm (dynamically loaded: $enable_loadedllvm) Libraries: - Moon Profile: $with_moonlight + Moon Profile: $with_moonlight ($with_moon_gc) MonoDroid: $with_monodroid MonoTouch: $with_monotouch JNI support: $jdk_headers_found