X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=configure.in;h=90565171f6034b06de3b99c8094f68f575aa824b;hb=444f1ae2c091de3ce8646fcd5be4479a46deb1d4;hp=e5ed2c766d8ff2cd5b525a55a4a60a4dc7df66e2;hpb=538d3bb80572334c18ae117ea7703406a4a22872;p=mono.git diff --git a/configure.in b/configure.in index e5ed2c766d8..90565171f60 100644 --- a/configure.in +++ b/configure.in @@ -6,9 +6,12 @@ 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.17) +AM_INIT_AUTOMAKE(mono,1.2) AM_MAINTAINER_MODE +API_VER=1.0 +AC_SUBST(API_VER) + AC_PROG_LN_S # In case of cygwin, override LN_S, irrespective of what it determines. @@ -72,7 +75,6 @@ case "$host" in libdl= libgc_threads=win32 gc_default=included - with_nptl=default with_sigaltstack=no LN_S=cp # This forces libgc to use the DllMain based thread registration code on win32 @@ -113,7 +115,6 @@ case "$host" in libdl= libgc_threads=pthreads # TLS isn't implemented at all on 4-STABLE - with_nptl=no with_tls=pthread ;; *-*-*freebsd5*) @@ -192,6 +193,14 @@ case "$host" in *-*-hpux*) platform_win32=no CPPFLAGS="$CPPFLAGS -DGC_HPUX_THREADS -D_HPUX_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_REENTRANT" + # +ESdbgasm only valid on bundled cc on RISC + # silently ignored for ia64 + if test $GCC != "yes"; then + CFLAGS="$CFLAGS +ESdbgasm" + # Arrange for run-time dereferencing of null + # pointers to produce a SIGSEGV signal. + LDFLAGS="$LDFLAGS -z" + fi CFLAGS="$CFLAGS +ESdbgasm" LDFLAGS="$LDFLAGS -z" libmono_cflags="-D_REENTRANT" @@ -206,11 +215,12 @@ case "$host" in libmono_cflags="-D_REENTRANT" libgc_threads=pthreads # This doesn't seem to work on solaris/x86, but the configure test runs - with_nptl=no + with_tls=pthread ;; *-*-darwin*) platform_win32=no - CPPFLAGS="$CPPFLAGS -no-cpp-precomp -D_THREAD_SAFE -DGC_MACOSX_THREADS -DPLATFORM_MACOSX" + CPPFLAGS="$CPPFLAGS -no-cpp-precomp -D_THREAD_SAFE -DGC_MACOSX_THREADS -DPLATFORM_MACOSX -DUSE_MMAP -DUSE_MUNMAP" + CPPFLAGS="$CPPFLAGS -DGetCurrentProcess=MonoGetCurrentProcess" libmono_cflags="-D_THREAD_SAFE" LDFLAGS="$LDFLAGS -pthread" libmono_ldflags="-pthread" @@ -370,7 +380,7 @@ 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]) +AM_CONDITIONAL(BUILD_MCS, [test x$cross_compiling = xno && test x$enable_mcs_build != xno]) AC_SUBST([mcs_topdir]) AC_SUBST([mcs_topdir_from_srcdir]) @@ -412,14 +422,14 @@ AC_ARG_WITH([glib], case $with_glib in embedded) GLIB_CFLAGS='-I$(top_srcdir)/eglib/src' - GLIB_LIBS='-L$(top_builddir)/eglib/src -leglib' + GLIB_LIBS='-L$(top_builddir)/eglib/src -leglib -lm' + BUILD_GLIB_CFLAGS="$GLIB_CFLAGS" + BUILD_GLIB_LIBS="$GLIB_LIBS" AC_CONFIG_SUBDIRS(eglib) ;; system) BUILD_GLIB_CFLAGS=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0` BUILD_GLIB_LIBS=`$PKG_CONFIG --libs glib-2.0 gthread-2.0` - AC_SUBST(BUILD_GLIB_CFLAGS) - AC_SUBST(BUILD_GLIB_LIBS) ## Versions of dependencies GLIB_REQUIRED_VERSION=1.3.11 @@ -434,11 +444,14 @@ system) *) AC_MSG_ERROR([Invalid argument to --with-glib.]) esac +AM_CONDITIONAL(EGLIB_BUILD, test x$with_glib = xembedded) AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_LIBS) AC_SUBST(GMODULE_CFLAGS) AC_SUBST(GMODULE_LIBS) +AC_SUBST(BUILD_GLIB_CFLAGS) +AC_SUBST(BUILD_GLIB_LIBS) if test x$cross_compiling$platform_win32 = xnoyes; then AC_MSG_CHECKING(for cygwin glib2-dev package) @@ -467,20 +480,6 @@ AC_ARG_WITH(gc, [ --with-gc=boehm,included,none],[gc=$with_gc],[gc=$gc_default] # 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=no]) @@ -497,6 +496,7 @@ if test "x$platform_win32" = "xyes"; then fi AM_CONDITIONAL(STATIC_MONO, test x$with_static_mono != xno) +AC_ARG_ENABLE(mcs-build, [ --disable-mcs-build disable the build of the mcs directory], try_mcs_build=$enableval, enable_mcs_build=yes) 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 @@ -691,6 +691,41 @@ dnl if test x$platform_win32 = xno; then + dnl dynamic loader support + AC_CHECK_FUNC(dlopen, DL_LIB="", + AC_CHECK_LIB(dl, dlopen, DL_LIB="-ldl", dl_support=no) + ) + if test x$dl_support = xno; then + AC_MSG_WARN([No dynamic loading support available]) + else + LIBS="$LIBS $DL_LIB" + AC_DEFINE(HAVE_DL_LOADER,1,[dlopen-based dynamic loader available]) + dnl from glib's configure.in + AC_CACHE_CHECK([for preceeding underscore in symbols], + mono_cv_uscore,[ + AC_TRY_RUN([#include + int mono_underscore_test (void) { return 42; } + int main() { + void *f1 = (void*)0, *f2 = (void*)0, *handle; + handle = dlopen ((void*)0, 0); + if (handle) { + f1 = dlsym (handle, "mono_underscore_test"); + f2 = dlsym (handle, "_mono_underscore_test"); + } return (!f2 || f1); + }], + [mono_cv_uscore=yes], + [mono_cv_uscore=no], + []) + ]) + if test "x$mono_cv_uscore" = "xyes"; then + MONO_DL_NEED_USCORE=1 + else + MONO_DL_NEED_USCORE=0 + fi + AC_SUBST(MONO_DL_NEED_USCORE) + AC_CHECK_FUNC(dlerror) + fi + dnl ****************************************************************** dnl *** Checks for the IKVM JNI interface library *** dnl ****************************************************************** @@ -715,6 +750,8 @@ if test x$platform_win32 = xno; then AC_CHECK_FUNCS(kqueue) AC_CHECK_FUNCS(backtrace_symbols) AC_CHECK_FUNCS(mkstemp) + AC_CHECK_FUNCS(mmap) + AC_CHECK_FUNCS(madvise) dnl ****************************************************************** dnl *** Check for large file support *** @@ -1286,6 +1323,28 @@ if test x$platform_win32 = xno; then AC_CHECK_FUNCS(strerror_r) AC_CHECK_FUNCS(ttyname_r) AC_CHECK_SIZEOF(size_t) + AC_CHECK_TYPES([blksize_t], [AC_DEFINE(HAVE_BLKSIZE_T)], , + [#include + #include + #include ]) + AC_CHECK_TYPES([blkcnt_t], [AC_DEFINE(HAVE_BLKCNT_T)], , + [#include + #include + #include ]) + AC_CHECK_TYPES([suseconds_t], [AC_DEFINE(HAVE_SUSECONDS_T)], , + [#include ]) + AC_CHECK_TYPES([struct pollfd], [AC_DEFINE(HAVE_STRUCT_POLLFD)], , + [#include ]) + AC_CHECK_TYPES([struct stat], [AC_DEFINE(HAVE_STRUCT_STAT)], , + [#include + #include + #include ]) + AC_CHECK_TYPES([struct timeval], [AC_DEFINE(HAVE_STRUCT_TIMEVAL)], , + [#include + #include + #include ]) + AC_CHECK_TYPES([struct timezone], [AC_DEFINE(HAVE_STRUCT_TIMEZONE)], , + [#include ]) AC_CHECK_MEMBERS( [struct dirent.d_off, struct dirent.d_reclen, struct dirent.d_type],,, [#include @@ -1485,6 +1544,13 @@ case "$host" in # TARGET=MIPS; # ACCESS_UNALIGNED="no" # ;; + mips*) + TARGET=MIPS; + arch_target=mips; + ACCESS_UNALIGNED="no" + JIT_SUPPORTED=yes + jit_wanted=true + ;; i*86-*-*) TARGET=X86; arch_target=x86; @@ -1558,7 +1624,7 @@ case "$host" in JIT_SUPPORTED=yes jit_wanted=true arch_target=alpha; - CFLAGS="$CFLAGS -mieee" + CFLAGS="$CFLAGS -mieee -O0" case $host_os in linux*) LIBC="libc.so.6.1" @@ -1566,6 +1632,8 @@ case "$host" in esac ;; *-*-mingw*|*-*-cygwin*) + # When this is enabled, it leads to very strange crashes at runtime (gcc-3.4.4) + have_visibility_hidden=no INTL="intl" ;; hppa2.0w-hp-hpux11.00 | hppa64-hp-hpux11.00) @@ -1730,7 +1798,7 @@ if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86"; then fi mono_debugger_supported=no -if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86"; 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*) @@ -1776,7 +1844,7 @@ if test ${TARGET} = ARM; then ]) AC_MSG_RESULT($fpu) - CPPFLAGS="$CPPFLAGS -DARM_FPU_$fpu" + CPPFLAGS="$CPPFLAGS -DARM_FPU_$fpu=1" unset fpu fi @@ -1807,6 +1875,7 @@ AM_CONDITIONAL(AMD64, test x$TARGET = xAMD64) AM_CONDITIONAL(ALPHA, test x$TARGET = xALPHA) AM_CONDITIONAL(IA64, test x$TARGET = xIA64) AM_CONDITIONAL(M68K, test x$TARGET = xM68K) +AM_CONDITIONAL(MIPS, test x$TARGET = xMIPS) AM_CONDITIONAL(POWERPC, test x$TARGET = xPOWERPC) AM_CONDITIONAL(ARM, test x$TARGET = xARM) AM_CONDITIONAL(S390, test x$TARGET = xS390) @@ -1822,7 +1891,7 @@ AC_SUBST(INTL) AC_SUBST(SQLITE) AC_SUBST(SQLITE3) AC_SUBST(X11) - +AC_DEFINE_UNQUOTED(ARCHITECTURE,"$arch_target",[The architecture this is running on]) AC_SUBST(arch_target) AC_SUBST(CFLAGS) AC_SUBST(CPPFLAGS) @@ -1919,6 +1988,7 @@ mono/arch/s390x/Makefile mono/arch/arm/Makefile mono/arch/alpha/Makefile mono/arch/ia64/Makefile +mono/arch/mips/Makefile mono/interpreter/Makefile mono/tests/Makefile mono/tests/tests-config @@ -1974,7 +2044,7 @@ fi # 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 + if test x$cross_compiling = xno && test x$enable_mcs_build != 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