X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=configure.in;h=62675cb37cfc5ea5e2d8b17d30441acfd61537d5;hb=dd866d68820e0f66046256bb5d3f84e3988a8be0;hp=3f2400ff2653d5c0e46f69d2c99b468194a0c628;hpb=3389912d8f42591354041d22a5cebec55ad67f6c;p=mono.git diff --git a/configure.in b/configure.in index 3f2400ff265..62675cb37cf 100644 --- a/configure.in +++ b/configure.in @@ -1,9 +1,11 @@ AC_INIT(README) AC_CANONICAL_SYSTEM AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(mono,0.95) +AM_INIT_AUTOMAKE(mono,1.0) AM_MAINTAINER_MODE +AC_PROG_LN_S + dnl dnl libgc checks dnl @@ -52,6 +54,7 @@ case "$host" in gc_default=boehm with_nptl=no with_sigaltstack=no + LN_S=cp ;; *-*-*netbsd*) @@ -64,7 +67,60 @@ case "$host" in libdl= libgc_threads=no ;; - *-*-*freebsd*|*-*-*openbsd*) +# these flags will work for all versions of -STABLE +# + *-*-*freebsd4) + platform_win32=no + if test "x$PTHREAD_CFLAGS" = "x"; then + CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE -DGC_FREEBSD_THREADS" + libmono_cflags="-D_THREAD_SAFE" + else + CPPFLAGS="$CPPFLAGS $PTHREAD_CFLAGS -DGC_FREEBSD_THREADS" + libmono_cflags="$PTHREAD_CFLAGS" + fi + if test "x$PTHREAD_LIBS" = "x"; then + LDFLAGS="$LDFLAGS -pthread" + libmono_ldflags="-pthread" + else + LDFLAGS="$LDFLAGS $PTHREAD_LIBS" + libmono_ldflags="$PTHREAD_LIBS" + fi + need_link_unlink=yes + AC_DEFINE(PTHREAD_POINTER_ID) + libdl= + libgc_threads=pthreads +# TLS isn't implemented at all on -STABLE + with_nptl=no + ;; +# older versions of -CURRENT will break with these flags but testing +# indicates these older versions won't run Mono anyway +# + *-*-*freebsd5) + platform_win32=no + if test "x$PTHREAD_CFLAGS" = "x"; then + CPPFLAGS="$CPPFLAGS -DGC_FREEBSD_THREADS" + libmono_cflags= + else + CPPFLAGS="$CPPFLAGS $PTHREAD_CFLAGS -DGC_FREEBSD_THREADS" + libmono_cflags="$PTHREAD_CFLAGS" + fi + if test "x$PTHREAD_LIBS" = "x"; then + LDFLAGS="$LDFLAGS -lpthread" + libmono_ldflags="-lpthread" + else + LDFLAGS="$LDFLAGS $PTHREAD_LIBS" + libmono_ldflags="$PTHREAD_LIBS" + fi + need_link_unlink=yes + AC_DEFINE(PTHREAD_POINTER_ID) + libdl= + libgc_threads=pthreads +# TLS is only partially implemented on -CURRENT (compiler support +# but NOT library support) +# + with_nptl=no + ;; + *-*-*openbsd*) platform_win32=no CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE -DGC_FREEBSD_THREADS" libmono_cflags="-D_THREAD_SAFE" @@ -243,14 +299,27 @@ AC_SUBST(GMODULE_LIBS) AC_ARG_WITH(gc, [ --with-gc=boehm,included,none],[gc=$with_gc],[gc=$gc_default]) -# Enable support for NPTL only features like fast thread-local storage -# We can't reliably detect nptl at compile & run time -# so this option will stay until nptl becomes more widespread -AC_ARG_WITH(nptl, [ --with-nptl=yes,no enable/disable support for NPTL],[],[with_nptl=yes]) +# Enable support for fast thread-local storage +# Some systems have broken support, so we allow to disable it. +AC_ARG_WITH(tls, [ --with-tls=__thread,pthread select Thread Local Storage implementation],[],[with_tls=__thread]) + +# Kept for compatibility +AC_ARG_WITH(nptl, [ --with-nptl=yes,no deprecated, use --with-tls instead],[],[with_nptl=default]) + +if test "x$with_nptl" != "xdefault"; then + if test "x$with_nptl" = "xyes"; then + AC_MSG_WARN([--with-nptl=yes is deprecated, use --with-tls=__thread option instead.]) + with_tls=__thread + fi + if test "x$with_nptl" = "xno"; then + AC_MSG_WARN([--with-nptl=no is deprecated, use --with-tls=pthread option instead.]) + with_tls=pthread + fi +fi # Enable support for using sigaltstack for SIGSEGV and stack overflow handling # This does not work on some platforms (bug #55253) -AC_ARG_WITH(sigaltstack, [ --with-sigaltstack=yes,no enable/disable support for sigaltstack],[],[with_sigaltstack=yes]) +AC_ARG_WITH(sigaltstack, [ --with-sigaltstack=yes,no enable/disable support for sigaltstack],[],[with_sigaltstack=no]) # assembly bundle support, see metadata/make-bundle.pl for more info AC_ARG_WITH(bundle, [ --with-bundle=bundle_template],[ @@ -658,7 +727,7 @@ if test x$platform_win32 = xno; then dnl *** Checks for working __thread *** dnl *********************************** AC_MSG_CHECKING(for working __thread) - if test "x$with_nptl" != "xyes"; then + if test "x$with_tls" != "x__thread"; then AC_MSG_RESULT(disabled) else AC_TRY_RUN([ @@ -904,6 +973,34 @@ else jdk_headers_found=no AC_CHECK_LIB(ws2_32, main, LIBS="$LIBS -lws2_32", AC_ERROR(bad mingw install?)) AC_CHECK_LIB(psapi, main, LIBS="$LIBS -lpsapi", AC_ERROR(bad mingw install?)) + + dnl ********************************* + dnl *** Check for struct ip_mreqn *** + dnl ********************************* + AC_MSG_CHECKING(for struct ip_mreqn) + AC_TRY_COMPILE([#include ], [ + struct ip_mreqn mreq; + mreq.imr_address.s_addr = 0; + ], [ + # Yes, we have it... + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_STRUCT_IP_MREQN) + ], [ + # We'll just have to try and use struct ip_mreq + AC_MSG_RESULT(no) + AC_MSG_CHECKING(for struct ip_mreq) + AC_TRY_COMPILE([#include ], [ + struct ip_mreq mreq; + mreq.imr_interface.s_addr = 0; + ], [ + # Yes, we have it... + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_STRUCT_IP_MREQ) + ], [ + # No multicast support + AC_MSG_RESULT(no) + ]) + ]) fi dnl socklen_t check @@ -922,8 +1019,9 @@ ac_cv_c_socklen_t=yes ]) AC_CHECK_FUNCS(trunc, , AC_MSG_CHECKING(for trunc in math.h) + # Simply calling trunc (0.0) is no good since gcc will optimize the call away AC_TRY_LINK([#include ], - [ trunc(0.0); ], + [ static void *p = &trunc; ], [ AC_DEFINE(HAVE_TRUNC) AC_MSG_RESULT(yes) @@ -1044,6 +1142,7 @@ ACCESS_UNALIGNED="yes" JIT_SUPPORTED=no LIBC="libc.so.6" +INTL="libc.so.6" jit_wanted=false case "$host" in @@ -1063,17 +1162,24 @@ case "$host" in JIT_SUPPORTED=no ;; sparc*-*-*) - TARGET=SPARC; + if test "x$ac_cv_sizeof_void_p" = "x8"; then + TARGET=SPARC64 + else + TARGET=SPARC + fi arch_target=sparc; JIT_SUPPORTED=yes ACCESS_UNALIGNED="no" LIBC="libc.so" + INTL="libintl.so" jit_wanted=true ;; -# alpha*-*-linux* | alpha*-*-osf*) -# TARGET=ALPHA; -# ACCESS_UNALIGNED="no" -# ;; + alpha*-*-linux* | alpha*-*-osf*) + TARGET=ALPHA; + ACCESS_UNALIGNED="no" + JIT_SUPPORTED=no + arch_target=alpha; + ;; # ia64-*-linux* | ia64-*-hpux*) # TARGET=IA64; # arch_target=ia64; @@ -1093,6 +1199,11 @@ case "$host" in LIBC="libc.sl" ACCESS_UNALIGNED="no" ;; + hppa*linux*) + TARGET=HPPA; + arch_target=hppa; + ACCESS_UNALIGNED="no" + ;; macppc-*-openbsd* | powerpc-*-linux* | powerpc-*-openbsd* | \ powerpc-*-sysv* | powerpc-*-darwin*) TARGET=POWERPC; @@ -1137,6 +1248,11 @@ case "$host" in powerpc-*-darwin*) libsuffix=".dylib" LIBC="libc.dylib" + INTL="libintl.dylib" + ;; + *-*-*netbsd*) + LIBC="libc.so.12" + INTL="libintl.so.0" ;; esac AC_SUBST(libsuffix) @@ -1181,6 +1297,7 @@ AM_CONDITIONAL(INSTALL_2_0, test x$PREVIEW = xyes) AM_CONDITIONAL(MIPS_GCC, test ${TARGET}${ac_cv_prog_gcc} = MIPSyes) AM_CONDITIONAL(MIPS_SGI, test ${TARGET}${ac_cv_prog_gcc} = MIPSno) AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC) +AM_CONDITIONAL(SPARC64, test x$TARGET = xSPARC64) AM_CONDITIONAL(X86, test x$TARGET = xX86) AM_CONDITIONAL(AMD64, test x$TARGET = xAMD64) AM_CONDITIONAL(ALPHA, test x$TARGET = xALPHA) @@ -1194,6 +1311,7 @@ AM_CONDITIONAL(HPPA, test x$TARGET = xHPPA) AM_CONDITIONAL(JIT_SUPPORTED, test x$JIT_SUPPORTED = xyes) AC_SUBST(LIBC) +AC_SUBST(INTL) AC_SUBST(arch_target) AC_SUBST(CFLAGS) @@ -1252,7 +1370,7 @@ echo " GC: $gc ICU: $enable_icu - NPTL: $with_nptl + TLS: $with_tls SIGALTSTACK: $with_sigaltstack Engine: $jit_status 2.0 Alpha: $PREVIEW