X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=configure.in;h=c115b78ed49fab033dd29eee058724af0fcd898f;hb=27fbd0ccd517a87353973207831fb9ca40f31b7b;hp=f550c38da490509b5a383aff588fc236785f23cc;hpb=cb1200155595b6913b34c9eb0982910674940b2d;p=mono.git diff --git a/configure.in b/configure.in index f550c38da49..c115b78ed49 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.2) AM_MAINTAINER_MODE AC_PROG_LN_S @@ -67,10 +67,11 @@ 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 - with_nptl=default with_sigaltstack=no LN_S=cp # This forces libgc to use the DllMain based thread registration code on win32 @@ -111,7 +112,6 @@ case "$host" in libdl= libgc_threads=pthreads # TLS isn't implemented at all on 4-STABLE - with_nptl=no with_tls=pthread ;; *-*-*freebsd5*) @@ -204,11 +204,11 @@ 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" libmono_cflags="-D_THREAD_SAFE" LDFLAGS="$LDFLAGS -pthread" libmono_ldflags="-pthread" @@ -285,7 +285,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]) @@ -368,7 +368,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]) @@ -390,13 +390,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 @@ -410,20 +403,43 @@ 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 -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` + + ## 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 +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) @@ -452,20 +468,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]) @@ -482,6 +484,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 @@ -699,6 +702,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 *** @@ -885,7 +889,7 @@ if test x$platform_win32 = xno; then dnl ***************************** dnl *** Checks for libnsl *** dnl ***************************** - AC_CHECK_LIB(nsl, gethostbyaddr, LIBS="$LIBS -lnsl") + AC_CHECK_FUNC(gethostbyaddr, , AC_CHECK_LIB(nsl, gethostbyaddr, LIBS="$LIBS -lnsl")) AC_CHECK_FUNCS(inet_pton inet_aton) @@ -1203,41 +1207,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 ********************************** @@ -1273,13 +1242,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) @@ -1312,6 +1274,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 @@ -1511,6 +1495,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; @@ -1581,10 +1572,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" @@ -1592,6 +1583,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) @@ -1631,6 +1624,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; @@ -1639,6 +1634,7 @@ case "$host" in ACCESS_UNALIGNED="no" JIT_SUPPORTED=yes jit_wanted=true + CFLAGS="$CFLAGS -mbackchain -D__USE_STRING_INLINES" ;; esac @@ -1799,7 +1795,7 @@ if test ${TARGET} = ARM; then ]) AC_MSG_RESULT($fpu) - CPPFLAGS="$CPPFLAGS -DARM_FPU_$fpu" + CPPFLAGS="$CPPFLAGS -DARM_FPU_$fpu=1" unset fpu fi @@ -1830,6 +1826,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) @@ -1942,6 +1939,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 @@ -1997,7 +1995,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 @@ -2037,6 +2035,14 @@ 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$have_zlib = xno; then + AC_MSG_WARN(ZLib devel files not available, compression file support in 2.0 won't work.) +fi + if test x$gc = xsgen; then echo IMPORTANT: echo IMPORTANT: You have selected an experimental, work-in-progress