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
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
libdl=
libgc_threads=pthreads
# TLS isn't implemented at all on 4-STABLE
- with_nptl=no
with_tls=pthread
;;
*-*-*freebsd5*)
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"
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])
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])
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
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)
# 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])
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
AC_CHECK_FUNCS(setresuid)
AC_CHECK_FUNCS(kqueue)
AC_CHECK_FUNCS(backtrace_symbols)
+ AC_CHECK_FUNCS(mkstemp)
dnl ******************************************************************
dnl *** Check for large file support ***
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)
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 <sys/signal.h>
- ],[
- 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 <sys/signal.h>
- ])
- AC_CHECK_MEMBER(union sigval.sival_ptr,SIGVAL_PTR="sival_ptr",, [
- #include <sys/signal.h>
- ])
- 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 **********************************
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)
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 <sys/types.h>
+ #include <sys/stat.h>
+ #include <unistd.h>])
+ AC_CHECK_TYPES([blkcnt_t], [AC_DEFINE(HAVE_BLKCNT_T)], ,
+ [#include <sys/types.h>
+ #include <sys/stat.h>
+ #include <unistd.h>])
+ AC_CHECK_TYPES([suseconds_t], [AC_DEFINE(HAVE_SUSECONDS_T)], ,
+ [#include <sys/time.h>])
+ AC_CHECK_TYPES([struct pollfd], [AC_DEFINE(HAVE_STRUCT_POLLFD)], ,
+ [#include <sys/poll.h>])
+ AC_CHECK_TYPES([struct stat], [AC_DEFINE(HAVE_STRUCT_STAT)], ,
+ [#include <sys/types.h>
+ #include <sys/stat.h>
+ #include <unistd.h>])
+ AC_CHECK_TYPES([struct timeval], [AC_DEFINE(HAVE_STRUCT_TIMEVAL)], ,
+ [#include <sys/time.h>
+ #include <sys/types.h>
+ #include <utime.h>])
+ AC_CHECK_TYPES([struct timezone], [AC_DEFINE(HAVE_STRUCT_TIMEZONE)], ,
+ [#include <sys/time.h>])
AC_CHECK_MEMBERS(
[struct dirent.d_off, struct dirent.d_reclen, struct dirent.d_type],,,
[#include <sys/types.h>
# 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;
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"
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)
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;
ACCESS_UNALIGNED="no"
JIT_SUPPORTED=yes
jit_wanted=true
+ CFLAGS="$CFLAGS -mbackchain -D__USE_STRING_INLINES"
;;
esac
])
AC_MSG_RESULT($fpu)
- CPPFLAGS="$CPPFLAGS -DARM_FPU_$fpu"
+ CPPFLAGS="$CPPFLAGS -DARM_FPU_$fpu=1"
unset fpu
fi
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)
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
# 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
$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