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
;;
*-*-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"
AC_CHECK_TOOL(CC, gcc, gcc)
AC_PROG_CC
-AC_PROG_CXX
+# Disabled for now to fix the windows build
+#AC_PROG_CXX
AM_PROG_AS
AM_PROG_CC_STDC
AC_PROG_INSTALL
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
# 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
fi
## Versions of dependencies
- GLIB_REQUIRED_VERSION=1.3.11
-
- 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`
+ GLIB_REQUIRED_VERSION=2.4.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.])
[
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])
+ AC_DEFINE(DISABLE_AOT_COMPILER, 1, [Disable AOT Compiler])
+ AC_MSG_NOTICE([Disabled AOT compiler])
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__)
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 ***********************************
if test "x$DTRACE" = "xno"; then
AC_MSG_RESULT([dtrace utility not found, dtrace support disabled.])
enable_dtrace=no
+ elif ! $DTRACE -h $srcdir/data/mono.d > /dev/null 2>&1; then
+ AC_MSG_RESULT([dtrace doesn't support -h option, dtrace support disabled.])
+ enable_dtrace=no
fi
fi
;;
esac
+# FIXME: Define the others as well
+case "$TARGET" in
+X86)
+ AC_DEFINE(TARGET_X86, 1, [...])
+ ;;
+AMD64)
+ AC_DEFINE(TARGET_AMD64, 1, [...])
+ ;;
+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
AC_DEFINE(SIZEOF_REGISTER,4,[size of machine integer registers])
elif test "x$sizeof_register" = "x8"; then
;;
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
- fi
-])
-
-MOONLIGHT=yes
-AC_ARG_WITH(moonlight,[ --with-moonlight=yes,no If you want to build the Moonlight 2.1 assemblies (defaults to yes)],[
- if test x$with_moonlight = xno; then
- MOONLIGHT=no
- fi
-])
+AC_ARG_WITH(profile2, [ --with-profile2=yes,no If you want to install the 2.0 FX (defaults to yes)], [], [with_profile2=yes])
+AC_ARG_WITH(profile4, [ --with-profile4=yes,no If you want to install the 4.0 FX (defaults to no)], [], [with_profile4=no])
+AC_ARG_WITH(moonlight, [ --with-moonlight=yes,no If you want to build the Moonlight 2.1 assemblies (defaults to yes)], [], [with_moonlight=yes])
OPROFILE=no
AC_ARG_WITH(oprofile,[ --with-oprofile=no,<oprofile install dir> Enable oprofile support (defaults to no)],[
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_1, test x$MOONLIGHT = xyes)
+AM_CONDITIONAL(INSTALL_2_0, [test "x$with_profile2" = xyes])
+AM_CONDITIONAL(INSTALL_2_1, [test "x$with_moonlight" = xyes])
+AM_CONDITIONAL(INSTALL_4_0, [test "x$with_profile4" = xyes])
AM_CONDITIONAL(MIPS_GCC, test ${TARGET}${ac_cv_prog_gcc} = MIPSyes)
AM_CONDITIONAL(MIPS_SGI, test ${TARGET}${ac_cv_prog_gcc} = MIPSno)
if test x$enable_quiet_build = xyes; then
AC_CONFIG_COMMANDS([quiet], [for i in `find mono libgc support -name Makefile.in | sed -e 's/Makefile.in/Makefile/g'`; do if test -f $i; then $srcdir/scripts/patch-quiet.sh $i; fi; done], [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])
+ 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; sed -e 's/$ECHO "copying selected/# "copying selected/g' < libtool > libtool.tmp && mv libtool.tmp libtool && chmod a+x libtool])
fi
AC_OUTPUT([
echo 'MCS_FLAGS = $(PLATFORM_DEBUG_FLAGS)' >> $srcdir/$olivedir/build/config.make
echo "RUNTIME = $mono_build_root/runtime/mono-wrapper" >> $srcdir/$olivedir/build/config.make
echo "MONO_VERSION = $myver" >> $srcdir/$olivedir/build/config.make
- if test x$with_moonlight = xyes; then
+ if test x$with_moonlight = xyes; then
echo "WITH_MOONLIGHT = yes" >> $srcdir/$olivedir/build/config.make
fi
fi
olive source: $olive_topdir
GC: $gc
+ GLIB: $with_glib
TLS: $with_tls
SIGALTSTACK: $with_sigaltstack
Engine: $jit_status
- 2.0 Beta: $PREVIEW
- 2.1 Alpha: $MOONLIGHT
+ 2.0 Profile: $with_profile2
+ 2.1 Alpha: $with_moonlight
+ 4.0 Aplha: $with_profile4
JNI support: $jdk_headers_found
libgdiplus: $libgdiplus_msg
zlib: $zlib_msg