X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=configure.in;h=fcf2bd4d632901a2d83f95d1c2cf08c9bb708598;hb=2b35d60a5a611a5c74c19710fdb30f44fe927cce;hp=4fd298fa4423a7b701780072bc521ec28bfcddf9;hpb=fc29a0a2b8d1fd2c25aac8b4b90cddfe0eb12d24;p=mono.git diff --git a/configure.in b/configure.in index 4fd298fa442..fcf2bd4d632 100644 --- a/configure.in +++ b/configure.in @@ -9,7 +9,7 @@ AM_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE(mono,2.7) AM_MAINTAINER_MODE -API_VER=1.0 +API_VER=2.0 AC_SUBST(API_VER) AC_PROG_LN_S @@ -20,7 +20,6 @@ case $host_os in *cygwin* ) LN_S='cp -p';; esac - dnl dnl libgc checks dnl @@ -78,14 +77,16 @@ esac host_win32=no target_win32=no case "$host" in - *-*-mingw*|*-*-cygwin*) + *-mingw*|*-*-cygwin*) AC_DEFINE(HOST_WIN32,1,[Host Platform is Win32]) 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 if test "x$cross_compiling" = "xno"; then target_win32=yes - AC_DEFINE(TARGET_WIN32,1,[Target OS is Win32]) + if test "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" # So libgc configure gets -mno-cygwin @@ -95,7 +96,7 @@ case "$host" in HOST_CC="gcc" # Windows 2000 is required that includes Internet Explorer 5.01 CPPFLAGS="$CPPFLAGS -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0501 -D_UNICODE -DUNICODE -DWIN32_THREADS -DFD_SETSIZE=1024" - LDFLAGS="$LDFLAGS -lmswsock -lws2_32 -lole32 -loleaut32 -lpsapi -lversion -ladvapi32 -lwinmm" + LDFLAGS="$LDFLAGS -lmswsock -lws2_32 -lole32 -loleaut32 -lpsapi -lversion -ladvapi32 -lwinmm -lkernel32" libmono_cflags="-mno-cygwin -mms-bitfields -mwindows" libmono_ldflags="-mno-cygwin -mms-bitfields -mwindows" libdl= @@ -150,8 +151,11 @@ case "$host" in ;; *-*-*openbsd*) host_win32=no - CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE -DGC_FREEBSD_THREADS -DPLATFORM_BSD" - libmono_cflags="-D_THREAD_SAFE" + CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE -DGC_FREEBSD_THREADS -DPLATFORM_BSD -D_GNU_SOURCE -D_REENTRANT -DUSE_MMAP" + if test "x$disable_munmap" != "xyes"; then + CPPFLAGS="$CPPFLAGS -DUSE_MUNMAP" + fi + libmono_cflags="-D_THREAD_SAFE -D_REENTRANT" LDFLAGS="$LDFLAGS -pthread" libmono_ldflags="-pthread" need_link_unlink=yes @@ -202,6 +206,7 @@ case "$host" in with_tls=pthread has_dtrace=yes use_sigposix=yes + enable_solaris_tar_check=yes ;; *-*-darwin*) parallel_mark="Disabled_Currently_Hangs_On_MacOSX" @@ -226,6 +231,19 @@ case "$host" in dnl its gcc defaults to 64-bit mode. They have also deprecated the usage of ucontext dnl we need to set some flags to build our 32-bit binaries on 10.6 properly case "$host" in + dnl MacPorts config.guess reports as this + x86_64-*-darwin10*) + BROKEN_DARWIN_FLAGS="-arch i386 -D_XOPEN_SOURCE -mmacosx-version-min=10.5" + CPPFLAGS="$CPPFLAGS $BROKEN_DARWIN_FLAGS" + CFLAGS="$CFLAGS $BROKEN_DARWIN_FLAGS" + CXXFLAGS="$CXXFLAGS $BROKEN_DARWIN_FLAGS" + CCASFLAGS="$CCASFLAGS $BROKEN_DARWIN_FLAGS" + CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC $BROKEN_DARWIN_FLAGS" + CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC $BROKEN_DARWIN_FLAGS" + CPPFLAGS_FOR_EGLIB="$CPPFLAGS_FOR_EGLIB $BROKEN_DARWIN_FLAGS" + CFLAGS_FOR_EGLIB="$CFLAGS_FOR_EGLIB $BROKEN_DARWIN_FLAGS" + ;; + dnl Snow Leopard config.guess reports as this i*86-*-darwin10*) BROKEN_DARWIN_FLAGS="-arch i386 -D_XOPEN_SOURCE -mmacosx-version-min=10.5" CPPFLAGS="$CPPFLAGS $BROKEN_DARWIN_FLAGS" @@ -239,6 +257,17 @@ case "$host" in ;; esac ;; + *-*-haiku*) + host_win32=no + CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_THREAD_SAFE" + libmono_cflags="-D_REENTRANT -D_THREAD_SAFE" + libdl= + LIBS="$LIBS -lnetwork" + need_link_unlink=yes + AC_DEFINE(PTHREAD_POINTER_ID) + libgc_threads=pthreads + use_sigposix=yes + ;; *) AC_MSG_WARN([*** Please add $host to configure.in checks!]) host_win32=no @@ -259,6 +288,7 @@ AM_CONDITIONAL(PLATFORM_SIGPOSIX, test x$use_sigposix = xyes) AC_CHECK_TOOL(CC, gcc, gcc) AC_PROG_CC +AC_CHECK_TOOL(CXX, g++, g++) AC_PROG_CXX AM_PROG_AS AM_PROG_CC_STDC @@ -271,6 +301,16 @@ dnl We should use AM_PROG_AS, but it's not available on automake/aclocal 1.4 AC_SUBST(CCAS) AC_SUBST(CCASFLAGS) +# AC_PROG_CXX helpfully sets CXX to g++ even if no c++ compiler is found so check +# GXX instead. See http://lists.gnu.org/archive/html/bug-autoconf/2002-04/msg00056.html +if test "x$CXX" = "xg++"; then + if test "x$GXX" != "xyes"; then + # automake/libtool is so broken, it requires g++ even if the c++ sources + # are inside automake conditionals + AC_MSG_ERROR([You need to install g++]) + fi +fi + AC_CHECK_PROG(BISON, bison,yes,no) if test "x$BISON" = "xno"; then @@ -415,7 +455,7 @@ 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 +if test x"$do_solaris_tar_check" = xyes -a x"$enable_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 @@ -470,8 +510,8 @@ yes|sibling) libgdiplus_loc=`cd ../libgdiplus && pwd`/src/libgdiplus.la ;; esac AC_SUBST([libgdiplus_loc]) -AC_PATH_PROG(PKG_CONFIG, pkg-config, no) -if test "x$PKG_CONFIG" = "xno"; then +PKG_PROG_PKG_CONFIG() +if test "x$PKG_CONFIG" = "x"; then AC_MSG_ERROR([You need to install pkg-config]) fi @@ -494,6 +534,9 @@ AC_ARG_WITH([glib], eglib_dir= +ac_configure_args="$ac_configure_args \"CPPFLAGS_FOR_EGLIB=$EGLIB_CPPFLAGS\" \"CFLAGS_FOR_EGLIB=$CFLAGS_FOR_EGLIB\"" +AC_CONFIG_SUBDIRS(eglib) + case $with_glib in embedded) GLIB_CFLAGS='-I$(top_srcdir)/eglib/src -I$(top_builddir)/eglib/src' @@ -503,20 +546,12 @@ embedded) GMODULE_CFLAGS="$GLIB_CFLAGS" GMODULE_LIBS="$GLIB_LIBS" eglib_dir=eglib - ac_configure_args="$ac_configure_args \"CPPFLAGS_FOR_EGLIB=$EGLIB_CPPFLAGS\" \"CFLAGS_FOR_EGLIB=$CFLAGS_FOR_EGLIB\"" - AC_CONFIG_SUBDIRS(eglib) ;; system) - if test "x$cross_compiling" = "xyes"; then - pkg_config_path="$PKG_CONFIG_PATH" - unset PKG_CONFIG_PATH - fi + echo "PKG_CONFIG_PATH=$PKG_CONFIG_PATH" + echo "cross_compiling=$cross_compiling" BUILD_GLIB_CFLAGS=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0` BUILD_GLIB_LIBS=`$PKG_CONFIG --libs glib-2.0 gthread-2.0` - if test "x$cross_compiling" = "xyes"; then - PKG_CONFIG_PATH=$pkg_config_path - export PKG_CONFIG_PATH - fi ## Versions of dependencies GLIB_REQUIRED_VERSION=2.4.0 @@ -610,6 +645,18 @@ if test "x$with_xen_opt" = "xyes"; 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 + AC_DEFINE(MONO_SMALL_CONFIG,1,[Reduce runtime requirements (and capabilities)]) + CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DSMALL_CONFIG" +fi + +if test x$AOT_SUPPORTED != xyes; then + AOT_SUPPORTED=no +fi + +AC_ARG_ENABLE(system-aot, [ --enable-system-aot Enable the Ahead-Of-Time compilation of system assemblies during the build (on by default on some platforms)], enable_system_aot=$enableval, enable_system_aot=$AOT_SUPPORTED) DISABLED_FEATURES=none @@ -1246,6 +1293,9 @@ if test x$target_win32 = xno; then *-*-*freebsd*) AC_CHECK_LIB(pthread, main, LIBS="$LIBS -pthread") ;; + *-*-*openbsd*) + AC_CHECK_LIB(pthread, main, LIBS="$LIBS -pthread") + ;; *) AC_CHECK_LIB(pthread, main, LIBS="$LIBS -lpthread") ;; @@ -1638,6 +1688,7 @@ if test x$target_win32 = xno; then AC_CHECK_MEMBERS( [struct kinfo_proc.kp_proc],,, [#include + #include #include #include ]) @@ -1766,7 +1817,7 @@ case "{$target}" in dnl Win32 does not have /dev/random, they have their own method... - *-*-mingw*|*-*-cygwin*) + *-mingw*|*-*-cygwin*) ac_cv_have_dev_random=no ;; @@ -1911,7 +1962,9 @@ 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` + # 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_LDFLAGS=`$LLVM_CONFIG --ldflags` LLVM_LIBS=`$LLVM_CONFIG --libs core bitwriter jit x86codegen` LLVM_LIBS="$LLVM_LDFLAGS $LLVM_LIBS -lstdc++" @@ -2006,6 +2059,10 @@ case "$host" in ;; cygwin*) have_visibility_hidden=no + ;; + haiku*) + LIBC=libroot.so + ;; esac ;; x86_64-*-* | amd64-*-*) @@ -2062,7 +2119,7 @@ case "$host" in INTL="libc.so.6.1" esac ;; - *-*-mingw*|*-*-cygwin*) + *-mingw*|*-*-cygwin*) # When this is enabled, it leads to very strange crashes at runtime (gcc-3.4.4) have_visibility_hidden=no INTL="intl" @@ -2114,7 +2171,7 @@ case "$host" in s390-*-linux*) TARGET=S390; arch_target=s390; - ACCESS_UNALIGNED="no" + ACCESS_UNALIGNED="yes" JIT_SUPPORTED=yes jit_wanted=true # Required CFLAGS for s390[x]. USE_STRING_INLINES is automatic with gcc 4.1 @@ -2123,7 +2180,7 @@ case "$host" in s390x-*-linux*) TARGET=S390x; arch_target=s390x; - ACCESS_UNALIGNED="no" + ACCESS_UNALIGNED="yes" JIT_SUPPORTED=yes jit_wanted=true CFLAGS="$CFLAGS -mbackchain -D__USE_STRING_INLINES" @@ -2306,16 +2363,19 @@ if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86"; then fi mono_debugger_supported=no -if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86" -o "x$TARGET" = "xALPHA"; then - if test x$use_included_gc = xyes; then - case "$host" in - *-*-*linux*) - mono_debugger_supported=yes - ;; - *86-apple-darwin*) - mono_debugger_supported=yes - ;; - esac +AC_ARG_ENABLE(mono-debugger, [ --disable-mono-debugger disable support for the mdb debugger], try_mono_debugger=$enableval, try_mono_debugger=yes) +if test "x$try_mono_debugger" = "xyes"; then + if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86" -o "x$TARGET" = "xALPHA"; then + if test x$use_included_gc = xyes; then + case "$host" in + *-*-*linux*) + mono_debugger_supported=yes + ;; + *86-apple-darwin*) + mono_debugger_supported=yes + ;; + esac + fi fi fi @@ -2383,8 +2443,7 @@ 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.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]) +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(monotouch, [ --with-monotouch=yes,no If you want to build the raw MonoTouch 2.1 assemblies (defaults to no)], [], [with_monotouch=no]) OPROFILE=no @@ -2417,11 +2476,24 @@ AC_ARG_WITH(mcs_docs,[ --with-mcs-docs=yes,no If you want to build the fi ]) +MOONLIGHT=no +AC_ARG_WITH(moonlight, [ --with-moonlight=yes,no If you want to build Mono for Moonlight (defaults to no - the resulting mono build is useless for anything but moonlight)],[ + if test x$with_moonlight = xyes; then + MOONLIGHT=yes + AC_DEFINE(MOONLIGHT,1,[Building for Moonlight]) + fi +]) + + + dnl dnl Consistency settings dnl if test x$cross_compiling = xyes -o x$enable_mcs_build = xno; then DISABLE_MCS_DOCS=yes +fi + +if test x$DISABLE_MCS_DOCS = xyes; then docs_dir="" else docs_dir=docs @@ -2434,7 +2506,7 @@ AC_SUBST(OPROFILE_LIBS) libmono_ldflags="$libmono_ldflags $LIBS" -AM_CONDITIONAL(INSTALL_2_1, [test "x$with_moonlight" = xyes]) +AM_CONDITIONAL(MOONLIGHT, [test "x$with_moonlight" = xyes]) AM_CONDITIONAL(INSTALL_4_0, [test "x$with_profile4" = xyes]) AM_CONDITIONAL(INSTALL_MONOTOUCH, [test "x$with_monotouch" = xyes]) @@ -2648,7 +2720,7 @@ data/net_2_0/Makefile data/net_4_0/Makefile data/net_2_0/Browsers/Makefile data/mint.pc -data/mono.pc +data/mono-2.pc data/mono-cairo.pc data/mono-nunit.pc data/mono-options.pc @@ -2662,11 +2734,13 @@ data/cecil.pc data/system.web.extensions_1.0.pc data/system.web.extensions.design_1.0.pc data/system.web.mvc.pc +data/system.web.mvc2.pc samples/Makefile support/Makefile data/config tools/Makefile tools/locale-builder/Makefile +tools/sgen/Makefile runtime/Makefile msvc/Makefile po/Makefile @@ -2728,7 +2802,7 @@ fi echo "PLATFORM = darwin" >> $srcdir/$mcsdir/build/config.make fi - if test x$TARGET = xAMD64 -a x$host_win32 = xno -a "x$AOT_SUPPORTED" = "xyes"; then + if test x$TARGET = xAMD64 -a x$host_win32 = xno -a "x$AOT_SUPPORTED" = "xyes" -a x$enable_system_aot = xyes; then echo "ENABLE_AOT = 1" >> $srcdir/$mcsdir/build/config.make fi @@ -2744,15 +2818,16 @@ fi 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 - echo "WITH_MOONLIGHT = yes" >> $srcdir/$olivedir/build/config.make - fi fi fi if test x$DISABLE_MCS_DOCS = xyes; then echo "DISABLE_MCS_DOCS = yes" >> $srcdir/$mcsdir/build/config.make fi + + if test x$with_moonlight = xyes; then + echo "MOONLIGHT = 1" >> $srcdir/$mcsdir/build/config.make + fi ) libgdiplus_msg=${libgdiplus_loc:-assumed to be installed} @@ -2761,24 +2836,25 @@ echo " mcs source: $mcs_topdir olive source: $olive_topdir + Engine: GC: $gc GLIB: $with_glib TLS: $with_tls SIGALTSTACK: $with_sigaltstack Engine: $jit_status - Moon Profile: $with_moonlight - 4.0 Alpha: $with_profile4 - MonoTouch: $with_monotouch - JNI support: $jdk_headers_found - libgdiplus: $libgdiplus_msg - zlib: $zlib_msg oprofile: $OPROFILE BigArrays: $enable_big_arrays DTrace: $enable_dtrace Parallel Mark: $enable_parallel_mark LLVM Back End: $enable_llvm - $disabled + Libraries: + Moon Profile: $with_moonlight + MonoTouch: $with_monotouch + 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 AC_MSG_WARN(Turning off static Mono is a risk, you might run into unexpected bugs)