X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=configure.ac;h=aed81dc091df6eab9c5dc8235980cdf55b46023b;hb=b18a62e599a415170db7ee2201f7d5d6ad791dbc;hp=45dbacccdb6ffb8c8e349b76df8ce4f2040cf579;hpb=be95f699da177f6e2d13937062b8c6eca449104f;p=mono.git diff --git a/configure.ac b/configure.ac index 45dbacccdb6..aed81dc091d 100644 --- a/configure.ac +++ b/configure.ac @@ -432,6 +432,10 @@ AC_HEADER_STDC AC_LIBTOOL_WIN32_DLL # This causes monodis to not link correctly #AC_DISABLE_FAST_INSTALL + +#lookup makedev() header +AC_HEADER_MAJOR + AM_PROG_LIBTOOL # Use dolt (http://dolt.freedesktop.org/) instead of libtool for building. DOLT @@ -539,7 +543,7 @@ AC_ARG_ENABLE(visibility-hidden, WARN='' if test x"$GCC" = xyes; then - WARN='-Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-cast-qual -Wwrite-strings -Wno-switch -Wno-switch-enum -Wno-unused-value -Wno-attributes' + WARN='-Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-cast-qual -Wwrite-strings -Wno-switch -Wno-switch-enum -Wno-unused-value -Wno-attributes -Wno-format-zero-length' # We require C99 with some GNU extensions, e.g. `linux` macro CFLAGS="$CFLAGS -std=gnu99" @@ -758,21 +762,49 @@ fi AC_ARG_ENABLE(system-aot, [ --enable-system-aot Enable the Ahead-Of-Time compilation of system assemblies during the build (on by default on some platforms)], enable_system_aot=$enableval, enable_system_aot=default) DISABLED_FEATURES=none +csc_compiler=default +endian=unknown +AC_C_BIGENDIAN([endian=big],[endian=little],[endian=unknown]) +AC_MSG_CHECKING([CSharp compiler to use]) +AC_ARG_WITH(csc, [ --with-csc=mcs,roslyn,default Configures the CSharp compiler to use],[ + if test x$withval = xmcs; then + csc_compiler=mcs + elif test x$withval = xroslyn; then + csc_compiler=roslyn + elif test x$withval = xdefault; then + : + else + AC_MSG_ERROR([You must supply one of "mcs", "roslyn" or "default" to the --with-csc option]) + fi +],[csc_compiler=default]) + +if test $csc_compiler = default; then + if test $endian = big; then + csc_compiler=mcs + elif test $endian = little; then + csc_compiler=roslyn + else + csc_compiler=mcs + fi +fi +AC_MSG_RESULT($csc_compiler) # # Set the build profiles and options before things which use them # -AC_ARG_WITH(profile4_x, [ --with-profile4_x=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(profile4_x, [ --with-profile4_x=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(testing_aot_hybrid, [ --with-testing_aot_hybrid=yes,no If you want to build the testing_aot_hybrid assemblies (defaults to no)], [], [with_testing_aot_hybrid=default]) +AC_ARG_WITH(testing_aot_full, [ --with-testing_aot_full=yes,no If you want to build the testing_aot_full assemblies (defaults to no)], [], [with_testing_aot_full=default]) +AC_ARG_WITH(winaot, [ --with-winaot=yes,no If you want to build the Windows friendly AOT assemblies (defaults to no)], [], [with_winaot=default]) -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]) +AC_ARG_WITH(runtime_preset, [ --with-runtime_preset=net_4_x,all,aot,hybridaot,fullaot,bitcode Which default profile to build (defaults to net_4_x)], [], [with_runtime_preset=net_4_x]) dnl dnl Profile defaults @@ -780,52 +812,37 @@ dnl TEST_PROFILE=default enable_llvm_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_testing_aot_hybrid_default=no +with_testing_aot_full_default=no +with_winaot_default=no + +with_bitcode_default=no +with_cooperative_gc_default=no + INVARIANT_AOT_OPTIONS=nimt-trampolines=2000,ntrampolines=8000,nrgctx-fetch-trampolines=256,ngsharedvt-trampolines=4000 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 = 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 with_monotouch_default=yes with_monotouch_watch_default=yes with_monotouch_tv_default=yes with_xammac_default=yes - with_mobile_static_default=no - with_bitcode_default=no -elif test x$with_runtime_preset = xmobile_static; then + with_winaot_default=yes +elif test x$with_runtime_preset = xfullaot; 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 + with_testing_aot_full_default=yes + TEST_PROFILE=testing_aot_full mono_feature_disable_com='yes' mono_feature_disable_remoting='yes' @@ -835,18 +852,12 @@ elif test x$with_runtime_preset = xmobile_static; then 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 +elif test x$with_runtime_preset = xbitcode; 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_testing_aot_full_default=yes with_bitcode_default=yes with_cooperative_gc_default=yes - TEST_PROFILE=mobile_static + TEST_PROFILE=testing_aot_full enable_llvm_default=yes mono_feature_disable_com='yes' @@ -857,16 +868,26 @@ elif test x$with_runtime_preset = xbitcode_mobile_static; then AOT_BUILD_FLAGS="--aot=llvmonly,$INVARIANT_AOT_OPTIONS" AOT_RUN_FLAGS="--llvmonly" +elif test x$with_runtime_preset = xhybridaot; then + DISABLE_MCS_DOCS_default=yes + with_testing_aot_hybrid_default=yes + TEST_PROFILE=testing_aot_hybrid + + mono_feature_disable_com='yes' + mono_feature_disable_remoting='yes' + mono_feature_disable_appdomains='yes' + + AOT_BUILD_FLAGS="--aot=hybrid,$INVARIANT_AOT_OPTIONS" + AOT_RUN_FLAGS="--hybrid-aot" +elif test x$with_runtime_preset = xaot; then + with_profile4_x_default=yes + + AOT_BUILD_FLAGS="--aot=$INVARIANT_AOT_OPTIONS" + AOT_RUN_FLAGS="" + + DISABLE_MCS_DOCS_default=yes 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 if test "x$AOT_BUILD_FLAGS" != "x"; then : @@ -899,9 +920,16 @@ 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 +if test "x$with_testing_aot_hybrid" = "xdefault"; then + with_testing_aot_hybrid=$with_testing_aot_hybrid_default +fi +if test "x$with_testing_aot_full" = "xdefault"; then + with_testing_aot_full=$with_testing_aot_full_default fi +if test "x$with_winaot" = "xdefault"; then + with_winaot=$with_winaot_default +fi + AM_CONDITIONAL(INSTALL_4_x, [test "x$with_profile4_x" = "xyes"]) AM_CONDITIONAL(INSTALL_MONODROID, [test "x$with_monodroid" != "xno"]) @@ -910,9 +938,12 @@ 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(INSTALL_TESTING_AOT_HYBRID, [test "x$with_testing_aot_hybrid" != "xno"]) +AM_CONDITIONAL(INSTALL_TESTING_AOT_FULL, [test "x$with_testing_aot_full" != "xno"]) +AM_CONDITIONAL(INSTALL_WINAOT, [test "x$with_winaot" != "xno"]) -AC_SUBST(INSTALL_MOBILE_STATIC) +AC_SUBST(INSTALL_TESTING_AOT_HYBRID) +AC_SUBST(INSTALL_TESTING_AOT_FULL) default_profile=net_4_x if test -z "$INSTALL_MONODROID_TRUE"; then : @@ -924,8 +955,11 @@ fi if test -z "$INSTALL_XAMMAC_TRUE"; then : default_profile=xammac fi -if test -z "$INSTALL_MOBILE_STATIC_TRUE"; then : - default_profile=mobile_static +if test -z "$INSTALL_TESTING_AOT_HYBRID_TRUE"; then : + default_profile=testing_aot_hybrid +fi +if test -z "$INSTALL_TESTING_AOT_FULL_TRUE"; then : + default_profile=testing_aot_full fi if test -z "$INSTALL_4_x_TRUE"; then : default_profile=net_4_x @@ -958,7 +992,7 @@ 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, - security, sgen_remset, sgen_marksweep_par, sgen_marksweep_fixed, sgen_marksweep_fixed_par, sgen_copying.], + security, lldb, mdb, sgen_remset, sgen_marksweep_par, sgen_marksweep_fixed, sgen_marksweep_fixed_par, sgen_copying.], [ for feature in `echo "$enable_minimal" | sed -e "s/,/ /g"`; do eval "mono_feature_disable_$feature='yes'" @@ -1047,11 +1081,6 @@ if test "x$mono_feature_disable_attach" = "xyes"; then AC_MSG_NOTICE([Disabled agent attach]) fi -if test "x$mono_feature_disable_full_messages" = "xyes"; then - AC_DEFINE(DISABLE_FULL_MESSAGES, 1, [Disables building in the full table of WAPI messages]) - AC_MSG_NOTICE([Disabled full messages for Win32 errors, only core message strings shipped]) -fi - if test "x$mono_feature_disable_verifier" = "xyes"; then AC_DEFINE(DISABLE_VERIFIER, 1, [Disables the verifier]) AC_MSG_NOTICE([Disabled the metadata and IL verifiers]) @@ -1108,6 +1137,16 @@ if test "x$mono_feature_disable_security" = "xyes"; then AC_MSG_NOTICE([Disabled CAS/CoreCLR security manager (used e.g. for Moonlight)]) fi +if test "x$mono_feature_disable_lldb" = "xyes"; then + AC_DEFINE(DISABLE_LLDB, 1, [Disable support code for the LLDB plugin.]) + AC_MSG_NOTICE([Disabled LLDB plugin support code.]) +fi + +if test "x$mono_feature_disable_mdb" = "xyes"; then + AC_DEFINE(DISABLE_MDB, 1, [Disable support for .mdb symbol files.]) + AC_MSG_NOTICE([Disabled support for .mdb symbol files.]) +fi + if test "x$mono_feature_disable_sgen_remset" = "xyes"; then AC_DEFINE(DISABLE_SGEN_REMSET, 1, [Disable wbarrier=remset support in SGEN.]) AC_MSG_NOTICE([Disabled wbarrier=remset support in SGEN.]) @@ -1393,7 +1432,15 @@ if test x$host_win32 = xno; then # We have the new, three-parameter version AC_MSG_RESULT(no) ]) - + AC_TRY_COMPILE([#include ], [ + CPU_COUNT((void *) 0); + ], [ + AC_MSG_RESULT(yes) + AC_DEFINE(GLIBC_HAS_CPU_COUNT, 1, [GLIBC has CPU_COUNT macro in sched.h]) + ], [ + # We have the new, three-parameter version + AC_MSG_RESULT(no) + ]) dnl ****************************************************************** dnl *** Check for large file support *** @@ -3000,6 +3047,7 @@ case "$host" in AOT_SUPPORTED="yes" BTLS_SUPPORTED=yes BTLS_PLATFORM=i386 + AC_CHECK_HEADER(stdalign.h,[],[BTLS_SUPPORTED=no]) ;; darwin*) AOT_SUPPORTED="yes" @@ -3022,11 +3070,13 @@ case "$host" in AOT_SUPPORTED="yes" BTLS_SUPPORTED=yes BTLS_PLATFORM=x86_64 + AC_CHECK_HEADER(stdalign.h,[],[BTLS_SUPPORTED=no]) ;; darwin*) AOT_SUPPORTED="yes" BTLS_SUPPORTED=yes BTLS_PLATFORM=x86_64 + boehm_supported=false ;; openbsd*|freebsd*|kfreebsd-gnu*) ;; @@ -3483,6 +3533,15 @@ if test "x$have_deprecated" = "xyes"; then AC_DEFINE(HAVE_DEPRECATED, 1, [Support for the deprecated attribute]) fi +AC_ARG_WITH(interpreter, [ --with-interpreter=yes|no Interpreter, default=no],[buildinterpreter=$with_interpreter],[buildinterpreter=no]) +if test "x$buildinterpreter" = "xyes"; then + AC_DEFINE(ENABLE_INTERPRETER, 1, [Enable interpreter in the runtime.]) + AC_MSG_NOTICE([Enable interpreter in the runtime.]) +fi + +AM_CONDITIONAL([ENABLE_INTERPRETER], [test x$buildinterpreter != xno]) + + dnl dnl Simple Generational checks (sgen) dnl @@ -3804,6 +3863,20 @@ if test ${ACCESS_UNALIGNED} = no; then CPPFLAGS="$CPPFLAGS -DNO_UNALIGNED_ACCESS" fi +if test x$host_darwin = xyes; then + AC_MSG_CHECKING([for ranlib that supports -no_warning_for_no_symbols option]) + AS_IF( + [$RANLIB -no_warning_for_no_symbols 2>&1 | grep -q "unknown option"], + [AC_MSG_RESULT([no])], + [ + # avoid AR calling ranlib, libtool calls it anyway. suppress no symbols warning. + AR_FLAGS="Scru" + RANLIB="$RANLIB -no_warning_for_no_symbols" + AC_MSG_RESULT([yes]) + ] + ) +fi + case "x$libgc" in xincluded) # Pass CPPFLAGS to libgc configure @@ -4060,10 +4133,20 @@ AC_SUBST(mono_build_root) mono_runtime=mono/mini/mono AC_SUBST(mono_runtime) +CSC_LOCATION=`cd $srcdir && pwd`/external/roslyn-binaries/Microsoft.Net.Compilers/Microsoft.Net.Compilers.2.0.0/tools/csc.exe + +if test $csc_compiler = mcs; then + CSC=$mcs_topdir/class/lib/build/mcs.exe +else + CSC=$CSC_LOCATION +fi + mono_cfg_root=$mono_build_root/runtime if test x$host_win32 = xyes; then if test "x$cross_compiling" = "xno"; then mono_cfg_dir=`cygpath -w -a $mono_cfg_root`\\etc + CSC="'"`cygpath -w -a $CSC`"'" + CSC_LOCATION="'"`cygpath -w -a $CSC_LOCATION`"'" else mono_cfg_dir=`echo $mono_cfg_root | tr '/' '\\'`\\etc fi @@ -4072,6 +4155,8 @@ else fi AC_SUBST(mono_cfg_dir) +AC_SUBST(CSC) + AC_CONFIG_FILES([po/mcs/Makefile.in]) AC_CONFIG_FILES([runtime/mono-wrapper],[chmod +x runtime/mono-wrapper]) @@ -4350,6 +4435,7 @@ fi echo "exec_prefix=$exec_prefix" >> $mcs_topdir/build/config.make echo "sysconfdir=$sysconfdir" >> $mcs_topdir/build/config.make echo 'mono_libdir=${exec_prefix}/lib' >> $mcs_topdir/build/config.make + echo "mono_build_root=$mono_build_root" >> $mcs_topdir/build/config.make echo 'IL_FLAGS = /debug' >> $mcs_topdir/build/config.make echo "RUNTIME = $mono_build_root/runtime/mono-wrapper" >> $mcs_topdir/build/config.make echo "ILDISASM = $mono_build_root/runtime/monodis-wrapper" >> $mcs_topdir/build/config.make @@ -4403,6 +4489,12 @@ fi echo "BCL_OPTIMIZE = 1" >> $srcdir/$mcsdir/build/config.make fi + echo "CSC_LOCATION = $CSC_LOCATION" >> $srcdir/$mcsdir/build/config.make + + if test $csc_compiler = mcs; then + echo "MCS_MODE = 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 @@ -4432,6 +4524,7 @@ fi echo " mcs source: $mcsdir + C# Compiler: $csc_compiler Engine: Host: $host @@ -4443,6 +4536,7 @@ echo " BigArrays: $enable_big_arrays DTrace: $enable_dtrace LLVM Back End: $enable_llvm (dynamically loaded: $enable_loadedllvm) + Interpreter: $buildinterpreter Libraries: .NET 4.x: $with_profile4_x @@ -4451,7 +4545,8 @@ echo " Xamarin.WatchOS: $with_monotouch_watch Xamarin.TVOS: $with_monotouch_tv Xamarin.Mac: $with_xammac - mobile_static: $with_mobile_static + Windows AOT: $with_winaot + Test profiles: AOT Full ($with_testing_aot_full), AOT Hybrid ($with_testing_aot_hybrid) JNI support: $jdk_headers_found libgdiplus: $libgdiplus_msg zlib: $zlib_msg