Test for assignability of arrays to generic interfaces. Fixes #2304.
[mono.git] / configure.in
index 9e94fa7d4641bdf0fab071de69d42335ee846194..a22871ebb64531a44c98f12fe4bbe10733df5bdf 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.xamarin.com/enter_bug.cgi?classification=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
@@ -78,6 +86,7 @@ esac
 
 host_win32=no
 target_win32=no
+platform_android=no
 case "$host" in
        *-mingw*|*-*-cygwin*)
                AC_DEFINE(HOST_WIN32,1,[Host Platform is Win32])
@@ -86,11 +95,21 @@ 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
-                       CC="gcc -mno-cygwin -g"
-                       CXX="g++ -mno-cygwin -g"
+                       #
+                       # gcc-3/g++-3 are from the gcc-core/gcc-g++ cygwin packages.
+                       # Other gcc packages will not work:
+                       # - the gcc-4 packages no longer support -mno-cygwin
+                       # - the mingw-gcc packages produce executables which depends on a libgcc<...>
+                       # dll, which means we would have to distribute that file too.
+                       #
+                       if test "x$CC" != "x"; then
+                               AC_ERROR(Don't set CC. mono can only be compiled with gcc-3 from the 'gcc-core' package)
+                       fi
+                       CC="gcc-3.exe -mno-cygwin -g"
+                       CXX="g++-3.exe -mno-cygwin -g"
                        # So libgc configure gets -mno-cygwin
                        export CC
                        export CXX
@@ -172,6 +191,41 @@ case "$host" in
                with_sigaltstack=no
                use_sigposix=yes
                ;;
+       *-*-linux-android*)
+               host_win32=no
+               platform_android=yes
+               AC_DEFINE(PLATFORM_ANDROID,1,[Targeting the Android platform])
+               AC_DEFINE(TARGET_ANDROID,1,[Targeting the Android platform])
+
+               CPPFLAGS="$CPPFLAGS -DGC_LINUX_THREADS -D_GNU_SOURCE -D_REENTRANT -DUSE_MMAP"
+               if test "x$disable_munmap" != "xyes"; then
+                       CPPFLAGS="$CPPFLAGS -DUSE_MUNMAP"
+               fi
+               libmono_cflags="-D_REENTRANT"
+               libdl="-ldl"
+               libgc_threads=pthreads
+               use_sigposix=yes
+
+               with_tls=pthread
+               with_sigaltstack=no
+               with_static_mono=no
+
+               # Android doesn't support boehm, as it's missing <link.h>
+               support_boehm=no
+               with_gc=sgen
+
+               # isinf(3) requires -lm; see isinf check below
+               LDFLAGS="$LDFLAGS -lm"
+
+               # Bionic's <pthread.h> sets PTHREAD_STACK_MIN=2*PAGE_SIZE; doesn't define
+               # PAGE_SIZE; breaks mono/io-layer/collection.c
+               # Bionic doesn't provide S_IWRITE; breaks io-layer/io.c
+               CFLAGS="$CFLAGS -DPAGE_SIZE=4096 -DS_IWRITE=S_IWUSR"
+               CXXFLAGS="$CXXFLAGS -DPAGE_SIZE=4096 -DS_IWRITE=S_IWUSR"
+
+               # to bypass the underscore linker check, can't work when cross-compiling
+               mono_cv_uscore=yes
+               ;;
        *-*-linux*)
                host_win32=no
                CPPFLAGS="$CPPFLAGS -DGC_LINUX_THREADS -D_GNU_SOURCE -D_REENTRANT -DUSE_MMAP"
@@ -294,6 +348,7 @@ AM_CONDITIONAL(TARGET_WIN32, test x$target_win32 = xyes)
 AM_CONDITIONAL(PLATFORM_LINUX, echo x$target_os | grep -q linux)
 AM_CONDITIONAL(PLATFORM_DARWIN, test x$platform_darwin = xyes)
 AM_CONDITIONAL(PLATFORM_SIGPOSIX, test x$use_sigposix = xyes)
+AM_CONDITIONAL(PLATFORM_ANDROID, test x$platform_android = xyes)
 
 AC_CHECK_TOOL(CC, gcc, gcc)
 AC_PROG_CC
@@ -320,12 +375,6 @@ if test "x$CXX" = "xg++"; then
        fi
 fi
 
-AC_CHECK_PROG(BISON, bison,yes,no)
-if test "x$BISON" = "xno";
-then
-       AC_MSG_ERROR([You need to install bison])
-fi
-
 dnl may require a specific autoconf version
 dnl AC_PROG_CC_FOR_BUILD
 dnl CC_FOR_BUILD not automatically detected
@@ -364,6 +413,8 @@ 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)
@@ -426,6 +477,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)
@@ -447,6 +500,20 @@ if test x"$GCC" = xyes; then
                   AC_MSG_RESULT(no)
                   CFLAGS=$ORIG_CFLAGS
                ])
+
+               ORIG_CFLAGS=$CFLAGS
+               # Check for the normal version, since gcc ignores unknown -Wno options
+               CFLAGS="$CFLAGS -Wunused-but-set-variable"
+               AC_MSG_CHECKING(for -Wno-unused-but-set-variable option to gcc)
+               AC_TRY_COMPILE([], [
+                                                  void main () { }
+               ], [
+                  AC_MSG_RESULT(yes)
+                  CFLAGS="$ORIG_CFLAGS -Wno-unused-but-set-variable"
+               ], [
+                  AC_MSG_RESULT(no)
+                  CFLAGS=$ORIG_CFLAGS
+               ])
 else
        # The Sun Forte compiler complains about inline functions that access static variables
        # so disable all inlining.
@@ -509,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])
 
@@ -648,7 +712,7 @@ DISABLED_FEATURES=none
 
 AC_ARG_ENABLE(minimal, [  --enable-minimal=LIST      drop support for LIST subsystems.
      LIST is a comma-separated list from: aot, profiler, decimal, pinvoke, debug,
-     reflection_emit, reflection_emit_save, large_code, logging, com, ssa, generics, attach, jit, simd, soft_debug, normalization, assembly_remapping.],
+     reflection_emit, reflection_emit_save, large_code, logging, com, ssa, generics, attach, jit, simd, soft_debug, normalization, assembly_remapping, shared_perfcounters.],
 [
        for feature in `echo "$enable_minimal" | sed -e "s/,/ /g"`; do
                eval "mono_feature_disable_$feature='yes'"
@@ -773,6 +837,11 @@ if test "x$mono_feature_disable_assembly_remapping" = "xyes"; then
        AC_MSG_NOTICE([Disabled Assembly remapping.])
 fi
 
+if test "x$mono_feature_disable_shared_perfcounters" = "xyes"; then
+       AC_DEFINE(DISABLE_SHARED_PERFCOUNTERS, 1, [Disable shared perfcounters.])
+       AC_MSG_NOTICE([Disabled Shared perfcounters.])
+fi
+
 AC_MSG_CHECKING(for visibility __attribute__)
 AC_TRY_COMPILE([], [
    void __attribute__ ((visibility ("hidden"))) doit (void) {}
@@ -804,6 +873,9 @@ if test x$enable_parallel_mark = xyes; then
        libgc_configure_args="$libgc_configure_args --enable-parallel-mark"
 fi
 
+AC_ARG_ENABLE(boehm, [  --disable-boehm            Disable the Boehm GC.], support_boehm=$enableval,support_boehm=${support_boehm:-yes})
+AM_CONDITIONAL(SUPPORT_BOEHM, test x$support_boehm = xyes)
+
 dnl
 dnl Boehm GC configuration
 dnl
@@ -1302,6 +1374,7 @@ if test x$target_win32 = xno; then
        AC_CHECK_HEADERS(pthread.h)
        AC_CHECK_FUNCS(pthread_mutex_timedlock)
        AC_CHECK_FUNCS(pthread_getattr_np pthread_attr_get_np)
+       AC_CHECK_FUNCS(pthread_kill)
        AC_MSG_CHECKING(for PTHREAD_MUTEX_RECURSIVE)
        AC_TRY_COMPILE([ #include <pthread.h>], [
                pthread_mutexattr_t attr;
@@ -1402,7 +1475,11 @@ if test x$target_win32 = xno; then
                        child ()
                        {
                                struct sigaction sa;
+                       #ifdef __APPLE__
+                               stack_t sas;
+                       #else
                                struct sigaltstack sas;
+                       #endif
                                pthread_t id;
                                pthread_attr_t attr;
 
@@ -1414,6 +1491,11 @@ if test x$target_win32 = xno; then
                                        return;
                                }
 
+                               /* x86 darwin deliver segfaults using SIGBUS */
+                               if (sigaction (SIGBUS, &sa, NULL) == -1) {
+                                       perror ("sigaction");
+                                       return;
+                               }
                                sas.ss_sp = malloc (SIGSTKSZ);
                                sas.ss_size = SIGSTKSZ;
                                sas.ss_flags = 0;
@@ -2030,16 +2112,20 @@ if test "x$enable_llvm" = "xyes"; then
    # from LLVM classes.
    LLVM_CXXFLAGS="`$LLVM_CONFIG --cxxflags` -fno-rtti"
    LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
-   LLVM_LIBS=`$LLVM_CONFIG --libs core bitwriter jit x86codegen`
+   LLVM_LIBS=`$LLVM_CONFIG --libs core bitwriter jit mcjit x86codegen`
    LLVM_LIBS="$LLVM_LDFLAGS $LLVM_LIBS -lstdc++"
 
    # Should be something like '2.6' or '2.7svn'
    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])
@@ -2087,6 +2173,7 @@ case "$host" in
        mips*)
                TARGET=MIPS;
                arch_target=mips;
+               sgen_supported=true
                ACCESS_UNALIGNED="no"
                JIT_SUPPORTED=yes
 
@@ -2131,6 +2218,7 @@ case "$host" in
                        sgen_supported=true
                        ;;
                  cygwin*)
+                       sgen_supported=true
                        have_visibility_hidden=no                 
                        ;;
                  haiku*)
@@ -2254,6 +2342,8 @@ case "$host" in
                ACCESS_UNALIGNED="no"
                JIT_SUPPORTED=yes
                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*)
@@ -2284,12 +2374,13 @@ case "$host" in
 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
                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, [...])
@@ -2302,7 +2393,6 @@ if test "x$host" != "x$target"; then
                TARGET=POWERPC64
                arch_target=powerpc64
                AC_DEFINE(TARGET_XBOX360, 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
                sizeof_register=8
@@ -2312,14 +2402,20 @@ if test "x$host" != "x$target"; then
                TARGET=AMD64
                arch_target=amd64
                AC_DEFINE(TARGET_AMD64, 1, [...])
-               AC_DEFINE(MONO_CROSS_COMPILE,1,[The runtime is compiled for cross-compiling mode])
                AC_DEFINE(__mono_ilp32__, 1, [64 bit mode with 4 byte longs and pointers])
                sizeof_register=8
                ;;
+   *-*-nacl)
+               TARGET=X86
+               arch_target=x86
+               AC_DEFINE(TARGET_X86, 1, [...])
+               sizeof_register=4
+               ;;
    armv7l-unknown-linux-gnueabi*)
                # TEGRA
                TARGET=ARM;
                arch_target=arm;
+               AC_DEFINE(TARGET_ARM, 1, [...])
                ACCESS_UNALIGNED="no"
                JIT_SUPPORTED=yes
                CPPFLAGS="$CPPFLAGS -DARM_FPU_VFP=1 -D__ARM_EABI__"
@@ -2331,6 +2427,7 @@ if test "x$host" != "x$target"; then
    armv5tel-unknown-linux-gnueabi*)
                TARGET=ARM;
                arch_target=arm;
+               AC_DEFINE(TARGET_ARM, 1, [...])
                ACCESS_UNALIGNED="no"
                JIT_SUPPORTED=yes
                CPPFLAGS="$CPPFLAGS -D__ARM_EABI__"
@@ -2339,8 +2436,21 @@ if test "x$host" != "x$target"; then
                # in mono-compiler.h
                with_tls=pthread
                ;;
+   armv5-*-linux-androideabi*)
+               TARGET=ARM;
+               arch_target=arm;
+               AC_DEFINE(TARGET_ARM, 1, [...])
+               AC_DEFINE(TARGET_ANDROID, 1, [...])
+               ACCESS_UNALIGNED="no"
+               JIT_SUPPORTED=yes
+               CPPFLAGS="$CPPFLAGS -D__ARM_EABI__ -DARM_FPU_NONE=1"
+               jit_wanted=true
+               # Can't use tls, since it depends on the runtime detection of tls offset
+               # in mono-compiler.h
+               with_tls=pthread
+               ;;
        *)
-               AC_MSG_WARN([Cross compiling is only supported for targets matching 'powerpc64-{ps3,xbox360}-linux-gnu'])
+               AC_MSG_ERROR([Cross compiling is not supported for target $target])
        esac
 fi
 
@@ -2365,6 +2475,9 @@ POWERPC64)
 S390x)
        AC_DEFINE(TARGET_S390X, 1, [...])
        ;;
+MIPS)
+       AC_DEFINE(TARGET_MIPS, 1, [...])
+       ;;
 esac
 
 if test "x$sizeof_register" = "x4"; then
@@ -2505,7 +2618,7 @@ fi
 mono_debugger_supported=no
 AC_ARG_ENABLE(mono-debugger, [  --disable-mono-debugger disable support for the mdb debugger], try_mono_debugger=$enableval, try_mono_debugger=yes)
 if test "x$try_mono_debugger" = "xyes"; then
-       if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86" -o "x$TARGET" = "xALPHA"; then
+       if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86" -o "x$TARGET" = "xALPHA" -o "x$TARGET" = "xS390x"; then
                if test x$use_included_gc = xyes; then
                        case "$host" in
                        *-*-*linux*)
@@ -2552,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([], [
@@ -2614,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)],[
@@ -2683,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)
@@ -2697,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)
@@ -2855,9 +2980,37 @@ 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/$show "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])
+   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])
 fi
 
 AC_OUTPUT([
@@ -2898,6 +3051,7 @@ mono/monograph/Makefile
 mono/io-layer/Makefile
 mono/mini/Makefile
 mono/profiler/Makefile
+m4/Makefile
 ikvm-native/Makefile
 scripts/Makefile
 man/Makefile
@@ -2905,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
@@ -3012,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
 
@@ -3054,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