# Process this file with autoconf to produce a configure script.
#AC_PREREQ([2.62])
-AC_INIT(mono, [3.2.7],
+AC_INIT(mono, m4_esyscmd([tr -d '\r\n' < MONO_VERSION]),
[http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono])
AC_CONFIG_SRCDIR([README.md])
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
# The runtime code does not respect ANSI C strict aliasing rules
CFLAGS="$CFLAGS -fno-strict-aliasing"
+ # We rely on signed overflow to behave
+ CFLAGS="$CFLAGS -fwrapv"
+
ORIG_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS -Wdeclaration-after-statement"
AC_MSG_CHECKING(for -Wdeclaration-after-statement option to gcc)
if test "x$mono_cv_clang" = "xyes"; then
# https://bugzilla.samba.org/show_bug.cgi?id=8118
WARN="$WARN -Qunused-arguments"
- WARN="$WARN -Wno-unused-function -Wno-tautological-compare"
+ WARN="$WARN -Wno-unused-function -Wno-tautological-compare -Wno-parentheses-equality -Wno-self-assign"
fi
else
# The Sun Forte compiler complains about inline functions that access static variables
AC_MSG_NOTICE([Enabling mono extension module.])
fi
+AC_ARG_ENABLE(gsharing, [ --enable-gsharing Enable gsharing], enable_gsharing=$enableval, enable_gsharing=no)
+if test x$enable_gsharing = xyes; then
+ AC_DEFINE(ENABLE_GSHAREDVT,1,[Gsharing])
+fi
+
+AC_ARG_ENABLE(native-types, [ --enable-native-types Enable native types], enable_native_types=$enableval, enable_native_types=no)
+if test x$enable_native_types = xyes; then
+ AC_DEFINE(MONO_NATIVE_TYPES,1,[native types])
+fi
AC_MSG_CHECKING(for visibility __attribute__)
AC_COMPILE_IFELSE([
AC_CHECK_HEADERS(pthread.h)
AC_CHECK_HEADERS(pthread_np.h)
AC_CHECK_FUNCS(pthread_mutex_timedlock)
- AC_CHECK_FUNCS(pthread_getattr_np pthread_attr_get_np)
+ AC_CHECK_FUNCS(pthread_getattr_np pthread_attr_get_np pthread_setname_np)
AC_CHECK_FUNCS(pthread_kill)
AC_MSG_CHECKING(for PTHREAD_MUTEX_RECURSIVE)
AC_TRY_COMPILE([ #include <pthread.h>], [
fi
havekqueue=no
- AC_CHECK_FUNCS(kqueue, , AC_MSG_CHECKING(for kqueue in sys/event.h)
- AC_TRY_LINK([#include <sys/event.h>],
- [ kqueue(); ],[havekqueue=yes],[]))
+
+ AC_CHECK_HEADERS(sys/event.h)
+ AC_CHECK_FUNCS(kqueue, [havekqueue=yes], )
dnl **************************************
dnl * Darwin has a race that prevents us from using reliably:
dnl * and very few folks run Mono on large web servers on OSX, falling
dnl * back
dnl **************************************
- if test x$havekqueue = xyes; then
- if x$platform_darwin = xno; then
+ if test "x$havekqueue" = "xyes" -a "x$ac_cv_header_sys_event_h" = "xyes"; then
+ if test "x$platform_darwin" = "xno"; then
AC_DEFINE(USE_KQUEUE_FOR_THREADPOOL, 1, [Use kqueue for the threadpool])
fi
fi
AC_CHECK_FUNCS(futimens utimensat)
AC_CHECK_FUNCS(fstatat mknodat readlinkat)
AC_CHECK_FUNCS(readv writev preadv pwritev)
+ AC_CHECK_FUNCS(setpgid)
AC_CHECK_SIZEOF(size_t)
AC_CHECK_TYPES([blksize_t], [AC_DEFINE(HAVE_BLKSIZE_T)], ,
[#include <sys/types.h>
AC_CHECK_FUNCS(GetProcessId)
AC_CHECK_DECLS(InterlockedExchange64, [], [], [[#include <windows.h>]])
AC_CHECK_DECLS(InterlockedCompareExchange64, [], [], [[#include <windows.h>]])
+ AC_CHECK_DECLS(InterlockedDecrement64, [], [], [[#include <windows.h>]])
AC_CHECK_DECLS(InterlockedIncrement64, [], [], [[#include <windows.h>]])
AC_CHECK_DECLS(InterlockedAdd, [], [], [[#include <windows.h>]])
AC_CHECK_DECLS(InterlockedAdd64, [], [], [[#include <windows.h>]])
# from LLVM classes.
LLVM_CXXFLAGS="`$LLVM_CONFIG --cxxflags` -fno-rtti"
LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
+ # This might include empty lines
+ LLVM_SYSTEM_LIBS=`$LLVM_CONFIG --system-libs 2>/dev/null | grep -- -`
if test "x$host" != "x$target"; then
# No need for jit libs
LLVM_LIBS=`$LLVM_CONFIG --libs core bitwriter`
else
LLVM_LIBS=`$LLVM_CONFIG --libs core bitwriter jit mcjit $llvm_codegen`
fi
- LLVM_LIBS="$LLVM_LDFLAGS $LLVM_LIBS -lstdc++"
+ LLVM_LIBS="$LLVM_LIBS $LLVM_LDFLAGS $LLVM_SYSTEM_LIBS -lstdc++"
expected_llvm_version="3.4svn-mono-mono/e656cac"
llvm_version=`$LLVM_CONFIG --version`
major_version=`echo $llvm_version | cut -c 1`
minor_version=`echo $llvm_version | cut -c 3`
+ llvm_api_version=`$LLVM_CONFIG --mono-api-version 2>/dev/null`
AC_MSG_CHECKING(LLVM version)
AC_MSG_RESULT($llvm_version)
if echo $llvm_version | grep -q 'mono'; then
- AC_DEFINE(LLVM_MONO_BRANCH, 1, [Whenever we are using the mono branch of LLVM])
- LLVM_CXXFLAGS="$LLVM_CXXFLAGS -DLLVM_MONO_BRANCH"
if test "x$enable_llvm_version_check" == "xyes"; then
if test "$llvm_version" != "$expected_llvm_version"; then
AC_MSG_ERROR([Expected llvm version $expected_llvm_version, but llvm-config --version returned $llvm_version"])
fi
fi
+ if test "x$llvm_api_version" = "x"; then
+ LLVM_CXXFLAGS="$LLVM_CXXFLAGS -DLLVM_API_VERSION=0"
+ else
+ LLVM_CXXFLAGS="$LLVM_CXXFLAGS -DLLVM_API_VERSION=$llvm_api_version"
+ fi
else
AC_MSG_ERROR([Compiling with stock LLVM is not supported, please use the Mono LLVM repo at https://github.com/mono/llvm, with the GIT branch which matches this version of mono, i.e. 'mono-2-10' for Mono 2.10.])
fi
;;
*-*-*linux*)
AC_PATH_X
+ dlsearch_path=`(libtool --config ; echo eval echo \\$sys_lib_dlsearch_path_spec) | sh`
AC_MSG_CHECKING(for the soname of libX11.so)
- for i in $x_libraries /usr/lib /usr/lib64; do
+ for i in $x_libraries $dlsearch_path; do
for r in 4 5 6; do
if test -f $i/libX11.so.$r; then
X11=libX11.so.$r
return 0;
], [
arm_v5=yes
+
+ arm_ver=ARMv5
], [])
AC_TRY_COMPILE([], [
], [
arm_v5=yes
arm_v6=yes
+
+ arm_ver=ARMv6
], [])
AC_TRY_COMPILE([], [
arm_v5=yes
arm_v6=yes
arm_v7=yes
+
+ arm_ver=ARMv7
], [])
+ AC_MSG_RESULT($arm_ver)
+
if test x$arm_v5 = xyes; then
AC_DEFINE(HAVE_ARMV5, 1, [ARM v5])
CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC -DHAVE_ARMV5=1"
AC_ARG_WITH(profile4_5,[ --with-profile4_5=yes,no If you want to install the 4.5 FX (defaults to yes)], [], [with_profile4_5=yes])
AC_ARG_WITH(monodroid, [ --with-monodroid=yes,no If you want to build the MonoDroid assemblies (defaults to no)], [], [with_monodroid=no])
AC_ARG_WITH(monotouch, [ --with-monotouch=yes,no,only If you want to build the MonoTouch assemblies (defaults to no)], [], [with_monotouch=no])
-AC_ARG_WITH(mobile, [ --with-mobile=yes,no If you want to build the Mobile assemblies (defaults to no)], [], [with_mobile=no])
+AC_ARG_WITH(xammac, [ --with-xammac=yes,no,only If you want to build the Xamarin.Mac assemblies (defaults to no)], [], [with_xammac=no])
OPROFILE=no
AC_ARG_WITH(oprofile,[ --with-oprofile=no,<oprofile install dir> Enable oprofile support (defaults to no)],[
with_profile4_5=no
with_monodroid=no
with_monotouch=no
+ with_xammac=no
fi
if test x$DISABLE_MCS_DOCS = xyes; then
AM_CONDITIONAL(INSTALL_4_5, [test "x$with_profile4_5" = xyes])
AM_CONDITIONAL(INSTALL_MONODROID, [test "x$with_monodroid" != "xno"])
AM_CONDITIONAL(INSTALL_MONOTOUCH, [test "x$with_monotouch" != "xno"])
-AM_CONDITIONAL(INSTALL_MOBILE, [test "x$with_mobile" = xyes])
+AM_CONDITIONAL(INSTALL_XAMMAC, [test "x$with_xammac" != "xno"])
AM_CONDITIONAL(ONLY_MONOTOUCH, [test "x$with_monotouch" = "xonly"])
+AM_CONDITIONAL(ONLY_XAMMAC, [test "x$with_xammac" = "xonly"])
AM_CONDITIONAL(MIPS_GCC, test ${TARGET}${ac_cv_prog_gcc} = MIPSyes)
AM_CONDITIONAL(MIPS_SGI, test ${TARGET}${ac_cv_prog_gcc} = MIPSno)
mono/tests/cas/linkdemand/Makefile
mono/tests/cas/threads/Makefile
mono/tests/gc-descriptors/Makefile
+mono/unit-tests/Makefile
mono/benchmark/Makefile
mono/monograph/Makefile
mono/io-layer/Makefile
if test -z "$INSTALL_MONOTOUCH_TRUE"; then :
default_profile=monotouch
fi
+ if test -z "$INSTALL_XAMMAC_TRUE"; then :
+ default_profile=xammac
+ fi
if test -z "$INSTALL_4_5_TRUE"; then :
default_profile=net_4_5
fi
.NET 4.5: $with_profile4_5
MonoDroid: $with_monodroid
MonoTouch: $with_monotouch
+ Xamarin.Mac: $with_xammac
JNI support: $jdk_headers_found
libgdiplus: $libgdiplus_msg
zlib: $zlib_msg