X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=configure.ac;h=bf0e910961bee936d8a8ccaea91b02d2472813ae;hb=b9dd48c9c44bbc9c057aee9bd834de7966ae8565;hp=94160c5fe0ac02e69d33275fae2d3935b2b29735;hpb=2b4484b4d803c477d707a5d3098791f911747ffd;p=mono.git diff --git a/configure.ac b/configure.ac index 94160c5fe0a..bf0e910961b 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ # Process this file with autoconf to produce a configure script. #AC_PREREQ([2.62]) -AC_INIT(mono, [4.3.3], +AC_INIT(mono, [4.5.0], [http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono]) AC_CONFIG_SRCDIR([README.md]) @@ -1156,6 +1156,7 @@ if test x$host_win32 = xno; then AC_CHECK_FUNCS(getrlimit) AC_CHECK_FUNCS(prctl) + AC_CHECK_FUNCS(sched_getaffinity) AC_CHECK_FUNCS(sched_setaffinity) AC_CHECK_FUNCS(sched_getcpu) @@ -2611,20 +2612,50 @@ if test "x$enable_llvm" = "xyes"; then if test "x$host_win32" = "xno"; then + # Should be something like '2.6' or '2.7svn' + llvm_version=`$LLVM_CONFIG --version` + llvm_api_version=`$LLVM_CONFIG --mono-api-version 2>/dev/null` + AC_MSG_CHECKING(LLVM version) + AC_MSG_RESULT($llvm_version $llvm_api_version) + if echo $llvm_version | grep -q 'mono'; then + if test "x$enable_llvm_version_check" == "xyes"; then + if test "$llvm_version" != "$expected_llvm_version"; then + AC_MSG_ERROR([Expected llvm version $expected_llvm_version, but llvm-config --version returned $llvm_version"]) + fi + fi + else + 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 + # The output of --cflags seems to include optimizations flags too - LLVM_CFLAGS=`$LLVM_CONFIG --cflags | sed -e 's/-O2//g' | sed -e 's/-O0//g' | sed -e 's/-fomit-frame-pointer//g' | sed -e 's/-fPIC//g'` - LLVM_CXXFLAGS=`$LLVM_CONFIG --cxxflags | sed -e 's/-O2//g' | sed -e 's/-O0//g' | sed -e 's/-fomit-frame-pointer//g' | sed -e 's/-fPIC//g'` + if test $llvm_api_version -gt 100; then + # The --cflags argument includes all kinds of warnings -pendantic etc. + LLVM_CFLAGS="-I$with_llvm/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS" + LLVM_CXXFLAGS="-I$with_llvm/include -std=c++11 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS" + else + LLVM_CFLAGS=`$LLVM_CONFIG --cflags | sed -e 's/-O2//g' | sed -e 's/-O0//g' | sed -e 's/-fomit-frame-pointer//g' | sed -e 's/-fPIC//g'` + LLVM_CXXFLAGS=`$LLVM_CONFIG --cxxflags | sed -e 's/-O2//g' | sed -e 's/-O0//g' | sed -e 's/-fomit-frame-pointer//g' | sed -e 's/-fPIC//g'` + fi # LLVM is compiled with -fno-rtti, so we need this too, since our classes inherit # from LLVM classes. LLVM_CXXFLAGS="$LLVM_CXXFLAGS -fno-rtti -fexceptions" LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags` # This might include empty lines LLVM_SYSTEM_LIBS=`$LLVM_CONFIG --system-libs 2>/dev/null | grep -- -` - if test "x$host" != "x$target"; then + llvm_jit_supported=yes + llvm_jit_libs="jit mcjit $llvm_codegen" + if test $llvm_api_version -gt 100; then + # Based on llvm 3.9, only aot is currently supported + llvm_jit_libs="orcjit $llvm_codegen" + elif test "x$host" != "x$target"; then # No need for jit libs - LLVM_LIBS=`$LLVM_CONFIG --libs analysis core bitwriter` - else - LLVM_LIBS=`$LLVM_CONFIG --libs analysis core bitwriter jit mcjit $llvm_codegen` + llvm_jit_supported=no + llvm_jit_libs="" + fi + LLVM_LIBS=`$LLVM_CONFIG --libs analysis core bitwriter $llvm_jit_libs` + if test "x$LLVM_LIBS" == "x"; then + echo "$LLVM_CONFIG --libs failed." + exit 1 fi LLVM_LIBS="$LLVM_LIBS $LLVM_LDFLAGS $LLVM_SYSTEM_LIBS" # The c++ standard library used by llvm doesn't show up in $LLVM_SYSTEM_LIBS so add it manually @@ -2636,21 +2667,6 @@ if test "x$enable_llvm" = "xyes"; then expected_llvm_version="3.4svn-mono-mono/e656cac" - # Should be something like '2.6' or '2.7svn' - llvm_version=`$LLVM_CONFIG --version` - llvm_api_version=`$LLVM_CONFIG --mono-api-version 2>/dev/null` - AC_MSG_CHECKING(LLVM version) - AC_MSG_RESULT($llvm_version) - if echo $llvm_version | grep -q 'mono'; then - if test "x$enable_llvm_version_check" == "xyes"; then - if test "$llvm_version" != "$expected_llvm_version"; then - AC_MSG_ERROR([Expected llvm version $expected_llvm_version, but llvm-config --version returned $llvm_version"]) - fi - fi - else - 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 - else LLVM_CFLAGS="-I$with_llvm/include -DNDEBUG -D__NO_CTYPE_INLINE -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS" LLVM_CXXFLAGS="$LLVM_CFLAGS -std=gnu++11 -fvisibility-inlines-hidden -fno-rtti -Woverloaded-virtual -Wcast-qual" @@ -3084,6 +3100,45 @@ SPARC64) ;; esac +case "$HOST" in +X86) + AC_DEFINE(HOST_X86, 1, [...]) + ;; +AMD64) + AC_DEFINE(HOST_AMD64, 1, [...]) + ;; +ARM) + AC_DEFINE(HOST_ARM, 1, [...]) + ;; +ARM64) + AC_DEFINE(HOST_ARM64, 1, [...]) + ;; +POWERPC) + AC_DEFINE(HOST_POWERPC, 1, [...]) + ;; +POWERPC64) + AC_DEFINE(HOST_POWERPC, 1, [...]) + AC_DEFINE(HOST_POWERPC64, 1, [...]) + ;; +S390X) + AC_DEFINE(HOST_S390X, 1, [...]) + ;; +MIPS) + AC_DEFINE(HOST_MIPS, 1, [...]) + ;; +IA64) + AC_DEFINE(HOST_IA64, 1, [...]) + ;; +SPARC) + AC_DEFINE(HOST_SPARC, 1, [...]) + ;; +SPARC64) + AC_DEFINE(HOST_SPARC64, 1, [...]) + ;; +esac + + + dnl ************* dnl *** VTUNE *** dnl ************* @@ -3481,6 +3536,7 @@ AC_ARG_WITH(monotouch_watch, [ --with-monotouch_watch=yes,no If you want to b AC_ARG_WITH(monotouch_tv, [ --with-monotouch_tv=yes,no If you want to build the Xamarin.TVOS assemblies (defaults to no)], [], [with_monotouch_tv=no]) AC_ARG_WITH(bitcode, [ --with-bitcode=yes,no If bitcode is enabled (defaults to no)], [], [with_bitcode=no]) AC_ARG_WITH(xammac, [ --with-xammac=yes,no If you want to build the Xamarin.Mac assemblies (defaults to no)], [], [with_xammac=no]) +AC_ARG_WITH(mobile_static, [ --with-mobile_static=yes,no If you want to build the mobile_static assemblies (defaults to no)], [], [with_mobile_static=no]) OPROFILE=no AC_ARG_WITH(oprofile,[ --with-oprofile=no, Enable oprofile support (defaults to no)],[ @@ -3593,6 +3649,7 @@ if test x$cross_compiling = xyes -o x$enable_mcs_build = xno; then with_monotouch_watch=no with_monotouch_tv=no with_xammac=no + with_mobile_static=no fi if test x$DISABLE_MCS_DOCS = xyes; then @@ -3618,6 +3675,7 @@ AM_CONDITIONAL(INSTALL_MONOTOUCH_WATCH, [test "x$with_monotouch_watch" != "xno"] AM_CONDITIONAL(INSTALL_MONOTOUCH_TV, [test "x$with_monotouch_tv" != "xno"]) AM_CONDITIONAL(BITCODE, test "x$with_bitcode" = "xyes") AM_CONDITIONAL(INSTALL_XAMMAC, [test "x$with_xammac" != "xno"]) +AM_CONDITIONAL(INSTALL_MOBILE_STATIC, [test "x$with_mobile_static" != "xno"]) AM_CONDITIONAL(MIPS_GCC, test ${TARGET}${ac_cv_prog_gcc} = MIPSyes) AM_CONDITIONAL(MIPS_SGI, test ${TARGET}${ac_cv_prog_gcc} = MIPSno) @@ -4006,6 +4064,10 @@ fi if test x$has_extension_module != xno; then echo "EXTENSION_MODULE = 1" >> $srcdir/$mcsdir/build/config.make fi + + if test x$enable_gsharedvt = xno; then + echo "MONO_DISABLE_GSHAREDVT = 1" >> $srcdir/$mcsdir/build/config.make + fi echo "DEFAULT_PROFILE = $default_profile" >> $srcdir/$mcsdir/build/config.make @@ -4041,6 +4103,7 @@ echo " Xamarin.WatchOS: $with_monotouch_watch Xamarin.TVOS: $with_monotouch_tv Xamarin.Mac: $with_xammac + mobile_static: $with_mobile_static JNI support: $jdk_headers_found libgdiplus: $libgdiplus_msg zlib: $zlib_msg