# Process this file with autoconf to produce a configure script.
#AC_PREREQ([2.62])
-# when bumping version number below, keep it in sync with man/mono.1 too
-AC_INIT(mono, [4.9.0],
+AC_INIT(mono, [5.3.0],
[http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono])
AC_CONFIG_SRCDIR([README.md])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+MONO_VERSION_MAJOR=`echo $VERSION | cut -d . -f 1`
+MONO_VERSION_MINOR=`echo $VERSION | cut -d . -f 2`
+MONO_VERSION_BUILD=`echo $VERSION | cut -d . -f 3`
+
+# This is the version number of the corlib-runtime interface. When
+# making changes to this interface (by changing the layout
+# of classes the runtime knows about, changing icall signature or
+# semantics etc), increment this variable.
+#
+# This can be reset to 0 when Mono's version number is bumped
+# since it's part of the corlib version (the prefix '1' in the full
+# version number is to ensure the number isn't treated as octal in C)
+MONO_CORLIB_COUNTER=2
+MONO_CORLIB_VERSION=`printf "1%02d%02d%02d%03d" $MONO_VERSION_MAJOR $MONO_VERSION_MINOR $MONO_VERSION_BUILD $MONO_CORLIB_COUNTER`
+
+AC_DEFINE_UNQUOTED(MONO_CORLIB_VERSION,$MONO_CORLIB_VERSION,[Version of the corlib-runtime interface])
+AC_SUBST(MONO_CORLIB_VERSION)
+
case $host_os in
*cygwin* )
echo "Run configure using ./configure --host=i686-pc-mingw32"
CFLAGS="$CFLAGS -DPAGE_SIZE=4096 -DS_IWRITE=S_IWUSR"
CXXFLAGS="$CXXFLAGS -DPAGE_SIZE=4096 -DS_IWRITE=S_IWUSR"
- # The configure check can't detect this
- AC_DEFINE(HAVE_LARGE_FILE_SUPPORT, 1, [Have large file support])
-
# to bypass the underscore linker check, can't work when cross-compiling
mono_cv_uscore=yes
mono_cv_clang=no
CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_THREAD_SAFE"
libmono_cflags="-D_REENTRANT -D_THREAD_SAFE"
libdl=
- LIBS="$LIBS -lnetwork"
+ LIBS="$LIBS -lnetwork -ltextencoding"
need_link_unlink=yes
AC_DEFINE(PTHREAD_POINTER_ID)
+ dnl Haiku does not support static TLS with __thread
+ with_tls=pthread
+ dnl Boehm is too much work to backport Haiku support for
+ support_boehm=no
libgc_threads=pthreads
use_sigposix=yes
;;
mono_feature_disable_reflection_emit='yes'
mono_feature_disable_appdomains='yes'
- AOT_BUILD_FLAGS="-O=gsharedvt --aot=full,$INVARIANT_AOT_OPTIONS"
+ AOT_BUILD_FLAGS="--runtime=mobile -O=gsharedvt --aot=full,$INVARIANT_AOT_OPTIONS"
- AOT_RUN_FLAGS="--full-aot"
+ AOT_RUN_FLAGS="--runtime=mobile --full-aot"
elif test x$with_runtime_preset = xbitcode; then
DISABLE_MCS_DOCS_default=yes
with_testing_aot_full_default=yes
mono_feature_disable_reflection_emit='yes'
mono_feature_disable_appdomains='yes'
- AOT_BUILD_FLAGS="--aot=llvmonly,$INVARIANT_AOT_OPTIONS"
- AOT_RUN_FLAGS="--llvmonly"
+ AOT_BUILD_FLAGS="--runtime=mobile --aot=llvmonly,$INVARIANT_AOT_OPTIONS"
+ AOT_RUN_FLAGS="--runtime=mobile --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"
+ AOT_BUILD_FLAGS="--runtime=mobile --aot=hybrid,$INVARIANT_AOT_OPTIONS"
+ AOT_RUN_FLAGS="--runtime=mobile --hybrid-aot"
elif test x$with_runtime_preset = xaot; then
with_profile4_x_default=yes
mono_feature_disable_reflection_emit='yes'
mono_feature_disable_appdomains='yes'
- AOT_BUILD_FLAGS="--aot=full,$INVARIANT_AOT_OPTIONS"
- AOT_RUN_FLAGS="--full-aot"
+ AOT_BUILD_FLAGS="--runtime=mobile --aot=full,$INVARIANT_AOT_OPTIONS"
+ AOT_RUN_FLAGS="--runtime=mobile --full-aot"
elif test x$with_runtime_preset = xorbis; then
DISABLE_MCS_DOCS_default=yes
with_orbis_default=yes
mono_feature_disable_reflection_emit='yes'
mono_feature_disable_appdomains='yes'
- AOT_BUILD_FLAGS="--aot=full,$INVARIANT_AOT_OPTIONS"
- AOT_RUN_FLAGS="--full-aot"
+ AOT_BUILD_FLAGS="--runtime=mobile --aot=full,$INVARIANT_AOT_OPTIONS"
+ AOT_RUN_FLAGS="--runtime=mobile --full-aot"
else
with_profile4_x_default=yes
fi
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
+ AC_MSG_CHECKING([NLS used])
+
+ # 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.
+ if test x$host_darwin = xyes; then
+ USE_NLS=no;
+ else
+ USE_NLS=yes;
+ fi
+ AC_SUBST([USE_NLS])
+ AC_MSG_RESULT([$USE_NLS])
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,
+ reflection_emit, reflection_emit_save, large_code, logging, com, ssa, generics, attach, jit, simd, soft_debug, perfcounters, normalization, desktop_loader, shared_perfcounters, remoting,
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
AC_MSG_NOTICE([Disabled String normalization support.])
fi
-if test "x$mono_feature_disable_assembly_remapping" = "xyes"; then
- AC_DEFINE(DISABLE_ASSEMBLY_REMAPPING, 1, [Disable assembly remapping.])
- AC_MSG_NOTICE([Disabled Assembly remapping.])
+#TODO: remove assembly_remapping feature name once everyone is using desktop_loader
+if test "x$mono_feature_disable_assembly_remapping" = "xyes" || test "x$mono_feature_disable_desktop_loader" = "xyes"; then
+ AC_DEFINE(DISABLE_DESKTOP_LOADER, 1, [Disable desktop assembly loader semantics.])
+ AC_MSG_NOTICE([Disabled desktop assembly loader semantics.])
fi
if test "x$mono_feature_disable_shared_perfcounters" = "xyes"; then
dnl Boehm GC configuration
dnl
-AC_ARG_WITH(libgc, [ --with-gc=included,none Controls the Boehm GC config, default=included],[libgc=$with_gc],[libgc=included])
+AC_ARG_WITH(libgc, [ --with-libgc=included,none Controls the Boehm GC config, default=included],[libgc=$with_gc],[libgc=included])
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)
;;
xsgen)
- AC_MSG_WARN("Use --with-sgen instead, --with-gc= controls Boehm configuration")
+ AC_MSG_WARN("Use --with-sgen instead, --with-libgc= controls Boehm configuration")
;;
xnone)
gc_msg="none"
;;
*)
- AC_MSG_ERROR([Invalid argument to --with-gc.])
+ AC_MSG_ERROR([Invalid argument to --with-libgc.])
;;
esac
# and libpthread does not exist
#
case "${host}" in
+ *-*-*haiku*)
+ dnl Haiku has pthread in libroot (libc equiv)
+ AC_CHECK_LIB(pthread, main, LIBS="$LIBS")
+ ;;
*-*-*freebsd*)
AC_CHECK_LIB(pthread, main, LIBS="$LIBS -pthread")
;;
AC_MSG_RESULT(no)
])
+ dnl **********************************
+ dnl *** Checks for proclib ***
+ dnl **********************************
+ AC_CHECK_HEADER(sys/errno.h, [AC_DEFINE(HAVE_SYS_ERRNO_H, 1, Define to 1 if you have the <sys/errno.h> header file.)])
dnl **********************************
dnl *** Checks for MonoPosixHelper ***
dnl **********************************
AC_CHECK_FUNCS(system)
AC_CHECK_FUNCS(fork execv execve)
AC_CHECK_FUNCS(accept4)
+ AC_CHECK_FUNCS(localtime_r)
+ AC_CHECK_FUNCS(mkdtemp)
AC_CHECK_SIZEOF(size_t)
AC_CHECK_TYPES([blksize_t], [AC_DEFINE(HAVE_BLKSIZE_T)], ,
[#include <sys/types.h>
LLVM_CXXFLAGS="$LLVM_CXXFLAGS -DLLVM_API_VERSION=$llvm_api_version"
fi
- AC_DEFINE_UNQUOTED(LLVM_VERSION, "$llvm_version", [Full version of LLVM libraties])
+ AC_DEFINE_UNQUOTED(LLVM_VERSION, "$llvm_version", [Full version of LLVM libraries])
AC_SUBST(LLVM_CFLAGS)
AC_SUBST(LLVM_CXXFLAGS)
;;
esac
;;
- ia64-*-*)
- TARGET=IA64
- arch_target=ia64
- ACCESS_UNALIGNED="no"
- LIBC="libc.so.6.1"
- INTL="libc.so.6.1"
- AC_CHECK_LIB(unwind, _U_dyn_register, [], [AC_MSG_ERROR(library libunwind not found)])
- libmono_ldflags="-lunwind"
- ;;
sparc*-*-*)
if test "x$ac_cv_sizeof_void_p" = "x8"; then
TARGET=SPARC64
ACCESS_UNALIGNED="no"
AOT_SUPPORTED="yes"
CPPFLAGS="$CPPFLAGS -D__ARM_EABI__"
+ BTLS_SUPPORTED=yes
+ BTLS_PLATFORM=arm
+ AC_CHECK_HEADER(stdalign.h,[],[BTLS_SUPPORTED=no])
+ case "$target" in
+ arm*-linux*-gnueabi)
+ BTLS_PLATFORM=armsoft
+ ;;
+ esac
;;
arm*-netbsd*-eabi*)
TARGET=ARM;
arch_target=arm64
boehm_supported=false
AOT_SUPPORTED="yes"
+ BTLS_SUPPORTED=yes
+ BTLS_PLATFORM=aarch64
+ AC_CHECK_HEADER(stdalign.h,[],[BTLS_SUPPORTED=no])
;;
s390x-*-linux*)
TARGET=S390X;
MIPS)
AC_DEFINE(TARGET_MIPS, 1, [...])
;;
-IA64)
- AC_DEFINE(TARGET_IA64, 1, [...])
- ;;
SPARC)
AC_DEFINE(TARGET_SPARC, 1, [...])
;;
MIPS)
AC_DEFINE(HOST_MIPS, 1, [...])
;;
-IA64)
- AC_DEFINE(HOST_IA64, 1, [...])
- ;;
SPARC)
AC_DEFINE(HOST_SPARC, 1, [...])
;;
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.])
+AC_ARG_ENABLE(interpreter, [ --enable-interpreter Enable Interpreter], enable_interpreter=$enableval, enable_interpreter=no)
+
+if test "x$enable_interpreter" = "xyes"; then
+ AC_DEFINE(ENABLE_INTERPRETER, 1, [Enable Interpreter])
fi
-AM_CONDITIONAL([ENABLE_INTERPRETER], [test x$buildinterpreter != xno])
+AM_CONDITIONAL(ENABLE_INTERPRETER, [test x$enable_interpreter = xyes])
dnl
AC_ARG_ENABLE(btls, [ --disable-btls Disable the BoringTls provider], enable_btls=$enableval, enable_btls=$BTLS_SUPPORTED)
AC_ARG_WITH(btls_android_ndk, [ --with-btls-android-ndk Android NDK for BoringTls])
-AC_ARG_ENABLE(dynamic-btls, [ --enable-dynamic-btls Place the BTLS provider into a separate shared library/archive.], enable_dynamic_btls=$enableval, enable_dynamic_btls=no)
-
AM_CONDITIONAL(BTLS, test x$enable_btls = xyes)
btls_android=no
x86_64)
btls_arch=x86_64
;;
+ arm)
+ btls_arch=arm
+ ;;
+ armsoft)
+ btls_arch=arm
+ btls_cflags="-DOPENSSL_NO_ASM=1"
+ ;;
+ aarch64)
+ btls_arch=aarch64
+ ;;
android-armv5)
BTLS_CMAKE_ARGS="-DANDROID_ABI=\"armeabi\" -DANDROID_NATIVE_API_LEVEL=12"
;;
BTLS_CMAKE_ARGS="$BTLS_CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=$BTLS_ROOT/util/android-cmake/android.toolchain.cmake"
if test "x$with_btls_android_ndk" != "x"; then
BTLS_CMAKE_ARGS="$BTLS_CMAKE_ARGS -DANDROID_NDK=\"$with_btls_android_ndk\""
+ else
+ AC_MSG_ERROR([Need to pass the --with-btls-android-ndk argument when building with BTLS support on Android.])
fi
fi
AM_CONDITIONAL(SPARC64, test x$TARGET = xSPARC64)
AM_CONDITIONAL(X86, test x$TARGET = xX86)
AM_CONDITIONAL(AMD64, test x$TARGET = xAMD64)
-AM_CONDITIONAL(IA64, test x$TARGET = xIA64)
AM_CONDITIONAL(MIPS, test x$TARGET = xMIPS)
AM_CONDITIONAL(POWERPC, test x$TARGET = xPOWERPC)
AM_CONDITIONAL(POWERPC64, test x$TARGET = xPOWERPC64)
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
+CSC_LOCATION=`cd $srcdir && pwd`/external/roslyn-binaries/Microsoft.Net.Compilers/Microsoft.Net.Compilers.2.3.0/tools/csc.exe
if test $csc_compiler = mcs; then
CSC=$mcs_topdir/class/lib/build/mcs.exe
mono/arch/s390x/Makefile
mono/arch/arm/Makefile
mono/arch/arm64/Makefile
-mono/arch/ia64/Makefile
mono/arch/mips/Makefile
mono/sgen/Makefile
mono/tests/Makefile
mono/tests/tests-config
-mono/tests/assemblyresolve/Makefile
mono/tests/gc-descriptors/Makefile
+mono/tests/testing_gac/Makefile
mono/unit-tests/Makefile
mono/benchmark/Makefile
mono/mini/Makefile
}')]
echo "MONO_VERSION = $myver" >> $mcs_topdir/build/config.make
+ echo "MONO_CORLIB_VERSION = $MONO_CORLIB_VERSION" >> $mcs_topdir/build/config.make
+
+ if test x$host_darwin = xyes; then
+ echo "BUILD_PLATFORM = darwin" >> $mcs_topdir/build/config.make
+ elif test x$host_win32 = xyes; then
+ echo "BUILD_PLATFORM = win32" >> $mcs_topdir/build/config.make
+ else
+ echo "BUILD_PLATFORM = linux" >> $mcs_topdir/build/config.make
+ fi
if test x$host_darwin = xyes; then
- echo "PLATFORM = darwin" >> $mcs_topdir/build/config.make
+ echo "HOST_PLATFORM ?= darwin" >> $mcs_topdir/build/config.make
+ elif test x$host_win32 = xyes; then
+ echo "HOST_PLATFORM ?= win32" >> $mcs_topdir/build/config.make
+ else
+ echo "HOST_PLATFORM ?= linux" >> $mcs_topdir/build/config.make
fi
if test "x$PLATFORM_AOT_SUFFIX" != "x"; then
if test "x$enable_btls" = "xyes"; then
echo "HAVE_BTLS=1" >> $srcdir/$mcsdir/build/config.make
- if test "x$enable_dynamic_btls" = "xyes"; then
- echo "HAVE_DYNAMIC_BTLS=1" >> $srcdir/$mcsdir/build/config.make
- fi
fi
fi
BigArrays: $enable_big_arrays
DTrace: $enable_dtrace
LLVM Back End: $enable_llvm (dynamically loaded: $enable_loadedllvm)
- Interpreter: $buildinterpreter
+ Interpreter: $enable_interpreter
Libraries:
.NET 4.x: $with_profile4_x