New test.
[mono.git] / configure.in
index fbba358227134a5f4d9016ad5d16d3e5937d8487..e5ed2c766d8ff2cd5b525a55a4a60a4dc7df66e2 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,1.1.11)
+AM_INIT_AUTOMAKE(mono,1.1.17)
 AM_MAINTAINER_MODE
 
 AC_PROG_LN_S
@@ -67,6 +67,8 @@ case "$host" in
                fi
                HOST_CC="gcc"
                CPPFLAGS="$CPPFLAGS -DWIN32_THREADS -DFD_SETSIZE=1024"
+               libmono_cflags="-mno-cygwin"
+               libmono_ldflags="-mno-cygwin"
                libdl=
                libgc_threads=win32
                gc_default=included
@@ -81,6 +83,7 @@ case "$host" in
                CPPFLAGS="$CPPFLAGS -D_REENTRANT"
                libmono_cflags="-D_REENTRANT"
                LDFLAGS="$LDFLAGS -pthread"
+               CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD"
                libmono_ldflags="-pthread"
                need_link_unlink=yes
                libdl=
@@ -104,6 +107,7 @@ case "$host" in
                        LDFLAGS="$LDFLAGS $PTHREAD_LIBS"
                        libmono_ldflags="$PTHREAD_LIBS"
                fi
+               CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD -DPLATFORM_BSD4"
                need_link_unlink=yes
                AC_DEFINE(PTHREAD_POINTER_ID)
                libdl=
@@ -128,6 +132,7 @@ case "$host" in
                        LDFLAGS="$LDFLAGS $PTHREAD_LIBS"
                        libmono_ldflags="$PTHREAD_LIBS"
                fi
+               CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD -DPLATFORM_BSD5"
                need_link_unlink=yes
                AC_DEFINE(PTHREAD_POINTER_ID)
                libdl=
@@ -154,6 +159,7 @@ case "$host" in
                        LDFLAGS="$LDFLAGS $PTHREAD_LIBS"
                        libmono_ldflags="$PTHREAD_LIBS"
                fi
+               CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD -DPLATFORM_BSD6"
                need_link_unlink=yes
                AC_DEFINE(PTHREAD_POINTER_ID)
                libdl=
@@ -183,8 +189,8 @@ case "$host" in
                libdl="-ldl"
                libgc_threads=pthreads
                ;;
-        *-*-hpux*)
-                platform_win32=no
+       *-*-hpux*)
+        platform_win32=no
                CPPFLAGS="$CPPFLAGS -DGC_HPUX_THREADS -D_HPUX_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_REENTRANT"
                CFLAGS="$CFLAGS +ESdbgasm"
                LDFLAGS="$LDFLAGS -z"
@@ -192,13 +198,15 @@ case "$host" in
                libmono_ldflags="-lpthread"
                libgc_threads=pthreads
                need_link_unlink=yes
-                ;;
+               ;;
        *-*-solaris*)
                platform_win32=no
                CPPFLAGS="$CPPFLAGS -DGC_SOLARIS_THREADS -DGC_SOLARIS_PTHREADS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_MMAP -DUSE_MUNMAP"
                need_link_unlink=yes
                libmono_cflags="-D_REENTRANT"
                libgc_threads=pthreads
+               # This doesn't seem to work on solaris/x86, but the configure test runs
+               with_nptl=no
                ;;
        *-*-darwin*)
                platform_win32=no
@@ -279,7 +287,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 semaphore.h sys/un.h linux/rtc.h)
+AC_CHECK_HEADERS(sys/filio.h sys/sockio.h netdb.h utime.h semaphore.h sys/un.h linux/rtc.h sys/syscall.h)
 
 AC_CHECK_HEADER(zlib.h, [have_zlib=yes], [have_zlib=no])
 
@@ -384,13 +392,6 @@ if test "x$PKG_CONFIG" = "xno"; then
        AC_MSG_ERROR([You need to install pkg-config])
 fi
 
-dnl for use on the build system
-dnl pkg-config is stupid
-BUILD_GLIB_CFLAGS=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0`
-BUILD_GLIB_LIBS=`$PKG_CONFIG --libs glib-2.0 gthread-2.0`
-AC_SUBST(BUILD_GLIB_CFLAGS)
-AC_SUBST(BUILD_GLIB_LIBS)
-
 pkg_config_path=
 AC_ARG_WITH(crosspkgdir, [  --with-crosspkgdir=/path/to/pkg-config/dir],
        if test x$with_crosspkgdir = "x"; then
@@ -404,16 +405,36 @@ AC_ARG_WITH(crosspkgdir, [  --with-crosspkgdir=/path/to/pkg-config/dir],
        fi
 )
 
-## Versions of dependencies
-GLIB_REQUIRED_VERSION=1.3.11
-
-PKG_CHECK_MODULES(BASE_DEPENDENCIES, glib-2.0 >= $GLIB_REQUIRED_VERSION)
-
-GLIB_CFLAGS=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0`
-GLIB_LIBS=`$PKG_CONFIG --libs glib-2.0 gthread-2.0`
-GMODULE_CFLAGS=`$PKG_CONFIG --cflags gmodule-2.0`
-GMODULE_LIBS=`$PKG_CONFIG --libs gmodule-2.0`
-
+AC_ARG_WITH([glib],
+       [  --with-glib=embedded|system       Choose glib API: system or embedded (default to system)],
+       [], [with_glib=system])
+
+case $with_glib in
+embedded) 
+  GLIB_CFLAGS='-I$(top_srcdir)/eglib/src'
+  GLIB_LIBS='-L$(top_builddir)/eglib/src -leglib'
+  AC_CONFIG_SUBDIRS(eglib)
+  ;;
+system)
+  BUILD_GLIB_CFLAGS=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0`
+  BUILD_GLIB_LIBS=`$PKG_CONFIG --libs glib-2.0 gthread-2.0`
+  AC_SUBST(BUILD_GLIB_CFLAGS)
+  AC_SUBST(BUILD_GLIB_LIBS)
+
+  ## Versions of dependencies
+  GLIB_REQUIRED_VERSION=1.3.11
+  
+  PKG_CHECK_MODULES(BASE_DEPENDENCIES, glib-2.0 >= $GLIB_REQUIRED_VERSION)
+  
+  GLIB_CFLAGS=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0`
+  GLIB_LIBS=`$PKG_CONFIG --libs glib-2.0 gthread-2.0`
+  GMODULE_CFLAGS=`$PKG_CONFIG --cflags gmodule-2.0`
+  GMODULE_LIBS=`$PKG_CONFIG --libs gmodule-2.0`
+  ;;
+*)
+  AC_MSG_ERROR([Invalid argument to --with-glib.])
+esac
+  
 AC_SUBST(GLIB_CFLAGS)
 AC_SUBST(GLIB_LIBS)
 AC_SUBST(GMODULE_CFLAGS)
@@ -477,16 +498,38 @@ fi
 
 AM_CONDITIONAL(STATIC_MONO, test x$with_static_mono != xno)
 
+AC_ARG_WITH(xen_opt,   [  --with-xen_opt=yes,no      Enable Xen-specific behaviour],[],[with_xen_opt=yes])
+if test "x$with_xen_opt" = "xyes"; then
+       AC_DEFINE(MONO_XEN_OPT, 1, [Xen-specific behaviour])
+       ORIG_CFLAGS=$CFLAGS
+       CFLAGS="$CFLAGS -mno-tls-direct-seg-refs"
+       AC_MSG_CHECKING(for -mno-tls-direct-seg-refs option to gcc)
+       AC_TRY_COMPILE([], [
+                                          void main () { }
+       ], [
+          AC_MSG_RESULT(yes)
+       ], [
+          AC_MSG_RESULT(no)
+          CFLAGS=$ORIG_CFLAGS
+       ])
+fi
+
+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.],
+  LIST is a comma-separated list from: aot, profiler, decimal, pinvoke, debug,
+  reflection_emit, large_code, logging, com, ssa, generics.],
 [
        for feature in `echo "$enable_minimal" | sed -e "s/,/ /g"`; do
                eval "mono_feature_disable_$feature='yes'"
                AC_MSG_NOTICE([Disabled support for feature: $feature])
        done
+       DISABLED_FEATURES=$enable_minimal
        disabled="Disabled:    $enable_minimal"
 ],[])
 
+AC_DEFINE_UNQUOTED(DISABLED_FEATURES, "$DISABLED_FEATURES", [String of disabled features])
+
 if test "x$mono_feature_disable_aot" = "xyes"; then
        AC_DEFINE(DISABLE_AOT, 1, [Disable AOT support])
 fi
@@ -511,6 +554,38 @@ if test "x$mono_feature_disable_reflection_emit" = "xyes"; then
        AC_DEFINE(DISABLE_REFLECTION_EMIT, 1, [Disable reflection emit support])
 fi
 
+if test "x$mono_feature_disable_large_code" = "xyes"; then
+       AC_DEFINE(DISABLE_LARGE_CODE, 1, [Disable support for huge assemblies])
+fi
+
+if test "x$mono_feature_disable_logging" = "xyes"; then
+       AC_DEFINE(DISABLE_LOGGING, 1, [Disable support debug logging])
+fi
+
+if test "x$mono_feature_disable_com" = "xyes"; then
+       AC_DEFINE(DISABLE_COM, 1, [Disable COM support])
+fi
+
+if test "x$mono_feature_disable_ssa" = "xyes"; then
+       AC_DEFINE(DISABLE_SSA, 1, [Disable advanced SSA JIT optimizations])
+fi
+
+if test "x$mono_feature_disable_generics" = "xyes"; then
+       AC_DEFINE(DISABLE_GENERICS, 1, [Disable generics support])
+fi
+
+AC_MSG_CHECKING(for visibility __attribute__)
+AC_TRY_COMPILE([], [
+   void __attribute__ ((visibility ("hidden"))) doit (void) {}
+   void main () { doit (); }
+], [
+   have_visibility_hidden=yes
+   AC_MSG_RESULT(yes)
+], [
+   have_visibility_hidden=no
+   AC_MSG_RESULT(no)
+])
+
 LIBGC_CFLAGS=
 LIBGC_LIBS=
 LIBGC_STATIC_LIBS=
@@ -536,6 +611,9 @@ case "x$gc" in
                AC_CHECK_LIB(gc, GC_gcj_malloc, found_gcj_malloc="yes",,$libdl)
                if test "x$found_gcj_malloc" = "xyes"; then
                        AC_DEFINE(HAVE_GC_GCJ_MALLOC)
+                       AC_DEFINE_UNQUOTED(USED_GC_NAME, "System Boehm (with typed GC)", [GC description])
+               else
+                       AC_DEFINE_UNQUOTED(USED_GC_NAME, "System Boehm (no typed GC)", [GC description])
                fi
                AC_CHECK_LIB(gc, GC_enable, found_gc_enable="yes",,$libdl)
                if test "x$found_gc_enable" = "xyes"; then
@@ -546,6 +624,11 @@ case "x$gc" in
        xincluded)
                AC_CONFIG_SUBDIRS(libgc)
 
+               # Pass CPPFLAGS to libgc configure
+               # Maybe we should use a separate variable for this to avoid passing useless and
+               # potentially problematic defines to libgc (like -D_FILE_OFFSET_BITS=64)
+               export CPPFLAGS
+
                found_boehm=yes
                gc_headers=yes
                use_included_gc=yes
@@ -564,10 +647,23 @@ case "x$gc" in
                # The included libgc contains GCJ support
                AC_DEFINE(HAVE_GC_GCJ_MALLOC)
                AC_DEFINE(HAVE_GC_ENABLE)
+               AC_DEFINE_UNQUOTED(USED_GC_NAME, "Included Boehm (with typed GC)", [GC description])
+               ;;
+
+       xsgen)
+               found_boehm=no
+               gc_headers=no
+               use_included_gc=no
+               AC_DEFINE(HAVE_SGEN_GC,1,[Using the simple generational GC.])
+               AC_DEFINE(HAVE_MOVING_COLLECTOR,1,[The GC can move objects.])
+               AC_DEFINE(HAVE_WRITE_BARRIERS,1,[The GC needs write barriers.])
+               AC_DEFINE_UNQUOTED(USED_GC_NAME, "Simple generational", [GC description])
                ;;
 
        xnone)
                AC_MSG_WARN("Compiling mono without GC.")
+               AC_DEFINE_UNQUOTED(USED_GC_NAME, "none", [GC description])
+               AC_DEFINE(HAVE_NULL_GC,1,[No GC support.])
                ;;
        *)
                AC_MSG_ERROR([Invalid argument to --with-gc.])
@@ -618,6 +714,7 @@ if test x$platform_win32 = xno; then
        AC_CHECK_FUNCS(setresuid)
        AC_CHECK_FUNCS(kqueue)
        AC_CHECK_FUNCS(backtrace_symbols)
+       AC_CHECK_FUNCS(mkstemp)
 
        dnl ******************************************************************
        dnl *** Check for large file support                               ***
@@ -804,7 +901,7 @@ if test x$platform_win32 = xno; then
        dnl *****************************
        dnl *** Checks for libnsl     ***
        dnl *****************************
-       AC_CHECK_LIB(nsl, gethostbyaddr, LIBS="$LIBS -lnsl")
+       AC_CHECK_FUNC(gethostbyaddr, , AC_CHECK_LIB(nsl, gethostbyaddr, LIBS="$LIBS -lnsl"))
 
        AC_CHECK_FUNCS(inet_pton inet_aton)
 
@@ -906,6 +1003,8 @@ if test x$platform_win32 = xno; then
                AC_DEFINE(USE_MONO_MUTEX)
        ])
        AC_CHECK_FUNCS(pthread_attr_setstacksize)
+       AC_CHECK_FUNCS(pthread_attr_getstack)
+       AC_CHECK_FUNCS(pthread_get_stacksize_np pthread_get_stackaddr_np)
 
        dnl ***********************************
        dnl *** Checks for working __thread ***
@@ -1120,41 +1219,6 @@ if test x$platform_win32 = xno; then
                AC_MSG_RESULT(no)
        ]) 
 
-       dnl *********************
-       dnl *** Check for AIO ***
-       dnl *********************
-       AC_MSG_CHECKING([for SIGEV_THREAD definition])
-       dnl Some systems (FreeBSD at least) may have aio_read
-       dnl but don't support/define SIGEV_THREAD.
-       AC_TRY_COMPILE([
-       #include <sys/signal.h>
-       ],[
-       int x = SIGEV_THREAD;
-       ],[
-               ac_cv_c_sigev_thread=yes
-               AC_MSG_RESULT(yes)
-       ],[
-               AC_MSG_RESULT(no)
-       ])
-
-       if test "$ac_cv_c_sigev_thread" = "yes" ; then
-               AC_CHECK_HEADERS(aio.h sys/aio.h)
-               AC_CHECK_LIB(rt, aio_read, [ LIBS="$LIBS -lrt" ],)
-               SIGVAL_PTR="undefined"
-               if test "$ac_cv_header_aio_h" = "yes" -o "$ac_cv_header_sys_aio_h" = "yes" ; then
-                       AC_CHECK_MEMBER(union sigval.sigval_ptr,SIGVAL_PTR="sigval_ptr",, [
-                                       #include <sys/signal.h>
-                                       ])
-                       AC_CHECK_MEMBER(union sigval.sival_ptr,SIGVAL_PTR="sival_ptr",, [
-                                       #include <sys/signal.h>
-                                       ])
-                       if test "$SIGVAL_PTR" = "undefined" ; then
-                               AC_MSG_ERROR([Unable to detect field name in 'union sigval'])
-                       fi
-               fi
-               AC_DEFINE_UNQUOTED(SIGVAL_PTR,$SIGVAL_PTR,[Pointer field name in 'union sigval'])
-       fi
-
        dnl **********************************
        dnl *** epoll                      ***
        dnl **********************************
@@ -1190,13 +1254,6 @@ if test x$platform_win32 = xno; then
        dnl **********************************
        dnl *** Checks for MonoPosixHelper ***
        dnl **********************************
-       AC_CHECK_FUNC(setkey, ,
-               AC_CHECK_LIB(crypt, setkey, [ 
-                       AC_DEFINE(HAVE_SETKEY, 1, [Define if setkey(3) is available]) 
-                       CRYPT_LIBS="-lcrypt" 
-               ])
-       )
-       AC_SUBST(CRYPT_LIBS)
        AC_CHECK_HEADERS(checklist.h)
        AC_CHECK_HEADERS(fstab.h)
        AC_CHECK_HEADERS(attr/xattr.h)
@@ -1259,6 +1316,7 @@ else
        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?))
        AC_CHECK_LIB(ole32, main, LIBS="$LIBS -lole32", AC_ERROR(bad mingw install?))
+       AC_CHECK_LIB(oleaut32, main, LIBS="$LIBS -loleaut32", AC_ERROR(bad mingw install?))
 
        dnl *********************************
        dnl *** Check for struct ip_mreqn ***
@@ -1436,6 +1494,20 @@ case "$host" in
                  solaris*)
                        LIBC="libc.so"
                        INTL="libintl.so"
+
+                       # On solaris 10 x86, gcc prints a warning saying 'visibility attribute not supported on this configuration; ignored', but linking fails. A test case:
+                       # int astruct __attribute__ ((visibility ("hidden")));
+                       # void foo ()
+                       # {
+                       #       void *p = &astruct;
+                       # }
+                       # gcc -fPIC --shared -o libfoo.so foo.c
+                       # yields:
+                       # 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
+
+                       libmono_ldflags="$libmono_ldflags $LIBS"
                esac
                ;;
        x86_64-*-* | amd64-*-*)
@@ -1451,6 +1523,7 @@ case "$host" in
                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)])
                libmono_ldflags="-lunwind"
                ;;
@@ -1468,19 +1541,24 @@ case "$host" in
                  *)
                        LIBC="libc.so"
                        INTL="libintl.so"
+                       libmono_ldflags="$libmono_ldflags $LIBS"
                esac
                jit_wanted=true
                if test x"$GCC" = xyes; then
-                       CFLAGS="$CFLAGS -Wno-cast-align"
+                       # We don't support v8 cpus
+                       CFLAGS="$CFLAGS -Wno-cast-align -mcpu=v9"
+               fi
+               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
                ;;
        alpha*-*-linux* | alpha*-*-osf*)
                TARGET=ALPHA;
                ACCESS_UNALIGNED="no"
-               JIT_SUPPORTED=no
-               INTERP_SUPPORTED=yes
-               interp_wanted=true
+               JIT_SUPPORTED=yes
+               jit_wanted=true
                arch_target=alpha;
+               CFLAGS="$CFLAGS -mieee"
                case $host_os in
                  linux*)
                        LIBC="libc.so.6.1"
@@ -1526,6 +1604,9 @@ case "$host" in
                arch_target=s390;
                ACCESS_UNALIGNED="no"
                JIT_SUPPORTED=yes
+               jit_wanted=true
+               # Required CFLAGS for s390[x].  USE_STRING_INLINES is automatic with gcc 4.1
+               CFLAGS="$CFLAGS -mbackchain -D__USE_STRING_INLINES"
                ;;
        s390x-*-linux*)
                TARGET=S390x;
@@ -1533,9 +1614,15 @@ case "$host" in
                arch_target=s390x;
                ACCESS_UNALIGNED="no"
                JIT_SUPPORTED=yes
+               jit_wanted=true
+               CFLAGS="$CFLAGS -mbackchain -D__USE_STRING_INLINES"
                ;;
 esac
 
+if test "x$have_visibility_hidden" = "xyes"; then
+   AC_DEFINE(HAVE_VISIBILITY_HIDDEN, 1, [Support for the visibility ("hidden") attribute])
+fi
+
 AC_ARG_WITH(jit, [  --with-jit=yes,no       If you want to build scripts that default to the JIT],[
        if test x$withval = xyes; then
           jit_wanted=true
@@ -1642,11 +1729,28 @@ if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86"; then
        fi
 fi
 
+mono_debugger_supported=no
+if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86"; then
+       if test x$use_included_gc = xyes; then
+               case "$host" in
+               *-*-*linux*)
+                       mono_debugger_supported=yes
+                       ;;
+               esac
+       fi
+fi
+
+AC_MSG_CHECKING(if the Mono Debugger is supported on this platform)
+if test "x$mono_debugger_supported" = "xyes"; then
+       AC_DEFINE(MONO_DEBUGGER_SUPPORTED,1,[The Mono Debugger is supported on this platform])
+fi
+AC_MSG_RESULT($mono_debugger_supported)
+AM_CONDITIONAL(MONO_DEBUGGER_SUPPORTED, test x$mono_debugger_supported = xyes)
+
 if test "x$with_tls" = "x__thread"; then
        AC_DEFINE(HAVE_KW_THREAD)
-   # Pass the information to libgc
+       # Pass the information to libgc
        CPPFLAGS="$CPPFLAGS -DUSE_COMPILER_TLS"
-       export CPPFLAGS
        AC_MSG_CHECKING(if the tls_model attribute is supported)
        AC_TRY_COMPILE([static __thread int foo __attribute__((tls_model("initial-exec")));], [
                ], [
@@ -1749,7 +1853,7 @@ AC_CONFIG_FILES([runtime/semdel-wrapper],[chmod +x runtime/semdel-wrapper])
 AC_CONFIG_COMMANDS([runtime/etc/mono/1.0/machine.config],
 [   depth=../../../..
     case $srcdir in
-    [\\/$]* | ?:[\\/]* ) reldir=$srcdir ;;
+    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
     .) reldir=$depth ;;
     *) reldir=$depth/$srcdir ;;
     esac
@@ -1763,7 +1867,7 @@ AC_CONFIG_COMMANDS([runtime/etc/mono/1.0/machine.config],
 AC_CONFIG_COMMANDS([runtime/etc/mono/2.0/machine.config],
 [   depth=../../../..
     case $srcdir in
-    [\\/$]* | ?:[\\/]* ) reldir=$srcdir ;;
+    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
     .) reldir=$depth ;;
     *) reldir=$depth/$srcdir ;;
     esac
@@ -1774,6 +1878,20 @@ AC_CONFIG_COMMANDS([runtime/etc/mono/2.0/machine.config],
     cd $depth
 ],[LN_S='$LN_S'])
 
+AC_CONFIG_COMMANDS([runtime/etc/mono/2.0/web.config],
+[   depth=../../../..
+    case $srcdir in
+    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
+    .) reldir=$depth ;;
+    *) reldir=$depth/$srcdir ;;
+    esac
+    $ac_aux_dir/install-sh -d runtime/etc/mono/2.0
+    cd runtime/etc/mono/2.0
+    rm -f web.config
+    $LN_S $reldir/data/net_2_0/web.config web.config
+    cd $depth
+],[LN_S='$LN_S'])
+
 AC_OUTPUT([
 Makefile
 mint.pc
@@ -1791,8 +1909,6 @@ mono/dis/Makefile
 mono/cil/Makefile
 mono/arch/Makefile
 mono/os/Makefile
-mono/os/win32/Makefile
-mono/os/unix/Makefile
 mono/arch/x86/Makefile
 mono/arch/amd64/Makefile
 mono/arch/hppa/Makefile
@@ -1806,12 +1922,17 @@ mono/arch/ia64/Makefile
 mono/interpreter/Makefile
 mono/tests/Makefile
 mono/tests/tests-config
+mono/tests/cas/Makefile
+mono/tests/cas/assembly/Makefile
+mono/tests/cas/demand/Makefile
+mono/tests/cas/inheritance/Makefile
+mono/tests/cas/linkdemand/Makefile
+mono/tests/cas/threads/Makefile
 mono/benchmark/Makefile
 mono/monoburg/Makefile
 mono/monograph/Makefile
 mono/io-layer/Makefile
 mono/mini/Makefile
-mono/handles/Makefile
 mono/profiler/Makefile
 ikvm-native/Makefile
 scripts/Makefile
@@ -1893,3 +2014,19 @@ echo "
        $disabled
 
 "
+if test x$with_static_mono = xno -a "x$platform_win32" != "xyes"; then
+   AC_MSG_WARN(Turning off static Mono is a risk, you might run into unexepcted bugs)
+fi
+
+if test x$have_zlib = xno; then
+   AC_MSG_WARN(ZLib devel files not available, compression file support in 2.0 won't work.)
+fi
+
+if test x$gc = xsgen; then
+        echo IMPORTANT:
+       echo IMPORTANT: You have selected an experimental, work-in-progress 
+       echo IMPORTANT: GC engine.  This GC engine is currently not supported
+       echo IMPORTANT: and is not yet ready for use.  
+       echo IMPORTANT:
+       echo IMPORTANT: There are known problems with it, use at your own risk.
+fi