# 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.1.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=1
+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
;;
PLATFORM_AOT_SUFFIX=.so
fi
+if test -z "$HOST_WIN32_TRUE"; then :
+PLATFORM_AOT_SUFFIX=.dll
+fi
+
AC_SUBST(PLATFORM_AOT_SUFFIX)
## PLATFORM_AOT_SUFFIX not so simple for windows :-)
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(orbis, [ --with-orbis=yes,no If you want to build the Orbis assemblies (defaults to no)], [], [with_orbis=default])
+
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])
with_testing_aot_hybrid_default=no
with_testing_aot_full_default=no
with_winaot_default=no
+with_orbis_default=no
with_bitcode_default=no
with_cooperative_gc_default=no
with_monotouch_tv_default=yes
with_xammac_default=yes
with_winaot_default=yes
+ with_orbis_default=yes
elif test x$with_runtime_preset = xfullaot; 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="-O=gsharedvt --aot=full,$INVARIANT_AOT_OPTIONS"
- AOT_RUN_FLAGS="--full-aot"
+ AOT_BUILD_FLAGS="--runtime=mobile -O=gsharedvt --aot=full,$INVARIANT_AOT_OPTIONS"
+
+ 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
AOT_RUN_FLAGS=""
DISABLE_MCS_DOCS_default=yes
+elif test x$with_runtime_preset = xwinaot; then
+ DISABLE_MCS_DOCS_default=yes
+ with_winaot_default=yes
+ TEST_PROFILE=winaot
+
+ mono_feature_disable_com='yes'
+ mono_feature_disable_remoting='yes'
+ mono_feature_disable_reflection_emit_save='yes'
+ mono_feature_disable_reflection_emit='yes'
+ mono_feature_disable_appdomains='yes'
+
+ 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
+ TEST_PROFILE=orbis
+
+ mono_feature_disable_com='yes'
+ mono_feature_disable_remoting='yes'
+ mono_feature_disable_reflection_emit_save='yes'
+ mono_feature_disable_reflection_emit='yes'
+ mono_feature_disable_appdomains='yes'
+
+ 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$with_winaot" = "xdefault"; then
with_winaot=$with_winaot_default
fi
+if test "x$with_orbis" = "xdefault"; then
+ with_orbis=$with_orbis_default
+fi
AM_CONDITIONAL(INSTALL_4_x, [test "x$with_profile4_x" = "xyes"])
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_TESTING_AOT_HYBRID)
-AC_SUBST(INSTALL_TESTING_AOT_FULL)
+AM_CONDITIONAL(INSTALL_ORBIS, [test "x$with_orbis" != "xno"])
+AM_CONDITIONAL(FULL_AOT_TESTS, [test "x$TEST_PROFILE" = "xtesting_aot_full"] || [test "x$TEST_PROFILE" = "xwinaot"] || [test "x$TEST_PROFILE" = "xorbis"])
+AM_CONDITIONAL(HYBRID_AOT_TESTS, [test "x$TEST_PROFILE" = "xtesting_aot_hybrid"])
default_profile=net_4_x
if test -z "$INSTALL_MONODROID_TRUE"; then :
if test -z "$INSTALL_TESTING_AOT_FULL_TRUE"; then :
default_profile=testing_aot_full
fi
+if test -z "$INSTALL_WINAOT_TRUE"; then :
+ default_profile=winaot
+fi
+if test -z "$INSTALL_ORBIS_TRUE"; then :
+ default_profile=orbis
+fi
if test -z "$INSTALL_4_x_TRUE"; then :
default_profile=net_4_x
fi
AC_CHECK_FUNCS(getgrgid_r)
AC_CHECK_FUNCS(getgrnam_r)
- AC_CHECK_FUNCS(getpwnam_r)
- AC_CHECK_FUNCS(getpwuid_r)
AC_CHECK_FUNCS(getresuid)
AC_CHECK_FUNCS(setresuid)
AC_CHECK_FUNCS(kqueue)
AC_CHECK_FUNCS(sched_setaffinity)
AC_CHECK_FUNCS(sched_getcpu)
+ if test x$platform_android != xyes; then
+ AC_CHECK_FUNCS(getpwnam_r)
+ AC_CHECK_FUNCS(getpwuid_r)
+ fi
+
dnl ****************************************************************
dnl *** Check for sched_setaffinity from glibc versions before ***
dnl *** 2.3.4. The older versions of the function only take 2 ***
# 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 **********************************
TARGET=ARM;
arch_target=arm;
AC_DEFINE(TARGET_ARM, 1, [...])
- AC_DEFINE(TARGET_ANDROID, 1, [...])
ACCESS_UNALIGNED="no"
CPPFLAGS="$CPPFLAGS -D__ARM_EABI__"
# Can't use tls, since it depends on the runtime detection of tls offsets
CPPFLAGS="$CPPFLAGS"
;;
armv5-*-linux-androideabi*)
+ AC_DEFINE(TARGET_ANDROID, 1, [...])
+ CPPFLAGS="$CPPFLAGS"
+ ;;
+ *-linux-androideabi*)
+ AC_DEFINE(TARGET_ANDROID, 1, [...])
CPPFLAGS="$CPPFLAGS"
;;
esac
TARGET=X86;
arch_target=x86;
AC_DEFINE(TARGET_X86, 1, [...])
- AC_DEFINE(TARGET_ANDROID, 1, [...])
CPPFLAGS="$CPPFLAGS"
# Can't use tls, since it depends on the runtime detection of tls offsets
# in mono-compiler.h
with_tls=pthread
target_mach=no
+
+ case "$target" in
+ *-linux-android*)
+ AC_DEFINE(TARGET_ANDROID, 1, [...])
+ ;;
+ esac
;;
x86_64*-linux-*)
TARGET=AMD64;
arch_target=amd64;
AC_DEFINE(TARGET_AMD64, 1, [...])
- AC_DEFINE(TARGET_ANDROID, 1, [...])
CPPFLAGS="$CPPFLAGS"
# Can't use tls, since it depends on the runtime detection of tls offsets
# in mono-compiler.h
with_tls=pthread
target_mach=no
+
+ case "$target" in
+ *-linux-android*)
+ AC_DEFINE(TARGET_ANDROID, 1, [...])
+ ;;
+ esac
;;
x86_64-ps4-freebsd)
TARGET=AMD64;
TARGET=ARM64;
arch_target=arm64;
AC_DEFINE(TARGET_ARM64, 1, [...])
- AC_DEFINE(TARGET_ANDROID, 1, [...])
CPPFLAGS="$CPPFLAGS"
# Can't use tls, since it depends on the runtime detection of tls offsets
# in mono-compiler.h
with_tls=pthread
target_mach=no
+ case "$target" in
+ *-linux-android*)
+ AC_DEFINE(TARGET_ANDROID, 1, [...])
+ ;;
+ esac
;;
aarch64-*)
TARGET=ARM64
AC_DEFINE(TARGET_OSX,1,[The JIT/AOT targets OSX])
CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC -DTARGET_OSX"
CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DTARGET_OSX"
+ target_osx=yes
], [
AC_DEFINE(TARGET_IOS,1,[The JIT/AOT targets iOS])
CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC -DTARGET_IOS"
AC_DEFINE(TARGET_MACH,1,[The JIT/AOT targets Apple platforms])
fi
+AM_CONDITIONAL(TARGET_OSX, test x$target_osx = xyes)
+
if test "x$sizeof_register" = "x4"; then
AC_DEFINE(SIZEOF_REGISTER,4,[size of machine integer registers])
elif test "x$sizeof_register" = "x8"; 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.])
+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
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
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`"'"
+ CSC=`cygpath -m -a $CSC`
+ CSC_LOCATION=`cygpath -m -a $CSC_LOCATION`
else
mono_cfg_dir=`echo $mono_cfg_root | tr '/' '\\'`\\etc
fi
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
])
# Update all submodules recursively to ensure everything is checked out
-$srcdir/scripts/update_submodules
+$srcdir/scripts/update_submodules.sh
if test x$host_win32 = xyes; then
# Get rid of 'cyg' prefixes in library names
}')]
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 "PLATFORM = darwin" >> $mcs_topdir/build/config.make
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
Xamarin.TVOS: $with_monotouch_tv
Xamarin.Mac: $with_xammac
Windows AOT: $with_winaot
+ Orbis: $with_orbis
Test profiles: AOT Full ($with_testing_aot_full), AOT Hybrid ($with_testing_aot_hybrid)
JNI support: $jdk_headers_found
libgdiplus: $libgdiplus_msg