Fix copy-paste error in git 17085447
[mono.git] / configure.in
index 8c1519b812c80f50db6807b41bee3d06288a1358..e6361c81056073cc0c8c182bd6811bcf9ff712a1 100644 (file)
@@ -1,12 +1,20 @@
-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
@@ -248,12 +256,12 @@ case "$host" in
                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"
@@ -364,10 +372,16 @@ if test "x$lt_cv_prog_gnu_ld" = "xno"; then
    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, [], [],
 [
@@ -422,6 +436,8 @@ AC_TRY_LINK([#include <math.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)
@@ -1547,6 +1563,12 @@ if test x$target_win32 = xno; then
                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 ******************************
@@ -1741,6 +1763,11 @@ if test x$target_win32 = xno; then
        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?))
@@ -2022,9 +2049,13 @@ if test "x$enable_llvm" = "xyes"; then
    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])
@@ -2113,6 +2144,7 @@ case "$host" in
                        # 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                 
@@ -2181,6 +2213,7 @@ case "$host" in
                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;
@@ -2236,7 +2269,9 @@ case "$host" in
                arch_target=arm;
                ACCESS_UNALIGNED="no"
                JIT_SUPPORTED=yes
-               CPPFLAGS="$CPPFLAGS -DARM_FPU_NONE=1"
+               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*)
@@ -2245,6 +2280,7 @@ case "$host" in
                ACCESS_UNALIGNED="no"
                JIT_SUPPORTED=yes
                sgen_supported=true
+               AOT_SUPPORTED="yes"
                ;;
        s390-*-linux*)
                TARGET=S390;
@@ -2298,6 +2334,29 @@ if test "x$host" != "x$target"; then
                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
@@ -2321,6 +2380,9 @@ POWERPC64)
        AC_DEFINE(TARGET_POWERPC, 1, [...])
        AC_DEFINE(TARGET_POWERPC64, 1, [...])
        ;;
+S390x)
+       AC_DEFINE(TARGET_S390X, 1, [...])
+       ;;
 esac
 
 if test "x$sizeof_register" = "x4"; then
@@ -2508,13 +2570,34 @@ if test ${TARGET} = ARM && test x$cross_compiling = xno && test x$enable_mcs_bui
        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
@@ -2833,6 +2916,7 @@ mono/monograph/Makefile
 mono/io-layer/Makefile
 mono/mini/Makefile
 mono/profiler/Makefile
+m4/Makefile
 ikvm-native/Makefile
 scripts/Makefile
 man/Makefile