2004-12-07 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / configure.in
index 4f8723ee3de73a3cfe44aeeea5ee824fc618d506..07146ac45381e4c752c176269f135b30ea8332d0 100644 (file)
@@ -6,6 +6,13 @@ AM_MAINTAINER_MODE
 
 AC_PROG_LN_S
 
+# In case of cygwin, override LN_S, irrespective of what it determines.
+# The build uses cygwin, but the actual runtime doesn't.
+case $host_os in
+*cygwin* ) LN_S='cp -p';;
+esac
+
+
 dnl
 dnl libgc checks
 dnl
@@ -365,13 +372,38 @@ fi
 
 AM_CONDITIONAL(STATIC_MONO, test x$with_static_mono != xno)
 
-# assembly bundle support, see metadata/make-bundle.pl for more info
-AC_ARG_WITH(bundle, [  --with-bundle=bundle_template],[
-       BUNDLE_FILE=$with_bundle
-       AC_SUBST(BUNDLE_FILE)
-       AC_DEFINE(WITH_BUNDLE)
-],[with_bundle=no])
-AM_CONDITIONAL(WITH_BUNDLE, test x$with_bundle != xno)
+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.],
+[
+       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
+],[])
+
+if test "x$mono_feature_disable_aot" = "xyes"; then
+       AC_DEFINE(DISABLE_AOT, 1, [Disable AOT support])
+fi
+
+if test "x$mono_feature_disable_profiler" = "xyes"; then
+       AC_DEFINE(DISABLE_PROFILER, 1, [Disable default profiler support])
+fi
+
+if test "x$mono_feature_disable_decimal" = "xyes"; then
+       AC_DEFINE(DISABLE_DECIMAL, 1, [Disable System.Decimal support])
+fi
+
+if test "x$mono_feature_disable_pinvoke" = "xyes"; then
+       AC_DEFINE(DISABLE_PINVOKE, 1, [Disable P/Invoke support])
+fi
+
+if test "x$mono_feature_disable_debug" = "xyes"; then
+       AC_DEFINE(DISABLE_DEBUG, 1, [Disable runtime debugging support])
+fi
+
+if test "x$mono_feature_disable_reflection_emit" = "xyes"; then
+       AC_DEFINE(DISABLE_REFLECTION_EMIT, 1, [Disable reflection emit support])
+fi
 
 LIBGC_CFLAGS=
 LIBGC_LIBS=
@@ -1205,14 +1237,17 @@ fi
 #
 ICU_CFLAGS=""
 ICU_LIBS=""
-enable_icu=no
+enable_icu="no;  default"
 
-probe_icu=true
+probe_icu=false
 AC_ARG_WITH(icu, [  --with-icu=yes/no],
        if test x$with_icu = xno; then
           probe_icu=false;
           AC_MSG_RESULT(Will not probe for ICU)
        fi
+       if test x$with_icu = xyes; then
+          probe_icu=true;
+       fi
 )
 
 if $probe_icu; then
@@ -1230,6 +1265,9 @@ fi
 AC_SUBST(ICU_CFLAGS)
 AC_SUBST(ICU_LIBS)
 
+AC_ARG_ENABLE(nunit-tests, [ --enable-nunit-tests      Run the nunit tests of the class library on 'make check'])
+AM_CONDITIONAL(ENABLE_NUNIT_TESTS, [test x$enable_nunit_tests = xyes])
+
 TARGET="unknown"
 ACCESS_UNALIGNED="yes"
 
@@ -1267,6 +1305,9 @@ case "$host" in
                LIBC="libc.so"
                INTL="libintl.so"
                jit_wanted=true
+               if test x"$GCC" = xyes; then
+                       CFLAGS="$CFLAGS -Wno-cast-align"
+               fi
                ;;
        alpha*-*-linux* | alpha*-*-osf*)
                TARGET=ALPHA;
@@ -1301,6 +1342,7 @@ case "$host" in
        macppc-*-openbsd* | powerpc-*-linux* | powerpc-*-openbsd* | \
         powerpc-*-sysv* | powerpc-*-darwin*)
                TARGET=POWERPC;
+               AC_DEFINE(MONO_ARCH_REGPARMS,1,[Architecture uses registers for Parameters])
                arch_target=ppc;
                JIT_SUPPORTED=yes
                jit_wanted=true
@@ -1312,12 +1354,14 @@ case "$host" in
                ;;
        s390-*-linux*)
                TARGET=S390;
+               AC_DEFINE(MONO_ARCH_REGPARMS,1,[Architecture uses registers for Parameters])
                arch_target=s390;
                ACCESS_UNALIGNED="no"
                JIT_SUPPORTED=yes
                ;;
        s390x-*-linux*)
                TARGET=S390x;
+               AC_DEFINE(MONO_ARCH_REGPARMS,1,[Architecture uses registers for Parameters])
                arch_target=s390x;
                ACCESS_UNALIGNED="no"
                JIT_SUPPORTED=yes
@@ -1482,8 +1526,34 @@ fi
 AC_SUBST(mono_cfg_dir)
 
 AC_CONFIG_FILES([runtime/mono-wrapper],[chmod +x runtime/mono-wrapper])
-AC_CONFIG_LINKS([runtime/etc/mono/1.0/machine.config:data/net_1_1/machine.config 
-                 runtime/etc/mono/2.0/machine.config:data/net_2_0/machine.config])
+
+AC_CONFIG_COMMANDS([runtime/etc/mono/1.0/machine.config],
+[   depth=../../../..
+    case $srcdir in
+    [\\/$]* | ?:[\\/]* ) reldir=$srcdir ;;
+    .) reldir=$depth ;;
+    *) reldir=$depth/$srcdir ;;
+    esac
+    $ac_aux_dir/install-sh -d runtime/etc/mono/1.0
+    cd runtime/etc/mono/1.0
+    rm -f machine.config
+    $LN_S $reldir/data/net_1_1/machine.config machine.config
+    cd $depth
+],[LN_S='$LN_S'])
+
+AC_CONFIG_COMMANDS([runtime/etc/mono/2.0/machine.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 machine.config
+    $LN_S $reldir/data/net_2_0/machine.config machine.config
+    cd $depth
+],[LN_S='$LN_S'])
 
 AC_OUTPUT([
 Makefile
@@ -1518,7 +1588,6 @@ mono/handles/Makefile
 mono/mini/Makefile
 mono/profiler/Makefile
 ikvm-jni/Makefile
-runtime/Makefile
 scripts/Makefile
 man/Makefile
 web/Makefile
@@ -1532,6 +1601,7 @@ data/config
 mono.spec
 tools/Makefile
 tools/locale-builder/Makefile
+runtime/Makefile
 ])
 
 echo "
@@ -1543,5 +1613,6 @@ echo "
        Engine:      $jit_status
        2.0 Alpha:   $PREVIEW
        JNI support: $jdk_headers_found
+       Disabled:    $enable_minimal
 
 "