X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=configure.in;h=b5d8e2f79a81549a1899d665543947d3eac56b0a;hb=5cec043e40796be9bedf864b4147d4677411b776;hp=ec5ac8d5c69b3476e5e37061edd1d903a827eab6;hpb=096265478e6e4145c90250a5bf78c0c179ee50af;p=mono.git diff --git a/configure.in b/configure.in index ec5ac8d5c69..b5d8e2f79a8 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.15) +AM_INIT_AUTOMAKE(mono,1.1.17) AM_MAINTAINER_MODE AC_PROG_LN_S @@ -67,6 +67,8 @@ case "$host" in fi HOST_CC="gcc" CPPFLAGS="$CPPFLAGS -DWIN32_THREADS -DFD_SETSIZE=1024" + libmono_cflags="-mno-cygwin" + libmono_ldflags="-mno-cygwin" libdl= libgc_threads=win32 gc_default=included @@ -187,8 +189,8 @@ case "$host" in libdl="-ldl" libgc_threads=pthreads ;; - *-*-hpux*) - platform_win32=no + *-*-hpux*) + platform_win32=no CPPFLAGS="$CPPFLAGS -DGC_HPUX_THREADS -D_HPUX_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_REENTRANT" CFLAGS="$CFLAGS +ESdbgasm" LDFLAGS="$LDFLAGS -z" @@ -196,13 +198,15 @@ case "$host" in libmono_ldflags="-lpthread" libgc_threads=pthreads need_link_unlink=yes - ;; + ;; *-*-solaris*) platform_win32=no CPPFLAGS="$CPPFLAGS -DGC_SOLARIS_THREADS -DGC_SOLARIS_PTHREADS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_MMAP -DUSE_MUNMAP" need_link_unlink=yes libmono_cflags="-D_REENTRANT" libgc_threads=pthreads + # This doesn't seem to work on solaris/x86, but the configure test runs + with_nptl=no ;; *-*-darwin*) platform_win32=no @@ -283,7 +287,7 @@ fi AM_CONDITIONAL(NO_VERSION_SCRIPT, test x$no_version_script = xyes) -AC_CHECK_HEADERS(sys/filio.h sys/sockio.h netdb.h utime.h semaphore.h sys/un.h linux/rtc.h) +AC_CHECK_HEADERS(sys/filio.h sys/sockio.h netdb.h utime.h semaphore.h sys/un.h linux/rtc.h sys/syscall.h) AC_CHECK_HEADER(zlib.h, [have_zlib=yes], [have_zlib=no]) @@ -388,13 +392,6 @@ if test "x$PKG_CONFIG" = "xno"; then AC_MSG_ERROR([You need to install pkg-config]) fi -dnl for use on the build system -dnl pkg-config is stupid -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) - pkg_config_path= AC_ARG_WITH(crosspkgdir, [ --with-crosspkgdir=/path/to/pkg-config/dir], if test x$with_crosspkgdir = "x"; then @@ -408,16 +405,36 @@ AC_ARG_WITH(crosspkgdir, [ --with-crosspkgdir=/path/to/pkg-config/dir], fi ) -## Versions of dependencies -GLIB_REQUIRED_VERSION=1.3.11 - -PKG_CHECK_MODULES(BASE_DEPENDENCIES, glib-2.0 >= $GLIB_REQUIRED_VERSION) - -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_ARG_WITH([glib], + [ --with-glib=embedded|system Choose glib API: system or embedded (default to system)], + [], [with_glib=system]) + +case $with_glib in +embedded) + GLIB_CFLAGS='-I$(top_srcdir)/eglib/src' + GLIB_LIBS='-L$(top_builddir)/eglib/src -leglib' + 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 + + PKG_CHECK_MODULES(BASE_DEPENDENCIES, glib-2.0 >= $GLIB_REQUIRED_VERSION) + + 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_MSG_ERROR([Invalid argument to --with-glib.]) +esac + AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_LIBS) AC_SUBST(GMODULE_CFLAGS) @@ -562,9 +579,10 @@ AC_TRY_COMPILE([], [ void __attribute__ ((visibility ("hidden"))) doit (void) {} void main () { doit (); } ], [ - AC_DEFINE(HAVE_VISIBILITY_HIDDEN, 1, [Support for the visibility ("hidden") attribute]) + have_visibility_hidden=yes AC_MSG_RESULT(yes) ], [ + have_visibility_hidden=no AC_MSG_RESULT(no) ]) @@ -606,6 +624,11 @@ case "x$gc" in xincluded) AC_CONFIG_SUBDIRS(libgc) + # Pass CPPFLAGS to libgc configure + # Maybe we should use a separate variable for this to avoid passing useless and + # potentially problematic defines to libgc (like -D_FILE_OFFSET_BITS=64) + export CPPFLAGS + found_boehm=yes gc_headers=yes use_included_gc=yes @@ -627,15 +650,15 @@ case "x$gc" in AC_DEFINE_UNQUOTED(USED_GC_NAME, "Included Boehm (with typed GC)", [GC description]) ;; -dnl xsgen) -dnl found_boehm=no -dnl gc_headers=no -dnl use_included_gc=no -dnl AC_DEFINE(HAVE_SGEN_GC,1,[Using the simple generational GC.]) -dnl AC_DEFINE(HAVE_MOVING_COLLECTOR,1,[The GC can move objects.]) -dnl AC_DEFINE(HAVE_WRITE_BARRIERS,1,[The GC needs write barriers.]) -dnl AC_DEFINE_UNQUOTED(USED_GC_NAME, "Simple generational", [GC description]) -dnl ;; + xsgen) + found_boehm=no + gc_headers=no + use_included_gc=no + AC_DEFINE(HAVE_SGEN_GC,1,[Using the simple generational GC.]) + AC_DEFINE(HAVE_MOVING_COLLECTOR,1,[The GC can move objects.]) + AC_DEFINE(HAVE_WRITE_BARRIERS,1,[The GC needs write barriers.]) + AC_DEFINE_UNQUOTED(USED_GC_NAME, "Simple generational", [GC description]) + ;; xnone) AC_MSG_WARN("Compiling mono without GC.") @@ -691,6 +714,7 @@ if test x$platform_win32 = xno; then AC_CHECK_FUNCS(setresuid) AC_CHECK_FUNCS(kqueue) AC_CHECK_FUNCS(backtrace_symbols) + AC_CHECK_FUNCS(mkstemp) dnl ****************************************************************** dnl *** Check for large file support *** @@ -1195,41 +1219,6 @@ if test x$platform_win32 = xno; then AC_MSG_RESULT(no) ]) - dnl ********************* - dnl *** Check for AIO *** - dnl ********************* - AC_MSG_CHECKING([for SIGEV_THREAD definition]) - dnl Some systems (FreeBSD at least) may have aio_read - dnl but don't support/define SIGEV_THREAD. - AC_TRY_COMPILE([ - #include - ],[ - int x = SIGEV_THREAD; - ],[ - ac_cv_c_sigev_thread=yes - AC_MSG_RESULT(yes) - ],[ - AC_MSG_RESULT(no) - ]) - - if test "$ac_cv_c_sigev_thread" = "yes" ; then - AC_CHECK_HEADERS(aio.h sys/aio.h) - AC_CHECK_LIB(rt, aio_read, [ LIBS="$LIBS -lrt" ],) - SIGVAL_PTR="undefined" - if test "$ac_cv_header_aio_h" = "yes" -o "$ac_cv_header_sys_aio_h" = "yes" ; then - AC_CHECK_MEMBER(union sigval.sigval_ptr,SIGVAL_PTR="sigval_ptr",, [ - #include - ]) - AC_CHECK_MEMBER(union sigval.sival_ptr,SIGVAL_PTR="sival_ptr",, [ - #include - ]) - if test "$SIGVAL_PTR" = "undefined" ; then - AC_MSG_ERROR([Unable to detect field name in 'union sigval']) - fi - fi - AC_DEFINE_UNQUOTED(SIGVAL_PTR,$SIGVAL_PTR,[Pointer field name in 'union sigval']) - fi - dnl ********************************** dnl *** epoll *** dnl ********************************** @@ -1265,13 +1254,6 @@ 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) @@ -1512,6 +1494,20 @@ case "$host" in solaris*) LIBC="libc.so" INTL="libintl.so" + + # On solaris 10 x86, gcc prints a warning saying 'visibility attribute not supported on this configuration; ignored', but linking fails. A test case: + # int astruct __attribute__ ((visibility ("hidden"))); + # void foo () + # { + # void *p = &astruct; + # } + # gcc -fPIC --shared -o libfoo.so foo.c + # yields: + # 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 + + libmono_ldflags="$libmono_ldflags $LIBS" esac ;; x86_64-*-* | amd64-*-*) @@ -1545,6 +1541,7 @@ case "$host" in *) LIBC="libc.so" INTL="libintl.so" + libmono_ldflags="$libmono_ldflags $LIBS" esac jit_wanted=true if test x"$GCC" = xyes; then @@ -1558,10 +1555,10 @@ case "$host" in alpha*-*-linux* | alpha*-*-osf*) TARGET=ALPHA; ACCESS_UNALIGNED="no" - JIT_SUPPORTED=no - INTERP_SUPPORTED=yes - interp_wanted=true + JIT_SUPPORTED=yes + jit_wanted=true arch_target=alpha; + CFLAGS="$CFLAGS -mieee" case $host_os in linux*) LIBC="libc.so.6.1" @@ -1608,6 +1605,8 @@ case "$host" in ACCESS_UNALIGNED="no" JIT_SUPPORTED=yes jit_wanted=true + # Required CFLAGS for s390[x]. USE_STRING_INLINES is automatic with gcc 4.1 + CFLAGS="$CFLAGS -mbackchain -D__USE_STRING_INLINES" ;; s390x-*-linux*) TARGET=S390x; @@ -1616,9 +1615,14 @@ case "$host" in ACCESS_UNALIGNED="no" JIT_SUPPORTED=yes jit_wanted=true + CFLAGS="$CFLAGS -mbackchain -D__USE_STRING_INLINES" ;; esac +if test "x$have_visibility_hidden" = "xyes"; then + AC_DEFINE(HAVE_VISIBILITY_HIDDEN, 1, [Support for the visibility ("hidden") attribute]) +fi + AC_ARG_WITH(jit, [ --with-jit=yes,no If you want to build scripts that default to the JIT],[ if test x$withval = xyes; then jit_wanted=true @@ -1727,11 +1731,13 @@ fi mono_debugger_supported=no if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86"; then - case "$host" in - *-*-*linux*) - mono_debugger_supported=yes - ;; - esac + if test x$use_included_gc = xyes; then + case "$host" in + *-*-*linux*) + mono_debugger_supported=yes + ;; + esac + fi fi AC_MSG_CHECKING(if the Mono Debugger is supported on this platform) @@ -1743,9 +1749,8 @@ 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 + # Pass the information to libgc CPPFLAGS="$CPPFLAGS -DUSE_COMPILER_TLS" - export CPPFLAGS AC_MSG_CHECKING(if the tls_model attribute is supported) AC_TRY_COMPILE([static __thread int foo __attribute__((tls_model("initial-exec")));], [ ], [ @@ -1873,6 +1878,20 @@ AC_CONFIG_COMMANDS([runtime/etc/mono/2.0/machine.config], cd $depth ],[LN_S='$LN_S']) +AC_CONFIG_COMMANDS([runtime/etc/mono/2.0/web.config], +[ depth=../../../.. + case $srcdir in + [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;; + .) reldir=$depth ;; + *) reldir=$depth/$srcdir ;; + esac + $ac_aux_dir/install-sh -d runtime/etc/mono/2.0 + cd runtime/etc/mono/2.0 + rm -f web.config + $LN_S $reldir/data/net_2_0/web.config web.config + cd $depth +],[LN_S='$LN_S']) + AC_OUTPUT([ Makefile mint.pc @@ -1903,6 +1922,12 @@ mono/arch/ia64/Makefile mono/interpreter/Makefile mono/tests/Makefile mono/tests/tests-config +mono/tests/cas/Makefile +mono/tests/cas/assembly/Makefile +mono/tests/cas/demand/Makefile +mono/tests/cas/inheritance/Makefile +mono/tests/cas/linkdemand/Makefile +mono/tests/cas/threads/Makefile mono/benchmark/Makefile mono/monoburg/Makefile mono/monograph/Makefile @@ -1989,3 +2014,15 @@ echo " $disabled " +if test x$with_static_mono = xno -a "x$platform_win32" != "xyes"; then + AC_MSG_WARN(Turning off static Mono is a risk, you might run into unexepcted bugs) +fi + +if test x$gc = xsgen; then + echo IMPORTANT: + echo IMPORTANT: You have selected an experimental, work-in-progress + echo IMPORTANT: GC engine. This GC engine is currently not supported + echo IMPORTANT: and is not yet ready for use. + echo IMPORTANT: + echo IMPORTANT: There are known problems with it, use at your own risk. +fi