2006-04-26 Alexander Olk <alex.olk@googlemail.com>
[mono.git] / configure.in
index 6351365c75edb4babea7a22ced4bca707f2f3bed..00647466e244c0ef4dd1eb9b9044ab368bdf44c4 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.13)
+AM_INIT_AUTOMAKE(mono,1.1.15)
 AM_MAINTAINER_MODE
 
 AC_PROG_LN_S
@@ -81,6 +81,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 +105,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 +130,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 +157,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=
@@ -477,16 +481,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 +537,37 @@ 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 (); }
+], [
+   AC_DEFINE(HAVE_VISIBILITY_HIDDEN, 1, [Support for the visibility ("hidden") attribute])
+   AC_MSG_RESULT(yes)
+], [
+   AC_MSG_RESULT(no)
+])
+
 LIBGC_CFLAGS=
 LIBGC_LIBS=
 LIBGC_STATIC_LIBS=
@@ -536,6 +593,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
@@ -564,10 +624,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])
                ;;
 
+dnl    xsgen)
+dnl            found_boehm=no
+dnl            gc_headers=no
+dnl            use_included_gc=no
+dnl            AC_DEFINE(HAVE_SGEN_GC,1,[Using the simple generational GC.])
+dnl            AC_DEFINE(HAVE_MOVING_COLLECTOR,1,[The GC can move objects.])
+dnl            AC_DEFINE(HAVE_WRITE_BARRIERS,1,[The GC needs write barriers.])
+dnl            AC_DEFINE_UNQUOTED(USED_GC_NAME, "Simple generational", [GC description])
+dnl            ;;
+
        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.])
@@ -907,6 +980,7 @@ if test x$platform_win32 = xno; then
        ])
        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 ***
@@ -1473,7 +1547,11 @@ case "$host" in
                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*)
@@ -1528,6 +1606,7 @@ case "$host" in
                arch_target=s390;
                ACCESS_UNALIGNED="no"
                JIT_SUPPORTED=yes
+               jit_wanted=true
                ;;
        s390x-*-linux*)
                TARGET=S390x;
@@ -1535,6 +1614,7 @@ case "$host" in
                arch_target=s390x;
                ACCESS_UNALIGNED="no"
                JIT_SUPPORTED=yes
+               jit_wanted=true
                ;;
 esac
 
@@ -1767,7 +1847,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
@@ -1781,7 +1861,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
@@ -1809,8 +1889,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
@@ -1829,7 +1907,6 @@ mono/monoburg/Makefile
 mono/monograph/Makefile
 mono/io-layer/Makefile
 mono/mini/Makefile
-mono/handles/Makefile
 mono/profiler/Makefile
 ikvm-native/Makefile
 scripts/Makefile