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
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"
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(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(aot_hybrid, [ --with-aot_hybrid=yes,no If you want to build the aot_hybrid assemblies (defaults to no)], [], [with_aot_hybrid=default])
+AC_ARG_WITH(aot_only, [ --with-aot_only=yes,no If you want to build the aot_only assemblies (defaults to no)], [], [with_aot_only=default])
+AC_ARG_WITH(xbox, [ --with-xbox=yes,no If you want to build the Xbox assemblies (defaults to no)], [], [with_xbox=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
with_monotouch_watch_default=no
with_monotouch_tv_default=no
with_xammac_default=no
-with_mobile_static_default=no
+with_aot_hybrid_default=no
+with_aot_only_default=no
+with_xbox_default=no
with_bitcode_default=no
with_cooperative_gc_default=no
with_monotouch_watch_default=yes
with_monotouch_tv_default=yes
with_xammac_default=yes
-elif test x$with_runtime_preset = xmobile_static; then
+elif test x$with_runtime_preset = xfullaot; then
DISABLE_MCS_DOCS_default=yes
- with_mobile_static_default=yes
- TEST_PROFILE=mobile_static
+ with_aot_only_default=yes
+ TEST_PROFILE=aot_only
mono_feature_disable_com='yes'
mono_feature_disable_remoting='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
+elif test x$with_runtime_preset = xbitcode; then
DISABLE_MCS_DOCS_default=yes
- with_mobile_static_default=yes
+ with_aot_only_default=yes
with_bitcode_default=yes
with_cooperative_gc_default=yes
- TEST_PROFILE=mobile_static
+ TEST_PROFILE=aot_only
enable_llvm_default=yes
mono_feature_disable_com='yes'
AOT_BUILD_FLAGS="--aot=llvmonly,$INVARIANT_AOT_OPTIONS"
AOT_RUN_FLAGS="--llvmonly"
-elif test x$with_runtime_preset = xhybrid; then
+elif test x$with_runtime_preset = xhybridaot; then
DISABLE_MCS_DOCS_default=yes
- with_mobile_default=yes
- TEST_PROFILE=mobile
- enable_llvm_default=yes
+ with_aot_hybrid_default=yes
+ TEST_PROFILE=aot_hybrid
mono_feature_disable_com='yes'
mono_feature_disable_remoting='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
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_aot_hybrid" = "xdefault"; then
+ with_aot_hybrid=$with_aot_hybrid_default
+fi
+if test "x$with_aot_only" = "xdefault"; then
+ with_aot_only=$with_aot_only_default
fi
+if test "x$with_xbox" = "xdefault"; then
+ with_xbox=$with_xbox_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_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_AOT_HYBRID, [test "x$with_aot_hybrid" != "xno"])
+AM_CONDITIONAL(INSTALL_AOT_ONLY, [test "x$with_aot_only" != "xno"])
-AC_SUBST(INSTALL_MOBILE_STATIC)
+AC_SUBST(INSTALL_AOT_HYBRID)
+AC_SUBST(INSTALL_AOT_ONLY)
default_profile=net_4_x
if test -z "$INSTALL_MONODROID_TRUE"; then :
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_AOT_HYBRID_TRUE"; then :
+ default_profile=aot_hybrid
+fi
+if test -z "$INSTALL_AOT_ONLY_TRUE"; then :
+ default_profile=aot_only
fi
if test -z "$INSTALL_4_x_TRUE"; then :
default_profile=net_4_x
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])
# We have the new, three-parameter version
AC_MSG_RESULT(no)
])
-
+ AC_TRY_COMPILE([#include <sched.h>], [
+ 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 ***
mono_runtime=mono/mini/mono
AC_SUBST(mono_runtime)
+CSC=`cd $srcdir && pwd`/external/roslyn-binaries/Microsoft.Net.Compilers/Microsoft.Net.Compilers.1.3.2/tools/csc.exe
+
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`"'"
else
mono_cfg_dir=`echo $mono_cfg_root | tr '/' '\\'`\\etc
fi
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])
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
echo "BCL_OPTIMIZE = 1" >> $srcdir/$mcsdir/build/config.make
fi
+ echo "CSC_LOCATION = $CSC" >> $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
echo "
mcs source: $mcsdir
+ C# Compiler: $csc_compiler
Engine:
Host: $host
Xamarin.WatchOS: $with_monotouch_watch
Xamarin.TVOS: $with_monotouch_tv
Xamarin.Mac: $with_xammac
- mobile_static: $with_mobile_static
+ AOT preferred: $with_aot_hybrid
+ AOT only: $with_aot_only
JNI support: $jdk_headers_found
libgdiplus: $libgdiplus_msg
zlib: $zlib_msg