Update
[mono.git] / configure.in
index e9a1d8a3c83bc0e965d110a01255de9af93c4b02..40e6fff76dd4b9dd9b26a4f5a2a529e009231686 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.9)
+AM_INIT_AUTOMAKE(mono,2.1)
 AM_MAINTAINER_MODE
 
 API_VER=1.0
@@ -65,6 +65,7 @@ need_link_unlink=no
 # Thread configuration inspired by sleepycat's db
 AC_MSG_CHECKING([host platform characteristics])
 libgc_threads=no
+has_dtrace=no
 case "$host" in
        *-*-mingw*|*-*-cygwin*)
                platform_win32=yes
@@ -77,8 +78,8 @@ case "$host" in
                HOST_CC="gcc"
                # Windows 2000 is required that includes Internet Explorer 5.01
                CPPFLAGS="$CPPFLAGS -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0501 -D_UNICODE -DUNICODE -DWIN32_THREADS -DFD_SETSIZE=1024"
-               libmono_cflags="-mno-cygwin"
-               libmono_ldflags="-mno-cygwin"
+               libmono_cflags="-mno-cygwin -mms-bitfields -mwindows"
+               libmono_ldflags="-mno-cygwin -mms-bitfields -mwindows"
                libdl=
                libgc_threads=win32
                gc_default=included
@@ -224,6 +225,7 @@ case "$host" in
                libgc_threads=pthreads
                # This doesn't seem to work on solaris/x86, but the configure test runs
                with_tls=pthread
+               has_dtrace=yes
                ;;
        *-*-darwin*)
                platform_win32=no
@@ -238,6 +240,7 @@ case "$host" in
                no_version_script=yes
                libdl=
                libgc_threads=pthreads
+               has_dtrace=yes
                if test "x$cross_compiling" = "xyes"; then
                        has_broken_apple_cpp=yes
                fi
@@ -293,6 +296,7 @@ AC_SUBST(HOST_CC)
 AC_SUBST(BUILD_EXEEXT)
 
 AM_CONDITIONAL(CROSS_COMPILING, [test x$cross_compiling = xyes])
+AM_CONDITIONAL(USE_BATCH_FILES, [test x$platform_win32 = xyes -a x$cross_compiling = xyes])
 
 # Set STDC_HEADERS
 AC_HEADER_STDC
@@ -300,7 +304,6 @@ 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
 
@@ -492,9 +495,17 @@ embedded)
   AC_CONFIG_SUBDIRS(eglib)
   ;;
 system)
+  if test "x$cross_compiling" = "xyes"; then
+    pkg_config_path="$PKG_CONFIG_PATH"
+    unset PKG_CONFIG_PATH
+  fi
   BUILD_GLIB_CFLAGS=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0`
   BUILD_GLIB_LIBS=`$PKG_CONFIG --libs glib-2.0 gthread-2.0`
-
+  if test "x$cross_compiling" = "xyes"; then
+    PKG_CONFIG_PATH=$pkg_config_path
+    export PKG_CONFIG_PATH
+  fi
+  
   ## Versions of dependencies
   GLIB_REQUIRED_VERSION=1.3.11
   
@@ -581,6 +592,8 @@ if test "x$with_xen_opt" = "xyes"; then
        ])
 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.
@@ -653,6 +666,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=
@@ -707,7 +725,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)
@@ -1040,7 +1062,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 <sys/types.h>
                        #include <stdio.h>
@@ -1053,11 +1075,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 ***
@@ -1676,16 +1698,26 @@ 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)
+dnl **************
+dnl *** DTRACE ***
+dnl **************
+
+AC_ARG_ENABLE(dtrace,[  --enable-dtrace        Enable DTrace probes], enable_dtrace=$enableval, enable_dtrace=$has_dtrace)
+
+if test "x$enable_dtrace" = "xyes"; then
+   if test "x$has_dtrace" = "xno"; then
+         AC_MSG_ERROR([DTrace probes are not supported on this platform.])
+   fi
+   AC_PATH_PROG(DTRACE, [dtrace], [no], [$PATH:/usr/sbin])
+   if test "x$DTRACE" = "xno"; then
+         AC_MSG_RESULT([dtrace utility not found, dtrace support disabled.])
+         enable_dtrace=no
+   fi
+fi
+
 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
@@ -2104,6 +2136,14 @@ AC_ARG_WITH(oprofile,[ --with-oprofile=no,<path>   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)
@@ -2157,7 +2197,11 @@ AC_SUBST(mono_runtime)
 
 mono_cfg_root=$mono_build_root/runtime
 if test x$platform_win32 = xyes; then
-  mono_cfg_dir=`cygpath -w -a $mono_cfg_root`\\etc
+  if test "x$cross_compiling" = "xno"; then
+    mono_cfg_dir=`cygpath -w -a $mono_cfg_root`\\etc
+  else
+    mono_cfg_dir=`echo $mono_cfg_root | tr '/' '\\\'`\\etc
+  fi
 else
   mono_cfg_dir=$mono_cfg_root/etc
 fi
@@ -2236,6 +2280,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
@@ -2389,6 +2438,7 @@ echo "
        zlib:        $zlib_msg
        oprofile:    $OPROFILE
        BigArrays:   $enable_big_arrays
+       DTrace:      $enable_dtrace
        $disabled
 
 "