2009-06-05 Robert Jordan <robertj@gmx.net>
[mono.git] / configure.in
index 78e89e64e1b2a366469e55e4217566cd3a0a9f1d..297bcd038d433be0fdf390bce4f0bb2ec5149371 100644 (file)
@@ -65,6 +65,14 @@ AC_MSG_CHECKING([host platform characteristics])
 libgc_threads=no
 has_dtrace=no
 parallel_mark=yes
+
+case "$host" in
+       powerpc*-*-linux*)
+               # https://bugzilla.novell.com/show_bug.cgi?id=504411
+               disable_munmap=yes
+       ;;
+esac
+
 case "$host" in
        *-*-mingw*|*-*-cygwin*)
                platform_win32=yes
@@ -145,7 +153,10 @@ case "$host" in
                ;;
        *-*-linux*)
                platform_win32=no
-               CPPFLAGS="$CPPFLAGS -DGC_LINUX_THREADS -D_GNU_SOURCE -D_REENTRANT -DUSE_MMAP -DUSE_MUNMAP"
+               CPPFLAGS="$CPPFLAGS -DGC_LINUX_THREADS -D_GNU_SOURCE -D_REENTRANT -DUSE_MMAP"
+               if test "x$disable_munmap" != "xyes"; then
+                       CPPFLAGS="$CPPFLAGS -DUSE_MUNMAP"
+               fi
                libmono_cflags="-D_REENTRANT"
                libmono_ldflags="-lpthread"
                libdl="-ldl"
@@ -281,8 +292,9 @@ fi
 
 AM_CONDITIONAL(NO_VERSION_SCRIPT, test x$no_version_script = xyes)
 
-AC_CHECK_HEADERS(sys/filio.h sys/sockio.h netdb.h utime.h sys/utime.h semaphore.h sys/un.h linux/rtc.h sys/syscall.h sys/mkdev.h)
-AC_CHECK_HEADERS(sys/user.h sys/socket.h sys/ipc.h sys/sem.h sys/utsname.h alloca.h ucontext.h pwd.h)
+AC_CHECK_HEADERS(sys/filio.h sys/sockio.h netdb.h utime.h sys/utime.h semaphore.h sys/un.h linux/rtc.h sys/syscall.h sys/mkdev.h sys/uio.h)
+AC_CHECK_HEADERS(sys/user.h sys/socket.h sys/ipc.h sys/sem.h sys/utsname.h alloca.h ucontext.h pwd.h sys/select.h)
+
 
 AC_CHECK_HEADER(zlib.h, [have_zlib=yes], [have_zlib=no])
 if test x$have_zlib = xyes; then
@@ -374,13 +386,19 @@ fi
 # A sanity check to catch cases where the package was unpacked
 # with an ancient tar program (Solaris)
 #
-AC_MSG_CHECKING(integrity of package)
-if test -f $srcdir/$mcsdir/class/System.Runtime.Serialization.Formatters.Soap/System.Runtime.Serialization.Formatters.Soap/SoapTypeMapper.cs
-then
-   AC_MSG_RESULT(ok)
-else
-   errorm="Your mono distribution is incomplete;  if unpacking from a tar file, make sure you use GNU tar;  see http://www.mono-project.com/IncompletePackage for more details"
-   AC_MSG_ERROR([$errorm])
+AC_ARG_ENABLE(solaris-tar-check,
+[  --disable-solaris-tar-check    disable solaris tar check],
+   do_solaris_tar_check=no, do_solaris_tar_check=yes)
+
+if test x"$do_solaris_tar_check" = xyes; then
+       AC_MSG_CHECKING(integrity of package)
+       if test -f $srcdir/$mcsdir/class/System.Runtime.Serialization.Formatters.Soap/System.Runtime.Serialization.Formatters.Soap/SoapTypeMapper.cs
+       then
+               AC_MSG_RESULT(ok)
+       else
+               errorm="Your mono distribution is incomplete;  if unpacking from a tar file, make sure you use GNU tar;  see http://www.mono-project.com/IncompletePackage for more details"
+               AC_MSG_ERROR([$errorm])
+       fi
 fi
 
 mcs_topdir='$(top_srcdir)/'$mcsdir
@@ -476,13 +494,18 @@ system)
   
   ## Versions of dependencies
   GLIB_REQUIRED_VERSION=2.4.0
-  
-  PKG_CHECK_MODULES(BASE_DEPENDENCIES, glib-2.0 >= $GLIB_REQUIRED_VERSION)
-  
-  GLIB_CFLAGS=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0`
-  GLIB_LIBS=`$PKG_CONFIG --libs glib-2.0 gthread-2.0`
-  GMODULE_CFLAGS=`$PKG_CONFIG --cflags gmodule-2.0`
-  GMODULE_LIBS=`$PKG_CONFIG --libs gmodule-2.0`
+
+  dnl
+  dnl No, you will not replace this check with a pkg.m4 check
+  dnl
+  if $PKG_CONFIG --atleast-version=$GLIB_REQUIRED_VERSION glib-2.0; then
+      GLIB_CFLAGS=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0`
+      GLIB_LIBS=`$PKG_CONFIG --libs glib-2.0 gthread-2.0`
+      GMODULE_CFLAGS=`$PKG_CONFIG --cflags gmodule-2.0`
+      GMODULE_LIBS=`$PKG_CONFIG --libs gmodule-2.0`
+  else
+       AC_MSG_ERROR([You need at least glib-2.0 $GLIB_REQUIRED_VERSION])
+  fi
   ;;
 *)
   AC_MSG_ERROR([Invalid argument to --with-glib.])
@@ -570,7 +593,6 @@ AC_ARG_ENABLE(minimal, [  --enable-minimal=LIST      drop support for LIST subsy
 [
        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"
@@ -580,66 +602,102 @@ AC_DEFINE_UNQUOTED(DISABLED_FEATURES, "$DISABLED_FEATURES", [String of disabled
 
 if test "x$mono_feature_disable_aot" = "xyes"; then
        AC_DEFINE(DISABLE_AOT, 1, [Disable AOT support])
+       AC_MSG_NOTICE([Disabled support for AOT])
 fi
 
 if test "x$mono_feature_disable_profiler" = "xyes"; then
        AC_DEFINE(DISABLE_PROFILER, 1, [Disable default profiler support])
+       AC_MSG_NOTICE([Disabled support for the profiler])
 fi
 AM_CONDITIONAL(DISABLE_PROFILER, test x$mono_feature_disable_profiler = xyes)
 
 if test "x$mono_feature_disable_decimal" = "xyes"; then
        AC_DEFINE(DISABLE_DECIMAL, 1, [Disable System.Decimal support])
+       AC_MSG_NOTICE([Disabled support for decimal])
 fi
 
 if test "x$mono_feature_disable_pinvoke" = "xyes"; then
        AC_DEFINE(DISABLE_PINVOKE, 1, [Disable P/Invoke support])
+       AC_MSG_NOTICE([Disabled support for P/Invoke])
 fi
 
 if test "x$mono_feature_disable_debug" = "xyes"; then
        AC_DEFINE(DISABLE_DEBUG, 1, [Disable runtime debugging support])
+       AC_MSG_NOTICE([Disabled support for runtime debugging])
 fi
 
 if test "x$mono_feature_disable_reflection_emit" = "xyes"; then
        AC_DEFINE(DISABLE_REFLECTION_EMIT, 1, [Disable reflection emit support])
        mono_feature_disable_reflection_emit_save=yes
+       AC_MSG_NOTICE([Disabled support for Reflection.Emit])
 fi
 
 if test "x$mono_feature_disable_reflection_emit_save" = "xyes"; then
        AC_DEFINE(DISABLE_REFLECTION_EMIT_SAVE, 1, [Disable assembly saving support in reflection emit])
+       AC_MSG_NOTICE([Disabled support for Reflection.Emit.Save])
 fi
 
 if test "x$mono_feature_disable_large_code" = "xyes"; then
        AC_DEFINE(DISABLE_LARGE_CODE, 1, [Disable support for huge assemblies])
+       AC_MSG_NOTICE([Disabled support for large assemblies])
 fi
 
 if test "x$mono_feature_disable_logging" = "xyes"; then
        AC_DEFINE(DISABLE_LOGGING, 1, [Disable support debug logging])
+       AC_MSG_NOTICE([Disabled support for logging])
 fi
 
 if test "x$mono_feature_disable_com" = "xyes"; then
        AC_DEFINE(DISABLE_COM, 1, [Disable COM support])
+       AC_MSG_NOTICE([Disabled COM support])
 fi
 
 if test "x$mono_feature_disable_ssa" = "xyes"; then
        AC_DEFINE(DISABLE_SSA, 1, [Disable advanced SSA JIT optimizations])
+       AC_MSG_NOTICE([Disabled SSA JIT optimizations])
 fi
 
 if test "x$mono_feature_disable_generics" = "xyes"; then
        AC_DEFINE(DISABLE_GENERICS, 1, [Disable generics support])
+       AC_MSG_NOTICE([Disabled Generics Support])
+fi
+
+if test "x$mono_feature_disable_shadowcopy" = "xyes"; then
+       AC_DEFINE(DISABLE_SHADOW_COPY, 1, [Disable Shadow Copy for AppDomains])
+       AC_MSG_NOTICE([Disabled Shadow copy for AppDomains])
+fi
+
+if test "x$mono_feature_disable_portability" = "xyes"; then
+       AC_DEFINE(DISABLE_PORTABILITY, 1, [Disables the IO portability layer])
+       AC_MSG_NOTICE([Disabled IO Portability layer])
 fi
 
 if test "x$mono_feature_disable_attach" = "xyes"; then
        AC_DEFINE(DISABLE_ATTACH, 1, [Disable agent attach support])
+       AC_MSG_NOTICE([Disabled agent attach])
+fi
+
+if test "x$mono_feature_disable_full_messages" = "xyes"; then
+       AC_DEFINE(DISABLE_FULL_MESSAGES, 1, [Disables building in the full table of WAPI messages])
+       AC_MSG_NOTICE([Disabled full messages for Win32 errors, only core message strings shipped])
 fi
 
+if test "x$mono_feature_disable_verifier" = "xyes"; then
+       AC_DEFINE(DISABLE_VERIFIER, 1, [Disables the verifier])
+       AC_MSG_NOTICE([Disabled the metadata and IL verifiers])
+fi
+
+
 if test "x$mono_feature_disable_jit" = "xyes"; then
        AC_DEFINE(DISABLE_JIT, 1, [Disable the JIT, only full-aot mode will be supported by the runtime.])
+       AC_MSG_NOTICE([Disabled the JIT engine, only full AOT will be supported])
 fi
 
 AM_CONDITIONAL(DISABLE_JIT, test x$mono_feature_disable_jit = xyes)
 
 if test "x$mono_feature_disable_simd" = "xyes"; then
        AC_DEFINE(DISABLE_SIMD, 1, [Disable SIMD intrinsics related optimizations.])
+       AC_MSG_NOTICE([Disabled SIMD support])
 fi
 
 AC_MSG_CHECKING(for visibility __attribute__)
@@ -1137,9 +1195,15 @@ if test x$platform_win32 = xno; then
                AC_DEFINE(USE_MONO_MUTEX, 1, [Use mono_mutex_t])
        ])
        AC_CHECK_FUNCS(pthread_attr_setstacksize)
-       AC_CHECK_FUNCS(pthread_attr_getstack)
+       AC_CHECK_FUNCS(pthread_attr_getstack pthread_attr_getstacksize)
        AC_CHECK_FUNCS(pthread_get_stacksize_np pthread_get_stackaddr_np)
 
+       dnl ***********************************
+       dnl *** Checks for signals
+       dnl ***********************************
+       AC_CHECK_HEADERS(signal.h)
+       AC_CHECK_FUNCS(sigaction)
+
        dnl ***********************************
        dnl *** Checks for working __thread ***
        dnl ***********************************
@@ -1996,6 +2060,13 @@ AMD64)
 ARM)
        AC_DEFINE(TARGET_ARM, 1, [...])
        ;;
+POWERPC)
+       AC_DEFINE(TARGET_POWERPC, 1, [...])
+       ;;
+POWERPC64)
+       AC_DEFINE(TARGET_POWERPC, 1, [...])
+       AC_DEFINE(TARGET_POWERPC64, 1, [...])
+       ;;
 esac
 
 if test "x$sizeof_register" = "x4"; then
@@ -2187,10 +2258,10 @@ case "x$gc" in
                ;;
 esac
 
-PREVIEW=yes
-AC_ARG_WITH(preview,  [  --with-preview=yes,no          If you want to install the 2.0 FX preview (defaults to yes)],[
-       if test x$with_preview = xno; then
-             PREVIEW=no
+PROFILE2=yes
+AC_ARG_WITH(profile2,  [  --with-profile2=yes,no          If you want to install the 2.0 FX (defaults to yes)],[
+       if test x$with_profile2 = xno; then
+             PROFILE2=no
        fi
 ])
 
@@ -2231,13 +2302,24 @@ AC_ARG_WITH(mcs_docs,[  --with-mcs-docs=yes,no         If you want to build the
        fi
 ])
 
+dnl
+dnl Consistency settings
+dnl
+if test x$cross_compiling = xyes -o x$enable_mcs_build = xno; then
+   DISABLE_MCS_DOCS=yes
+   docs_dir=""
+else
+   docs_dir=docs
+fi
+AC_SUBST(docs_dir)
+
 AM_CONDITIONAL(HAVE_OPROFILE, test x$OPROFILE = xyes)
 AC_SUBST(OPROFILE_CFLAGS)
 AC_SUBST(OPROFILE_LIBS)
 
 libmono_ldflags="$libmono_ldflags $LIBS"
 
-AM_CONDITIONAL(INSTALL_2_0, test x$PREVIEW = xyes)
+AM_CONDITIONAL(INSTALL_2_0, test x$PROFILE2 = xyes)
 AM_CONDITIONAL(INSTALL_2_1, test x$MOONLIGHT = xyes)
 
 AM_CONDITIONAL(MIPS_GCC, test ${TARGET}${ac_cv_prog_gcc} = MIPSyes)
@@ -2535,10 +2617,11 @@ echo "
         olive source:  $olive_topdir
 
        GC:            $gc
+       GLIB:          $with_glib
        TLS:           $with_tls
        SIGALTSTACK:   $with_sigaltstack
        Engine:        $jit_status
-       2.0 Beta:      $PREVIEW
+       2.0 Profile:   $PROFILE2
        2.1 Alpha:     $MOONLIGHT
        JNI support:   $jdk_headers_found
        libgdiplus:    $libgdiplus_msg