X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=configure.ac;h=21db9420c474e44b3e974d7e4b150795ea41094e;hb=49a0494ecbf91d362af0b0301eccbf45dadf6817;hp=8e6462fcc5d2b7977a94afb11074db2be06bbd46;hpb=280906915bc8aaef6a824efb5ff211babe57160b;p=mono.git diff --git a/configure.ac b/configure.ac index 8e6462fcc5d..21db9420c47 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ #AC_PREREQ([2.62]) # when bumping version number below, keep it in sync with man/mono.1 too -AC_INIT(mono, [4.5.2], +AC_INIT(mono, [4.7.0], [http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono]) AC_CONFIG_SRCDIR([README.md]) @@ -353,6 +353,18 @@ AM_CONDITIONAL(PLATFORM_DARWIN, test x$host_darwin = xyes) AM_CONDITIONAL(PLATFORM_SIGPOSIX, test x$use_sigposix = xyes) AM_CONDITIONAL(PLATFORM_ANDROID, test x$platform_android = xyes) +if test -z "$PLATFORM_DARWIN_TRUE"; then : +PLATFORM_AOT_SUFFIX=.dylib +fi + +if test -z "$PLATFORM_LINUX_TRUE"; then : +PLATFORM_AOT_SUFFIX=.so +fi + +AC_SUBST(PLATFORM_AOT_SUFFIX) + +## PLATFORM_AOT_SUFFIX not so simple for windows :-) + AC_CHECK_TOOL(CC, gcc, gcc) AC_PROG_CC AC_CHECK_TOOL(CXX, g++, g++) @@ -520,6 +532,9 @@ if test x"$GCC" = xyes; then # We rely on signed overflow to behave CFLAGS="$CFLAGS -fwrapv" + # We rely on zero length arrays in structs + CFLAGS="$CFLAGS -Wno-zero-length-array" + CFLAGS="$CFLAGS -DMONO_DLL_EXPORT" if test x"$disable_visibility_hidden" = xno; then # Don't export any symbols by default @@ -740,12 +755,15 @@ AC_ARG_WITH(bitcode, [ --with-bitcode=yes,no If bitcode is en AC_ARG_WITH(xammac, [ --with-xammac=yes,no If you want to build the Xamarin.Mac assemblies (defaults to no)], [], [with_xammac=default]) 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=default]) -AC_ARG_WITH(runtime_preset, [ --with-runtime_preset=net_4_x,mobile_static,bitcode_mobile_static Which default profile to build (defaults to net_4_x)], [], [with_runtime_preset=net_4_x]) +AC_ARG_WITH(runtime_preset, [ --with-runtime_preset=net_4_x,all,mobile_static,bitcode_mobile_static Which default profile to build (defaults to net_4_x)], [], [with_runtime_preset=net_4_x]) dnl dnl Profile defaults dnl TEST_PROFILE=default +enable_llvm_default=no + +INVARIANT_AOT_OPTIONS=nimt-trampolines=900,ntrampolines=8000,nrgctx-fetch-trampolines=256,ngsharedvt-trampolines=2800 if test x$cross_compiling = xyes -o x$enable_mcs_build = xno; then DISABLE_MCS_DOCS_default=yes @@ -759,6 +777,16 @@ if test x$cross_compiling = xyes -o x$enable_mcs_build = xno; then with_bitcode_default=no with_cooperative_gc_default=no elif test x$with_runtime_preset = xnet_4_x; then + with_cooperative_gc_default=no + with_profile4_x_default=yes + with_monodroid_default=no + with_monotouch_default=no + with_monotouch_watch_default=no + with_monotouch_tv_default=no + with_xammac_default=no + with_mobile_static_default=no + with_bitcode_default=no +elif test x$with_runtime_preset = xall; then with_cooperative_gc_default=no with_profile4_x_default=yes with_monodroid_default=yes @@ -766,7 +794,7 @@ elif test x$with_runtime_preset = xnet_4_x; then with_monotouch_watch_default=yes with_monotouch_tv_default=yes with_xammac_default=yes - with_mobile_static_default=yes + with_mobile_static_default=no with_bitcode_default=no elif test x$with_runtime_preset = xmobile_static; then DISABLE_MCS_DOCS_default=yes @@ -781,6 +809,15 @@ elif test x$with_runtime_preset = xmobile_static; then with_bitcode_default=no with_cooperative_gc_default=no TEST_PROFILE=mobile_static + + mono_feature_disable_com='yes' + mono_feature_disable_remoting='yes' + mono_feature_disable_reflection_emit_save='yes' + mono_feature_disable_reflection_emit='yes' + mono_feature_disable_appdomains='yes' + + AOT_BUILD_FLAGS="-O=gsharedvt --aot=full,$INVARIANT_AOT_OPTIONS" + AOT_RUN_FLAGS="--full-aot" elif test x$with_runtime_preset = xbitcode_mobile_static; then DISABLE_MCS_DOCS_default=yes with_profile4_x_default=no @@ -793,6 +830,16 @@ elif test x$with_runtime_preset = xbitcode_mobile_static; then with_bitcode_default=yes with_cooperative_gc_default=yes TEST_PROFILE=mobile_static + enable_llvm_default=yes + + mono_feature_disable_com='yes' + mono_feature_disable_remoting='yes' + mono_feature_disable_reflection_emit_save='yes' + mono_feature_disable_reflection_emit='yes' + mono_feature_disable_appdomains='yes' + + AOT_BUILD_FLAGS="--aot=llvmonly,$INVARIANT_AOT_OPTIONS" + AOT_RUN_FLAGS="--llvmonly" else with_profile4_x_default=yes with_monodroid_default=no @@ -805,6 +852,13 @@ else with_cooperative_gc_default=no fi +if test "x$AOT_BUILD_FLAGS" != "x"; then : + AC_SUBST(AOT_BUILD_FLAGS) + AC_SUBST(AOT_RUN_FLAGS) + # For llvmonlycheck + fullaotcheck + AC_SUBST(INVARIANT_AOT_OPTIONS) +fi + AC_SUBST(TEST_PROFILE) if test "x$with_profile4_x" = "xdefault"; then @@ -841,8 +895,7 @@ 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"]) -# Make available to ./Makefile.am -AC_SUBST(BITCODE) +AC_SUBST(INSTALL_MOBILE_STATIC) default_profile=net_4_x if test -z "$INSTALL_MONODROID_TRUE"; then : @@ -2735,13 +2788,17 @@ dnl ************** dnl *** LLVM *** dnl ************** -AC_ARG_ENABLE(llvm,[ --enable-llvm Enable the LLVM back-end], enable_llvm=$enableval, enable_llvm=no) +AC_ARG_ENABLE(llvm,[ --enable-llvm Enable the LLVM back-end], enable_llvm=$enableval, enable_llvm=default) AC_ARG_ENABLE(loadedllvm,[ --enable-loadedllvm Load the LLVM back-end dynamically], enable_llvm=$enableval && enable_loadedllvm=$enableval, enable_loadedllvm=no) AC_ARG_ENABLE(llvm-version-check,[ --enable-llvm-version-check Check that the LLVM matches the version expected by mono], enable_llvm_version_check=$enableval, enable_llvm_version_check=no) AC_ARG_ENABLE(llvm-runtime,[ --enable-llvm-runtime Enable runtime support for llvmonly code], enable_llvm_runtime=$enableval, enable_llvm_runtime=no) AC_ARG_WITH(llvm, [ --with-llvm= Enable the LLVM back-end], enable_llvm=yes,) +if test "x$enable_llvm" = "xdefault"; then + enable_llvm=$enable_llvm_default +fi + if test "x$enable_llvm" = "xyes"; then if test "x$with_llvm" != "x"; then LLVM_CONFIG=$with_llvm/bin/llvm-config @@ -2799,13 +2856,12 @@ if test "x$enable_llvm" = "xyes"; then LLVM_SYSTEM_LIBS=`$LLVM_CONFIG --system-libs 2>/dev/null | grep -- -` 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 + if test "x$host" != "x$target"; then # No need for jit libs llvm_jit_supported=no llvm_jit_libs="" + elif test $llvm_api_version -gt 100; then + llvm_jit_libs="orcjit $llvm_codegen" fi LLVM_LIBS=`$LLVM_CONFIG --libs analysis core bitwriter $llvm_jit_libs` if test "x$LLVM_LIBS" = "x"; then @@ -3737,7 +3793,7 @@ AC_ARG_WITH(mcs_docs,[ --with-mcs-docs=yes,no If you want to build the DISABLE_MCS_DOCS=yes fi ]) -if test -z "$INSTALL_4_x_TRUE"; then : +if test -n "$INSTALL_4_x_TRUE"; then : DISABLE_MCS_DOCS=yes fi if test "x$DISABLE_MCS_DOCS" = "xdefault"; then @@ -4186,6 +4242,10 @@ fi echo "PLATFORM = darwin" >> $mcs_topdir/build/config.make fi + if test "x$PLATFORM_AOT_SUFFIX" != "x"; then + echo "PLATFORM_AOT_SUFFIX = $PLATFORM_AOT_SUFFIX" >> $mcs_topdir/build/config.make + fi + if test x$AOT_SUPPORTED = xyes -a x$enable_system_aot = xdefault; then enable_system_aot=yes fi @@ -4208,6 +4268,11 @@ fi echo "BCL_OPTIMIZE = 1" >> $srcdir/$mcsdir/build/config.make fi + if test "x$AOT_BUILD_FLAGS" != "x" ; then + echo "AOT_RUN_FLAGS=$AOT_RUN_FLAGS" >> $srcdir/$mcsdir/build/config.make + echo "AOT_BUILD_FLAGS=$AOT_BUILD_FLAGS" >> $srcdir/$mcsdir/build/config.make + fi + fi )