X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=configure.ac;h=1872536ce163ca57ce6073285d4cdf7048d72f93;hb=6f876c4bbc1295dfcde55fb72f34e65372b6cdad;hp=aabed4a554458669c875d9f4d14354765774e30f;hpb=150d896d198dc053db482525f397ae1e2acb56e6;p=mono.git diff --git a/configure.ac b/configure.ac index aabed4a5544..1872536ce16 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,8 @@ # Process this file with autoconf to produce a configure script. #AC_PREREQ([2.62]) -AC_INIT(mono, [4.5.1], +# when bumping version number below, keep it in sync with man/mono.1 too +AC_INIT(mono, [4.5.2], [http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono]) AC_CONFIG_SRCDIR([README.md]) @@ -726,6 +727,164 @@ AC_ARG_ENABLE(system-aot, [ --enable-system-aot Enable the Ahead-Of-Time compi DISABLED_FEATURES=none +# +# Set the build profiles and options before things which use them +# + +AC_ARG_WITH(profile4_x, [ --with-profile4=yes,no If you want to install the 4.x FX (defaults to yes)], [], [with_profile4_x=default]) +AC_ARG_WITH(monodroid, [ --with-monodroid=yes,no If you want to build the MonoDroid assemblies (defaults to no)], [], [with_monodroid=default]) +AC_ARG_WITH(monotouch, [ --with-monotouch=yes,no If you want to build the Xamarin.iOS assemblies (defaults to no)], [], [with_monotouch=default]) +AC_ARG_WITH(monotouch_watch, [ --with-monotouch_watch=yes,no If you want to build the Xamarin.WatchOS assemblies (defaults to no)],[], [with_monotouch_watch=default]) +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=default]) +AC_ARG_WITH(bitcode, [ --with-bitcode=yes,no If bitcode is enabled (defaults to no)], [], [with_bitcode=default]) +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=all,mobile_static,bitcode_mobile_static Which default profile to build (defaults to all)], [], [with_runtime_preset=all]) + +dnl +dnl Profile defaults +dnl +TEST_PROFILE=default + +if test x$cross_compiling = xyes -o x$enable_mcs_build = xno; then + DISABLE_MCS_DOCS_default=yes + with_profile4_x_default=no + 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 + with_cooperative_gc_default=no +elif test x$with_runtime_preset = xall; then + with_cooperative_gc_default=no + with_profile4_x_default=yes + with_monodroid_default=yes + with_monotouch_default=yes + with_monotouch_watch_default=yes + with_monotouch_tv_default=yes + with_xammac_default=yes + with_mobile_static_default=yes + with_bitcode_default=no +elif test x$with_runtime_preset = xmobile_static; then + DISABLE_MCS_DOCS_default=yes + with_cooperative_gc_default=no + with_profile4_x_default=no + 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=yes + with_bitcode_default=no + with_cooperative_gc_default=no + TEST_PROFILE=mobile_static +elif test x$with_runtime_preset = xbitcode_mobile_static; then + DISABLE_MCS_DOCS_default=yes + with_profile4_x_default=no + 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=yes + with_bitcode_default=yes + with_cooperative_gc_default=yes + TEST_PROFILE=mobile_static +else + with_profile4_x_default=yes + with_monodroid_default=no + with_monotouch_default=no + with_monotouch_watch_default=no + with_monotouch_tv_default=no + with_bitcode_default=no + with_xammac_default=no + with_mobile_static_default=no + with_cooperative_gc_default=no +fi + +AC_SUBST(TEST_PROFILE) + +if test "x$with_profile4_x" = "xdefault"; then + with_profile4_x=$with_profile4_x_default +fi +if test "x$with_monodroid" = "xdefault"; then + with_monodroid=$with_monodroid_default +fi +if test "x$with_monotouch" = "xdefault"; then + with_monotouch=$with_monotouch_default +fi +if test "x$with_monotouch_watch" = "xdefault"; then + with_monotouch_watch=$with_monotouch_watch_default +fi +if test "x$with_monotouch_tv" = "xdefault"; then + with_monotouch_tv=$with_monotouch_tv_default +fi +if test "x$with_bitcode" = "xdefault"; then + with_bitcode=$with_bitcode_default +fi +if test "x$with_xammac" = "xdefault"; then + with_xammac=$with_xammac_default +fi +if test "x$with_mobile_static" = "xdefault"; then + with_mobile_static=$with_mobile_static_default +fi + +AM_CONDITIONAL(INSTALL_4_x, [test "x$with_profile4_x" = "xyes"]) +AM_CONDITIONAL(INSTALL_MONODROID, [test "x$with_monodroid" != "xno"]) +AM_CONDITIONAL(INSTALL_MONOTOUCH, [test "x$with_monotouch" != "xno"]) +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"]) + +# Make available to ./Makefile.am +AC_SUBST(BITCODE) + +default_profile=net_4_x +if test -z "$INSTALL_MONODROID_TRUE"; then : + default_profile=monodroid +fi +if test -z "$INSTALL_MONOTOUCH_TRUE"; then : + default_profile=monotouch +fi +if test -z "$INSTALL_XAMMAC_TRUE"; then : + default_profile=xammac +fi +if test -z "$INSTALL_MOBILE_STATIC_TRUE"; then : + default_profile=mobile_static +fi +if test -z "$INSTALL_4_x_TRUE"; then : + default_profile=net_4_x +fi +DEFAULT_PROFILE=$default_profile +AC_SUBST(DEFAULT_PROFILE) + +# +# End build profile configuration +# + +if test x$USE_NLS = xprofile_default; then + +if test x$host_darwin = xyes; then +# We make the default value for USE_NLS +# "no" on OSX because it isn't available on most +# default OSX installs. The most common configurations will +# all disable it, so this saves us typing. + USE_NLS=no + AC_SUBST([USE_NLS]) + AC_MSG_RESULT([$USE_NLS]) +else + USE_NLS=yes + AC_SUBST([USE_NLS]) + AC_MSG_RESULT([$USE_NLS]) +fi + +fi + 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, @@ -967,71 +1126,75 @@ AC_ARG_WITH(libgc, [ --with-gc=included,none Controls the Boehm GC config, d AC_ARG_ENABLE(boehm, [ --disable-boehm Disable the Boehm GC.], support_boehm=$enableval,support_boehm=${support_boehm:-yes}) AM_CONDITIONAL(SUPPORT_BOEHM, test x$support_boehm = xyes) -AC_ARG_ENABLE(parallel-mark, [ --enable-parallel-mark Enables Boehm GC Parallel Marking], enable_parallel_mark=$enableval, enable_parallel_mark=$parallel_mark) -if test x$enable_parallel_mark = xyes; then - libgc_configure_args="$libgc_configure_args --enable-parallel-mark" -fi +if test "x$support_boehm" = "xyes"; then -gc_msg="" -LIBGC_CPPFLAGS= -LIBGC_LIBS= -LIBGC_STATIC_LIBS= -libgc_dir= -case "x$libgc" in - xincluded) - if test "x$support_boehm" = "xyes"; then - libgc_dir=libgc - fi + AC_ARG_ENABLE(parallel-mark, [ --enable-parallel-mark Enables Boehm GC Parallel Marking], enable_parallel_mark=$enableval, enable_parallel_mark=$parallel_mark) + if test x$enable_parallel_mark = xyes; then + libgc_configure_args="$libgc_configure_args --enable-parallel-mark" + fi - LIBGC_CPPFLAGS='-I$(top_srcdir)/libgc/include' - LIBGC_LIBS='$(top_builddir)/libgc/libmonogc.la' - LIBGC_STATIC_LIBS='$(top_builddir)/libgc/libmonogc-static.la' + gc_msg="" + LIBGC_CPPFLAGS= + LIBGC_LIBS= + LIBGC_STATIC_LIBS= + libgc_dir= + case "x$libgc" in + xincluded) + if test "x$support_boehm" = "xyes"; then + libgc_dir=libgc + fi - BOEHM_DEFINES="-DHAVE_BOEHM_GC" + LIBGC_CPPFLAGS='-I$(top_srcdir)/libgc/include' + LIBGC_LIBS='$(top_builddir)/libgc/libmonogc.la' + LIBGC_STATIC_LIBS='$(top_builddir)/libgc/libmonogc-static.la' - if test x$target_win32 = xyes; then - BOEHM_DEFINES="$BOEHM_DEFINES -DGC_NOT_DLL" - CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DGC_BUILD -DGC_NOT_DLL" - fi + BOEHM_DEFINES="-DHAVE_BOEHM_GC" - gc_msg="Included Boehm GC with typed GC" - if test x$enable_parallel_mark = xyes; then - AC_DEFINE_UNQUOTED(DEFAULT_GC_NAME, "Included Boehm (with typed GC and Parallel Mark)", [GC description]) - gc_msg="$gc_msg and parallel mark" - else - AC_DEFINE_UNQUOTED(DEFAULT_GC_NAME, "Included Boehm (with typed GC)", [GC description]) - fi - ;; + if test x$target_win32 = xyes; then + BOEHM_DEFINES="$BOEHM_DEFINES -DGC_NOT_DLL" + CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DGC_BUILD -DGC_NOT_DLL" + fi - xboehm|xbohem|xyes) - AC_MSG_WARN("External Boehm is no longer supported") - ;; + gc_msg="Included Boehm GC with typed GC" + if test x$enable_parallel_mark = xyes; then + AC_DEFINE_UNQUOTED(DEFAULT_GC_NAME, "Included Boehm (with typed GC and Parallel Mark)", [GC description]) + gc_msg="$gc_msg and parallel mark" + else + AC_DEFINE_UNQUOTED(DEFAULT_GC_NAME, "Included Boehm (with typed GC)", [GC description]) + fi + ;; - xsgen) - AC_MSG_WARN("Use --with-sgen instead, --with-gc= controls Boehm configuration") - ;; + xboehm|xbohem|xyes) + AC_MSG_WARN("External Boehm is no longer supported") + ;; - xnone) - AC_MSG_WARN("Compiling mono without GC.") - AC_DEFINE_UNQUOTED(DEFAULT_GC_NAME, "none", [GC description]) - AC_DEFINE(HAVE_NULL_GC,1,[No GC support.]) - gc_msg="none" - ;; - *) - AC_MSG_ERROR([Invalid argument to --with-gc.]) - ;; -esac + xsgen) + AC_MSG_WARN("Use --with-sgen instead, --with-gc= controls Boehm configuration") + ;; -AC_ARG_WITH(large-heap, [ --with-large-heap=yes,no Enable support for GC heaps larger than 3GB (defaults to no)], [large_heap=$withval], [large_heap=no]) -if test "x$large_heap" = "xyes"; then - CPPFLAGS="$CPPFLAGS -DLARGE_CONFIG" -fi + xnone) + AC_MSG_WARN("Compiling mono without GC.") + AC_DEFINE_UNQUOTED(DEFAULT_GC_NAME, "none", [GC description]) + AC_DEFINE(HAVE_NULL_GC,1,[No GC support.]) + gc_msg="none" + ;; + *) + AC_MSG_ERROR([Invalid argument to --with-gc.]) + ;; + esac -AC_SUBST(LIBGC_CPPFLAGS) -AC_SUBST(LIBGC_LIBS) -AC_SUBST(LIBGC_STATIC_LIBS) -AC_SUBST(libgc_dir) -AC_SUBST(BOEHM_DEFINES) + AC_ARG_WITH(large-heap, [ --with-large-heap=yes,no Enable support for GC heaps larger than 3GB (defaults to no)], [large_heap=$withval], [large_heap=no]) + if test "x$large_heap" = "xyes"; then + CPPFLAGS="$CPPFLAGS -DLARGE_CONFIG" + fi + + AC_SUBST(LIBGC_CPPFLAGS) + AC_SUBST(LIBGC_LIBS) + AC_SUBST(LIBGC_STATIC_LIBS) + AC_SUBST(libgc_dir) + AC_SUBST(BOEHM_DEFINES) + +fi dnl dnl End of Boehm GC Configuration @@ -2549,9 +2712,6 @@ if test "x$enable_nacl_codegen" = "xyes"; then MONO_NACL_ALIGN_MASK_OFF=1 AC_DEFINE(TARGET_NACL, 1, [...]) AC_DEFINE(__native_client_codegen__, 1, [...]) -else - MONO_NACL_ALIGN_MASK_OFF=0 - AC_DEFINE(__default_codegen__, 1, [...]) fi if test "x$enable_nacl_gc" = "xyes"; then if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86"; then @@ -2909,6 +3069,7 @@ case "$host" in TARGET=ARM64 arch_target=arm64 boehm_supported=false + AOT_SUPPORTED="yes" ;; s390x-*-linux*) TARGET=S390X; @@ -3259,11 +3420,23 @@ dnl dnl Simple Generational checks (sgen) dnl SGEN_DEFINES= -AC_ARG_WITH(sgen, [ --with-sgen=yes,no Extra Generational GC, default=yes],[buildsgen=$with_sgen],[buildsgen=yes]) +AC_ARG_WITH(sgen, [ --with-sgen=yes,no Extra Generational GC, default=yes],[buildsgen=$with_sgen],[buildsgen=yes]) +AC_ARG_WITH(sgen-default-concurrent, [ --with-sgen-default-concurrent=yes,no Use Concurrent GC, default=no],[],[with_sgen_default_concurrent=no]) if test x$buildsgen = xyes; then AC_DEFINE(HAVE_MOVING_COLLECTOR, 1, [Moving collector]) SGEN_DEFINES="-DHAVE_SGEN_GC" - gc_msg="sgen and $gc_msg" + + conc_gc_msg="" + if test x$with_sgen_default_concurrent != xno; then + AC_DEFINE(HAVE_CONC_GC_AS_DEFAULT, 1, [Defaults to concurrent GC]) + conc_gc_msg=" (concurrent by default)" + fi + + if test "x$gc_msg" = "x"; then + gc_msg="sgen$conc_gc_msg" + else + gc_msg="sgen$conc_gc_msg and $gc_msg" + fi fi AC_SUBST(SGEN_DEFINES) AM_CONDITIONAL(SUPPORT_SGEN, test x$buildsgen = xyes) @@ -3516,12 +3689,6 @@ if test ${TARGET} = ARM; then fi fi -if test ${TARGET} = ARM; then - if test "x${with_jumptables}" = "xyes"; then - AC_DEFINE(USE_JUMP_TABLES, 1, Use jump tables in JIT) - fi -fi - if test ${TARGET} = unknown; then CPPFLAGS="$CPPFLAGS -DNO_PORT" AC_MSG_WARN("mono has not been ported to $host: some things may not work.") @@ -3555,15 +3722,6 @@ case "x$libgc" in ;; esac -AC_ARG_WITH(profile4_x, [ --with-profile4=yes,no If you want to install the 4.6 FX (defaults to yes)], [], [with_profile4_x=yes]) -AC_ARG_WITH(monodroid, [ --with-monodroid=yes,no If you want to build the MonoDroid assemblies (defaults to no)], [], [with_monodroid=no]) -AC_ARG_WITH(monotouch, [ --with-monotouch=yes,no If you want to build the Xamarin.iOS assemblies (defaults to no)], [], [with_monotouch=no]) -AC_ARG_WITH(monotouch_watch, [ --with-monotouch_watch=yes,no If you want to build the Xamarin.WatchOS assemblies (defaults to no)],[], [with_monotouch_watch=no]) -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]) - MALLOC_MEMPOOLS=no AC_ARG_WITH(malloc_mempools,[ --with-malloc-mempools=yes,no Use malloc for each single mempool allocation (only for runtime debugging, defaults to no)],[ if test x$with_malloc_mempools = xyes; then @@ -3573,15 +3731,18 @@ AC_ARG_WITH(malloc_mempools,[ --with-malloc-mempools=yes,no Use malloc for eac ]) -DISABLE_MCS_DOCS=no +DISABLE_MCS_DOCS=default AC_ARG_WITH(mcs_docs,[ --with-mcs-docs=yes,no If you want to build the documentation under mcs (defaults to yes)],[ if test x$with_mcs_docs != xyes; then DISABLE_MCS_DOCS=yes fi ]) -if test x$with_profile4_x != xyes; then +if test -z "$INSTALL_4_x_TRUE"; then : DISABLE_MCS_DOCS=yes fi +if test "x$DISABLE_MCS_DOCS" = "xdefault"; then + DISABLE_MCS_DOCS=$DISABLE_MCS_DOCS_default +fi AC_ARG_WITH(lazy_gc_thread_creation, [ --with-lazy-gc-thread-creation=yes|no Enable lazy runtime thread creation, embedding host must do it explicitly (defaults to no)],[ if test x$with_lazy_gc_thread_creation != xno ; then @@ -3589,11 +3750,15 @@ AC_ARG_WITH(lazy_gc_thread_creation, [ --with-lazy-gc-thread-creation=yes|no fi ], [with_lazy_gc_thread_creation=no]) -AC_ARG_WITH(cooperative_gc, [ --with-cooperative-gc=yes|no Enable cooperative stop-the-world garbage collection (sgen only) (defaults to no)],[ - if test x$with_cooperative_gc != xno ; then - AC_DEFINE(USE_COOP_GC,1,[Enable cooperative stop-the-world garbage collection.]) - fi -], [with_cooperative_gc=no]) +AC_ARG_WITH(cooperative_gc, [ --with-cooperative-gc=yes|no Enable cooperative stop-the-world garbage collection (sgen only) (defaults to no)], [], [with_cooperative_gc=default]) + +if test x$with_cooperative_gc = xdefault; then + with_cooperative_gc=$with_cooperative_gc_default +fi + +if test x$with_cooperative_gc != xno; then + AC_DEFINE(USE_COOP_GC,1,[Enable cooperative stop-the-world garbage collection.]) +fi AM_CONDITIONAL([ENABLE_COOP], [test x$with_cooperative_gc != xno]) @@ -3651,20 +3816,6 @@ else fi AC_SUBST(LIBMONO_LA) -dnl -dnl Consistency settings -dnl -if test x$cross_compiling = xyes -o x$enable_mcs_build = xno; then - DISABLE_MCS_DOCS=yes - with_profile4_x=no - with_monodroid=no - with_monotouch=no - with_monotouch_watch=no - with_monotouch_tv=no - with_xammac=no - with_mobile_static=no -fi - if test x$DISABLE_MCS_DOCS = xyes; then docs_dir="" else @@ -3677,15 +3828,6 @@ AM_CONDITIONAL(BUILD_MCS, [test x$cross_compiling = xno && test x$enable_mcs_bui libmono_ldflags="$libmono_ldflags $LIBS" -AM_CONDITIONAL(INSTALL_4_x, [test "x$with_profile4_x" = xyes]) -AM_CONDITIONAL(INSTALL_MONODROID, [test "x$with_monodroid" != "xno"]) -AM_CONDITIONAL(INSTALL_MONOTOUCH, [test "x$with_monotouch" != "xno"]) -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) AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC) @@ -3740,22 +3882,6 @@ else fi AC_SUBST(mono_cfg_dir) -default_profile=net_4_x -if test -z "$INSTALL_MONODROID_TRUE"; then : - default_profile=monodroid -fi -if test -z "$INSTALL_MONOTOUCH_TRUE"; then : - default_profile=monotouch -fi -if test -z "$INSTALL_XAMMAC_TRUE"; then : - default_profile=xammac -fi -if test -z "$INSTALL_4_x_TRUE"; then : - default_profile=net_4_x -fi -DEFAULT_PROFILE=$default_profile -AC_SUBST(DEFAULT_PROFILE) - AC_CONFIG_FILES([po/mcs/Makefile.in]) AC_CONFIG_FILES([runtime/mono-wrapper],[chmod +x runtime/mono-wrapper]) @@ -3922,6 +4048,7 @@ AC_OUTPUT([ Makefile mono-uninstalled.pc acceptance-tests/Makefile +llvm/Makefile scripts/mono-find-provides scripts/mono-find-requires mono/Makefile @@ -3988,6 +4115,7 @@ tools/Makefile tools/locale-builder/Makefile tools/sgen/Makefile tools/monograph/Makefile +tools/pedump/Makefile runtime/Makefile msvc/Makefile po/Makefile @@ -4101,7 +4229,7 @@ echo " LLVM Back End: $enable_llvm (dynamically loaded: $enable_loadedllvm) Libraries: - .NET 4.6: $with_profile4_x + .NET 4.x: $with_profile4_x Xamarin.Android: $with_monodroid Xamarin.iOS: $with_monotouch Xamarin.WatchOS: $with_monotouch_watch