From: Miguel de Icaza Date: Wed, 30 Nov 2016 19:53:43 +0000 (-0500) Subject: [configure] Detect endianess and use mcs for big-endian systems. X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=mono.git;a=commitdiff_plain;h=e06e21e754a2d3de5c97fa3728eb06fbb99062f8 [configure] Detect endianess and use mcs for big-endian systems. Renames the flag to be more explicit on the intended purpose. Also, document the new configuration flag. The default will probe the right compiler to use. --- diff --git a/README.md b/README.md index 15e32dd886d..99e99427cc1 100644 --- a/README.md +++ b/README.md @@ -462,6 +462,19 @@ disable it. * There are a number of runtime options to control this also, see the man page. +* `--with-csc={roslyn,mcs,default}' + + * Use this option to configure which C# compiler to use. By default + the configure script will pick Roslyn, except on platforms where + Roslyn does not work (Big Endian systems) where it will pick mcs. + + If you specify "mcs", then Mono's C# compiler will be used. This + also allows for a complete bootstrap of Mono's core compiler and + core libraries from source. + + If you specify "roslyn", then Roslyn's C# compiler will be used. + This uses currently uses Roslyn binaries. + * `--enable-nacl` * This configures the Mono compiler to generate code diff --git a/configure.ac b/configure.ac index 36cdb61b5fb..962b70153a0 100644 --- a/configure.ac +++ b/configure.ac @@ -758,9 +758,32 @@ 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]) - -AC_ARG_WITH(mcs-compiler, [ --with-mcs-compiler=yes,no Changes C# compiler used for compilation to be mcs instead of default csc],[],[with_mcs_compiler=no]) +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 @@ -4403,7 +4426,7 @@ fi echo "CSC_LOCATION = $CSC" >> $srcdir/$mcsdir/build/config.make - if test "x$with_mcs_compiler" = "xyes"; then + if test $csc_compiler = mcs; then echo "MCS_MODE = 1" >> $srcdir/$mcsdir/build/config.make fi @@ -4436,6 +4459,7 @@ fi echo " mcs source: $mcsdir + C# Compiler: $csc_compiler Engine: Host: $host