[mcs] new test
[mono.git] / configure.ac
index 0de87159a127f0997cc18d19a3ebe1ccb01a2181..2e3078be9a4066b3fca12fbc465cc38d3170629c 100644 (file)
@@ -1,7 +1,7 @@
 # Process this file with autoconf to produce a configure script.
 #AC_PREREQ([2.62])
 
-AC_INIT(mono, [3.10.1],
+AC_INIT(mono, [3.99.0],
         [http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono])
 
 AC_CONFIG_SRCDIR([README.md])
@@ -115,9 +115,9 @@ case "$host" in
                        AC_DEFINE(MINGW_CROSS_COMPILE,1,[Cross-compiling using MinGW])
                fi
                HOST_CC="gcc"
-               # Windows 2000 is required that includes Internet Explorer 5.01
+               # Windows XP SP2 is required
                CPPFLAGS="$CPPFLAGS -DWINVER=0x0502 -D_WIN32_WINNT=0x0502 -D_WIN32_IE=0x0501 -D_UNICODE -DUNICODE -DWIN32_THREADS -DFD_SETSIZE=1024"
-               LDFLAGS="$LDFLAGS -lmswsock -lws2_32 -lole32 -loleaut32 -lpsapi -lversion -ladvapi32 -lwinmm -lkernel32"
+               LDFLAGS="$LDFLAGS -lmswsock -lws2_32 -lole32 -loleaut32 -lpsapi -lversion -ladvapi32 -lwinmm -lkernel32 -liphlpapi"
                libmono_cflags="-mms-bitfields -mwindows"
                libmono_ldflags="-mms-bitfields -mwindows"
                libdl=
@@ -578,6 +578,7 @@ else
 fi
 CFLAGS="$CFLAGS -g $WARN"
 CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -g"
+CPPFLAGS="$CPPFLAGS -g $WARN"
 
 # Where's the 'mcs' source tree?
 if test -d $srcdir/mcs; then
@@ -767,7 +768,7 @@ DISABLED_FEATURES=none
 AC_ARG_ENABLE(minimal, [  --enable-minimal=LIST      drop support for LIST subsystems.
      LIST is a comma-separated list from: aot, profiler, decimal, pinvoke, debug, appdomains, verifier, 
      reflection_emit, reflection_emit_save, large_code, logging, com, ssa, generics, attach, jit, simd, soft_debug, perfcounters, normalization, assembly_remapping, shared_perfcounters, remoting,
-        security, sgen_remset, sgen_marksweep_par, sgen_marksweep_fixed, sgen_marksweep_fixed_par, sgen_copying.],
+        security, sgen_remset, sgen_marksweep_par, sgen_marksweep_fixed, sgen_marksweep_fixed_par, sgen_copying, shared_handles.],
 [
        for feature in `echo "$enable_minimal" | sed -e "s/,/ /g"`; do
                eval "mono_feature_disable_$feature='yes'"
@@ -941,6 +942,11 @@ if test "x$mono_feature_disable_sgen_copying" = "xyes"; then
        AC_MSG_NOTICE([Disabled major=copying support in SGEN.])
 fi
 
+if test "x$mono_feature_disable_shared_handles" = "xyes"; then
+       AC_DEFINE(DISABLE_SHARED_HANDLES, 1, [Disable inter-process shared handles])
+       AC_SUBST(DISABLE_SHARED_HANDLES)
+fi
+
 AC_ARG_ENABLE(executables, [  --disable-executables disable the build of the runtime executables], enable_executables=$enableval, enable_executables=yes)
 AM_CONDITIONAL(DISABLE_EXECUTABLES, test x$enable_executables = xno)
 
@@ -1194,7 +1200,7 @@ if test x$target_win32 = xno; then
 
        AC_CHECK_HEADERS(execinfo.h)
 
-       AC_CHECK_HEADERS(sys/auxv.h)
+       AC_CHECK_HEADERS(sys/auxv.h sys/resource.h)
 
        AC_CHECK_FUNCS(getgrgid_r)
        AC_CHECK_FUNCS(getgrnam_r)
@@ -1213,6 +1219,7 @@ if test x$target_win32 = xno; then
        AC_CHECK_FUNCS(dl_iterate_phdr)
        AC_CHECK_FUNCS(dladdr)
        AC_CHECK_FUNCS(sysconf)
+       AC_CHECK_FUNCS(getrlimit)
 
        AC_CHECK_FUNCS(sched_setaffinity)
        AC_CHECK_FUNCS(sched_getcpu)
@@ -2282,6 +2289,7 @@ if test "x$ac_cv_have_dev_random" = "xno" \
 fi
  
 AC_MSG_CHECKING([if inter-process shared handles are requested])
+# Same as --enable-minimal=shared_handles
 AC_ARG_ENABLE(shared-handles, [  --disable-shared-handles disable inter-process shared handles], try_shared_handles=$enableval, try_shared_handles=yes)
 AC_MSG_RESULT($try_shared_handles)
 if test "x$try_shared_handles" != "xyes"; then
@@ -2291,9 +2299,6 @@ fi
 
 AC_ARG_ENABLE(bcl-opt, [  --disable-bcl-opt    BCL is compiled with no optimizations (allows accurate BCL debugging)], test_bcl_opt=$enableval, test_bcl_opt=yes)
 
-AC_ARG_ENABLE(nunit-tests, [  --enable-nunit-tests     Run the nunit tests of the class library on 'make check'])
-AM_CONDITIONAL(ENABLE_NUNIT_TESTS, [test x$enable_nunit_tests = xyes])
-
 AC_MSG_CHECKING([if big-arrays are to be enabled])
 AC_ARG_ENABLE(big-arrays,  [  --enable-big-arrays      Enable the allocation and indexing of arrays greater than Int32.MaxValue], enable_big_arrays=$enableval, enable_big_arrays=no)
 if test "x$enable_big_arrays" = "xyes" ; then
@@ -2452,8 +2457,6 @@ if test "x$enable_llvm" = "xyes"; then
 
    # Should be something like '2.6' or '2.7svn'
    llvm_version=`$LLVM_CONFIG --version`
-   major_version=`echo $llvm_version | cut -c 1`
-   minor_version=`echo $llvm_version | cut -c 3`
    llvm_api_version=`$LLVM_CONFIG --mono-api-version 2>/dev/null`
    AC_MSG_CHECKING(LLVM version)
    AC_MSG_RESULT($llvm_version)
@@ -2474,14 +2477,8 @@ if test "x$enable_llvm" = "xyes"; then
          AC_MSG_ERROR([Compiling with stock LLVM is not supported, please use the Mono LLVM repo at https://github.com/mono/llvm, with the GIT branch which matches this version of mono, i.e. 'mono-2-10' for Mono 2.10.])
    fi
 
-   AC_DEFINE_UNQUOTED(LLVM_MAJOR_VERSION, $major_version, [Major version of LLVM libraries])
-   AC_DEFINE_UNQUOTED(LLVM_MINOR_VERSION, $minor_version, [Minor version of LLVM libraries])
    AC_DEFINE_UNQUOTED(LLVM_VERSION, "$llvm_version", [Full version of LLVM libraties])
 
-   # Have to pass these on the command line since mini-llvm-cpp.h already includes
-   # llvm's config.h
-   LLVM_CXXFLAGS="$LLVM_CXXFLAGS -DLLVM_MAJOR_VERSION=$major_version -DLLVM_MINOR_VERSION=$minor_version"
-
    AC_SUBST(LLVM_CFLAGS)
    AC_SUBST(LLVM_CXXFLAGS)
    AC_SUBST(LLVM_LIBS)
@@ -2498,7 +2495,6 @@ AM_CONDITIONAL(LOADED_LLVM, [test x$enable_loadedllvm = xyes])
 TARGET="unknown"
 ACCESS_UNALIGNED="yes"
 
-JIT_SUPPORTED=no
 LIBC="libc.so.6"
 INTL="libc.so.6"
 SQLITE="libsqlite.so.0"
@@ -2519,7 +2515,6 @@ case "$host" in
                arch_target=mips;
                sgen_supported=true
                ACCESS_UNALIGNED="no"
-               JIT_SUPPORTED=yes
 
                AC_MSG_CHECKING(for mips n32)
                AC_TRY_COMPILE([],[
@@ -2537,7 +2532,6 @@ case "$host" in
        i*86-*-*)
                TARGET=X86;
                arch_target=x86;
-               JIT_SUPPORTED=yes
                case $host_os in
                  solaris*)
                        LIBC="libc.so"
@@ -2583,7 +2577,6 @@ case "$host" in
        x86_64-*-* | amd64-*-*)
                TARGET=AMD64;
                arch_target=amd64;
-               JIT_SUPPORTED=yes
                if test "x$ac_cv_sizeof_void_p" = "x4"; then
                        AC_DEFINE(__mono_ilp32__, 1, [64 bit mode with 4 byte longs and pointers])
                        sizeof_register=8
@@ -2615,7 +2608,6 @@ case "$host" in
                TARGET=IA64
                arch_target=ia64
                ACCESS_UNALIGNED="no"
-               JIT_SUPPORTED=yes
                LIBC="libc.so.6.1"
                INTL="libc.so.6.1"
                AC_CHECK_LIB(unwind, _U_dyn_register, [], [AC_MSG_ERROR(library libunwind not found)])
@@ -2628,7 +2620,6 @@ case "$host" in
                        TARGET=SPARC
                fi
                arch_target=sparc;
-               JIT_SUPPORTED=yes
                ACCESS_UNALIGNED="no"
                case $host_os in
                  linux*) ;;
@@ -2661,7 +2652,6 @@ case "$host" in
                        CPPFLAGS="$CPPFLAGS -D__mono_ppc__"
                fi
                arch_target=ppc;
-               JIT_SUPPORTED=yes
                case $host_os in
                  linux*|darwin*)
                        sgen_supported=true
@@ -2672,7 +2662,6 @@ case "$host" in
                TARGET=ARM;
                arch_target=arm;
                ACCESS_UNALIGNED="no"
-               JIT_SUPPORTED=yes
                CPPFLAGS="$CPPFLAGS -D__ARM_EABI__"
                sgen_supported=true
                ;;
@@ -2680,7 +2669,6 @@ case "$host" in
                TARGET=ARM;
                arch_target=arm;
                ACCESS_UNALIGNED="no"
-               JIT_SUPPORTED=yes
                sgen_supported=true
                AOT_SUPPORTED="yes"
                CPPFLAGS="$CPPFLAGS -D__ARM_EABI__"
@@ -2690,7 +2678,6 @@ case "$host" in
 #              TARGET=ARM;
 #              arch_target=arm;
 #              ACCESS_UNALIGNED="no"
-#              JIT_SUPPORTED=yes
 #              sgen_supported=true
 #              AOT_SUPPORTED="no"
 #              ;;
@@ -2698,7 +2685,6 @@ case "$host" in
                # https://lkml.org/lkml/2012/7/15/133
                TARGET=ARM64
                arch_target=arm64
-               JIT_SUPPORTED=yes
                sgen_supported=true
                boehm_supported=false
                ;;
@@ -2706,7 +2692,6 @@ case "$host" in
                TARGET=S390X;
                arch_target=s390x;
                ACCESS_UNALIGNED="yes"
-               JIT_SUPPORTED=yes
                sgen_supported=true
                CFLAGS="$CFLAGS -mbackchain -D__USE_STRING_INLINES"
                ;;
@@ -2722,9 +2707,7 @@ if test "x$host" != "x$target"; then
                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
@@ -2762,7 +2745,6 @@ if test "x$host" != "x$target"; then
 #              arch_target=arm
 #              AC_DEFINE(TARGET_ARM, 1, [...])
 #              ACCESS_UNALIGNED="no"
-#              JIT_SUPPORTED=yes
 #              sizeof_register=4
 #               CPPFLAGS="$CPPFLAGS \
 #                    -D__ARM_EABI__ \
@@ -2772,7 +2754,6 @@ if test "x$host" != "x$target"; then
 #                    -DDISABLE_SOCKETS \
 #                    -DDISABLE_ATTACH \
 #                    -DUSE_NEWLIB"
-#              jit_wanted=true
                # Can't use tls, since it depends on the runtime detection of tls offsets
                # in mono-compiler.h
 #              with_tls=pthread
@@ -2789,9 +2770,7 @@ if test "x$host" != "x$target"; then
                AC_DEFINE(TARGET_ARM, 1, [...])
                AC_DEFINE(TARGET_ANDROID, 1, [...])
                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
@@ -2806,10 +2785,31 @@ if test "x$host" != "x$target"; then
                        ;;
                esac
                ;;
+   i686*-linux-*)
+               TARGET=X86;
+               arch_target=x86;
+               AC_DEFINE(TARGET_X86, 1, [...])
+               AC_DEFINE(TARGET_ANDROID, 1, [...])
+               CPPFLAGS="$CPPFLAGS"
+               sgen_supported=true
+               # Can't use tls, since it depends on the runtime detection of tls offsets
+               # in mono-compiler.h            
+               with_tls=pthread
+               target_mach=no
+               ;;
+   aarch64*-linux-*)
+               TARGET=ARM64;
+               arch_target=arm64;
+               AC_DEFINE(TARGET_ARM64, 1, [...])
+               AC_DEFINE(TARGET_ANDROID, 1, [...])
+               CPPFLAGS="$CPPFLAGS"
+               # Can't use tls, since it depends on the runtime detection of tls offsets
+               # in mono-compiler.h
+               with_tls=pthread
+               target_mach=no
+               ;;
        aarch64-*)
                TARGET=ARM64
-               JIT_SUPPORTED=yes
-               jit_wanted=true
                ;;
        *)
                AC_MSG_ERROR([Cross compiling is not supported for target $target])
@@ -2932,19 +2932,7 @@ fi
 AC_SUBST(SGEN_DEFINES)
 AM_CONDITIONAL(SUPPORT_SGEN, test x$buildsgen = xyes)
 
-USEJIT=false
-if test x$JIT_SUPPORTED = xyes; then
-   if $jit_wanted; then
-      USEJIT=true
-      jit_status="Building and using the JIT"
-   else
-      AC_ERROR(No JIT support available or selected.)
-   fi
-else
-   AC_ERROR(No JIT support available or selected.)
-fi
-
-AM_CONDITIONAL(USE_JIT, test x$USEJIT = xtrue)
+jit_status="Building and using the JIT"
 
 libsuffix=".so"
 
@@ -3219,7 +3207,7 @@ case "x$libgc" in
                ;;
 esac
 
-AC_ARG_WITH(profile2,  [  --with-profile2=yes,no          If you want to install the 2.0/3.5 FX (defaults to yes)],            [], [with_profile2=yes])
+AC_ARG_WITH(profile2,  [  --with-profile2=yes,no          If you want to install the 2.0/3.5 FX (defaults to yes)],            [], [with_profile2=no])
 AC_ARG_WITH(profile4,  [  --with-profile4=yes,no          If you want to install the 4.0 FX (defaults to yes)],                [], [with_profile4=yes])
 AC_ARG_WITH(profile4_5,[  --with-profile4_5=yes,no        If you want to install the 4.5 FX (defaults to yes)],                [], [with_profile4_5=yes])
 AC_ARG_WITH(monodroid, [  --with-monodroid=yes,no         If you want to build the MonoDroid assemblies (defaults to no)],     [], [with_monodroid=no])
@@ -3295,7 +3283,6 @@ dnl Consistency settings
 dnl
 if test x$cross_compiling = xyes -o x$enable_mcs_build = xno; then
    DISABLE_MCS_DOCS=yes
-   with_profile2=no
    with_profile4=no
    with_profile4_5=no
    with_monodroid=no
@@ -3319,7 +3306,6 @@ AC_SUBST(OPROFILE_LIBS)
 
 libmono_ldflags="$libmono_ldflags $LIBS"
 
-AM_CONDITIONAL(INSTALL_2_0, [test "x$with_profile2" = xyes])
 AM_CONDITIONAL(INSTALL_4_0, [test "x$with_profile4" = xyes])
 AM_CONDITIONAL(INSTALL_4_5, [test "x$with_profile4_5" = xyes])
 AM_CONDITIONAL(INSTALL_MONODROID, [test "x$with_monodroid" != "xno"])
@@ -3347,7 +3333,6 @@ AM_CONDITIONAL(HOST_ARM, test x$HOST = xARM)
 AM_CONDITIONAL(HOST_ARM64, test x$HOST = xARM64)
 AM_CONDITIONAL(CROSS_COMPILE, test "x$host" != "x$target")
 
-AM_CONDITIONAL(JIT_SUPPORTED, test x$JIT_SUPPORTED = xyes)
 AM_CONDITIONAL(INCLUDED_LIBGC, test x$libgc = xincluded)
 
 AC_SUBST(LIBC)
@@ -3765,7 +3750,6 @@ echo "
        LLVM Back End: $enable_llvm (dynamically loaded: $enable_loadedllvm)
 
    Libraries:
-       .NET 2.0/3.5:  $with_profile2
        .NET 4.0:      $with_profile4
        .NET 4.5:      $with_profile4_5
        MonoDroid:     $with_monodroid