X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=configure.in;h=b1b3b4b9fb504e7d524c6353ae1d89fce4114056;hb=b2b79df36de909cdaffaf7d5a1cc0f9184ef22a2;hp=fa83802daf358f45b24c775f2ea75c5859d092f4;hpb=4a2ab0336e97f3591eebbb881a1471d3051946c9;p=mono.git diff --git a/configure.in b/configure.in index fa83802daf3..b1b3b4b9fb5 100644 --- a/configure.in +++ b/configure.in @@ -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.10) +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= @@ -202,7 +206,7 @@ case "$host" in ;; *-*-darwin*) platform_win32=no - CPPFLAGS="$CPPFLAGS -no-cpp-precomp -D_THREAD_SAFE -DGC_MACOSX_THREADS" + CPPFLAGS="$CPPFLAGS -no-cpp-precomp -D_THREAD_SAFE -DGC_MACOSX_THREADS -DPLATFORM_MACOSX" libmono_cflags="-D_THREAD_SAFE" LDFLAGS="$LDFLAGS -pthread" libmono_ldflags="-pthread" @@ -249,12 +253,15 @@ dnl may require a specific autoconf version dnl AC_PROG_CC_FOR_BUILD dnl CC_FOR_BUILD not automatically detected CC_FOR_BUILD=$CC +CFLAGS_FOR_BUILD=$CFLAGS BUILD_EXEEXT= if test "x$cross_compiling" = "xyes"; then CC_FOR_BUILD=cc + CFLAGS_FOR_BUILD= BUILD_EXEEXT="" fi AC_SUBST(CC_FOR_BUILD) +AC_SUBST(CFLAGS_FOR_BUILD) AC_SUBST(HOST_CC) AC_SUBST(BUILD_EXEEXT) @@ -263,7 +270,8 @@ AM_CONDITIONAL(CROSS_COMPILING, [test x$cross_compiling = xyes]) # Set STDC_HEADERS AC_HEADER_STDC AC_LIBTOOL_WIN32_DLL -AC_DISABLE_FAST_INSTALL +# This causes monodis to not link correctly +#AC_DISABLE_FAST_INSTALL AM_PROG_LIBTOOL # Test whenever ld supports -version-script @@ -473,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 @@ -507,6 +537,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= @@ -532,6 +594,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 @@ -542,6 +607,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 @@ -560,10 +630,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.]) @@ -902,6 +985,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 *** @@ -1186,6 +1271,13 @@ 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) @@ -1194,12 +1286,14 @@ if test x$platform_win32 = xno; then AC_CHECK_HEADERS(sys/statvfs.h) AC_CHECK_HEADERS(sys/vfstab.h) AC_CHECK_HEADERS(sys/xattr.h) + AC_CHECK_HEADERS(sys/mman.h) AC_CHECK_FUNCS(getdomainname) AC_CHECK_FUNCS(setdomainname) AC_CHECK_FUNCS(fgetgrent) AC_CHECK_FUNCS(fgetpwent) AC_CHECK_FUNCS(fgetpwent) AC_CHECK_FUNCS(getfsstat) + AC_CHECK_FUNCS(lutimes) AC_CHECK_FUNCS(mremap) AC_CHECK_FUNCS(remap_file_pages) AC_CHECK_FUNCS(posix_fadvise) @@ -1237,11 +1331,16 @@ if test x$platform_win32 = xno; then #endif ]) AC_CHECK_HEADERS([termios.h]) + + dnl * This is provided in io-layer, but on windows it's only available + dnl * on xp+ + AC_DEFINE(HAVE_GETPROCESSID, 1, [Define if GetProcessId is available]) else jdk_headers_found=no 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 *** @@ -1270,6 +1369,7 @@ else AC_MSG_RESULT(no) ]) ]) + AC_CHECK_FUNCS(GetProcessId) fi dnl socklen_t check @@ -1414,6 +1514,23 @@ case "$host" in arch_target=x86; JIT_SUPPORTED=yes jit_wanted=true + case $host_os 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 + esac ;; x86_64-*-* | amd64-*-*) TARGET=AMD64; @@ -1428,6 +1545,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" ;; @@ -1448,7 +1566,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*) @@ -1503,6 +1625,7 @@ case "$host" in arch_target=s390; ACCESS_UNALIGNED="no" JIT_SUPPORTED=yes + jit_wanted=true ;; s390x-*-linux*) TARGET=S390x; @@ -1510,9 +1633,14 @@ case "$host" in arch_target=s390x; ACCESS_UNALIGNED="no" JIT_SUPPORTED=yes + jit_wanted=true ;; 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 @@ -1619,11 +1747,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")));], [ ], [ @@ -1726,7 +1871,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 @@ -1740,7 +1885,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 @@ -1751,10 +1896,25 @@ 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 mono.pc +mono-cairo.pc dotnet.pc mono-uninstalled.pc scripts/mono-nunit.pc @@ -1767,8 +1927,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 @@ -1782,12 +1940,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 @@ -1837,7 +2000,13 @@ fi echo 'IL_FLAGS = /debug' >> $srcdir/$mcsdir/build/config.make echo "RUNTIME = $mono_build_root/runtime/mono-wrapper" >> $srcdir/$mcsdir/build/config.make echo "ILDISASM = $mono_build_root/runtime/monodis-wrapper" >> $srcdir/$mcsdir/build/config.make - echo "INSTALL = $INSTALL" >> $srcdir/$mcsdir/build/config.make + + case $INSTALL in + [[\\/$]]* | ?:[[\\/]]* ) mcs_INSTALL=$INSTALL ;; + *) mcs_INSTALL=$mono_build_root/$INSTALL ;; + esac + + echo "INSTALL = $mcs_INSTALL" >> $srcdir/$mcsdir/build/config.make export VERSION [myver=$($AWK 'BEGIN { @@ -1863,3 +2032,11 @@ echo " $disabled " +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