#AC_PREREQ([2.62])
AC_INIT(mono, [2.11],
- [http://bugzilla.novell.com/enter_bug.cgi?product=mono])
+ [http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono])
AC_CONFIG_SRCDIR([README])
AC_CONFIG_MACRO_DIR([m4])
host_win32=yes
if test "x$cross_compiling" = "xno"; then
target_win32=yes
- if test "x$host" == "x$build"; then
+ if test "x$host" == "x$build" -a "x$host" == "x$target"; then
AC_DEFINE(TARGET_WIN32,1,[Target OS is Win32])
fi
- CC="gcc -mno-cygwin -g"
- CXX="g++ -mno-cygwin -g"
+ #
+ # gcc-3/g++-3 are from the gcc-core/gcc-g++ cygwin packages.
+ # Other gcc packages will not work:
+ # - the gcc-4 packages no longer support -mno-cygwin
+ # - the mingw-gcc packages produce executables which depends on a libgcc<...>
+ # dll, which means we would have to distribute that file too.
+ #
+ if test "x$CC" != "x"; then
+ AC_ERROR(Don't set CC. mono can only be compiled with gcc-3 from the 'gcc-core' package)
+ fi
+ CC="gcc-3.exe -mno-cygwin -g"
+ CXX="g++-3.exe -mno-cygwin -g"
# So libgc configure gets -mno-cygwin
export CC
export CXX
host_win32=no
platform_android=yes
AC_DEFINE(PLATFORM_ANDROID,1,[Targeting the Android platform])
+ AC_DEFINE(TARGET_ANDROID,1,[Targeting the Android platform])
CPPFLAGS="$CPPFLAGS -DGC_LINUX_THREADS -D_GNU_SOURCE -D_REENTRANT -DUSE_MMAP"
if test "x$disable_munmap" != "xyes"; then
fi
fi
-AC_CHECK_PROG(BISON, bison,yes,no)
-if test "x$BISON" = "xno";
-then
- AC_MSG_ERROR([You need to install bison])
-fi
-
dnl may require a specific autoconf version
dnl AC_PROG_CC_FOR_BUILD
dnl CC_FOR_BUILD not automatically detected
void main () { }
], [
AC_MSG_RESULT(yes)
+ CFLAGS="$ORIG_CFLAGS -Wno-unused-but-set-variable"
], [
AC_MSG_RESULT(no)
CFLAGS=$ORIG_CFLAGS
esac
fi
-## Maybe should also disable if mcsdir is invalid. Let's punt the issue for now.
-AM_CONDITIONAL(BUILD_MCS, [test x$cross_compiling = xno && test x$enable_mcs_build != xno])
-
AC_SUBST([mcs_topdir])
AC_SUBST([mcs_topdir_from_srcdir])
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, reflection_emit_save, large_code, logging, com, ssa, generics, attach, jit, simd, soft_debug, normalization, assembly_remapping.],
+ reflection_emit, reflection_emit_save, large_code, logging, com, ssa, generics, attach, jit, simd, soft_debug, normalization, assembly_remapping, shared_perfcounters.],
[
for feature in `echo "$enable_minimal" | sed -e "s/,/ /g"`; do
eval "mono_feature_disable_$feature='yes'"
AC_MSG_NOTICE([Disabled Assembly remapping.])
fi
+if test "x$mono_feature_disable_shared_perfcounters" = "xyes"; then
+ AC_DEFINE(DISABLE_SHARED_PERFCOUNTERS, 1, [Disable shared perfcounters.])
+ AC_MSG_NOTICE([Disabled Shared perfcounters.])
+fi
+
AC_MSG_CHECKING(for visibility __attribute__)
AC_TRY_COMPILE([], [
void __attribute__ ((visibility ("hidden"))) doit (void) {}
AC_CHECK_HEADERS(pthread.h)
AC_CHECK_FUNCS(pthread_mutex_timedlock)
AC_CHECK_FUNCS(pthread_getattr_np pthread_attr_get_np)
+ AC_CHECK_FUNCS(pthread_kill)
AC_MSG_CHECKING(for PTHREAD_MUTEX_RECURSIVE)
AC_TRY_COMPILE([ #include <pthread.h>], [
pthread_mutexattr_t attr;
child ()
{
struct sigaction sa;
+ #ifdef __APPLE__
+ stack_t sas;
+ #else
struct sigaltstack sas;
+ #endif
pthread_t id;
pthread_attr_t attr;
return;
}
+ /* x86 darwin deliver segfaults using SIGBUS */
+ if (sigaction (SIGBUS, &sa, NULL) == -1) {
+ perror ("sigaction");
+ return;
+ }
sas.ss_sp = malloc (SIGSTKSZ);
sas.ss_size = SIGSTKSZ;
sas.ss_flags = 0;
# from LLVM classes.
LLVM_CXXFLAGS="`$LLVM_CONFIG --cxxflags` -fno-rtti"
LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
- LLVM_LIBS=`$LLVM_CONFIG --libs core bitwriter jit x86codegen`
+ LLVM_LIBS=`$LLVM_CONFIG --libs core bitwriter jit mcjit x86codegen`
LLVM_LIBS="$LLVM_LDFLAGS $LLVM_LIBS -lstdc++"
# Should be something like '2.6' or '2.7svn'
sgen_supported=true
;;
cygwin*)
+ sgen_supported=true
have_visibility_hidden=no
;;
haiku*)
esac
if test "x$host" != "x$target"; then
+ AC_DEFINE(MONO_CROSS_COMPILE,1,[The runtime is compiled for cross-compiling mode])
+ enable_mcs_build=no
case "$target" in
powerpc64-ps3-linux-gnu)
TARGET=POWERPC64
arch_target=powerpc64
AC_DEFINE(TARGET_PS3, 1, [...])
- AC_DEFINE(MONO_CROSS_COMPILE,1,[The runtime is compiled for cross-compiling mode])
# It would be better to just use TARGET_POWERPC64, but lots of code already
# uses this define
AC_DEFINE(__mono_ppc64__, 1, [...])
TARGET=POWERPC64
arch_target=powerpc64
AC_DEFINE(TARGET_XBOX360, 1, [...])
- AC_DEFINE(MONO_CROSS_COMPILE,1,[The runtime is compiled for cross-compiling mode])
# It would be better to just use TARGET_POWERPC64, but lots of code already
# uses this define
sizeof_register=8
TARGET=AMD64
arch_target=amd64
AC_DEFINE(TARGET_AMD64, 1, [...])
- AC_DEFINE(MONO_CROSS_COMPILE,1,[The runtime is compiled for cross-compiling mode])
AC_DEFINE(__mono_ilp32__, 1, [64 bit mode with 4 byte longs and pointers])
sizeof_register=8
;;
+ *-*-nacl)
+ TARGET=X86
+ arch_target=x86
+ AC_DEFINE(TARGET_X86, 1, [...])
+ sizeof_register=4
+ ;;
armv7l-unknown-linux-gnueabi*)
# TEGRA
TARGET=ARM;
arch_target=arm;
+ AC_DEFINE(TARGET_ARM, 1, [...])
ACCESS_UNALIGNED="no"
JIT_SUPPORTED=yes
CPPFLAGS="$CPPFLAGS -DARM_FPU_VFP=1 -D__ARM_EABI__"
armv5tel-unknown-linux-gnueabi*)
TARGET=ARM;
arch_target=arm;
+ AC_DEFINE(TARGET_ARM, 1, [...])
ACCESS_UNALIGNED="no"
JIT_SUPPORTED=yes
CPPFLAGS="$CPPFLAGS -D__ARM_EABI__"
# in mono-compiler.h
with_tls=pthread
;;
+ armv5-*-linux-androideabi*)
+ TARGET=ARM;
+ arch_target=arm;
+ AC_DEFINE(TARGET_ARM, 1, [...])
+ AC_DEFINE(TARGET_ANDROID, 1, [...])
+ ACCESS_UNALIGNED="no"
+ JIT_SUPPORTED=yes
+ CPPFLAGS="$CPPFLAGS -D__ARM_EABI__ -DARM_FPU_NONE=1"
+ jit_wanted=true
+ # Can't use tls, since it depends on the runtime detection of tls offset
+ # in mono-compiler.h
+ with_tls=pthread
+ ;;
*)
- AC_MSG_WARN([Cross compiling is only supported for targets matching 'powerpc64-{ps3,xbox360}-linux-gnu'])
+ AC_MSG_ERROR([Cross compiling is not supported for target $target])
esac
fi
esac
#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 yes)], [], [with_profile4=yes])
+AC_ARG_WITH(profile4, [ --with-profile4=yes,no If you want to install the 4.x FX (defaults to yes)], [], [with_profile4=yes])
AC_ARG_WITH(monodroid, [ --with-monodroid=yes,no If you want to build the MonoDroid 2.1 assemblies (defaults to no)], [], [with_monodroid=no])
AC_ARG_WITH(monotouch, [ --with-monotouch=yes,no If you want to build the MonoTouch 2.1 assemblies (defaults to no)], [], [with_monotouch=no])
+AC_ARG_WITH(mobile, [ --with-mobile=yes,no If you want to build the Mobile 2.1 assemblies (defaults to no)], [], [with_mobile=no])
OPROFILE=no
AC_ARG_WITH(oprofile,[ --with-oprofile=no,<oprofile install dir> Enable oprofile support (defaults to no)],[
fi
AC_SUBST(docs_dir)
+## Maybe should also disable if mcsdir is invalid. Let's punt the issue for now.
+AM_CONDITIONAL(BUILD_MCS, [test x$cross_compiling = xno && test x$enable_mcs_build != xno])
+
AM_CONDITIONAL(HAVE_OPROFILE, test x$OPROFILE = xyes)
AC_SUBST(OPROFILE_CFLAGS)
AC_SUBST(OPROFILE_LIBS)
AM_CONDITIONAL(INSTALL_4_0, [test "x$with_profile4" = xyes])
AM_CONDITIONAL(INSTALL_MONODROID, [test "x$with_monodroid" = xyes])
AM_CONDITIONAL(INSTALL_MONOTOUCH, [test "x$with_monotouch" = xyes])
+AM_CONDITIONAL(INSTALL_MOBILE, [test "x$with_mobile" = xyes])
AM_CONDITIONAL(MIPS_GCC, test ${TARGET}${ac_cv_prog_gcc} = MIPSyes)
AM_CONDITIONAL(MIPS_SGI, test ${TARGET}${ac_cv_prog_gcc} = MIPSno)
cd $depth
],[LN_S='$LN_S'])
+AC_CONFIG_COMMANDS([runtime/etc/mono/4.5/machine.config],
+[ depth=../../../..
+ case $srcdir in
+ [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
+ .) reldir=$depth ;;
+ *) reldir=$depth/$srcdir ;;
+ esac
+ $ac_aux_dir/install-sh -d runtime/etc/mono/4.5
+ cd runtime/etc/mono/4.5
+ rm -f machine.config
+ $LN_S $reldir/data/net_4_5/machine.config machine.config
+ cd $depth
+],[LN_S='$LN_S'])
+
+AC_CONFIG_COMMANDS([runtime/etc/mono/4.5/web.config],
+[ depth=../../../..
+ case $srcdir in
+ [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
+ .) reldir=$depth ;;
+ *) reldir=$depth/$srcdir ;;
+ esac
+ $ac_aux_dir/install-sh -d runtime/etc/mono/4.5
+ cd runtime/etc/mono/4.5
+ rm -f web.config
+ $LN_S $reldir/data/net_4_5/web.config web.config
+ cd $depth
+],[LN_S='$LN_S'])
+
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; sed -e 's/$ECHO "copying selected/# "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/# "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([
data/Makefile
data/net_2_0/Makefile
data/net_4_0/Makefile
+data/net_4_5/Makefile
data/net_2_0/Browsers/Makefile
data/mint.pc
data/mono-2.pc
if test x$with_moonlight != xno; then
echo "MOONLIGHT = 1" >> $srcdir/$mcsdir/build/config.make
fi
+
+ if test x$with_profile4 != xyes; then
+ echo "DEFAULT_PROFILE = net_2_0" >> $srcdir/$mcsdir/build/config.make
+ fi
fi
Moon Profile: $with_moonlight ($with_moon_gc)
MonoDroid: $with_monodroid
MonoTouch: $with_monotouch
+ Mobile: $with_mobile
JNI support: $jdk_headers_found
libgdiplus: $libgdiplus_msg
zlib: $zlib_msg