2009-11-03 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / configure.in
index 3f59cc0defa8d21a80fe3f9ddb85d0105725961c..bdb5b5e7390e35dacb827c2089b2262e03b20352 100644 (file)
@@ -6,7 +6,7 @@ AC_CANONICAL_SYSTEM
 m4_ifdef([_A][M_PROG_TAR],[_A][M_SET_OPTION([tar-ustar])])
 
 AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(mono,2.5)
+AM_INIT_AUTOMAKE(mono,2.7)
 AM_MAINTAINER_MODE
 
 API_VER=1.0
@@ -76,13 +76,16 @@ esac
 case "$host" in
        *-*-mingw*|*-*-cygwin*)
                platform_win32=yes
-               AC_DEFINE(PLATFORM_WIN32,1,[Platform is Win32])
+               AC_DEFINE(PLATFORM_WIN32,1,[Host Platform is Win32])
+               AC_DEFINE(TARGET_WIN32,1,[Target OS is Win32])
                AC_DEFINE(DISABLE_PORTABILITY,1,[Disable the io-portability layer])
                AC_DEFINE(PLATFORM_NO_SYMLINKS,1,[This platform does not support symlinks])
                if test "x$cross_compiling" = "xno"; then
                        CC="gcc -mno-cygwin -g"
+                       CXX="g++ -mno-cygwin -g"
                        # So libgc configure gets -mno-cygwin
                        export CC
+                       export CXX
                fi
                HOST_CC="gcc"
                # Windows 2000 is required that includes Internet Explorer 5.01
@@ -233,8 +236,7 @@ AM_CONDITIONAL(PLATFORM_SIGPOSIX, test x$use_sigposix = xyes)
 
 AC_CHECK_TOOL(CC, gcc, gcc)
 AC_PROG_CC
-# Disabled for now to fix the windows build
-#AC_PROG_CXX
+AC_PROG_CXX
 AM_PROG_AS
 AM_PROG_CC_STDC
 AC_PROG_INSTALL
@@ -293,7 +295,7 @@ fi
 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)
-AC_CHECK_HEADERS(sys/user.h sys/socket.h sys/ipc.h sys/sem.h sys/utsname.h alloca.h ucontext.h pwd.h sys/select.h)
+AC_CHECK_HEADERS(sys/user.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)
 
 
 AC_CHECK_HEADER(zlib.h, [have_zlib=yes], [have_zlib=no])
@@ -712,6 +714,20 @@ AC_TRY_COMPILE([], [
    AC_MSG_RESULT(no)
 ])
 
+AC_MSG_CHECKING(for deprecated __attribute__)
+AC_TRY_COMPILE([
+     int doit (void) __attribute__ ((deprecated));
+     int doit (void) { return 0; }
+], [
+       return 0;
+], [
+   have_deprecated=yes
+   AC_MSG_RESULT(yes)
+], [
+   have_deprecated=no
+   AC_MSG_RESULT(no)
+])
+
 AC_ARG_ENABLE(parallel-mark, [  --enable-parallel-mark     Enables GC Parallel Marking], enable_parallel_mark=$enableval, enable_parallel_mark=$parallel_mark)
 if test x$enable_parallel_mark = xyes; then
        libgc_configure_args="$libgc_configure_args --enable-parallel-mark"
@@ -814,6 +830,23 @@ dnl
 dnl End of libgc checks
 dnl
 
+dnl *************************************
+dnl *** Checks for zero length arrays ***
+dnl *************************************
+AC_MSG_CHECKING(whether $CC supports zero length arrays)
+AC_TRY_COMPILE([
+       struct s {
+               int  length;
+               char data [0];
+       };
+], [], [
+       AC_MSG_RESULT(yes)
+       AC_DEFINE_UNQUOTED(MONO_ZERO_LEN_ARRAY, 0, [Length of zero length arrays])
+], [
+       AC_MSG_RESULT(no)
+       AC_DEFINE_UNQUOTED(MONO_ZERO_LEN_ARRAY, 1, [Length of zero length arrays])
+])
+
 if test x$platform_win32 = xno; then
 
        dnl hires monotonic clock support
@@ -1127,23 +1160,6 @@ if test x$platform_win32 = xno; then
        AC_MSG_RESULT($mono_cv_sizeof_sunpath)
        AC_DEFINE_UNQUOTED(MONO_SIZEOF_SUNPATH, $mono_cv_sizeof_sunpath, [Sizeof sock_un.sun_path])
 
-       dnl *************************************
-       dnl *** Checks for zero length arrays ***
-       dnl *************************************
-       AC_MSG_CHECKING(whether $CC supports zero length arrays)
-       AC_TRY_COMPILE([
-                struct s {
-                        int  length;
-                        char data [0];
-                };
-        ], [], [
-               AC_MSG_RESULT(yes)
-               AC_DEFINE_UNQUOTED(MONO_ZERO_ARRAY_LENGTH, 0, [Length of zero length arrays])
-       ], [
-               AC_MSG_RESULT(no)
-               AC_DEFINE_UNQUOTED(MONO_ZERO_ARRAY_LENGTH, 1, [Length of zero length arrays])
-       ])
-
        dnl *****************************
        dnl *** Checks for libxnet    ***
        dnl *****************************
@@ -2053,6 +2069,25 @@ case "$host" in
                ;;
 esac
 
+if test "x$host" != "x$target"; then
+   case "$target" in
+   powerpc64-ps3-linux-gnu)
+               TARGET=POWERPC64
+               arch_target=powerpc64
+               AC_DEFINE(TARGET_PS3, 1, [...])
+               AC_DEFINE(MONO_CROSS_COMPILE,1,[The runtime is compiled for cross-compiling mode])
+               # It would be better to just use TARGET_POWERPC64, but lots of code already
+               # uses this define
+               AC_DEFINE(__mono_ppc64__, 1, [...])
+               AC_DEFINE(__mono_ilp32__, 1, [64 bit mode with 4 byte longs and pointers])
+               sizeof_register=8
+               target_byte_order=G_BIG_ENDIAN
+               ;;
+       *)
+               AC_MSG_ERROR([Cross compiling is only supported for targets matching 'powerpc64-ps3-linux-gnu'])
+       esac
+fi
+
 # FIXME: Define the others as well
 case "$TARGET" in
 X86)
@@ -2093,6 +2128,10 @@ if test "x$have_visibility_hidden" = "xyes"; then
    AC_DEFINE(HAVE_VISIBILITY_HIDDEN, 1, [Support for the visibility ("hidden") attribute])
 fi
 
+if test "x$have_deprecated" = "xyes"; then
+   AC_DEFINE(HAVE_DEPRECATED, 1, [Support for the deprecated attribute])
+fi
+
 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
@@ -2273,7 +2312,7 @@ case "x$gc" in
                ;;
 esac
 
-AC_ARG_WITH(profile2,  [  --with-profile2=yes,no          If you want to install the 2.0 FX (defaults to yes)],                 [], [with_profile2=yes])
+#AC_ARG_WITH(profile2,  [  --with-profile2=yes,no          If you want to install the 2.0 FX (defaults to yes)],                 [], [with_profile2=yes])
 AC_ARG_WITH(profile4,  [  --with-profile4=yes,no          If you want to install the 4.0 FX (defaults to no)],                  [], [with_profile4=no])
 AC_ARG_WITH(moonlight, [  --with-moonlight=yes,no         If you want to build the Moonlight 2.1 assemblies (defaults to yes)], [], [with_moonlight=yes])
 AC_ARG_WITH(monotouch, [  --with-monotouch=yes,no         If you want to build the raw MonoTouch 2.1 assemblies (defaults to no)], [], [with_monotouch=no])
@@ -2325,7 +2364,6 @@ AC_SUBST(OPROFILE_LIBS)
 
 libmono_ldflags="$libmono_ldflags $LIBS"
 
-AM_CONDITIONAL(INSTALL_2_0, [test "x$with_profile2" = xyes])
 AM_CONDITIONAL(INSTALL_2_1, [test "x$with_moonlight" = xyes])
 AM_CONDITIONAL(INSTALL_4_0, [test "x$with_profile4" = xyes])
 AM_CONDITIONAL(INSTALL_MONOTOUCH, [test "x$with_monotouch" = xyes])
@@ -2494,6 +2532,7 @@ fi
 
 AC_OUTPUT([
 Makefile
+mono-core.spec
 mono-uninstalled.pc
 scripts/mono-find-provides
 scripts/mono-find-requires
@@ -2535,7 +2574,6 @@ man/Makefile
 web/Makefile
 docs/Makefile
 data/Makefile
-data/net_1_1/Makefile
 data/net_2_0/Makefile
 data/net_4_0/Makefile
 data/net_2_0/Browsers/Makefile
@@ -2658,7 +2696,6 @@ echo "
        TLS:           $with_tls
        SIGALTSTACK:   $with_sigaltstack
        Engine:        $jit_status
-       2.0 Profile:   $with_profile2
        Moon Profile:  $with_moonlight
        4.0 Alpha:     $with_profile4
        MonoTouch:     $with_monotouch
@@ -2688,6 +2725,6 @@ fi
 
 if test x$enable_llvm = xyes; then
    echo IMPORTANT:
-   echo IMPORTANT: The LLVM Back End is experimental and does not work yet.
+   echo IMPORTANT: The LLVM Back End is experimental and has known problems.
    echo IMPORTANT:
 fi