m4_ifdef([_A][M_PROG_TAR],[_A][M_SET_OPTION([tar-ustar])])
AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(mono,1.2)
+AM_INIT_AUTOMAKE(mono,1.2.5.99)
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.
libmono_ldflags=""
AC_SUBST(libmono_cflags)
AC_SUBST(libmono_ldflags)
+export_ldflags=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
+AC_SUBST(export_ldflags)
# Variable to have relocatable .pc files (lib, or lib64)
reloc_libdir=`basename ${libdir}`
AC_SUBST(reloc_libdir)
-
dnl if linker handles the version script
no_version_script=no
export CC
fi
HOST_CC="gcc"
- CPPFLAGS="$CPPFLAGS -DWIN32_THREADS -DFD_SETSIZE=1024"
+ CPPFLAGS="$CPPFLAGS -DWIN32_THREADS -DFD_SETSIZE=1024 -DUNICODE -D_UNICODE"
libmono_cflags="-mno-cygwin"
libmono_ldflags="-mno-cygwin"
libdl=
;;
*-*-*netbsd*)
platform_win32=no
- CPPFLAGS="$CPPFLAGS -D_REENTRANT"
+ CPPFLAGS="$CPPFLAGS -D_REENTRANT -DGC_NETBSD_THREADS -D_GNU_SOURCE"
libmono_cflags="-D_REENTRANT"
LDFLAGS="$LDFLAGS -pthread"
CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD"
libmono_ldflags="-pthread"
need_link_unlink=yes
- libdl=
- libgc_threads=no
+ libdl="-ldl"
+ libgc_threads=pthreads
+ with_sigaltstack=no
;;
# these flags will work for all versions of -STABLE
#
*-*-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"
;;
*-*-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 -DGetCurrentThread=MonoGetCurrentThread -DCreateEvent=MonoCreateEvent"
libmono_cflags="-D_THREAD_SAFE"
LDFLAGS="$LDFLAGS -pthread"
libmono_ldflags="-pthread"
AC_CHECK_TOOL(CC, gcc, gcc)
AC_PROG_CC
+AM_PROG_AS
AM_PROG_CC_STDC
AC_PROG_INSTALL
AC_PROG_AWK
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])
+if test x$have_zlib = xyes; then
+ AC_TRY_COMPILE([#include <zlib.h>], [
+ void main () {
+ #if defined(ZLIB_VERNUM) && (ZLIB_VERNUM >= 0x1230)
+ }
+ #else
+ #error No good zlib found
+ #endif
+ ],[
+ AC_MSG_RESULT(Using system zlib)
+ zlib_msg="system zlib"
+ ],[
+ AC_MSG_RESULT(Using embedded zlib)
+ have_zlib=no
+ zlib_msg="bundled zlib"
+ ])
+fi
AM_CONDITIONAL(HAVE_ZLIB, test x$have_zlib = xyes)
+AC_DEFINE(HAVE_ZLIB,1,[Have system zlib])
# for mono/metadata/debug-symfile.c
AC_CHECK_HEADERS(elf.h)
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])
+# Where's the 'olive' source tree?
+if test -d $srcdir/olive; then
+ olivedir=olive
+else
+ olivedir=../olive
+fi
+
+if test -d $srcdir/$olivedir; then
+olive_topdir='$(top_srcdir)/'$olivedir
+fi
+
AC_ARG_WITH([libgdiplus],
[ --with-libgdiplus=installed|sibling|<path> Override the libgdiplus used for System.Drawing tests (defaults to NO)],
[], [with_libgdiplus=installed])
GLIB_LIBS='-L$(top_builddir)/eglib/src -leglib -lm'
BUILD_GLIB_CFLAGS="$GLIB_CFLAGS"
BUILD_GLIB_LIBS="$GLIB_LIBS"
+ GMODULE_CFLAGS="$GLIB_CFLAGS"
+ GMODULE_LIBS="$GLIB_LIBS"
AC_CONFIG_SUBDIRS(eglib)
;;
system)
# 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])
+AC_ARG_WITH(sigaltstack, [ --with-sigaltstack=yes,no enable/disable support for sigaltstack],[],[with_sigaltstack=yes])
AC_ARG_WITH(static_mono, [ --with-static_mono=yes,no link mono statically to libmono (faster)],[],[with_static_mono=yes])
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
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 <dlfcn.h>
+ 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 ******************************************************************
AC_CHECK_FUNCS(kqueue)
AC_CHECK_FUNCS(backtrace_symbols)
AC_CHECK_FUNCS(mkstemp)
+ AC_CHECK_FUNCS(mmap)
+ AC_CHECK_FUNCS(madvise)
+ AC_CHECK_FUNCS(getrusage)
+ AC_CHECK_FUNCS(getpriority)
+ AC_CHECK_FUNCS(setpriority)
+
+ AC_CHECK_FUNCS(sched_setaffinity)
dnl ******************************************************************
dnl *** Check for large file support ***
])
dnl *****************************
- dnl *** Checks for IPV6_PKTINFO ***
- dnl *****************************
- AC_MSG_CHECKING(for IPV6_PKTINFO)
- AC_TRY_COMPILE([#include <netdb.h>], [
- int level = IPV6_PKTINFO;
- ], [
- # Yes, we have it...
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_IPV6_PKTINFO)
- ], [
- AC_MSG_RESULT(no)
- ])
-
- dnl *********************************
+ dnl *** Checks for IPV6_PKTINFO ***
+ dnl *****************************
+ AC_MSG_CHECKING(for IPV6_PKTINFO)
+ AC_TRY_COMPILE([#include <netdb.h>], [
+ int level = IPV6_PKTINFO;
+ ], [
+ # Yes, we have it...
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_IPV6_PKTINFO)
+ ], [
+ AC_MSG_RESULT(no)
+ ])
+
+ dnl **********************************
+ dnl *** Checks for IP_DONTFRAGMENT ***
+ dnl **********************************
+ AC_MSG_CHECKING(for IP_DONTFRAGMENT)
+ AC_TRY_COMPILE([#include <netdb.h>], [
+ int level = IP_DONTFRAGMENT;
+ ], [
+ # Yes, we have it...
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_IP_DONTFRAGMENT)
+ ], [
+ AC_MSG_RESULT(no)
+ ])
+
+ dnl **********************************
+ dnl *** Checks for IP_MTU_DISCOVER ***
+ dnl **********************************
+ AC_MSG_CHECKING(for IP_MTU_DISCOVER)
+ AC_TRY_COMPILE([#include <netdb.h>], [
+ int level = IP_MTU_DISCOVER;
+ ], [
+ # Yes, we have it...
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_IP_MTU_DISCOVER)
+ ], [
+ AC_MSG_RESULT(no)
+ ])
+
+ dnl *********************************
dnl *** Check for struct ip_mreqn ***
dnl *********************************
AC_MSG_CHECKING(for struct ip_mreqn)
#include <utime.h>])
AC_CHECK_TYPES([struct timezone], [AC_DEFINE(HAVE_STRUCT_TIMEZONE)], ,
[#include <sys/time.h>])
+ AC_CHECK_TYPES([struct utimbuf], [AC_DEFINE(HAVE_STRUCT_UTIMBUF)], ,
+ [#include <sys/types.h>
+ #include <utime.h>])
AC_CHECK_MEMBERS(
[struct dirent.d_off, struct dirent.d_reclen, struct dirent.d_type],,,
[#include <sys/types.h>
AC_CHECK_LIB(attr, lsetxattr, XATTR_LIB="-lattr",)
)
AC_SUBST(XATTR_LIB)
+
+ dnl *********************************
+ dnl *** Checks for Windows compilation ***
+ dnl *********************************
+ AC_CHECK_HEADERS(sys/time.h)
+ AC_CHECK_HEADERS(sys/param.h)
dnl *********************************
dnl *** Check for Console 2.0 I/O ***
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?))
AC_CHECK_LIB(ole32, main, LIBS="$LIBS -lole32", AC_ERROR(bad mingw install?))
+ AC_CHECK_LIB(winmm, main, LIBS="$LIBS -lwinmm", AC_ERROR(bad mingw install?))
AC_CHECK_LIB(oleaut32, main, LIBS="$LIBS -loleaut32", AC_ERROR(bad mingw install?))
+ AC_CHECK_LIB(advapi32, main, LIBS="$LIBS -ladvapi32", AC_ERROR(bad mingw install?))
dnl *********************************
dnl *** Check for struct ip_mreqn ***
solaris*)
LIBC="libc.so"
INTL="libintl.so"
+ if test "x$ac_cv_sizeof_void_p" = "x8"; then
+ TARGET=AMD64
+ arch_target=amd64
+ fi
# 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")));
# 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-*-*)
*)
LIBC="libc.so"
INTL="libintl.so"
- libmono_ldflags="$libmono_ldflags $LIBS"
esac
jit_wanted=true
if test x"$GCC" = xyes; then
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"
;;
hppa*linux*)
TARGET=HPPA;
+ AC_DEFINE(MONO_ARCH_REGPARMS,1,[Architecture uses registers for Parameters])
arch_target=hppa;
ACCESS_UNALIGNED="no"
- INTERP_SUPPORTED=yes
- interp_wanted=true
+ JIT_SUPPORTED=yes
+ jit_wanted=true
;;
- macppc-*-openbsd* | powerpc-*-linux* | powerpc-*-openbsd* | \
- powerpc-*-sysv* | powerpc-*-darwin*)
+ macppc-*-openbsd* | powerpc*-*-linux* | powerpc-*-openbsd* | \
+ powerpc-*-sysv* | powerpc-*-darwin* | powerpc-*-netbsd* )
TARGET=POWERPC;
AC_DEFINE(MONO_ARCH_REGPARMS,1,[Architecture uses registers for Parameters])
arch_target=ppc;
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*)
AC_TRY_COMPILE([], [
__asm__ ("ldfd f0, [r0]");
- ], fpu=FPA, [
- AC_TRY_COMPILE([], [
- __asm__ ("fldd d0, [r0]");
- ], fpu=VFP, fpu=NONE)
- ])
+ ], fpu=FPA, fpu=NONE)
AC_MSG_RESULT($fpu)
- CPPFLAGS="$CPPFLAGS -DARM_FPU_$fpu"
+ CPPFLAGS="$CPPFLAGS -DARM_FPU_$fpu=1"
unset fpu
fi
fi
PREVIEW=yes
-AC_ARG_WITH(preview, [ --with-preview=yes,no If you want to install the 2.0 FX preview],[
+AC_ARG_WITH(preview, [ --with-preview=yes,no If you want to install the 2.0 FX preview],[
if test x$with_preview = xno; then
PREVIEW=no
fi
])
+MOONLIGHT=no
+AC_ARG_WITH(moonlight,[ --with-moonlight=yes,no If you want to build the Moonlight 2.1 assemblies],[
+ if test x$with_moonlight = xyes; then
+ MOONLIGHT=yes
+ fi
+])
+
+libmono_ldflags="$libmono_ldflags $LIBS"
+
AM_CONDITIONAL(INSTALL_2_0, test x$PREVIEW = xyes)
+AM_CONDITIONAL(INSTALL_2_1, test x$MOONLIGHT = xyes)
AM_CONDITIONAL(MIPS_GCC, test ${TARGET}${ac_cv_prog_gcc} = MIPSyes)
AM_CONDITIONAL(MIPS_SGI, test ${TARGET}${ac_cv_prog_gcc} = MIPSno)
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)
cd $depth
],[LN_S='$LN_S'])
+AC_CONFIG_COMMANDS([runtime/etc/mono/browscap.ini],
+[ depth=../../..
+ case $srcdir in
+ [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
+ .) reldir=$depth ;;
+ *) reldir=$depth/$srcdir ;;
+ esac
+ $ac_aux_dir/install-sh -d runtime/etc/mono/
+ cd runtime/etc/mono/
+ rm -f browscap.ini
+ $LN_S $reldir/data/browscap.ini browscap.ini
+ cd $depth
+],[LN_S='$LN_S'])
+
AC_OUTPUT([
Makefile
-mint.pc
-mono.pc
-mono-cairo.pc
-dotnet.pc
mono-uninstalled.pc
scripts/mono-nunit.pc
scripts/mono-find-provides
mono/interpreter/Makefile
mono/tests/Makefile
mono/tests/tests-config
+mono/tests/assemblyresolve/Makefile
mono/tests/cas/Makefile
mono/tests/cas/assembly/Makefile
mono/tests/cas/demand/Makefile
data/Makefile
data/net_1_1/Makefile
data/net_2_0/Makefile
+data/mint.pc
+data/mono.pc
+data/mono-cairo.pc
+data/dotnet.pc
+data/cecil.pc
samples/Makefile
support/Makefile
data/config
tools/Makefile
tools/locale-builder/Makefile
runtime/Makefile
+msvc/Makefile
])
if test x$platform_win32 = xyes; then
# 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
export VERSION
[myver=$($AWK 'BEGIN {
split (ENVIRON["VERSION"] ".0.0.0", vsplit, ".")
+ if(length(vsplit [1]) > 4) {
+ split (substr(ENVIRON["VERSION"], 0, 4) "." substr(ENVIRON["VERSION"], 5) ".0.0", vsplit, ".")
+ }
print vsplit [1] "." vsplit [2] "." vsplit [3] "." vsplit [4]
}')]
echo "MONO_VERSION = $myver" >> $srcdir/$mcsdir/build/config.make
fi
+
+ # if we have an olive folder, override the default settings
+ if test -d $olivedir; then
+
+ test -w $srcdir/$olivedir/build || chmod +w $srcdir/$olivedir/build
+
+ if test x$cross_compiling = xno && test x$enable_olive_build != xno; then
+ echo "prefix=$prefix" > $srcdir/$olivedir/build/config.make
+ echo "exec_prefix=$exec_prefix" >> $srcdir/$olivedir/build/config.make
+ echo 'mono_libdir=${exec_prefix}/lib' >> $srcdir/$olivedir/build/config.make
+ echo 'MCS_FLAGS = $(PLATFORM_DEBUG_FLAGS)' >> $srcdir/$olivedir/build/config.make
+ echo "RUNTIME = $mono_build_root/runtime/mono-wrapper" >> $srcdir/$olivedir/build/config.make
+ echo "MONO_VERSION = $myver" >> $srcdir/$olivedir/build/config.make
+ if test x$with_moonlight = xyes; then
+ echo "WITH_MOONLIGHT = yes" >> $srcdir/$olivedir/build/config.make
+ fi
+ fi
+ fi
)
libgdiplus_msg=${libgdiplus_loc:-assumed to be installed}
echo "
- mcs source: $mcs_topdir
+ mcs source: $mcs_topdir
+ olive source: $olive_topdir
+
GC: $gc
TLS: $with_tls
SIGALTSTACK: $with_sigaltstack
Engine: $jit_status
- 2.0 Alpha: $PREVIEW
+ 2.0 Beta: $PREVIEW
+ 2.1 Alpha: $MOONLIGHT
JNI support: $jdk_headers_found
libgdiplus: $libgdiplus_msg
+ zlib: $zlib_msg
$disabled
"
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