X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=configure.in;h=1e81d40381aedf7357f8bacd8163b3f942f1d360;hb=04bad7c55a1dc4e300ea2676160179f526cbcc78;hp=8d74989976cd41f554f5feaaf45cafc7bc9d02c7;hpb=ed463b70e70cbd25de6e6f8d3f6bfbbc54d4d72e;p=mono.git diff --git a/configure.in b/configure.in index 8d74989976c..1e81d40381a 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.9) +AM_INIT_AUTOMAKE(mono,2.0) AM_MAINTAINER_MODE API_VER=1.0 @@ -36,6 +36,11 @@ else gc_default=boehm fi +# These variables are the CPPFLAGS/CFLAGS passed to libgc's configure +# libgc should inherit the original CFLAGS/CPPFLAGS passed to configure, i.e. -O0 +CPPFLAGS_FOR_LIBGC=$CPPFLAGS +CFLAGS_FOR_LIBGC=$CFLAGS + # # These are the flags that need to be stored in the mono.pc file for # compiling code that will embed Mono @@ -250,7 +255,7 @@ if test x$need_link_unlink = xyes; then fi AM_CONDITIONAL(PLATFORM_WIN32, test x$platform_win32 = xyes) -AM_CONDITIONAL(PLATFORM_LINUX, test x$target_os = xlinux-gnu) +AM_CONDITIONAL(PLATFORM_LINUX, echo x$target_os | grep -q linux) AC_CHECK_TOOL(CC, gcc, gcc) AC_PROG_CC @@ -295,6 +300,8 @@ AC_LIBTOOL_WIN32_DLL # This causes monodis to not link correctly #AC_DISABLE_FAST_INSTALL AM_PROG_LIBTOOL +# Use dolt (http://dolt.freedesktop.org/) instead of libtool for building. +DOLT # Test whenever ld supports -version-script AC_PROG_LD @@ -394,6 +401,7 @@ else esac fi CFLAGS="$CFLAGS -g $WARN" +CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -g" # Where's the 'mcs' source tree? if test -d $srcdir/mcs; then @@ -564,12 +572,16 @@ if test "x$with_xen_opt" = "xyes"; then void main () { } ], [ AC_MSG_RESULT(yes) + # Pass it to libgc as well + CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -mno-tls-direct-seg-refs" ], [ AC_MSG_RESULT(no) CFLAGS=$ORIG_CFLAGS ]) fi +AC_ARG_ENABLE(quiet-build, [ --enable-quiet-build Enable quiet runtime build], enable_quiet_build=$enableval, enable_quiet_build=yes) + DISABLED_FEATURES=none AC_ARG_ENABLE(minimal, [ --enable-minimal=LIST drop support for LIST subsystems. @@ -642,6 +654,11 @@ AC_TRY_COMPILE([], [ AC_MSG_RESULT(no) ]) +AC_ARG_ENABLE(parallel-mark, [ --enable-parallel-mark Enables GC Parallel Marking]) +if test x$enable_parallel_mark = xyes; then + libgc_configure_args="$libgc_configure_args --enable-parallel-mark" +fi + LIBGC_CFLAGS= LIBGC_LIBS= LIBGC_STATIC_LIBS= @@ -696,7 +713,11 @@ case "x$gc" in # The included libgc contains GCJ support AC_DEFINE(HAVE_GC_GCJ_MALLOC, 1, [Have GC_gcj_malloc]) AC_DEFINE(HAVE_GC_ENABLE, 1, [Have GC_enable]) - AC_DEFINE_UNQUOTED(USED_GC_NAME, "Included Boehm (with typed GC)", [GC description]) + if test x$enable_parallel_mark = xyes; then + AC_DEFINE_UNQUOTED(USED_GC_NAME, "Included Boehm (with typed GC and Parallel Mark)", [GC description]) + else + AC_DEFINE_UNQUOTED(USED_GC_NAME, "Included Boehm (with typed GC)", [GC description]) + fi ;; xsgen) @@ -1029,7 +1050,7 @@ if test x$platform_win32 = xno; then dnl *********************************************** # AC_CHECK_SIZEOF can't cope with struct members :-( AC_MSG_CHECKING(size of sockaddr_un.sun_path) - AC_CACHE_VAL(cv_mono_sizeof_sunpath, + AC_CACHE_VAL(mono_cv_sizeof_sunpath, [AC_TRY_RUN([ #include #include @@ -1042,11 +1063,11 @@ if test x$platform_win32 = xno; then fprintf(f, "%d\n", sizeof(sock_un.sun_path)); exit(0); } - ], cv_mono_sizeof_sunpath=`cat conftestval`, - cv_mono_sizeof_sunpath=0, - cv_mono_sizeof_sunpath=0)])dnl - AC_MSG_RESULT($cv_mono_sizeof_sunpath) - AC_DEFINE_UNQUOTED(MONO_SIZEOF_SUNPATH, $cv_mono_sizeof_sunpath, [Sizeof sock_un.sun_path]) + ], mono_cv_sizeof_sunpath=`cat conftestval`, + mono_cv_sizeof_sunpath=0, + mono_cv_sizeof_sunpath=0)])dnl + AC_MSG_RESULT($mono_cv_sizeof_sunpath) + AC_DEFINE_UNQUOTED(MONO_SIZEOF_SUNPATH, $mono_cv_sizeof_sunpath, [Sizeof sock_un.sun_path]) dnl ************************************* dnl *** Checks for zero length arrays *** @@ -1649,10 +1670,69 @@ if test "x$try_shared_handles" != "xyes"; then AC_SUBST(DISABLE_SHARED_HANDLES) fi +if test x$gc = xsgen; then + if test x$with_tls != x__thread; then + AC_MSG_ERROR([The SGEN garbage collector depends on a working __thread implementation, and either --with-thread=pthread was passed to configure, or the configure test for __thread failed.]) + fi +fi 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]) +AC_MSG_CHECKING([if big-arrays are to be enabled]) +AC_ARG_ENABLE(big-arrays, [ --enable-big-arrays Enable the allocation and indexing of arrays greater than Int32.MaxValue], enable_big_arrays=$enableval, enable_big_arrays=no) +AC_MSG_RESULT($enable_big_arrays) +if test "x$enable_big_arrays" = "xyes" ; then + AC_DEFINE(MONO_BIG_ARRAYS,1,[Enable the allocation and indexing of arrays greater than Int32.MaxValue]) +fi + +AC_MSG_CHECKING([if DTrace support is requested]) +AC_ARG_ENABLE(dtrace,[ --enable-dtrace Enable DTrace probes], enable_dtrace=$enableval, enable_dtrace=no) +AC_MSG_RESULT($enable_dtrace) +dtrace_g=no +if test "x$enable_dtrace" = "xyes"; then + AC_DEFINE(ENABLE_DTRACE, 1, [Enable DTrace probes]) + AC_PATH_PROG(DTRACE, [dtrace], [no], [$PATH:/usr/sbin]) + if test "x$DTRACE" = "xno"; then + AC_MSG_FAILURE([DTrace requested but not found]) + fi + DTRACEFLAGS= + if test "x$ac_cv_sizeof_void_p" = "x8"; then + case "$host" in + powerpc-*-darwin*) + DTRACEFLAGS="-arch ppc64" + ;; + i*86-*-darwin*) + DTRACEFLAGS="-arch x86_64" + ;; + *) + DTRACEFLAGS=-64 + ;; + esac + else + case "$host" in + powerpc-*-darwin*) + DTRACEFLAGS="-arch ppc" + ;; + i*86-*-darwin*) + DTRACEFLAGS="-arch i386" + ;; + *) + DTRACEFLAGS=-32 + ;; + esac + fi + AC_SUBST(DTRACEFLAGS) + case "$host" in + *-*-solaris*) + dtrace_g=yes + ;; + esac + AC_CHECK_HEADERS([sys/sdt.h]) +fi +AM_CONDITIONAL(ENABLE_DTRACE, [test x$enable_dtrace = xyes]) +AM_CONDITIONAL(DTRACE_G_REQUIRED, [test x$dtrace_g = xyes]) + TARGET="unknown" ACCESS_UNALIGNED="yes" @@ -1998,7 +2078,14 @@ case "x$gc" in # We should use a separate variable for this to avoid passing useless and # potentially problematic defines to libgc (like -D_FILE_OFFSET_BITS=64) # This should be executed late so we pick up the final version of CPPFLAGS - ac_configure_args="$ac_configure_args --disable-embed-check --with-libgc-threads=$libgc_threads $libgc_configure_args \"CPPFLAGS=$CPPFLAGS\"" + # The problem with this approach, is that during a reconfigure, the main + # configure scripts gets invoked with these arguments, so we use separate + # variables understood by libgc's configure to pass CPPFLAGS and CFLAGS. + LIBGC_CPPFLAGS=$CPPFLAGS + if test x$TARGET = xSPARC -o x$TARGET = xSPARC64; then + LIBGC_CPPFLAGS=`echo $LIBGC_CPPFLAGS | sed -e 's/-D_FILE_OFFSET_BITS=64//g'` + fi + ac_configure_args="$ac_configure_args --disable-embed-check --with-libgc-threads=$libgc_threads $libgc_configure_args \"CPPFLAGS_FOR_LIBGC=$LIBGC_CPPFLAGS\" \"CFLAGS_FOR_LIBGC=$CFLAGS_FOR_LIBGC\"" AC_CONFIG_SUBDIRS(libgc) ;; esac @@ -2027,6 +2114,14 @@ AC_ARG_WITH(oprofile,[ --with-oprofile=no, Enable oprofile support (defa fi ]) +MALLOC_MEMPOOLS=no +AC_ARG_WITH(malloc_mempools,[ --with-malloc-mempools=yes,no Use malloc for each single mempool allocation (only for runtime debugging, defaults to NO)],[ + if test x$with_malloc_mempools = xyes; then + MALLOC_MEMPOOLS=yes + AC_DEFINE(USE_MALLOC_FOR_MEMPOOLS,1,[Use malloc for each single mempool allocation]) + fi +]) + AM_CONDITIONAL(HAVE_OPROFILE, test x$OPROFILE = xyes) AC_SUBST(OPROFILE_CFLAGS) AC_SUBST(OPROFILE_LIBS) @@ -2159,6 +2254,11 @@ AC_CONFIG_COMMANDS([runtime/etc/mono/2.0/Browsers/Compat.browser], cd $depth ],[LN_S='$LN_S']) +if test x$enable_quiet_build = xyes; then + AC_CONFIG_COMMANDS([quiet], [find mono libgc support -name Makefile -exec $shell $srcdir/scripts/patch-quiet.sh {} \;], [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]) +fi + AC_OUTPUT([ Makefile mono-uninstalled.pc @@ -2311,6 +2411,7 @@ echo " libgdiplus: $libgdiplus_msg zlib: $zlib_msg oprofile: $OPROFILE + BigArrays: $enable_big_arrays $disabled "