X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=configure.ac;h=9099f702b074ce5c1c9e00c8028866b0edc7518c;hb=da0ccf07f0a7ee8bfde612bdc551c06062289f73;hp=a04adcdef818979f8f1bf40c4c70168ac463ebcd;hpb=427d42aa515018a12324845916d1ecd036e948dc;p=mono.git diff --git a/configure.ac b/configure.ac index a04adcdef81..9099f702b07 100644 --- a/configure.ac +++ b/configure.ac @@ -13,7 +13,11 @@ AC_CANONICAL_HOST # The extra brackets are to foil regex-based scans. m4_ifdef([_A][M_PROG_TAR],[_A][M_SET_OPTION([tar-ustar])]) -AM_INIT_AUTOMAKE([1.9 dist-bzip2 tar-ustar no-dist-gzip foreign subdir-objects]) +AM_INIT_AUTOMAKE([1.9 dist-bzip2 tar-ustar no-dist-gzip foreign subdir-objects] + m4_esyscmd([case `automake --version | head -n 1` in # parallel-tests is default in automake 1.13+, we need to explicitly enable it + *1.11*|*1.12*) echo parallel-tests;; # for 1.11 and 1.12 but not below as those versions don't recognize the flag + esac])) # TODO: remove this hack once we require automake 1.11+ + AC_CONFIG_HEADERS([config.h]) AM_MAINTAINER_MODE @@ -2071,7 +2075,7 @@ if test x$host_win32 = xno; then AC_CHECK_FUNCS(readv writev preadv pwritev) AC_CHECK_FUNCS(setpgid) AC_CHECK_FUNCS(system) - AC_CHECK_FUNCS(fork execve) + AC_CHECK_FUNCS(fork execv execve) AC_CHECK_SIZEOF(size_t) AC_CHECK_TYPES([blksize_t], [AC_DEFINE(HAVE_BLKSIZE_T)], , [#include @@ -2088,6 +2092,8 @@ if test x$host_win32 = xno; then #include ]) AC_CHECK_TYPES([struct iovec], [AC_DEFINE(HAVE_STRUCT_IOVEC)], , [#include ]) + AC_CHECK_TYPES([struct linger], [AC_DEFINE(HAVE_STRUCT_LINGER)], , + [#include ]) AC_CHECK_TYPES([struct pollfd], [AC_DEFINE(HAVE_STRUCT_POLLFD)], , [#include ]) AC_CHECK_TYPES([struct stat], [AC_DEFINE(HAVE_STRUCT_STAT)], , @@ -2362,8 +2368,6 @@ if test "x$ac_cv_truncl" != "xyes"; then AC_CHECK_LIB(sunmath, aintl, [ AC_DEFINE(HAVE_AINTL, 1, [Has the 'aintl' function]) LIBS="$LIBS -lsunmath"]) fi -AC_CHECK_FUNCS(round) -AC_CHECK_FUNCS(rint) AC_CHECK_FUNCS(execvp) dnl **************************** @@ -2595,19 +2599,26 @@ if test "x$enable_llvm" = "xyes"; then # The output of --cflags seems to include optimizations flags too LLVM_CFLAGS=`$LLVM_CONFIG --cflags | sed -e 's/-O2//g' | sed -e 's/-O0//g' | sed -e 's/-fomit-frame-pointer//g' | sed -e 's/-fPIC//g'` + LLVM_CXXFLAGS=`$LLVM_CONFIG --cxxflags | sed -e 's/-O2//g' | sed -e 's/-O0//g' | sed -e 's/-fomit-frame-pointer//g' | sed -e 's/-fPIC//g'` # LLVM is compiled with -fno-rtti, so we need this too, since our classes inherit # from LLVM classes. - LLVM_CXXFLAGS="`$LLVM_CONFIG --cxxflags` -fno-rtti" + LLVM_CXXFLAGS="$LLVM_CXXFLAGS -fno-rtti -fexceptions" LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags` # This might include empty lines LLVM_SYSTEM_LIBS=`$LLVM_CONFIG --system-libs 2>/dev/null | grep -- -` if test "x$host" != "x$target"; then # No need for jit libs - LLVM_LIBS=`$LLVM_CONFIG --libs core bitwriter` + LLVM_LIBS=`$LLVM_CONFIG --libs analysis core bitwriter` + else + LLVM_LIBS=`$LLVM_CONFIG --libs analysis core bitwriter jit mcjit $llvm_codegen` + fi + LLVM_LIBS="$LLVM_LIBS $LLVM_LDFLAGS $LLVM_SYSTEM_LIBS" + # The c++ standard library used by llvm doesn't show up in $LLVM_SYSTEM_LIBS so add it manually + if echo $LLVM_CXXFLAGS | grep -q -stdlib=libc++; then + LLVM_LIBS="$LLVM_LIBS -lc++" else - LLVM_LIBS=`$LLVM_CONFIG --libs core bitwriter jit mcjit $llvm_codegen` + LLVM_LIBS="$LLVM_LIBS -lstdc++" fi - LLVM_LIBS="$LLVM_LIBS $LLVM_LDFLAGS $LLVM_SYSTEM_LIBS -lstdc++" expected_llvm_version="3.4svn-mono-mono/e656cac" @@ -2628,7 +2639,7 @@ if test "x$enable_llvm" = "xyes"; then else LLVM_CFLAGS="-I$with_llvm/include -DNDEBUG -D__NO_CTYPE_INLINE -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS" - LLVM_CXXFLAGS="$LLVM_CFLAGS -std=gnu++11 -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -Woverloaded-virtual -Wcast-qual" + LLVM_CXXFLAGS="$LLVM_CFLAGS -std=gnu++11 -fvisibility-inlines-hidden -fno-rtti -Woverloaded-virtual -Wcast-qual" LLVM_LDFLAGS="-L$with_llvm/lib" LLVM_SYSTEM_LIBS="-lshell32 -lpsapi -limagehlp -ldbghelp -lm" LLVM_LIBS="-lLLVMLTO -lLLVMObjCARCOpts -lLLVMLinker -lLLVMipo -lLLVMVectorize -lLLVMBitWriter \ @@ -2636,6 +2647,7 @@ if test "x$enable_llvm" = "xyes"; then -lLLVMARMAsmPrinter -lLLVMTableGen -lLLVMDebugInfo -lLLVMOption -lLLVMX86Disassembler \ -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMX86Desc \ -lLLVMMCDisassembler -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMJIT \ + -lLLVMAnalysis -lLLVMTarget \ -lLLVMIRReader -lLLVMAsmParser -lLLVMLineEditor -lLLVMMCAnalysis -lLLVMInstrumentation \ -lLLVMInterpreter -lLLVMCodeGen -lLLVMScalarOpts -lLLVMInstCombine -lLLVMTransformUtils \ -lLLVMipa -lLLVMAnalysis -lLLVMProfileData -lLLVMMCJIT -lLLVMTarget -lLLVMRuntimeDyld \ @@ -2685,13 +2697,11 @@ XINERAMA="libXinerama.so.1" sizeof_register="SIZEOF_VOID_P" jit_wanted=true -sgen_supported=false boehm_supported=true case "$host" in mips*) TARGET=MIPS; arch_target=mips; - sgen_supported=true ACCESS_UNALIGNED="no" AC_MSG_CHECKING(for mips n32) @@ -2730,25 +2740,20 @@ case "$host" in # foo.c:6: warning: visibility attribute not supported in this configuration; ignored # ld: fatal: relocation error: R_386_GOTOFF: file /var/tmp//ccxYR96k.o: symbol astruct: relocation must bind locally have_visibility_hidden=no - sgen_supported=true ;; mingw*|cygwin*) - sgen_supported=true have_visibility_hidden=no ;; haiku*) LIBC=libroot.so ;; linux*) - sgen_supported=true AOT_SUPPORTED="yes" ;; darwin*) - sgen_supported=true AOT_SUPPORTED="yes" ;; openbsd*|freebsd*|kfreebsd-gnu*) - sgen_supported=true ;; esac ;; @@ -2761,18 +2766,14 @@ case "$host" in fi case $host_os in linux*) - sgen_supported=true AOT_SUPPORTED="yes" ;; darwin*) - sgen_supported=true AOT_SUPPORTED="yes" ;; openbsd*|freebsd*|kfreebsd-gnu*) - sgen_supported=true ;; mingw*) - sgen_supported=true ;; esac case "$host" in @@ -2812,7 +2813,6 @@ case "$host" in if test x"$AR" = xfalse; then AC_MSG_ERROR([The required utility 'ar' is not found in your PATH. Usually it can be found in /usr/ccs/bin.]) fi - sgen_supported=true ;; *-mingw*|*-*-cygwin*) # When this is enabled, it leads to very strange crashes at runtime (gcc-3.4.4) @@ -2832,22 +2832,27 @@ case "$host" in arch_target=ppc; case $host_os in linux*|darwin*) - sgen_supported=true ;; esac ;; + armv7k-*-darwin*) + TARGET=ARM; + TARGET_SYS=WATCHOS + arch_target=arm; + ACCESS_UNALIGNED="no" + CPPFLAGS="$CPPFLAGS -D__ARM_EABI__" + ;; + arm*-darwin*) TARGET=ARM; arch_target=arm; ACCESS_UNALIGNED="no" CPPFLAGS="$CPPFLAGS -D__ARM_EABI__" - sgen_supported=true ;; arm*-linux*) TARGET=ARM; arch_target=arm; ACCESS_UNALIGNED="no" - sgen_supported=true AOT_SUPPORTED="yes" CPPFLAGS="$CPPFLAGS -D__ARM_EABI__" ;; @@ -2856,21 +2861,18 @@ case "$host" in # TARGET=ARM; # arch_target=arm; # ACCESS_UNALIGNED="no" -# sgen_supported=true # AOT_SUPPORTED="no" # ;; aarch64-*) # https://lkml.org/lkml/2012/7/15/133 TARGET=ARM64 arch_target=arm64 - sgen_supported=true boehm_supported=false ;; s390x-*-linux*) TARGET=S390X; arch_target=s390x; ACCESS_UNALIGNED="yes" - sgen_supported=true CFLAGS="$CFLAGS -mbackchain -D__USE_STRING_INLINES" ;; esac @@ -2889,6 +2891,11 @@ 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 + case "$target" in + armv7k-*) + AC_DEFINE(TARGET_WATCHOS, 1, [...]) + ;; + esac ;; powerpc64-ps3-linux-gnu) TARGET=POWERPC64 @@ -2969,7 +2976,6 @@ if test "x$host" != "x$target"; then AC_DEFINE(TARGET_X86, 1, [...]) AC_DEFINE(TARGET_ANDROID, 1, [...]) CPPFLAGS="$CPPFLAGS" - sgen_supported=true # Can't use tls, since it depends on the runtime detection of tls offsets # in mono-compiler.h with_tls=pthread @@ -2981,7 +2987,6 @@ if test "x$host" != "x$target"; then AC_DEFINE(TARGET_AMD64, 1, [...]) AC_DEFINE(TARGET_ANDROID, 1, [...]) CPPFLAGS="$CPPFLAGS" - sgen_supported=true # Can't use tls, since it depends on the runtime detection of tls offsets # in mono-compiler.h with_tls=pthread @@ -2993,7 +2998,6 @@ if test "x$host" != "x$target"; then AC_DEFINE(TARGET_AMD64, 1, [...]) AC_DEFINE(TARGET_PS4, 1, [...]) CPPFLAGS="$CPPFLAGS" - sgen_supported=true # Can't use tls, since it depends on the runtime detection of tls offsets # in mono-compiler.h with_tls=pthread @@ -3106,7 +3110,12 @@ if test x$GCC = "xyes"; then fi if test "x$target_mach" = "xyes"; then - if test "x$TARGET" = "xARM" -o "x$TARGET" = "xARM64"; then + + if test "x$TARGET_SYS" = "xWATCHOS"; then + AC_DEFINE(TARGET_WATCHOS,1,[The JIT/AOT targets WatchOS]) + CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC -DTARGET_WATCHOS" + CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DTARGET_WATCHOS" + elif test "x$TARGET" = "xARM" -o "x$TARGET" = "xARM64"; then AC_DEFINE(TARGET_IOS,1,[The JIT/AOT targets iOS]) CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC -DTARGET_IOS" CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DTARGET_IOS" @@ -3156,21 +3165,11 @@ fi dnl dnl Simple Generational checks (sgen) dnl -if $sgen_supported; then - build_sgen_default=yes -else - build_sgen_default=no -fi SGEN_DEFINES= -AC_ARG_WITH(sgen, [ --with-sgen=yes,no Extra Generational GC, default=yes],[buildsgen=$with_sgen],[buildsgen=$build_sgen_default]) +AC_ARG_WITH(sgen, [ --with-sgen=yes,no Extra Generational GC, default=yes],[buildsgen=$with_sgen],[buildsgen=yes]) if test x$buildsgen = xyes; then - if $sgen_supported; then - SGEN_DEFINES="-DHAVE_SGEN_GC -DHAVE_MOVING_COLLECTOR" - gc_msg="sgen and $gc_msg" - else - buildsgen=no - AC_MSG_WARN("Sgen is not supported on this platform") - fi + SGEN_DEFINES="-DHAVE_SGEN_GC -DHAVE_MOVING_COLLECTOR" + gc_msg="sgen and $gc_msg" fi AC_SUBST(SGEN_DEFINES) AM_CONDITIONAL(SUPPORT_SGEN, test x$buildsgen = xyes) @@ -3450,10 +3449,12 @@ case "x$libgc" in ;; esac -AC_ARG_WITH(profile4_x,[ --with-profile4=yes,no If you want to install the 4.6 FX (defaults to yes)], [], [with_profile4_x=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 If you want to build the Xamarin.iOS assemblies (defaults to no)], [], [with_monotouch=no]) -AC_ARG_WITH(xammac, [ --with-xammac=yes,no If you want to build the Xamarin.Mac assemblies (defaults to no)], [], [with_xammac=no]) +AC_ARG_WITH(profile4_x, [ --with-profile4=yes,no If you want to install the 4.6 FX (defaults to yes)], [], [with_profile4_x=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 If you want to build the Xamarin.iOS assemblies (defaults to no)], [], [with_monotouch=no]) +AC_ARG_WITH(monotouch_watch, [ --with-monotouch_watch=yes,no If you want to build the Xamarin.WatchOS assemblies (defaults to no)],[], [with_monotouch_watch=no]) +AC_ARG_WITH(monotouch_tv, [ --with-monotouch_tv=yes,no If you want to build the Xamarin.TVOS assemblies (defaults to no)], [], [with_monotouch_tv=no]) +AC_ARG_WITH(xammac, [ --with-xammac=yes,no If you want to build the Xamarin.Mac assemblies (defaults to no)], [], [with_xammac=no]) OPROFILE=no AC_ARG_WITH(oprofile,[ --with-oprofile=no, Enable oprofile support (defaults to no)],[ @@ -3500,6 +3501,13 @@ AC_ARG_WITH(cooperative_gc, [ --with-cooperative-gc=yes|no Enable cooperat fi ], [with_cooperative_gc=no]) +AC_ARG_WITH(checked_build, [ --with-checked-build=yes|no Enable checked build (expensive asserts)) (defaults to no)],[ + if test x$with_checked_build != xno ; then + AC_DEFINE(CHECKED_BUILD,1,[Enable checked build.]) + fi +], [with_checked_build=no]) + + AC_CHECK_HEADER([malloc.h], [AC_DEFINE([HAVE_USR_INCLUDE_MALLOC_H], [1], [Define to 1 if you have /usr/include/malloc.h.])],,) @@ -3533,6 +3541,8 @@ if test x$cross_compiling = xyes -o x$enable_mcs_build = xno; then with_profile4_x=no with_monodroid=no with_monotouch=no + with_monotouch_watch=no + with_monotouch_tv=no with_xammac=no fi @@ -3555,6 +3565,8 @@ libmono_ldflags="$libmono_ldflags $LIBS" AM_CONDITIONAL(INSTALL_4_x, [test "x$with_profile4_x" = xyes]) AM_CONDITIONAL(INSTALL_MONODROID, [test "x$with_monodroid" != "xno"]) AM_CONDITIONAL(INSTALL_MONOTOUCH, [test "x$with_monotouch" != "xno"]) +AM_CONDITIONAL(INSTALL_MONOTOUCH_WATCH, [test "x$with_monotouch_watch" != "xno"]) +AM_CONDITIONAL(INSTALL_MONOTOUCH_TV, [test "x$with_monotouch_tv" != "xno"]) AM_CONDITIONAL(INSTALL_XAMMAC, [test "x$with_xammac" != "xno"]) AM_CONDITIONAL(MIPS_GCC, test ${TARGET}${ac_cv_prog_gcc} = MIPSyes) @@ -3969,13 +3981,15 @@ echo " LLVM Back End: $enable_llvm (dynamically loaded: $enable_loadedllvm) Libraries: - .NET 4.6: $with_profile4_x - MonoDroid: $with_monodroid - MonoTouch: $with_monotouch - Xamarin.Mac: $with_xammac - JNI support: $jdk_headers_found - libgdiplus: $libgdiplus_msg - zlib: $zlib_msg + .NET 4.6: $with_profile4_x + Xamarin.Android: $with_monodroid + Xamarin.iOS: $with_monotouch + Xamarin.WatchOS: $with_monotouch_watch + Xamarin.TVOS: $with_monotouch_tv + Xamarin.Mac: $with_xammac + JNI support: $jdk_headers_found + libgdiplus: $libgdiplus_msg + zlib: $zlib_msg $disabled " if test x$with_static_mono = xno -a "x$host_win32" != "xyes"; then