X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=configure.in;h=221eee8cd2f210b7789906cd4070f40c02372b1c;hb=06e802059659229c7341e9c3b7faf15efdb993de;hp=2c47b2c1939a591400f64928a38bb68870a2bd73;hpb=68069f056621ebdafa21ae4e75e75f6e83b7202a;p=mono.git diff --git a/configure.in b/configure.in index 2c47b2c1939..221eee8cd2f 100644 --- a/configure.in +++ b/configure.in @@ -1,7 +1,7 @@ # Process this file with autoconf to produce a configure script. #AC_PREREQ([2.62]) -AC_INIT(mono, [2.11.2], +AC_INIT(mono, [3.0.1], [http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono]) AC_CONFIG_SRCDIR([README]) @@ -22,6 +22,8 @@ AC_SUBST(API_VER) AC_PROG_LN_S +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + # In case of cygwin, override LN_S, irrespective of what it determines. # The build uses cygwin, but the actual runtime doesn't. case $host_os in @@ -93,6 +95,7 @@ case "$host" in AC_DEFINE(DISABLE_PORTABILITY,1,[Disable the io-portability layer]) AC_DEFINE(PLATFORM_NO_SYMLINKS,1,[This platform does not support symlinks]) host_win32=yes + mono_cv_clang=no if test "x$cross_compiling" = "xno"; then target_win32=yes if test "x$host" == "x$build" -a "x$host" == "x$target"; then @@ -288,6 +291,7 @@ case "$host" in parallel_mark="Disabled_Currently_Hangs_On_MacOSX" host_win32=no platform_darwin=yes + target_mach=yes CPPFLAGS="$CPPFLAGS -no-cpp-precomp -D_THREAD_SAFE -DGC_MACOSX_THREADS -DPLATFORM_MACOSX -DUSE_MMAP -DUSE_MUNMAP" CPPFLAGS="$CPPFLAGS -DGetCurrentProcess=MonoGetCurrentProcess -DGetCurrentThread=MonoGetCurrentThread -DCreateEvent=MonoCreateEvent" libmono_cflags="-D_THREAD_SAFE" @@ -418,7 +422,7 @@ AM_ICONV() 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 sys/uio.h sys/param.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 sys/param.h libproc.h) AC_CHECK_HEADERS(sys/param.h sys/socket.h sys/ipc.h sys/sem.h sys/utsname.h alloca.h ucontext.h pwd.h sys/select.h netinet/tcp.h netinet/in.h unistd.h sys/types.h link.h asm/sigcontext.h sys/inotify.h) AC_CHECK_HEADERS([linux/netlink.h linux/rtnetlink.h], [], [], [#include @@ -675,6 +679,8 @@ AC_ARG_WITH(sigaltstack, [ --with-sigaltstack=yes,no enable/disable suppor AC_ARG_WITH(static_mono, [ --with-static_mono=yes,no link mono statically to libmono (faster) (defaults to yes)],[],[with_static_mono=yes]) AC_ARG_WITH(shared_mono, [ --with-shared_mono=yes,no build a shared libmono library (defaults to yes)],[],[with_shared_mono=yes]) +# Same as --with-shared_mono=no +AC_ARG_ENABLE(libraries, [ --disable-libraries disable the build of libmono], enable_libraries=$enableval, enable_libraries=yes) if test "x$enable_static" = "xno"; then with_static_mono=no @@ -684,6 +690,12 @@ if test "x$enable_shared" = "xno"; then with_shared_mono=no fi +if test "x$enable_libraries" = "xno"; then + with_shared_mono=no +fi + +AM_CONDITIONAL(DISABLE_LIBRARIES, test x$enable_libraries = xno) + case $host in *nacl* ) with_shared_mono=yes;; esac @@ -715,7 +727,6 @@ if test "x$with_xen_opt" = "xyes" -a "x$mono_cv_clang" = "xno"; then ]) fi -AC_ARG_ENABLE(quiet-build, [ --enable-quiet-build Enable quiet runtime build (on by default)], enable_quiet_build=$enableval, enable_quiet_build=yes) AC_ARG_ENABLE(small-config, [ --enable-small-config Enable tweaks to reduce requirements (and capabilities)], enable_small_config=$enableval, enable_small_config=no) if test x$enable_small_config = xyes; then @@ -1124,20 +1135,14 @@ if test x$target_win32 = xno; then AC_DEFUN([LARGE_FILES], [ large_CPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS $1" - AC_TRY_RUN([ + AC_TRY_COMPILE([ #include - - #define BIG_OFF_T (((off_t)1<<62)-1+((off_t)1<<62)) - - int main(void) { - int big_off_t=((BIG_OFF_T%2147483629==721) && - (BIG_OFF_T%2147483647==1)); - if(big_off_t) { - exit(0); - } else { - exit(1); - } - } + #include + ], [ + /* Lifted this compile time assert method from: http://www.jaggersoft.com/pubs/CVu11_3.html */ + #define COMPILE_TIME_ASSERT(pred) \ + switch(0){case 0:case pred:;} + COMPILE_TIME_ASSERT(sizeof(off_t) * CHAR_BIT == 64); ], [ AC_MSG_RESULT(ok) AC_DEFINE(HAVE_LARGE_FILE_SUPPORT, 1, [Have large file support]) @@ -1145,7 +1150,7 @@ if test x$target_win32 = xno; then large_offt=yes ], [ AC_MSG_RESULT(no) - ], "") + ]) CPPFLAGS=$large_CPPFLAGS ]) @@ -1719,7 +1724,44 @@ if test x$target_win32 = xno; then AC_DEFINE(HAVE_SOCKADDR_IN6_SIN_LEN, 1, [sockaddr_in6 has sin6_len]) ], [ AC_MSG_RESULT(no) - ]) + ]) + dnl ********************************** + dnl *** Check for getifaddrs *** + dnl ********************************** + AC_MSG_CHECKING(for getifaddrs) + AC_TRY_LINK([ + #include + #include + #include + #include + ], [ + getifaddrs(NULL); + ], [ + # Yes, we have it... + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_GETIFADDRS, 1, [Have getifaddrs]) + ], [ + AC_MSG_RESULT(no) + ]) + dnl ********************************** + dnl *** Check for if_nametoindex *** + dnl ********************************** + AC_MSG_CHECKING(for if_nametoindex) + AC_TRY_LINK([ + #include + #include + #include + #include + ], [ + if_nametoindex(NULL); + ], [ + # Yes, we have it... + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_IF_NAMETOINDEX, 1, [Have if_nametoindex]) + ], [ + AC_MSG_RESULT(no) + ]) + dnl ********************************** dnl *** Checks for MonoPosixHelper *** dnl ********************************** @@ -2018,6 +2060,8 @@ if test "x$try_shared_handles" != "xyes"; then AC_SUBST(DISABLE_SHARED_HANDLES) fi +AC_ARG_ENABLE(bcl-opt, [ --disable-bcl-opt BCL is compiled with no optimizations (allows accurate BCL debugging)], test_bcl_opt=$enableval, test_bcl_opt=yes) + 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]) @@ -2396,6 +2440,8 @@ case "$host" in ;; esac +HOST=$TARGET + 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 @@ -2434,20 +2480,7 @@ if test "x$host" != "x$target"; then 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__" - jit_wanted=true - # Can't use tls, since it depends on the runtime detection of tls offsets - # in mono-compiler.h - with_tls=pthread - ;; - armv5tel-unknown-linux-gnueabi*) + arm*-unknown-linux-gnueabi*) TARGET=ARM; arch_target=arm; AC_DEFINE(TARGET_ARM, 1, [...]) @@ -2458,19 +2491,17 @@ if test "x$host" != "x$target"; then # Can't use tls, since it depends on the runtime detection of tls offsets # 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 + target_mach=no + case "$target" in + armv7l-unknown-linux-gnueabi*) + # TEGRA + CPPFLAGS="$CPPFLAGS -DARM_FPU_VFP=1" + ;; + armv5-*-linux-androideabi*) + AC_DEFINE(TARGET_ANDROID, 1, [...]) + CPPFLAGS="$CPPFLAGS -DARM_FPU_NONE" + ;; + esac ;; *) AC_MSG_ERROR([Cross compiling is not supported for target $target]) @@ -2503,6 +2534,10 @@ MIPS) ;; esac +if test "x$target_mach" = "xyes"; then + AC_DEFINE(TARGET_MACH,1,[The JIT/AOT targets Apple platforms]) +fi + if test "x$sizeof_register" = "x4"; then AC_DEFINE(SIZEOF_REGISTER,4,[size of machine integer registers]) elif test "x$sizeof_register" = "x8"; then @@ -2539,7 +2574,7 @@ SGEN_DEFINES= AC_ARG_WITH(sgen, [ --with-sgen=yes,no Extra Generational GC, default=yes],[buildsgen=$with_sgen],[buildsgen=$build_sgen_default]) if test x$buildsgen = xyes; then if $sgen_supported; then - SGEN_DEFINES="-DHAVE_SGEN_GC -DHAVE_MOVING_COLLECTOR -DHAVE_WRITE_BARRIERS" + SGEN_DEFINES="-DHAVE_SGEN_GC -DHAVE_MOVING_COLLECTOR" gc_msg="sgen and $gc_msg" else buildsgen=no @@ -2661,6 +2696,9 @@ if test "x$with_moonlight" != "xno"; then mono_debugger_supported=no fi +# mdb support for sgen is broken, disable it until further notice. +mono_debugger_supported=no + AC_MSG_CHECKING(if the Mono Debugger is supported on this platform) if test "x$mono_debugger_supported" = "xyes"; then BOEHM_DEFINES="$BOEHM_DEFINES -DMONO_DEBUGGER_SUPPORTED" @@ -2669,17 +2707,17 @@ fi AM_CONDITIONAL(MONO_DEBUGGER_SUPPORTED, test x$mono_debugger_supported = xyes) AC_MSG_RESULT($mono_debugger_supported) -AC_ARG_ENABLE(icall-symbol-map,[ --enable-icall-symbol-map Generate tables which map icall functions to their C symbols], icall_symbol_map=$enableval, icall_symbol_map=no) +AC_ARG_ENABLE(icall-symbol-map,[ --enable-icall-symbol-map Generate tables which map icall functions to their C symbols], icall_symbol_map=$enableval, icall_symbol_map=no) if test "x$icall_symbol_map" = "xyes"; then AC_DEFINE(ENABLE_ICALL_SYMBOL_MAP, 1, [Icall symbol map enabled]) fi -AC_ARG_ENABLE(icall-export,[ --enable-icall-export Export icall functions], icall_export=$enableval, icall_export=no) +AC_ARG_ENABLE(icall-export,[ --enable-icall-export Export icall functions], icall_export=$enableval, icall_export=no) if test "x$icall_export" = "xyes"; then AC_DEFINE(ENABLE_ICALL_EXPORT, 1, [Icall export enabled]) fi -AC_ARG_ENABLE(icall-tables,[ --disable-icall-tables Disable the runtime lookup of icalls], icall_tables=$enableval, icall_tables=yes) +AC_ARG_ENABLE(icall-tables,[ --disable-icall-tables Disable the runtime lookup of icalls], icall_tables=$enableval, icall_tables=yes) if test "x$icall_tables" = "xno"; then AC_DEFINE(DISABLE_ICALL_TABLES, 1, [Icall tables disabled]) fi @@ -2775,11 +2813,11 @@ case "x$gc" in ;; 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.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]) +AC_ARG_WITH(profile2, [ --with-profile2=yes,no If you want to install the 2.0/3.5 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_5,[ --with-profile4_5=yes,no If you want to install the 4.5 FX (defaults to yes)], [], [with_profile4_5=yes]) +AC_ARG_WITH(monodroid, [ --with-monodroid=yes,no If you want to build the MonoDroid assemblies (defaults to no)], [], [with_monodroid=no]) +AC_ARG_WITH(monotouch, [ --with-monotouch=yes,no,only If you want to build the MonoTouch assemblies (defaults to no)], [], [with_monotouch=no]) OPROFILE=no AC_ARG_WITH(oprofile,[ --with-oprofile=no, Enable oprofile support (defaults to no)],[ @@ -2832,10 +2870,18 @@ AC_CHECK_HEADER([malloc.h], [AC_DEFINE([HAVE_USR_INCLUDE_MALLOC_H], [1], [Define to 1 if you have /usr/include/malloc.h.])],,) +if test x"$GCC" = xyes; then + # Implicit function declarations are not 64 bit safe + # Do this late, since this causes lots of configure tests to fail + CFLAGS="$CFLAGS -Werror-implicit-function-declaration" + # jay has a lot of implicit declarations + JAY_CFLAGS="-Wno-implicit-function-declaration" +fi + # When --disable-shared is used, libtool transforms libmono-2.0.la into libmono-2.0.so # instead of libmono-static.a if test "x$enable_shared" = "xno"; then - LIBMONO_LA=.libs/libmono-static.a + LIBMONO_LA=libmini-static.la else LIBMONO_LA=libmono-$API_VER.la fi @@ -2846,6 +2892,11 @@ dnl Consistency settings dnl if test x$cross_compiling = xyes -o x$enable_mcs_build = xno; then DISABLE_MCS_DOCS=yes + with_profile2=no + with_profile4=no + with_profile4_5=no + with_monodroid=no + with_monotouch=no fi if test x$DISABLE_MCS_DOCS = xyes; then @@ -2865,14 +2916,16 @@ AC_SUBST(OPROFILE_LIBS) libmono_ldflags="$libmono_ldflags $LIBS" AM_CONDITIONAL(MOONLIGHT, [test "x$with_moonlight" != "xno"]) + AM_CONDITIONAL(ONLY_MOONLIGHT, [test "x$with_moonlight" = "xonly"]) AM_CONDITIONAL(MOONLIGHT_BOEHM, [test "x$with_moon_gc" = "xboehm"]) AM_CONDITIONAL(MOONLIGHT_SGEN, [test "x$with_moon_gc" = "xsgen"]) +AM_CONDITIONAL(INSTALL_2_0, [test "x$with_profile2" = xyes]) 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(INSTALL_4_5, [test "x$with_profile4_5" = xyes]) +AM_CONDITIONAL(INSTALL_MONODROID, [test "x$with_monodroid" != "xno"]) +AM_CONDITIONAL(INSTALL_MONOTOUCH, [test "x$with_monotouch" != "xno"]) AM_CONDITIONAL(MIPS_GCC, test ${TARGET}${ac_cv_prog_gcc} = MIPSyes) AM_CONDITIONAL(MIPS_SGI, test ${TARGET}${ac_cv_prog_gcc} = MIPSno) @@ -2890,6 +2943,9 @@ AM_CONDITIONAL(ARM, test x$TARGET = xARM) AM_CONDITIONAL(S390, test x$TARGET = xS390) AM_CONDITIONAL(S390x, test x$TARGET = xS390x) AM_CONDITIONAL(HPPA, test x$TARGET = xHPPA) +AM_CONDITIONAL(HOST_X86, test x$HOST = xX86) +AM_CONDITIONAL(HOST_AMD64, test x$HOST = xAMD64) +AM_CONDITIONAL(HOST_ARM, test x$HOST = xARM) AM_CONDITIONAL(JIT_SUPPORTED, test x$JIT_SUPPORTED = xyes) AM_CONDITIONAL(INTERP_SUPPORTED, test x$interp_wanted = xtrue) @@ -3059,16 +3115,7 @@ AC_CONFIG_COMMANDS([runtime/etc/mono/4.5/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`; do - if [ grep -q 'generated by automake' $i ]; then - $srcdir/scripts/patch-quiet.sh $i; - fi; - done -], [shell=$SHELL]) - 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_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]) AC_OUTPUT([ Makefile @@ -3185,6 +3232,7 @@ fi echo 'IL_FLAGS = /debug' >> $mcs_topdir/build/config.make echo "RUNTIME = $mono_build_root/runtime/mono-wrapper" >> $mcs_topdir/build/config.make echo "ILDISASM = $mono_build_root/runtime/monodis-wrapper" >> $mcs_topdir/build/config.make + echo "JAY_CFLAGS = $JAY_CFLAGS" >> $mcs_topdir/build/config.make case $INSTALL in [[\\/$]]* | ?:[[\\/]]* ) mcs_INSTALL=$INSTALL ;; @@ -3228,9 +3276,25 @@ fi if test x$with_moonlight != xno; then echo "MOONLIGHT = 1" >> $srcdir/$mcsdir/build/config.make fi + + default_profile=net_2_0 + if test -z "$INSTALL_4_0_TRUE"; then : + default_profile=net_4_0 + fi + if test -z "$INSTALL_MONODROID_TRUE"; then : + default_profile=monodroid + fi + if test -z "$INSTALL_MONOTOUCH_TRUE"; then : + default_profile=monotouch + fi + if test -z "$INSTALL_4_5_TRUE"; then : + default_profile=net_4_5 + fi + + echo "DEFAULT_PROFILE = $default_profile" >> $srcdir/$mcsdir/build/config.make - if test x$with_profile4 != xyes; then - echo "DEFAULT_PROFILE = net_2_0" >> $srcdir/$mcsdir/build/config.make + if test "x$test_bcl_opt" = "xyes"; then + echo "BCL_OPTIMIZE = 1" >> $srcdir/$mcsdir/build/config.make fi fi @@ -3257,7 +3321,6 @@ libgdiplus_msg=${libgdiplus_loc:-assumed to be installed} echo " mcs source: $mcsdir - olive source: $olive_topdir Engine: GC: $gc_msg @@ -3269,11 +3332,12 @@ echo " DTrace: $enable_dtrace LLVM Back End: $enable_llvm (dynamically loaded: $enable_loadedllvm) - Libraries: - Moon Profile: $with_moonlight ($with_moon_gc) + Libraries: + .NET 2.0/3.5: $with_profile2 + .NET 4.0: $with_profile4 + .NET 4.5: $with_profile4_5 MonoDroid: $with_monodroid MonoTouch: $with_monotouch - Mobile: $with_mobile JNI support: $jdk_headers_found libgdiplus: $libgdiplus_msg zlib: $zlib_msg