X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=configure.in;h=82f80fd8a9e10b0d52a3e16ce2013fbaadd1df88;hb=2964d40b023b8c74aa8528789e3959ba643d86ad;hp=f14c65f77d549879abb5231c2a07acc695386a3f;hpb=ca541e1f4c5b3845f9fcf661a4bd81a34176855f;p=mono.git diff --git a/configure.in b/configure.in index f14c65f77d5..82f80fd8a9e 100644 --- a/configure.in +++ b/configure.in @@ -6,7 +6,7 @@ AC_CANONICAL_SYSTEM m4_ifdef([_A][M_PROG_TAR],[_A][M_SET_OPTION([tar-ustar])]) AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(mono,1.1.8) +AM_INIT_AUTOMAKE(mono,1.1.13) AM_MAINTAINER_MODE AC_PROG_LN_S @@ -42,6 +42,11 @@ libmono_ldflags="" AC_SUBST(libmono_cflags) AC_SUBST(libmono_ldflags) +# Variable to have relocatable .pc files (lib, or lib64) +reloc_libdir=`basename ${libdir}` +AC_SUBST(reloc_libdir) + + dnl if linker handles the version script no_version_script=no @@ -76,6 +81,7 @@ case "$host" in CPPFLAGS="$CPPFLAGS -D_REENTRANT" libmono_cflags="-D_REENTRANT" LDFLAGS="$LDFLAGS -pthread" + CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD" libmono_ldflags="-pthread" need_link_unlink=yes libdl= @@ -99,6 +105,7 @@ case "$host" in LDFLAGS="$LDFLAGS $PTHREAD_LIBS" libmono_ldflags="$PTHREAD_LIBS" fi + CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD -DPLATFORM_BSD4" need_link_unlink=yes AC_DEFINE(PTHREAD_POINTER_ID) libdl= @@ -123,6 +130,7 @@ case "$host" in LDFLAGS="$LDFLAGS $PTHREAD_LIBS" libmono_ldflags="$PTHREAD_LIBS" fi + CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD -DPLATFORM_BSD5" need_link_unlink=yes AC_DEFINE(PTHREAD_POINTER_ID) libdl= @@ -149,6 +157,7 @@ case "$host" in LDFLAGS="$LDFLAGS $PTHREAD_LIBS" libmono_ldflags="$PTHREAD_LIBS" fi + CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD -DPLATFORM_BSD6" need_link_unlink=yes AC_DEFINE(PTHREAD_POINTER_ID) libdl= @@ -197,7 +206,7 @@ case "$host" in ;; *-*-darwin*) platform_win32=no - CPPFLAGS="$CPPFLAGS -no-cpp-precomp -D_THREAD_SAFE -DGC_MACOSX_THREADS" + CPPFLAGS="$CPPFLAGS -no-cpp-precomp -D_THREAD_SAFE -DGC_MACOSX_THREADS -DPLATFORM_MACOSX" libmono_cflags="-D_THREAD_SAFE" LDFLAGS="$LDFLAGS -pthread" libmono_ldflags="-pthread" @@ -244,19 +253,25 @@ dnl may require a specific autoconf version dnl AC_PROG_CC_FOR_BUILD dnl CC_FOR_BUILD not automatically detected CC_FOR_BUILD=$CC +CFLAGS_FOR_BUILD=$CFLAGS BUILD_EXEEXT= if test "x$cross_compiling" = "xyes"; then CC_FOR_BUILD=cc + CFLAGS_FOR_BUILD= BUILD_EXEEXT="" fi AC_SUBST(CC_FOR_BUILD) +AC_SUBST(CFLAGS_FOR_BUILD) AC_SUBST(HOST_CC) AC_SUBST(BUILD_EXEEXT) +AM_CONDITIONAL(CROSS_COMPILING, [test x$cross_compiling = xyes]) + # Set STDC_HEADERS AC_HEADER_STDC AC_LIBTOOL_WIN32_DLL -AC_DISABLE_FAST_INSTALL +# This causes monodis to not link correctly +#AC_DISABLE_FAST_INSTALL AM_PROG_LIBTOOL # Test whenever ld supports -version-script @@ -350,6 +365,9 @@ fi mcs_topdir='$(top_srcdir)/'$mcsdir mcs_topdir_from_srcdir='$(top_builddir)/'$mcsdir +## Maybe should also disable if mcsdir is invalid. Let's punt the issue for now. +AM_CONDITIONAL(BUILD_MCS, [test x$cross_compiling = xno]) + AC_SUBST([mcs_topdir]) AC_SUBST([mcs_topdir_from_srcdir]) @@ -395,19 +413,17 @@ GLIB_REQUIRED_VERSION=1.3.11 PKG_CHECK_MODULES(BASE_DEPENDENCIES, glib-2.0 >= $GLIB_REQUIRED_VERSION) -if test "x$cross_compiling" = "xno"; 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` -fi +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` AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_LIBS) AC_SUBST(GMODULE_CFLAGS) AC_SUBST(GMODULE_LIBS) -if test x$platform_win32 = xyes -a x$cross_compiling = xno; then +if test x$cross_compiling$platform_win32 = xnoyes; then AC_MSG_CHECKING(for cygwin glib2-dev package) if [ cygcheck --f /usr/lib/libglib-2.0.dll.a | grep -q glib2-devel ]; then AC_MSG_RESULT(found) @@ -465,8 +481,25 @@ fi AM_CONDITIONAL(STATIC_MONO, test x$with_static_mono != xno) +AC_ARG_WITH(xen_opt, [ --with-xen_opt=yes,no Enable Xen-specific behaviour],[],[with_xen_opt=yes]) +if test "x$with_xen_opt" = "xyes"; then + AC_DEFINE(MONO_XEN_OPT, 1, [Xen-specific behaviour]) + ORIG_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -mno-tls-direct-seg-refs" + AC_MSG_CHECKING(for -mno-tls-direct-seg-refs option to gcc) + AC_TRY_COMPILE([], [ + void main () { } + ], [ + AC_MSG_RESULT(yes) + ], [ + AC_MSG_RESULT(no) + CFLAGS=$ORIG_CFLAGS + ]) +fi + 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.], + LIST is a comma-separated list from: aot, profiler, decimal, pinvoke, debug, + reflection_emit, large_code, logging, com, ssa.], [ for feature in `echo "$enable_minimal" | sed -e "s/,/ /g"`; do eval "mono_feature_disable_$feature='yes'" @@ -499,6 +532,22 @@ if test "x$mono_feature_disable_reflection_emit" = "xyes"; then AC_DEFINE(DISABLE_REFLECTION_EMIT, 1, [Disable reflection emit support]) fi +if test "x$mono_feature_disable_large_code" = "xyes"; then + AC_DEFINE(DISABLE_LARGE_CODE, 1, [Disable support for huge assemblies]) +fi + +if test "x$mono_feature_disable_logging" = "xyes"; then + AC_DEFINE(DISABLE_LOGGING, 1, [Disable support debug logging]) +fi + +if test "x$mono_feature_disable_com" = "xyes"; then + AC_DEFINE(DISABLE_COM, 1, [Disable COM support]) +fi + +if test "x$mono_feature_disable_ssa" = "xyes"; then + AC_DEFINE(DISABLE_SSA, 1, [Disable advanced SSA JIT optimizations]) +fi + LIBGC_CFLAGS= LIBGC_LIBS= LIBGC_STATIC_LIBS= @@ -596,6 +645,8 @@ if test x$platform_win32 = xno; then AC_SUBST(ikvm_native_dir) + AC_CHECK_HEADERS(execinfo.h) + AC_CHECK_FUNCS(getgrgid_r) AC_CHECK_FUNCS(getgrnam_r) AC_CHECK_FUNCS(getpwnam_r) @@ -892,6 +943,8 @@ if test x$platform_win32 = xno; then AC_DEFINE(USE_MONO_MUTEX) ]) AC_CHECK_FUNCS(pthread_attr_setstacksize) + AC_CHECK_FUNCS(pthread_attr_getstack) + AC_CHECK_FUNCS(pthread_get_stacksize_np pthread_get_stackaddr_np) dnl *********************************** dnl *** Checks for working __thread *** @@ -1176,6 +1229,13 @@ if test x$platform_win32 = xno; then dnl ********************************** dnl *** Checks for MonoPosixHelper *** dnl ********************************** + AC_CHECK_FUNC(setkey, , + AC_CHECK_LIB(crypt, setkey, [ + AC_DEFINE(HAVE_SETKEY, 1, [Define if setkey(3) is available]) + CRYPT_LIBS="-lcrypt" + ]) + ) + AC_SUBST(CRYPT_LIBS) AC_CHECK_HEADERS(checklist.h) AC_CHECK_HEADERS(fstab.h) AC_CHECK_HEADERS(attr/xattr.h) @@ -1184,12 +1244,14 @@ if test x$platform_win32 = xno; then AC_CHECK_HEADERS(sys/statvfs.h) AC_CHECK_HEADERS(sys/vfstab.h) AC_CHECK_HEADERS(sys/xattr.h) + AC_CHECK_HEADERS(sys/mman.h) AC_CHECK_FUNCS(getdomainname) AC_CHECK_FUNCS(setdomainname) AC_CHECK_FUNCS(fgetgrent) AC_CHECK_FUNCS(fgetpwent) AC_CHECK_FUNCS(fgetpwent) AC_CHECK_FUNCS(getfsstat) + AC_CHECK_FUNCS(lutimes) AC_CHECK_FUNCS(mremap) AC_CHECK_FUNCS(remap_file_pages) AC_CHECK_FUNCS(posix_fadvise) @@ -1227,6 +1289,10 @@ if test x$platform_win32 = xno; then #endif ]) AC_CHECK_HEADERS([termios.h]) + + dnl * This is provided in io-layer, but on windows it's only available + dnl * on xp+ + AC_DEFINE(HAVE_GETPROCESSID, 1, [Define if GetProcessId is available]) else jdk_headers_found=no AC_CHECK_LIB(ws2_32, main, LIBS="$LIBS -lws2_32", AC_ERROR(bad mingw install?)) @@ -1260,6 +1326,7 @@ else AC_MSG_RESULT(no) ]) ]) + AC_CHECK_FUNCS(GetProcessId) fi dnl socklen_t check @@ -1404,6 +1471,11 @@ case "$host" in arch_target=x86; JIT_SUPPORTED=yes jit_wanted=true + case $host_os in + solaris*) + LIBC="libc.so" + INTL="libintl.so" + esac ;; x86_64-*-* | amd64-*-*) TARGET=AMD64; @@ -1418,6 +1490,7 @@ case "$host" in JIT_SUPPORTED=yes jit_wanted=true LIBC="libc.so.6.1" + INTL="libc.so.6.1" AC_CHECK_LIB(unwind, _U_dyn_register, [], [AC_MSG_ERROR(library libunwind not found)]) libmono_ldflags="-lunwind" ;; @@ -1480,7 +1553,7 @@ case "$host" in JIT_SUPPORTED=yes jit_wanted=true ;; - arm*-linux-*) + arm*-linux*) TARGET=ARM; arch_target=arm; ACCESS_UNALIGNED="no" @@ -1609,6 +1682,22 @@ if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86"; then fi fi +mono_debugger_supported=no +if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86"; then + case "$host" in + *-*-*linux*) + mono_debugger_supported=yes + ;; + esac +fi + +AC_MSG_CHECKING(if the Mono Debugger is supported on this platform) +if test "x$mono_debugger_supported" = "xyes"; then + AC_DEFINE(MONO_DEBUGGER_SUPPORTED,1,[The Mono Debugger is supported on this platform]) +fi +AC_MSG_RESULT($mono_debugger_supported) +AM_CONDITIONAL(MONO_DEBUGGER_SUPPORTED, test x$mono_debugger_supported = xyes) + if test "x$with_tls" = "x__thread"; then AC_DEFINE(HAVE_KW_THREAD) # Pass the information to libgc @@ -1716,7 +1805,7 @@ AC_CONFIG_FILES([runtime/semdel-wrapper],[chmod +x runtime/semdel-wrapper]) AC_CONFIG_COMMANDS([runtime/etc/mono/1.0/machine.config], [ depth=../../../.. case $srcdir in - [\\/$]* | ?:[\\/]* ) reldir=$srcdir ;; + [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;; .) reldir=$depth ;; *) reldir=$depth/$srcdir ;; esac @@ -1730,7 +1819,7 @@ AC_CONFIG_COMMANDS([runtime/etc/mono/1.0/machine.config], AC_CONFIG_COMMANDS([runtime/etc/mono/2.0/machine.config], [ depth=../../../.. case $srcdir in - [\\/$]* | ?:[\\/]* ) reldir=$srcdir ;; + [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;; .) reldir=$depth ;; *) reldir=$depth/$srcdir ;; esac @@ -1745,6 +1834,8 @@ AC_OUTPUT([ Makefile mint.pc mono.pc +mono-cairo.pc +dotnet.pc mono-uninstalled.pc scripts/mono-nunit.pc scripts/mono-find-provides @@ -1797,6 +1888,10 @@ runtime/Makefile if test x$platform_win32 = xyes; then # Get rid of 'cyg' prefixes in library names sed -e "s/\/cyg\//\/\//" libtool > libtool.new; mv libtool.new libtool; chmod 755 libtool + # libtool seems to inherit -mno-cygwin from our CFLAGS, and uses it to compile its executable + # wrapper scripts which use exec(). gcc has no problem compiling+linking this, but the resulting + # executable doesn't work... + sed -e "s,-mno-cygwin,,g" libtool > libtool.new; mv libtool.new libtool; chmod 755 libtool fi ( @@ -1809,23 +1904,35 @@ fi test -w $srcdir/$mcsdir/build || chmod +w $srcdir/$mcsdir/build - echo "prefix=$prefix" > $srcdir/$mcsdir/build/config.make - echo "exec_prefix=$exec_prefix" >> $srcdir/$mcsdir/build/config.make - echo 'mono_libdir=${exec_prefix}/lib' >> $srcdir/$mcsdir/build/config.make - echo 'MCS_FLAGS = $(PLATFORM_DEBUG_FLAGS)' >> $srcdir/$mcsdir/build/config.make - echo 'IL_FLAGS = /debug' >> $srcdir/$mcsdir/build/config.make - echo "RUNTIME = $mono_build_root/runtime/mono-wrapper" >> $srcdir/$mcsdir/build/config.make - echo "ILDISASM = $mono_build_root/runtime/monodis-wrapper" >> $srcdir/$mcsdir/build/config.make - echo "INSTALL = $INSTALL" >> $srcdir/$mcsdir/build/config.make - - export VERSION - [myver=$($AWK 'BEGIN { - split (ENVIRON["VERSION"] ".0.0.0", vsplit, ".") - print vsplit [1] "." vsplit [2] "." vsplit [3] "." vsplit [4] - }')] - - # Generate Consts.cs - sed -e "s/@MONO_VERSION@/$myver/" $srcdir/$mcsdir/build/common/Consts.cs.in > $srcdir/$mcsdir/build/common/Consts.cs + # + # If we are cross compiling, we don't build in the mcs/ tree. Let us not clobber + # any existing config.make. This allows people to share the same source tree + # with different build directories, one native and one cross + # + if test x$cross_compiling = xno; then + echo "prefix=$prefix" > $srcdir/$mcsdir/build/config.make + echo "exec_prefix=$exec_prefix" >> $srcdir/$mcsdir/build/config.make + echo 'mono_libdir=${exec_prefix}/lib' >> $srcdir/$mcsdir/build/config.make + echo 'MCS_FLAGS = $(PLATFORM_DEBUG_FLAGS)' >> $srcdir/$mcsdir/build/config.make + echo 'IL_FLAGS = /debug' >> $srcdir/$mcsdir/build/config.make + echo "RUNTIME = $mono_build_root/runtime/mono-wrapper" >> $srcdir/$mcsdir/build/config.make + echo "ILDISASM = $mono_build_root/runtime/monodis-wrapper" >> $srcdir/$mcsdir/build/config.make + + case $INSTALL in + [[\\/$]]* | ?:[[\\/]]* ) mcs_INSTALL=$INSTALL ;; + *) mcs_INSTALL=$mono_build_root/$INSTALL ;; + esac + + echo "INSTALL = $mcs_INSTALL" >> $srcdir/$mcsdir/build/config.make + + export VERSION + [myver=$($AWK 'BEGIN { + split (ENVIRON["VERSION"] ".0.0.0", vsplit, ".") + print vsplit [1] "." vsplit [2] "." vsplit [3] "." vsplit [4] + }')] + + echo "MONO_VERSION = $myver" >> $srcdir/$mcsdir/build/config.make + fi ) libgdiplus_msg=${libgdiplus_loc:-assumed to be installed} @@ -1833,7 +1940,6 @@ libgdiplus_msg=${libgdiplus_loc:-assumed to be installed} echo " mcs source: $mcs_topdir GC: $gc - Globalization: $enable_glob TLS: $with_tls SIGALTSTACK: $with_sigaltstack Engine: $jit_status