X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=configure.in;h=cda5b6a52b410f8ea1734601b0ec95d1084c7ddb;hb=98bcd46dd1b3d6ff5424a7e936012077934bdf81;hp=e9a1d8a3c83bc0e965d110a01255de9af93c4b02;hpb=894c114c4d66685243ae6185f58396cf8e434207;p=mono.git diff --git a/configure.in b/configure.in index e9a1d8a3c83..cda5b6a52b4 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.9) +AM_INIT_AUTOMAKE(mono,2.2) AM_MAINTAINER_MODE API_VER=1.0 @@ -49,8 +49,6 @@ libmono_cflags="" 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}` @@ -65,6 +63,7 @@ need_link_unlink=no # Thread configuration inspired by sleepycat's db AC_MSG_CHECKING([host platform characteristics]) libgc_threads=no +has_dtrace=no case "$host" in *-*-mingw*|*-*-cygwin*) platform_win32=yes @@ -77,8 +76,8 @@ case "$host" in HOST_CC="gcc" # Windows 2000 is required that includes Internet Explorer 5.01 CPPFLAGS="$CPPFLAGS -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0501 -D_UNICODE -DUNICODE -DWIN32_THREADS -DFD_SETSIZE=1024" - libmono_cflags="-mno-cygwin" - libmono_ldflags="-mno-cygwin" + libmono_cflags="-mno-cygwin -mms-bitfields -mwindows" + libmono_ldflags="-mno-cygwin -mms-bitfields -mwindows" libdl= libgc_threads=win32 gc_default=included @@ -99,60 +98,7 @@ case "$host" in libgc_threads=pthreads with_sigaltstack=no ;; -# these flags will work for all versions of -STABLE -# - *-*-*freebsd4*) - platform_win32=no - if test "x$PTHREAD_CFLAGS" = "x"; then - CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE -DGC_FREEBSD_THREADS" - libmono_cflags="-D_THREAD_SAFE" - else - CPPFLAGS="$CPPFLAGS $PTHREAD_CFLAGS -DGC_FREEBSD_THREADS" - libmono_cflags="$PTHREAD_CFLAGS" - fi - if test "x$PTHREAD_LIBS" = "x"; then - LDFLAGS="$LDFLAGS -pthread" - libmono_ldflags="-pthread" - else - LDFLAGS="$LDFLAGS $PTHREAD_LIBS" - libmono_ldflags="$PTHREAD_LIBS" - fi - CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD -DPLATFORM_BSD4" - need_link_unlink=yes - AC_DEFINE(PTHREAD_POINTER_ID, 1, [pthread_t is a pointer]) - libdl= - libgc_threads=pthreads -# TLS isn't implemented at all on 4-STABLE - with_tls=pthread - ;; - *-*-*freebsd5*) - platform_win32=no - if test "x$PTHREAD_CFLAGS" = "x"; then - CPPFLAGS="$CPPFLAGS -DGC_FREEBSD_THREADS" - libmono_cflags= - else - CPPFLAGS="$CPPFLAGS $PTHREAD_CFLAGS -DGC_FREEBSD_THREADS" - libmono_cflags="$PTHREAD_CFLAGS" - fi - if test "x$PTHREAD_LIBS" = "x"; then - LDFLAGS="$LDFLAGS -pthread" - libmono_ldflags="-pthread" - else - LDFLAGS="$LDFLAGS $PTHREAD_LIBS" - libmono_ldflags="$PTHREAD_LIBS" - fi - CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD -DPLATFORM_BSD5" - need_link_unlink=yes - AC_DEFINE(PTHREAD_POINTER_ID) - libdl= - with_sigaltstack=yes - libgc_threads=pthreads -# TLS is only partially implemented on 5-STABLE (compiler support -# but NOT library support) -# - with_tls=pthread - ;; - *-*-*freebsd6*) + *-*-*freebsd*) platform_win32=no if test "x$PTHREAD_CFLAGS" = "x"; then CPPFLAGS="$CPPFLAGS -DGC_FREEBSD_THREADS" @@ -168,9 +114,9 @@ case "$host" in LDFLAGS="$LDFLAGS $PTHREAD_LIBS" libmono_ldflags="$PTHREAD_LIBS" fi - CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD -DPLATFORM_BSD6" + CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD" need_link_unlink=yes - AC_DEFINE(PTHREAD_POINTER_ID) + AC_DEFINE(PTHREAD_POINTER_ID, 1, [pthread is a pointer]) libdl= libgc_threads=pthreads with_sigaltstack=yes @@ -224,6 +170,7 @@ case "$host" in libgc_threads=pthreads # This doesn't seem to work on solaris/x86, but the configure test runs with_tls=pthread + has_dtrace=yes ;; *-*-darwin*) platform_win32=no @@ -238,6 +185,7 @@ case "$host" in no_version_script=yes libdl= libgc_threads=pthreads + has_dtrace=yes if test "x$cross_compiling" = "xyes"; then has_broken_apple_cpp=yes fi @@ -293,6 +241,7 @@ AC_SUBST(HOST_CC) AC_SUBST(BUILD_EXEEXT) AM_CONDITIONAL(CROSS_COMPILING, [test x$cross_compiling = xyes]) +AM_CONDITIONAL(USE_BATCH_FILES, [test x$platform_win32 = xyes -a x$cross_compiling = xyes]) # Set STDC_HEADERS AC_HEADER_STDC @@ -300,10 +249,12 @@ AC_LIBTOOL_WIN32_DLL # This causes monodis to not link correctly #AC_DISABLE_FAST_INSTALL AM_PROG_LIBTOOL - # Use dolt (http://dolt.freedesktop.org/) instead of libtool for building. DOLT +export_ldflags=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` +AC_SUBST(export_ldflags) + # Test whenever ld supports -version-script AC_PROG_LD AC_PROG_LD_GNU @@ -314,6 +265,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 sys/utime.h semaphore.h sys/un.h linux/rtc.h sys/syscall.h sys/mkdev.h) +AC_CHECK_HEADERS(sys/user.h) AC_CHECK_HEADER(zlib.h, [have_zlib=yes], [have_zlib=no]) if test x$have_zlib = xyes; then @@ -349,17 +301,7 @@ AC_CHECK_HEADERS(syslog.h) # for mono/dis AC_CHECK_HEADERS(wchar.h) -case "$host" in - *-*-*freebsd6*) - AC_CHECK_HEADERS(ieeefp.h) - ;; - *-*-*freebsd*) - /* Only freebsd6 has a working ieeefp.h */ - ;; - *) - AC_CHECK_HEADERS(ieeefp.h) - ;; -esac +AC_CHECK_HEADERS(ieeefp.h) AC_MSG_CHECKING(for isinf) AC_TRY_LINK([#include ], [ int f = isinf (1); @@ -444,6 +386,10 @@ 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 + AC_ARG_WITH([libgdiplus], [ --with-libgdiplus=installed|sibling| Override the libgdiplus used for System.Drawing tests (defaults to NO)], [], [with_libgdiplus=installed]) @@ -492,9 +438,17 @@ embedded) AC_CONFIG_SUBDIRS(eglib) ;; system) + if test "x$cross_compiling" = "xyes"; then + pkg_config_path="$PKG_CONFIG_PATH" + unset PKG_CONFIG_PATH + fi BUILD_GLIB_CFLAGS=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0` BUILD_GLIB_LIBS=`$PKG_CONFIG --libs glib-2.0 gthread-2.0` - + if test "x$cross_compiling" = "xyes"; then + PKG_CONFIG_PATH=$pkg_config_path + export PKG_CONFIG_PATH + fi + ## Versions of dependencies GLIB_REQUIRED_VERSION=1.3.11 @@ -581,11 +535,13 @@ if test "x$with_xen_opt" = "xyes"; then ]) fi +AC_ARG_ENABLE(quiet-build, [ --enable-quiet-build Enable quiet runtime build], enable_quiet_build=$enableval, enable_quiet_build=yes) + DISABLED_FEATURES=none AC_ARG_ENABLE(minimal, [ --enable-minimal=LIST drop support for LIST subsystems. LIST is a comma-separated list from: aot, profiler, decimal, pinvoke, debug, - reflection_emit, large_code, logging, com, ssa, generics.], + reflection_emit, reflection_emit_save, large_code, logging, com, ssa, generics, attach, jit, simd.], [ for feature in `echo "$enable_minimal" | sed -e "s/,/ /g"`; do eval "mono_feature_disable_$feature='yes'" @@ -604,6 +560,7 @@ fi if test "x$mono_feature_disable_profiler" = "xyes"; then AC_DEFINE(DISABLE_PROFILER, 1, [Disable default profiler support]) fi +AM_CONDITIONAL(DISABLE_PROFILER, test x$mono_feature_disable_profiler = xyes) if test "x$mono_feature_disable_decimal" = "xyes"; then AC_DEFINE(DISABLE_DECIMAL, 1, [Disable System.Decimal support]) @@ -619,6 +576,11 @@ fi if test "x$mono_feature_disable_reflection_emit" = "xyes"; then AC_DEFINE(DISABLE_REFLECTION_EMIT, 1, [Disable reflection emit support]) + mono_feature_disable_reflection_emit_save=yes +fi + +if test "x$mono_feature_disable_reflection_emit_save" = "xyes"; then + AC_DEFINE(DISABLE_REFLECTION_EMIT_SAVE, 1, [Disable assembly saving support in reflection emit]) fi if test "x$mono_feature_disable_large_code" = "xyes"; then @@ -641,6 +603,20 @@ if test "x$mono_feature_disable_generics" = "xyes"; then AC_DEFINE(DISABLE_GENERICS, 1, [Disable generics support]) fi +if test "x$mono_feature_disable_attach" = "xyes"; then + AC_DEFINE(DISABLE_ATTACH, 1, [Disable agent attach support]) +fi + +if test "x$mono_feature_disable_jit" = "xyes"; then + AC_DEFINE(DISABLE_JIT, 1, [Disable the JIT, only full-aot mode will be supported by the runtime.]) +fi + +AM_CONDITIONAL(DISABLE_JIT, test x$mono_feature_disable_jit = xyes) + +if test "x$mono_feature_disable_simd" = "xyes"; then + AC_DEFINE(DISABLE_SIMD, 1, [Disable SIMD intrinsics related optimizations.]) +fi + AC_MSG_CHECKING(for visibility __attribute__) AC_TRY_COMPILE([], [ void __attribute__ ((visibility ("hidden"))) doit (void) {} @@ -653,6 +629,11 @@ AC_TRY_COMPILE([], [ AC_MSG_RESULT(no) ]) +AC_ARG_ENABLE(parallel-mark, [ --enable-parallel-mark Enables GC Parallel Marking]) +if test x$enable_parallel_mark = xyes; then + libgc_configure_args="$libgc_configure_args --enable-parallel-mark" +fi + LIBGC_CFLAGS= LIBGC_LIBS= LIBGC_STATIC_LIBS= @@ -707,7 +688,11 @@ case "x$gc" in # The included libgc contains GCJ support AC_DEFINE(HAVE_GC_GCJ_MALLOC, 1, [Have GC_gcj_malloc]) AC_DEFINE(HAVE_GC_ENABLE, 1, [Have GC_enable]) - AC_DEFINE_UNQUOTED(USED_GC_NAME, "Included Boehm (with typed GC)", [GC description]) + if test x$enable_parallel_mark = xyes; then + AC_DEFINE_UNQUOTED(USED_GC_NAME, "Included Boehm (with typed GC and Parallel Mark)", [GC description]) + else + AC_DEFINE_UNQUOTED(USED_GC_NAME, "Included Boehm (with typed GC)", [GC description]) + fi ;; xsgen) @@ -1040,7 +1025,7 @@ if test x$platform_win32 = xno; then dnl *********************************************** # AC_CHECK_SIZEOF can't cope with struct members :-( AC_MSG_CHECKING(size of sockaddr_un.sun_path) - AC_CACHE_VAL(cv_mono_sizeof_sunpath, + AC_CACHE_VAL(mono_cv_sizeof_sunpath, [AC_TRY_RUN([ #include #include @@ -1053,11 +1038,11 @@ if test x$platform_win32 = xno; then fprintf(f, "%d\n", sizeof(sock_un.sun_path)); exit(0); } - ], cv_mono_sizeof_sunpath=`cat conftestval`, - cv_mono_sizeof_sunpath=0, - cv_mono_sizeof_sunpath=0)])dnl - AC_MSG_RESULT($cv_mono_sizeof_sunpath) - AC_DEFINE_UNQUOTED(MONO_SIZEOF_SUNPATH, $cv_mono_sizeof_sunpath, [Sizeof sock_un.sun_path]) + ], mono_cv_sizeof_sunpath=`cat conftestval`, + mono_cv_sizeof_sunpath=0, + mono_cv_sizeof_sunpath=0)])dnl + AC_MSG_RESULT($mono_cv_sizeof_sunpath) + AC_DEFINE_UNQUOTED(MONO_SIZEOF_SUNPATH, $mono_cv_sizeof_sunpath, [Sizeof sock_un.sun_path]) dnl ************************************* dnl *** Checks for zero length arrays *** @@ -1105,13 +1090,7 @@ if test x$platform_win32 = xno; then # and libpthread does not exist # case "${host}" in - *-*-*freebsd4*) - AC_CHECK_LIB(pthread, main, LIBS="$LIBS -pthread") - ;; - *-*-*freebsd5*) - AC_CHECK_LIB(pthread, main, LIBS="$LIBS -pthread") - ;; - *-*-*freebsd6*) + *-*-*freebsd*) AC_CHECK_LIB(pthread, main, LIBS="$LIBS -pthread") ;; *) @@ -1289,6 +1268,9 @@ if test x$platform_win32 = xno; then # pthread (first!) on Linux AC_SEARCH_LIBS(sem_init, pthread rt posix4) + AC_SEARCH_LIBS(shm_open, pthread rt posix4) + AC_CHECK_FUNCS(shm_open) + dnl ******************************** dnl *** Checks for timezone stuff ** dnl ******************************** @@ -1458,12 +1440,17 @@ if test x$platform_win32 = xno; then #include ]) AC_CHECK_TYPES([suseconds_t], [AC_DEFINE(HAVE_SUSECONDS_T)], , [#include ]) + AC_CHECK_TYPES([struct flock], [AC_DEFINE(HAVE_STRUCT_FLOCK)], , + [#include + #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 timespec], [AC_DEFINE(HAVE_STRUCT_TIMESPEC)], , + [#include ]) AC_CHECK_TYPES([struct timeval], [AC_DEFINE(HAVE_STRUCT_TIMEVAL)], , [#include #include @@ -1484,11 +1471,20 @@ if test x$platform_win32 = xno; then ) AC_SUBST(XATTR_LIB) + dnl kinfo_proc.kp_proc works on darwin but fails on other simil-bsds + AC_CHECK_MEMBERS( + [struct kinfo_proc.kp_proc],,, + [#include + #include + #include + ]) + dnl ********************************* dnl *** Checks for Windows compilation *** dnl ********************************* AC_CHECK_HEADERS(sys/time.h) AC_CHECK_HEADERS(sys/param.h) + AC_CHECK_HEADERS(dirent.h) dnl ********************************* dnl *** Check for Console 2.0 I/O *** @@ -1586,6 +1582,9 @@ if test "x$ac_cv_truncl" != "xyes"; then AC_CHECK_LIB(sunmath, aintl, [ AC_DEFINE(HAVE_AINTL, 1, [Has the 'aintl' function]) LIBS="$LIBS -lsunmath"]) fi +AC_CHECK_FUNCS(round) +AC_CHECK_FUNCS(rint) + dnl **************************** dnl *** Look for /dev/random *** dnl **************************** @@ -1671,21 +1670,35 @@ AM_CONDITIONAL(ENABLE_NUNIT_TESTS, [test x$enable_nunit_tests = xyes]) 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) -AC_MSG_RESULT($enable_big_arrays) if test "x$enable_big_arrays" = "xyes" ; then + if test "x$ac_cv_sizeof_void_p" = "x8"; then AC_DEFINE(MONO_BIG_ARRAYS,1,[Enable the allocation and indexing of arrays greater than Int32.MaxValue]) + else + AC_MSG_ERROR([The allocation and indexing of arrays greater than Int32.MaxValue is not supported on this platform.]) + fi +fi +AC_MSG_RESULT($enable_big_arrays) + +dnl ************** +dnl *** DTRACE *** +dnl ************** + +AC_ARG_ENABLE(dtrace,[ --enable-dtrace Enable DTrace probes], enable_dtrace=$enableval, enable_dtrace=$has_dtrace) + +if test "x$enable_dtrace" = "xyes"; then + if test "x$has_dtrace" = "xno"; then + AC_MSG_ERROR([DTrace probes are not supported on this platform.]) + fi + AC_PATH_PROG(DTRACE, [dtrace], [no], [$PATH:/usr/sbin]) + if test "x$DTRACE" = "xno"; then + AC_MSG_RESULT([dtrace utility not found, dtrace support disabled.]) + enable_dtrace=no + fi fi -AC_MSG_CHECKING([if DTrace support is requested]) -AC_ARG_ENABLE(dtrace,[ --enable-dtrace Enable DTrace probes], enable_dtrace=$enableval, enable_dtrace=no) -AC_MSG_RESULT($enable_dtrace) dtrace_g=no if test "x$enable_dtrace" = "xyes"; then AC_DEFINE(ENABLE_DTRACE, 1, [Enable DTrace probes]) - AC_PATH_PROG(DTRACE, [dtrace], [no], [$PATH:/usr/sbin]) - if test "x$DTRACE" = "xno"; then - AC_MSG_FAILURE([DTrace requested but not found]) - fi DTRACEFLAGS= if test "x$ac_cv_sizeof_void_p" = "x8"; then case "$host" in @@ -2104,6 +2117,14 @@ AC_ARG_WITH(oprofile,[ --with-oprofile=no, Enable oprofile support (defa fi ]) +MALLOC_MEMPOOLS=no +AC_ARG_WITH(malloc_mempools,[ --with-malloc-mempools=yes,no Use malloc for each single mempool allocation (only for runtime debugging, defaults to NO)],[ + if test x$with_malloc_mempools = xyes; then + MALLOC_MEMPOOLS=yes + AC_DEFINE(USE_MALLOC_FOR_MEMPOOLS,1,[Use malloc for each single mempool allocation]) + fi +]) + AM_CONDITIONAL(HAVE_OPROFILE, test x$OPROFILE = xyes) AC_SUBST(OPROFILE_CFLAGS) AC_SUBST(OPROFILE_LIBS) @@ -2157,12 +2178,18 @@ AC_SUBST(mono_runtime) mono_cfg_root=$mono_build_root/runtime if test x$platform_win32 = xyes; then - mono_cfg_dir=`cygpath -w -a $mono_cfg_root`\\etc + if test "x$cross_compiling" = "xno"; then + mono_cfg_dir=`cygpath -w -a $mono_cfg_root`\\etc + else + mono_cfg_dir=`echo $mono_cfg_root | tr '/' '\\\'`\\etc + fi else mono_cfg_dir=$mono_cfg_root/etc fi AC_SUBST(mono_cfg_dir) +AC_CONFIG_FILES([po/mcs/Makefile.in]) + AC_CONFIG_FILES([runtime/mono-wrapper],[chmod +x runtime/mono-wrapper]) AC_CONFIG_FILES([runtime/monodis-wrapper],[chmod +x runtime/monodis-wrapper]) @@ -2236,10 +2263,14 @@ AC_CONFIG_COMMANDS([runtime/etc/mono/2.0/Browsers/Compat.browser], cd $depth ],[LN_S='$LN_S']) +if test x$enable_quiet_build = xyes; then + AC_CONFIG_COMMANDS([quiet], [for i in `find mono libgc support -name Makefile.in | sed -e 's/Makefile.in/Makefile/g'`; do $srcdir/scripts/patch-quiet.sh $i; done], [shell=$SHELL]) + AC_CONFIG_COMMANDS([quiet-libtool], [sed -e 's/$echo "copying selected/$show "copying selected/g' < libtool > libtool.tmp && mv libtool.tmp libtool && chmod a+x libtool]) +fi + AC_OUTPUT([ Makefile mono-uninstalled.pc -scripts/mono-nunit.pc scripts/mono-find-provides scripts/mono-find-requires mono/Makefile @@ -2288,10 +2319,16 @@ data/net_2_0/Browsers/Makefile data/mint.pc data/mono.pc data/mono-cairo.pc +data/mono-nunit.pc +data/mono-options.pc +data/mono-lineeditor.pc +data/monodoc.pc data/dotnet.pc data/dotnet35.pc +data/wcf.pc data/cecil.pc data/smcs.pc +data/system.web.extensions_1.0.pc samples/Makefile support/Makefile data/config @@ -2299,6 +2336,7 @@ tools/Makefile tools/locale-builder/Makefile runtime/Makefile msvc/Makefile +po/Makefile ]) if test x$platform_win32 = xyes; then @@ -2389,6 +2427,7 @@ echo " zlib: $zlib_msg oprofile: $OPROFILE BigArrays: $enable_big_arrays + DTrace: $enable_dtrace $disabled "