Test for assignability of arrays to generic interfaces. Fixes #2304.
[mono.git] / configure.in
index a88b53b961bf9011f9bc18b7654692251275ba33..a22871ebb64531a44c98f12fe4bbe10733df5bdf 100644 (file)
@@ -2,7 +2,7 @@
 #AC_PREREQ([2.62])
 
 AC_INIT(mono, [2.11],
-        [http://bugzilla.novell.com/enter_bug.cgi?product=mono])
+        [http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono])
 
 AC_CONFIG_SRCDIR([README])
 AC_CONFIG_MACRO_DIR([m4])
@@ -95,7 +95,7 @@ case "$host" in
                host_win32=yes
                if test "x$cross_compiling" = "xno"; then
                        target_win32=yes
-                       if test "x$host" == "x$build"; then
+                       if test "x$host" == "x$build" -a "x$host" == "x$target"; then
                                AC_DEFINE(TARGET_WIN32,1,[Target OS is Win32])
                        fi
                        #
@@ -576,9 +576,6 @@ if test x$cross_compiling$host_win32 = xnoyes; then
   esac
 fi
 
-## Maybe should also disable if mcsdir is invalid.  Let's punt the issue for now.
-AM_CONDITIONAL(BUILD_MCS, [test x$cross_compiling = xno && test x$enable_mcs_build != xno])
-
 AC_SUBST([mcs_topdir])
 AC_SUBST([mcs_topdir_from_srcdir])
 
@@ -2176,6 +2173,7 @@ case "$host" in
        mips*)
                TARGET=MIPS;
                arch_target=mips;
+               sgen_supported=true
                ACCESS_UNALIGNED="no"
                JIT_SUPPORTED=yes
 
@@ -2220,6 +2218,7 @@ case "$host" in
                        sgen_supported=true
                        ;;
                  cygwin*)
+                       sgen_supported=true
                        have_visibility_hidden=no                 
                        ;;
                  haiku*)
@@ -2376,6 +2375,7 @@ esac
 
 if test "x$host" != "x$target"; then
    AC_DEFINE(MONO_CROSS_COMPILE,1,[The runtime is compiled for cross-compiling mode])
+   enable_mcs_build=no
    case "$target" in
    powerpc64-ps3-linux-gnu)
                TARGET=POWERPC64
@@ -2475,6 +2475,9 @@ POWERPC64)
 S390x)
        AC_DEFINE(TARGET_S390X, 1, [...])
        ;;
+MIPS)
+       AC_DEFINE(TARGET_MIPS, 1, [...])
+       ;;
 esac
 
 if test "x$sizeof_register" = "x4"; then
@@ -2662,12 +2665,19 @@ if test ${TARGET} = ARM && test x$cross_compiling = xno && test x$enable_mcs_bui
        dnl ******************************************
        AC_MSG_CHECKING(which FPU to use)
 
-       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
+       fpu=NONE
+       if gcc -v 2>&1 | grep -q -- '--with-float=hard'; then
+          fpu=VFP_HARD
+       fi
+
+       if test x$fpu = xNONE; then
+          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
+       fi
 
        if test x$fpu = xNONE; then
                AC_TRY_COMPILE([], [
@@ -2724,9 +2734,10 @@ 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(profile4,  [  --with-profile4=yes,no          If you want to install the 4.0 FX (defaults to yes)],                  [], [with_profile4=yes])
+AC_ARG_WITH(profile4,  [  --with-profile4=yes,no          If you want to install the 4.x FX (defaults to yes)],                  [], [with_profile4=yes])
 AC_ARG_WITH(monodroid, [  --with-monodroid=yes,no         If you want to build the MonoDroid 2.1 assemblies (defaults to no)], [], [with_monodroid=no])
 AC_ARG_WITH(monotouch, [  --with-monotouch=yes,no         If you want to build the MonoTouch 2.1 assemblies (defaults to no)], [], [with_monotouch=no])
+AC_ARG_WITH(mobile,    [  --with-mobile=yes,no            If you want to build the Mobile 2.1 assemblies (defaults to no)], [], [with_mobile=no])
 
 OPROFILE=no
 AC_ARG_WITH(oprofile,[  --with-oprofile=no,<oprofile install dir>   Enable oprofile support (defaults to no)],[
@@ -2793,6 +2804,9 @@ else
 fi
 AC_SUBST(docs_dir)
 
+## Maybe should also disable if mcsdir is invalid.  Let's punt the issue for now.
+AM_CONDITIONAL(BUILD_MCS, [test x$cross_compiling = xno && test x$enable_mcs_build != xno])
+
 AM_CONDITIONAL(HAVE_OPROFILE, test x$OPROFILE = xyes)
 AC_SUBST(OPROFILE_CFLAGS)
 AC_SUBST(OPROFILE_LIBS)
@@ -2807,6 +2821,7 @@ AM_CONDITIONAL(MOONLIGHT_SGEN, [test "x$with_moon_gc" = "xsgen"])
 AM_CONDITIONAL(INSTALL_4_0, [test "x$with_profile4" = xyes])
 AM_CONDITIONAL(INSTALL_MONODROID, [test "x$with_monodroid" = xyes])
 AM_CONDITIONAL(INSTALL_MONOTOUCH, [test "x$with_monotouch" = xyes])
+AM_CONDITIONAL(INSTALL_MOBILE, [test "x$with_mobile" = xyes])
 
 AM_CONDITIONAL(MIPS_GCC, test ${TARGET}${ac_cv_prog_gcc} = MIPSyes)
 AM_CONDITIONAL(MIPS_SGI, test ${TARGET}${ac_cv_prog_gcc} = MIPSno)
@@ -2965,6 +2980,34 @@ AC_CONFIG_COMMANDS([runtime/etc/mono/4.0/web.config],
     cd $depth
 ],[LN_S='$LN_S'])
 
+AC_CONFIG_COMMANDS([runtime/etc/mono/4.5/machine.config],
+[   depth=../../../..
+    case $srcdir in
+    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
+    .) reldir=$depth ;;
+    *) reldir=$depth/$srcdir ;;
+    esac
+    $ac_aux_dir/install-sh -d runtime/etc/mono/4.5
+    cd runtime/etc/mono/4.5
+    rm -f machine.config
+    $LN_S $reldir/data/net_4_5/machine.config machine.config
+    cd $depth
+],[LN_S='$LN_S'])
+
+AC_CONFIG_COMMANDS([runtime/etc/mono/4.5/web.config],
+[   depth=../../../..
+    case $srcdir in
+    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
+    .) reldir=$depth ;;
+    *) reldir=$depth/$srcdir ;;
+    esac
+    $ac_aux_dir/install-sh -d runtime/etc/mono/4.5
+    cd runtime/etc/mono/4.5
+    rm -f web.config
+    $LN_S $reldir/data/net_4_5/web.config web.config
+    cd $depth
+],[LN_S='$LN_S'])
+
 if test x$enable_quiet_build = xyes; then
    AC_CONFIG_COMMANDS([quiet], [for i in `find mono libgc support -name Makefile.in | sed -e 's/Makefile.in/Makefile/g'`; do if test -f $i; then $srcdir/scripts/patch-quiet.sh $i; fi; done], [shell=$SHELL])
    AC_CONFIG_COMMANDS([quiet-libtool], [sed -e 's/echo "copying selected/# "copying selected/g' < libtool > libtool.tmp && mv libtool.tmp libtool && chmod a+x libtool; sed -e 's/$ECHO "copying selected/# "copying selected/g' < libtool > libtool.tmp && mv libtool.tmp libtool && chmod a+x libtool])
@@ -3016,6 +3059,7 @@ docs/Makefile
 data/Makefile
 data/net_2_0/Makefile
 data/net_4_0/Makefile
+data/net_4_5/Makefile
 data/net_2_0/Browsers/Makefile
 data/mint.pc
 data/mono-2.pc
@@ -3123,6 +3167,10 @@ fi
     if test x$with_moonlight != xno; then
       echo "MOONLIGHT = 1" >> $srcdir/$mcsdir/build/config.make
     fi
+    
+    if test x$with_profile4 != xyes; then
+      echo "DEFAULT_PROFILE = net_2_0" >> $srcdir/$mcsdir/build/config.make
+    fi
 
   fi
 
@@ -3165,6 +3213,7 @@ echo "
        Moon Profile:  $with_moonlight ($with_moon_gc)
        MonoDroid:     $with_monodroid
        MonoTouch:     $with_monotouch
+       Mobile:        $with_mobile
        JNI support:   $jdk_headers_found
        libgdiplus:    $libgdiplus_msg
        zlib:          $zlib_msg