[xbuild] Fix bug #674630.
[mono.git] / configure.in
index 4a9809bce9d14524ded4b46500d0a16d2dca8bce..c14339f267d80c8b9a8e2b9b2f1f621734899a05 100644 (file)
@@ -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
@@ -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 <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 ******************************
@@ -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?))
@@ -2061,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
@@ -2074,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([], [
@@ -2094,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"
@@ -2135,7 +2144,6 @@ case "$host" in
                TARGET=AMD64;
                arch_target=amd64;
                JIT_SUPPORTED=yes
-               jit_wanted=true
                case $host_os in
                  linux*)
                        sgen_supported=true
@@ -2145,13 +2153,18 @@ case "$host" in
                        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)])
@@ -2172,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"
@@ -2185,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
@@ -2212,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* )
@@ -2226,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
@@ -2239,7 +2248,6 @@ case "$host" in
                ACCESS_UNALIGNED="no"
                JIT_SUPPORTED=yes
                CPPFLAGS="$CPPFLAGS -DARM_FPU_NONE=1"
-               jit_wanted=true
                sgen_supported=true
                ;;
        arm*-linux*)
@@ -2247,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"
@@ -2265,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"
                ;;
@@ -2301,6 +2307,7 @@ if test "x$host" != "x$target"; then
                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
                ;;
        *)
@@ -2326,6 +2333,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
@@ -2374,22 +2384,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
@@ -2529,13 +2523,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
@@ -2609,11 +2622,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], 
@@ -2641,6 +2660,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])
@@ -2855,6 +2877,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
@@ -2942,6 +2965,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
@@ -2982,7 +3010,6 @@ echo "
 
    Engine:
        GC:            $gc_msg 
-       GLIB:          $with_glib
        TLS:           $with_tls
        SIGALTSTACK:   $with_sigaltstack
        Engine:        $jit_status
@@ -2993,7 +3020,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