# Process this file with autoconf to produce a configure script.
#AC_PREREQ([2.62])
-AC_INIT(mono, [3.99.0],
+AC_INIT(mono, [4.1.0],
[http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono])
AC_CONFIG_SRCDIR([README.md])
reloc_libdir=`basename ${libdir}`
AC_SUBST(reloc_libdir)
-dnl if linker handles the version script
-no_version_script=no
-
# Set to yes if Unix sockets cannot be created in an anonymous namespace
need_link_unlink=no
platform_darwin=no
case "$host" in
*-mingw*|*-*-cygwin*)
- AC_DEFINE(HOST_WIN32,1,[Host Platform is Win32])
AC_DEFINE(DISABLE_PORTABILITY,1,[Disable the io-portability layer])
AC_DEFINE(PLATFORM_NO_SYMLINKS,1,[This platform does not support symlinks])
host_win32=yes
mono_cv_clang=no
if test "x$cross_compiling" = "xno"; then
- target_win32=yes
if test "x$host" == "x$build" -a "x$host" == "x$target"; then
- AC_DEFINE(TARGET_WIN32,1,[Target OS is Win32])
+ target_win32=yes
fi
else
target_win32=yes
- AC_DEFINE(TARGET_WIN32,1,[Target OS is Win32/MinGW])
- AC_DEFINE(MINGW_CROSS_COMPILE,1,[Cross-compiling using MinGW])
fi
HOST_CC="gcc"
- # Windows XP SP2 is required
- CPPFLAGS="$CPPFLAGS -DWINVER=0x0502 -D_WIN32_WINNT=0x0502 -D_WIN32_IE=0x0501 -D_UNICODE -DUNICODE -DWIN32_THREADS -DFD_SETSIZE=1024"
+ # Windows Vista or later is required
+ CPPFLAGS="$CPPFLAGS -DWINVER=0x0600 -D_WIN32_WINNT=0x0600 -D_WIN32_IE=0x0501 -D_UNICODE -DUNICODE -DWIN32_THREADS -DFD_SETSIZE=1024"
LDFLAGS="$LDFLAGS -lmswsock -lws2_32 -lole32 -loleaut32 -lpsapi -lversion -ladvapi32 -lwinmm -lkernel32 -liphlpapi"
libmono_cflags="-mms-bitfields -mwindows"
libmono_ldflags="-mms-bitfields -mwindows"
need_link_unlink=yes
AC_DEFINE(PTHREAD_POINTER_ID)
AC_DEFINE(USE_MACH_SEMA, 1, [...])
- no_version_script=yes
libdl=
libgc_threads=pthreads
has_dtrace=yes
AC_DEFINE(NEED_LINK_UNLINK, 1, [Define if Unix sockets cannot be created in an anonymous namespace])
fi
+if test x$host_win32 = xyes; then
+ AC_DEFINE(HOST_WIN32, 1, [Host Platform is Win32])
+fi
+
+if test x$target_win32 = xyes; then
+ AC_DEFINE(TARGET_WIN32, 1, [Target Platform is Win32])
+fi
+
AC_SUBST(extra_runtime_ldflags)
AM_CONDITIONAL(HOST_WIN32, test x$host_win32 = xyes)
AM_CONDITIONAL(TARGET_WIN32, test x$target_win32 = xyes)
# Test whenever ld supports -version-script
AC_PROG_LD
AC_PROG_LD_GNU
-if test "x$lt_cv_prog_gnu_ld" = "xno"; then
- no_version_script=yes
-fi
AM_ICONV()
-AM_CONDITIONAL(NO_VERSION_SCRIPT, test x$no_version_script = xyes)
-
AC_CHECK_HEADERS(sys/filio.h sys/sockio.h netdb.h utime.h sys/utime.h semaphore.h sys/un.h linux/rtc.h sys/syscall.h sys/mkdev.h sys/uio.h sys/param.h sys/sysctl.h libproc.h)
-AC_CHECK_HEADERS(sys/param.h sys/socket.h sys/ipc.h sys/sem.h sys/utsname.h alloca.h ucontext.h pwd.h sys/select.h netinet/tcp.h netinet/in.h unistd.h sys/types.h link.h asm/sigcontext.h sys/inotify.h arpa/inet.h)
+AC_CHECK_HEADERS(sys/param.h sys/socket.h sys/ipc.h sys/sem.h sys/utsname.h alloca.h ucontext.h pwd.h sys/select.h netinet/tcp.h netinet/in.h unistd.h sys/types.h link.h asm/sigcontext.h sys/inotify.h arpa/inet.h complex.h)
AC_CHECK_HEADERS([linux/netlink.h linux/rtnetlink.h],
[], [], [#include <stddef.h>
#include <sys/socket.h>
#endif
])
+AC_CHECK_HEADERS(linux/serial.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>], [
[])
])
+AC_ARG_ENABLE(visiblity-hidden,
+[ --disable-visibility-hidden disable usage of -fvisiblity=hidden]
+ disable_visibility_hidden=no, disable_visibility_hidden=yes)
+
WARN=''
if test x"$GCC" = xyes; then
WARN='-Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-cast-qual -Wwrite-strings -Wno-switch -Wno-switch-enum -Wno-unused-value'
# We rely on signed overflow to behave
CFLAGS="$CFLAGS -fwrapv"
- # Don't export any symbols by default
- CFLAGS="$CFLAGS -fvisibility=hidden"
- CFLAGS_FOR_EGLIB="$CFLAGS_FOR_EGLIB -fvisibility=hidden"
- CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
-
- ORIG_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS -Wdeclaration-after-statement"
- AC_MSG_CHECKING(for -Wdeclaration-after-statement option to gcc)
- AC_TRY_COMPILE([],[
- return 0;
- ], [
- AC_MSG_RESULT(yes)
- ], [
- AC_MSG_RESULT(no)
- CFLAGS=$ORIG_CFLAGS
- ])
+ CFLAGS="$CFLAGS -DMONO_DLL_EXPORT"
+ if test x"$disable_visibility_hidden" = xno; then
+ # Don't export any symbols by default
+ SHARED_CFLAGS="-fvisibility=hidden"
+ CFLAGS_FOR_EGLIB="$CFLAGS_FOR_EGLIB -fvisibility=hidden"
+ CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
+ fi
ORIG_CFLAGS=$CFLAGS
# Check for the normal version, since gcc ignores unknown -Wno options
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
-
# gettext: prepare the translation directories.
# we do not configure the full gettext, as we consume it dynamically from C#
AM_PO_SUBDIRS
WERROR_CFLAGS="-Werror"
fi
AC_SUBST([WERROR_CFLAGS])
+AC_SUBST([SHARED_CFLAGS])
ac_configure_args="$ac_configure_args \"CPPFLAGS_FOR_EGLIB=$EGLIB_CPPFLAGS\" \"CFLAGS_FOR_EGLIB=$CFLAGS_FOR_EGLIB\""
AC_CONFIG_SUBDIRS(eglib)
AC_DEFINE(ENABLE_GSHAREDVT,1,[Gsharing])
fi
+# A synonym
+AC_ARG_ENABLE(gsharedvt, [ --enable-gsharedvt Enable generic valuetype sharing], enable_gsharedvt=$enableval, enable_gsharedvt=no)
+if test x$enable_gsharedvt = xyes; then
+ AC_DEFINE(ENABLE_GSHAREDVT,1,[Gsharedvt])
+fi
+
AC_ARG_ENABLE(native-types, [ --enable-native-types Enable native types], enable_native_types=$enableval, enable_native_types=no)
if test x$enable_native_types = xyes; then
AC_DEFINE(MONO_NATIVE_TYPES,1,[native types])
AC_MSG_RESULT(no)
])
+ dnl **********************************
+ dnl *** Check for inet_pton ***
+ dnl **********************************
+ AC_MSG_CHECKING(for inet_pton)
+ AC_TRY_LINK([
+ #include <stdio.h>
+ #include <winsock2.h>
+ #include <ws2tcpip.h>
+ ], [
+ inet_pton (0, NULL, NULL);
+ ], [
+ # Yes, we have it...
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_INET_PTON, 1, [Have inet_pton])
+ ], [
+ AC_MSG_RESULT(no)
+ ])
+
AC_CHECK_DECLS(InterlockedExchange64, [], [], [[#include <windows.h>]])
AC_CHECK_DECLS(InterlockedCompareExchange64, [], [], [[#include <windows.h>]])
AC_CHECK_DECLS(InterlockedDecrement64, [], [], [[#include <windows.h>]])
AC_ARG_ENABLE(bcl-opt, [ --disable-bcl-opt BCL is compiled with no optimizations (allows accurate BCL debugging)], test_bcl_opt=$enableval, test_bcl_opt=yes)
+AC_ARG_ENABLE(perf-events, [ --enable-perf-events Enable using `perf` for profiling on Linux], test_perf_events=$enableval, test_perf_events=no)
+if test "x$test_perf_events" == "xyes"; then
+ AC_DEFINE(ENABLE_PERF_EVENTS, 1, [Enable using `perf` for profiling on Linux])
+ AC_SUBST(ENABLE_PERF_EVENTS)
+fi
+
AC_MSG_CHECKING([if big-arrays are to be enabled])
AC_ARG_ENABLE(big-arrays, [ --enable-big-arrays Enable the allocation and indexing of arrays greater than Int32.MaxValue], enable_big_arrays=$enableval, enable_big_arrays=no)
if test "x$enable_big_arrays" = "xyes" ; then
with_tls=pthread
target_mach=no
;;
+ x86_64-ps4-freebsd)
+ TARGET=AMD64;
+ arch_target=amd64;
+ AC_DEFINE(TARGET_AMD64, 1, [...])
+ AC_DEFINE(TARGET_PS4, 1, [...])
+ CPPFLAGS="$CPPFLAGS"
+ sgen_supported=true
+ # Can't use tls, since it depends on the runtime detection of tls offsets
+ # in mono-compiler.h
+ with_tls=pthread
+ target_mach=no
+ target_win32=no
+ ;;
aarch64*-linux-*)
TARGET=ARM64;
arch_target=arm64;
fi
], [with_lazy_gc_thread_creation=no])
+AC_ARG_WITH(cooperative_gc, [ --with-cooperative-gc=yes|no Enable cooperative stop-the-world garbage collection (sgen only) (defaults to no)],[
+ if test x$with_cooperative_gc != xno ; then
+ AC_DEFINE(USE_COOP_GC,1,[Enable cooperative stop-the-world garbage collection.])
+ fi
+], [with_cooperative_gc=no])
+
AC_CHECK_HEADER([malloc.h],
[AC_DEFINE([HAVE_USR_INCLUDE_MALLOC_H], [1],
[Define to 1 if you have /usr/include/malloc.h.])],,)
],[LN_S='$LN_S'])
AC_CONFIG_COMMANDS([quiet-libtool], [sed -e 's/echo "copying selected/# "copying selected/g' < libtool > libtool.tmp && mv libtool.tmp libtool && chmod a+x libtool; sed -e 's/$ECHO "copying selected/# "copying selected/g' < libtool > libtool.tmp && mv libtool.tmp libtool && chmod a+x libtool])
+AC_CONFIG_COMMANDS([nolock-libtool], [sed -e 's/lock_old_archive_extraction=yes/lock_old_archive_extraction=no/g' < libtool > libtool.tmp && mv libtool.tmp libtool && chmod a+x libtool])
AC_OUTPUT([
Makefile
-mono-core.spec
mono-uninstalled.pc
scripts/mono-find-provides
scripts/mono-find-requires
fi
- # if we have an olive folder, override the default settings
- if test -d $olivedir; then
-
- if test x$cross_compiling = xno && test x$enable_olive_build != xno; then
-
- test -w $srcdir/$olivedir/build || chmod +w $srcdir/$olivedir/build
-
- 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
- fi
- fi
-
)
libgdiplus_msg=${libgdiplus_loc:-assumed to be installed}