-AC_INIT(README)
+# Process this file with autoconf to produce a configure script.
+#AC_PREREQ([2.62])
+
+AC_INIT(mono, [2.11],
+ [http://bugzilla.novell.com/enter_bug.cgi?product=mono])
+
+AC_CONFIG_SRCDIR([README])
+AC_CONFIG_MACRO_DIR([m4])
AC_CANONICAL_SYSTEM
+AC_CANONICAL_HOST
# Gross hack to enable 'make dist' on automake 1.9+tar 1.14.
# The extra brackets are to foil regex-based scans.
m4_ifdef([_A][M_PROG_TAR],[_A][M_SET_OPTION([tar-ustar])])
-AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(mono,2.11)
+AM_INIT_AUTOMAKE([1.9 dist-bzip2 tar-ustar no-dist-gzip foreign])
+AM_CONFIG_HEADER([config.h])
AM_MAINTAINER_MODE
API_VER=2.0
if test "x$cross_compiling" = "xyes"; then
has_broken_apple_cpp=yes
fi
- dnl Snow Leopard is horribly broken -- it reports itself as i386-apple-darwin10.0.0, but
+ dnl Snow Leopard is horribly broken -- it reports itself as i386-apple-darwin*, but
dnl its gcc defaults to 64-bit mode. They have also deprecated the usage of ucontext
dnl we need to set some flags to build our 32-bit binaries on 10.6 properly
case "$host" in
- dnl Snow Leopard config.guess reports as this
- i*86-*-darwin10*)
+ dnl Snow Leopard and newer config.guess reports as this
+ i*86-*-darwin*)
BROKEN_DARWIN_FLAGS="-arch i386 -D_XOPEN_SOURCE -mmacosx-version-min=10.5"
CPPFLAGS="$CPPFLAGS $BROKEN_DARWIN_FLAGS"
CFLAGS="$CFLAGS $BROKEN_DARWIN_FLAGS"
no_version_script=yes
fi
+AM_ICONV()
+
AM_CONDITIONAL(NO_VERSION_SCRIPT, test x$no_version_script = xyes)
AC_CHECK_HEADERS(sys/filio.h sys/sockio.h netdb.h utime.h sys/utime.h semaphore.h sys/un.h linux/rtc.h sys/syscall.h sys/mkdev.h sys/uio.h sys/param.h)
AC_CHECK_HEADERS(sys/param.h sys/socket.h sys/ipc.h sys/sem.h sys/utsname.h alloca.h ucontext.h pwd.h sys/select.h netinet/tcp.h netinet/in.h unistd.h sys/types.h link.h asm/sigcontext.h)
+AC_CHECK_HEADERS([linux/netlink.h linux/rtnetlink.h],
+ [], [], [#include <stddef.h>
+ #include <sys/socket.h>
+ #include <linux/socket.h>])
AC_CHECK_HEADERS(sys/user.h, [], [],
[
AC_MSG_RESULT(no)
])
+# for Linux statfs support
+AC_CHECK_HEADERS(linux/magic.h)
# not 64 bit clean in cross-compile
AC_CHECK_SIZEOF(void *, 4)
fi
)
-AC_ARG_WITH([glib],
- [ --with-glib=embedded|system Choose glib API: system or embedded (default to embedded)],
- [], [with_glib=embedded])
-
ac_configure_args="$ac_configure_args \"CPPFLAGS_FOR_EGLIB=$EGLIB_CPPFLAGS\" \"CFLAGS_FOR_EGLIB=$CFLAGS_FOR_EGLIB\""
AC_CONFIG_SUBDIRS(eglib)
-case $with_glib in
-embedded)
- GLIB_CFLAGS='-I$(top_srcdir)/eglib/src -I$(top_builddir)/eglib/src'
- GLIB_LIBS='-L$(top_builddir)/eglib/src -leglib -lm'
- BUILD_GLIB_CFLAGS="$GLIB_CFLAGS"
- BUILD_GLIB_LIBS="$GLIB_LIBS"
- GMODULE_CFLAGS="$GLIB_CFLAGS"
- GMODULE_LIBS="$GLIB_LIBS"
- ;;
-system)
- AC_MSG_ERROR([--with-glib=system is no longer supported as of Mono 2.8])
- ;;
-*)
- AC_MSG_ERROR([Invalid argument to --with-glib.])
-esac
+GLIB_CFLAGS='-I$(top_srcdir)/eglib/src -I$(top_builddir)/eglib/src'
+GLIB_LIBS='-L$(top_builddir)/eglib/src -leglib -lm'
+BUILD_GLIB_CFLAGS="$GLIB_CFLAGS"
+BUILD_GLIB_LIBS="$GLIB_LIBS"
+GMODULE_CFLAGS="$GLIB_CFLAGS"
+GMODULE_LIBS="$GLIB_LIBS"
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)
if test "x$found_gc_enable" = "xyes"; then
BOEHM_DEFINES="-DHAVE_GC_ENABLE $BOEHM_DEFINES"
fi
+
+ # check whether we need to explicitly allow
+ # thread registering
+ AC_CHECK_LIB(gc, GC_allow_register_threads, found_allow_register_threads="yes",,$libdl)
+ if test "x$found_allow_register_threads" = "xyes"; then
+ AC_DEFINE(HAVE_GC_ALLOW_REGISTER_THREADS, 1, [GC requires thread registration])
+ fi
+
;;
xincluded)
AC_DEFINE(HAVE_EPOLL, 1, [epoll supported])
fi
+ havekqueue=no
+ AC_CHECK_FUNCS(kqueue, , AC_MSG_CHECKING(for kqueue in sys/event.h)
+ AC_TRY_LINK([#include <sys/event.h>],
+ [ kqueue(); ],
+ AC_DEFINE(HAVE_KQUEUE, 1, [Have kqueue]) AC_MSG_RESULT(yes),
+ AC_MSG_RESULT(no)))
dnl ******************************
dnl *** Checks for SIOCGIFCONF ***
dnl ******************************
dnl * on xp+
AC_DEFINE(HAVE_GETPROCESSID, 1, [Define if GetProcessId is available])
else
+ dnl *********************************
+ dnl *** Checks for Windows compilation ***
+ dnl *********************************
+ AC_CHECK_HEADERS(winternl.h)
+
jdk_headers_found=no
AC_CHECK_LIB(ws2_32, main, LIBS="$LIBS -lws2_32", AC_ERROR(bad mingw install?))
AC_CHECK_LIB(psapi, main, LIBS="$LIBS -lpsapi", AC_ERROR(bad mingw install?))
llvm_version=`$LLVM_CONFIG --version`
major_version=`echo $llvm_version | cut -c 1`
minor_version=`echo $llvm_version | cut -c 3`
+ 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"
+ 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
AC_DEFINE_UNQUOTED(LLVM_MAJOR_VERSION, $major_version, [Major version of LLVM libraries])
sizeof_register="SIZEOF_VOID_P"
-jit_wanted=false
+jit_wanted=true
interp_wanted=false
sgen_supported=false
case "$host" in
arch_target=mips;
ACCESS_UNALIGNED="no"
JIT_SUPPORTED=yes
- jit_wanted=true
AC_MSG_CHECKING(for mips n32)
AC_TRY_COMPILE([], [
TARGET=X86;
arch_target=x86;
JIT_SUPPORTED=yes
- jit_wanted=true
case $host_os in
solaris*)
LIBC="libc.so"
# foo.c:6: warning: visibility attribute not supported in this configuration; ignored
# ld: fatal: relocation error: R_386_GOTOFF: file /var/tmp//ccxYR96k.o: symbol astruct: relocation must bind locally
have_visibility_hidden=no
+ sgen_supported=true
;;
cygwin*)
have_visibility_hidden=no
TARGET=AMD64;
arch_target=amd64;
JIT_SUPPORTED=yes
- jit_wanted=true
case $host_os in
linux*)
sgen_supported=true
arch_target=ia64
ACCESS_UNALIGNED="no"
JIT_SUPPORTED=yes
- jit_wanted=true
LIBC="libc.so.6.1"
INTL="libc.so.6.1"
AC_CHECK_LIB(unwind, _U_dyn_register, [], [AC_MSG_ERROR(library libunwind not found)])
LIBC="libc.so"
INTL="libintl.so"
esac
- jit_wanted=true
if test x"$GCC" = xyes; then
# We don't support v8 cpus
CFLAGS="$CFLAGS -Wno-cast-align -mcpu=v9"
if test x"$AR" = xfalse; then
AC_MSG_ERROR([The required utility 'ar' is not found in your PATH. Usually it can be found in /usr/ccs/bin.])
fi
+ sgen_supported=true
;;
alpha*-*-linux* | alpha*-*-osf*)
TARGET=ALPHA;
ACCESS_UNALIGNED="no"
JIT_SUPPORTED=yes
- jit_wanted=true
arch_target=alpha;
CFLAGS="$CFLAGS -mieee -O0"
case $host_os in
arch_target=hppa;
ACCESS_UNALIGNED="no"
JIT_SUPPORTED=yes
- jit_wanted=true
;;
macppc-*-openbsd* | powerpc*-*-linux* | powerpc-*-openbsd* | \
powerpc-*-sysv* | powerpc-*-darwin* | powerpc-*-netbsd* | powerpc-*-freebsd* )
fi
arch_target=ppc;
JIT_SUPPORTED=yes
- jit_wanted=true
case $host_os in
linux*|darwin*)
sgen_supported=true
arch_target=arm;
ACCESS_UNALIGNED="no"
JIT_SUPPORTED=yes
- CPPFLAGS="$CPPFLAGS -DARM_FPU_NONE=1"
- jit_wanted=true
+ CPPFLAGS="$CPPFLAGS -DARM_FPU_VFP=1 -D__ARM_EABI__ -DHAVE_ARMV6=1"
+ # libgc's gc_locks.h depends on this
+ NESTED_LIBGC_FLAGS="$NESTED_LIBGC_FLAGS -DHAVE_ARMV6"
sgen_supported=true
;;
arm*-linux*)
arch_target=arm;
ACCESS_UNALIGNED="no"
JIT_SUPPORTED=yes
- jit_wanted=true
sgen_supported=true
+ AOT_SUPPORTED="yes"
;;
s390-*-linux*)
TARGET=S390;
arch_target=s390;
ACCESS_UNALIGNED="yes"
JIT_SUPPORTED=yes
- jit_wanted=true
sgen_supported=true
# Required CFLAGS for s390[x]. USE_STRING_INLINES is automatic with gcc 4.1
CFLAGS="$CFLAGS -mbackchain -D__USE_STRING_INLINES"
arch_target=s390x;
ACCESS_UNALIGNED="yes"
JIT_SUPPORTED=yes
- jit_wanted=true
sgen_supported=true
CFLAGS="$CFLAGS -mbackchain -D__USE_STRING_INLINES"
;;
AC_DEFINE(__mono_ilp32__, 1, [64 bit mode with 4 byte longs and pointers])
sizeof_register=8
;;
+ armv7l-unknown-linux-gnueabi*)
+ # TEGRA
+ TARGET=ARM;
+ arch_target=arm;
+ ACCESS_UNALIGNED="no"
+ JIT_SUPPORTED=yes
+ CPPFLAGS="$CPPFLAGS -DARM_FPU_VFP=1 -D__ARM_EABI__"
+ jit_wanted=true
+ # Can't use tls, since it depends on the runtime detection of tls offsets
+ # in mono-compiler.h
+ with_tls=pthread
+ ;;
+ armv5tel-unknown-linux-gnueabi*)
+ TARGET=ARM;
+ arch_target=arm;
+ ACCESS_UNALIGNED="no"
+ JIT_SUPPORTED=yes
+ CPPFLAGS="$CPPFLAGS -D__ARM_EABI__"
+ jit_wanted=true
+ # Can't use tls, since it depends on the runtime detection of tls offsets
+ # in mono-compiler.h
+ with_tls=pthread
+ ;;
*)
AC_MSG_WARN([Cross compiling is only supported for targets matching 'powerpc64-{ps3,xbox360}-linux-gnu'])
esac
AC_DEFINE(TARGET_POWERPC, 1, [...])
AC_DEFINE(TARGET_POWERPC64, 1, [...])
;;
+S390x)
+ AC_DEFINE(TARGET_S390X, 1, [...])
+ ;;
esac
if test "x$sizeof_register" = "x4"; then
AC_SUBST(SGEN_DEFINES)
AM_CONDITIONAL(SUPPORT_SGEN, test x$buildsgen = xyes)
-AC_ARG_WITH(jit, [ --with-jit=yes,no If you want to build scripts that default to the JIT (defaults to no)],[
- if test x$withval = xyes; then
- jit_wanted=true
- else
- jit_wanted=false
- fi
-])
-
-AC_ARG_WITH(interp, [ --with-interp=yes,no If you want to build scripts that default to the interpreter (defaults to no)],[
- if test x$withval = xyes; then
- interp_wanted=true
- else
- interp_wanted=false
- fi
-])
-
USEJIT=false
if test x$JIT_SUPPORTED = xyes; then
if $jit_wanted; then
dnl ******************************************
AC_MSG_CHECKING(which FPU to use)
- AC_TRY_COMPILE([], [
- __asm__ ("ldfd f0, [r0]");
- ], fpu=FPA, fpu=NONE)
+ ORIG_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -mfpu=vfp -mfloat-abi=softfp"
+ AC_TRY_RUN([
+ int main () { __asm__ ("faddd d7, d6, d7"); return 0; }
+ ], fpu=VFP, fpu=NONE)
+ CFLAGS=$ORIG_CFLAGS
+
+ if test x$fpu = xNONE; then
+ AC_TRY_COMPILE([], [
+ __asm__ ("ldfd f0, [r0]");
+ ], fpu=FPA, fpu=NONE)
+ fi
AC_MSG_RESULT($fpu)
CPPFLAGS="$CPPFLAGS -DARM_FPU_$fpu=1"
unset fpu
+
+ AC_MSG_CHECKING(for ARMV6)
+ AC_TRY_RUN([
+ int main () { __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" : : "r" (0) : "memory"); return 0; }
+ ], armv6=yes, armv6=no)
+
+ AC_MSG_RESULT($armv6)
+ if test ${armv6} = yes; then
+ AC_DEFINE(HAVE_ARMV6, 1, "Host supports ARMV6 instructions")
+ # libgc's gc_locks.h depends on this
+ NESTED_LIBGC_FLAGS="$NESTED_LIBGC_FLAGS -DHAVE_ARMV6"
+ fi
fi
if test ${TARGET} = unknown; then
mono/io-layer/Makefile
mono/mini/Makefile
mono/profiler/Makefile
+m4/Makefile
ikvm-native/Makefile
scripts/Makefile
man/Makefile
data/net_2_0/Browsers/Makefile
data/mint.pc
data/mono-2.pc
+data/monosgen-2.pc
data/mono.pc
data/mono-cairo.pc
data/mono-nunit.pc
Engine:
GC: $gc_msg
- GLIB: $with_glib
TLS: $with_tls
SIGALTSTACK: $with_sigaltstack
Engine: $jit_status