X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=configure.in;h=64395dd9b3915312cc9adf47deccb87f9ce8c13b;hb=6afb5a28764801b7046ac0dd33dba93daec18523;hp=224c3402862be6af4dd3cb0d1d5df46f44f8c995;hpb=f548941c65c82b318ccaca168a51e940e7d11a80;p=mono.git diff --git a/configure.in b/configure.in index 224c3402862..64395dd9b39 100644 --- a/configure.in +++ b/configure.in @@ -1,11 +1,23 @@ AC_INIT(README) AC_CANONICAL_SYSTEM + +# Gross hack to enable 'make dist' on automake 1.9+tar 1.14. +# The extra brackets are to foil regex-based scans. +m4_ifdef([_A][M_PROG_TAR],[_A][M_SET_OPTION([tar-ustar])]) + AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(mono,1.1.2.99) +AM_INIT_AUTOMAKE(mono,1.1.4) AM_MAINTAINER_MODE AC_PROG_LN_S +# In case of cygwin, override LN_S, irrespective of what it determines. +# The build uses cygwin, but the actual runtime doesn't. +case $host_os in +*cygwin* ) LN_S='cp -p';; +esac + + dnl dnl libgc checks dnl @@ -228,7 +240,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) +AC_CHECK_HEADERS(sys/filio.h sys/sockio.h netdb.h utime.h semaphore.h sys/un.h linux/rtc.h) AC_CHECK_HEADER(zlib.h, [have_zlib=yes], [have_zlib=no]) @@ -239,6 +251,18 @@ AC_CHECK_HEADERS(elf.h) # for mono/dis AC_CHECK_HEADERS(wchar.h) +AC_CHECK_HEADERS(ieeefp.h) +AC_MSG_CHECKING(for isinf) +AC_TRY_COMPILE([#include ], [ + int f = isinf (1); +], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_ISINF, 1, [isinf available]) +], [ + # We'll have to use signals + AC_MSG_RESULT(no) +]) + # not 64 bit clean in cross-compile AC_CHECK_SIZEOF(void *, 4) @@ -248,6 +272,18 @@ if test x"$GCC" = xyes; then WARN='-Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-cast-qual -Wcast-align -Wwrite-strings' # The runtime code does not respect ANSI C strict aliasing rules CFLAGS="$CFLAGS -fno-strict-aliasing" + + ORIG_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -Wdeclaration-after-statement" + AC_MSG_CHECKING(for -Wdeclaration-after-statement option to gcc) + AC_TRY_COMPILE([], [ + void main () { } + ], [ + AC_MSG_RESULT(yes) + ], [ + AC_MSG_RESULT(no) + CFLAGS=$ORIG_CFLAGS + ]) else # The Sun Forte compiler complains about inline functions that access static variables # so disable all inlining. @@ -358,15 +394,46 @@ fi AC_ARG_WITH(sigaltstack, [ --with-sigaltstack=yes,no enable/disable support for sigaltstack],[],[with_sigaltstack=no]) AC_ARG_WITH(static_mono, [ --with-static_mono=yes,no link mono statically to libmono (faster)],[],[with_static_mono=yes]) + +if test "x$enable_static" = "xno"; then + with_static_mono=no +fi + AM_CONDITIONAL(STATIC_MONO, test x$with_static_mono != xno) -# assembly bundle support, see metadata/make-bundle.pl for more info -AC_ARG_WITH(bundle, [ --with-bundle=bundle_template],[ - BUNDLE_FILE=$with_bundle - AC_SUBST(BUNDLE_FILE) - AC_DEFINE(WITH_BUNDLE) -],[with_bundle=no]) -AM_CONDITIONAL(WITH_BUNDLE, test x$with_bundle != xno) +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.], +[ + for feature in `echo "$enable_minimal" | sed -e "s/,/ /g"`; do + eval "mono_feature_disable_$feature='yes'" + AC_MSG_NOTICE([Disabled support for feature: $feature]) + done + disabled="Disabled: $enable_minimal" +],[]) + +if test "x$mono_feature_disable_aot" = "xyes"; then + AC_DEFINE(DISABLE_AOT, 1, [Disable AOT support]) +fi + +if test "x$mono_feature_disable_profiler" = "xyes"; then + AC_DEFINE(DISABLE_PROFILER, 1, [Disable default profiler support]) +fi + +if test "x$mono_feature_disable_decimal" = "xyes"; then + AC_DEFINE(DISABLE_DECIMAL, 1, [Disable System.Decimal support]) +fi + +if test "x$mono_feature_disable_pinvoke" = "xyes"; then + AC_DEFINE(DISABLE_PINVOKE, 1, [Disable P/Invoke support]) +fi + +if test "x$mono_feature_disable_debug" = "xyes"; then + AC_DEFINE(DISABLE_DEBUG, 1, [Disable runtime debugging support]) +fi + +if test "x$mono_feature_disable_reflection_emit" = "xyes"; then + AC_DEFINE(DISABLE_REFLECTION_EMIT, 1, [Disable reflection emit support]) +fi LIBGC_CFLAGS= LIBGC_LIBS= @@ -450,56 +517,15 @@ if test x$platform_win32 = xno; then dnl ****************************************************************** dnl *** Checks for the IKVM JNI interface library *** dnl ****************************************************************** - AC_ARG_WITH(ikvm-jni, [ --with-ikvm-jni=yes,no build the IKVM JNI interface library],[with_ikvm_jni=$withval],[with_ikvm_jni=yes]) - AC_ARG_WITH(jdk, [ --with-jdk=DIRECTORY Use JDK from DIRECTORY],[with_jdk_dir=$withval],[with_jdk_dir=]) - - ikvm_jni_dir= - if test x$with_ikvm_jni = xyes; then - AC_MSG_CHECKING([JDK headers]) - - if test x$with_jdk_dir = x; then - # Try JAVA_HOME variable - if test x$JAVA_HOME != x; then - with_jdk_dir=$JAVA_HOME - fi - fi - - jdk_platform= - if test -d $with_jdk_dir/include; then - jdk_headers_found=yes - - if test -d $with_jdk_dir/include/linux; then - jdk_platform=linux - else - if test -d $with_jdk_dir/include/solaris; then - jdk_platform=solaris - else - if test -f $with_jdk_dir/include/jni_md.h; then - # GNU Classpath sources - jdk_platform= - else - jdk_headers_found=no - fi - fi - fi - else - jdk_headers_found=no - fi - - if test x$jdk_headers_found = xyes; then - AC_MSG_RESULT($with_jdk_dir/include $with_jdk_dir/include/$jdk_platform) - else - AC_MSG_RESULT(not found) - fi + AC_ARG_WITH(ikvm-native, [ --with-ikvm-native=yes,no build the IKVM JNI interface library],[with_ikvm_native=$withval],[with_ikvm_native=yes]) - if test x$jdk_headers_found = xyes; then - ikvm_jni_dir=ikvm-jni - IKVM_JNI_CFLAGS="-I$with_jdk_dir/include -I$with_jdk_dir/include/$jdk_platform" - fi + ikvm_native_dir= + if test x$with_ikvm_native = xyes; then + ikvm_native_dir=ikvm-native + jdk_headers_found="IKVM Native" fi - AC_SUBST(ikvm_jni_dir) - AC_SUBST(IKVM_JNI_CFLAGS) + AC_SUBST(ikvm_native_dir) AC_CHECK_FUNCS(getgrgid_r) AC_CHECK_FUNCS(getgrnam_r) @@ -508,6 +534,7 @@ if test x$platform_win32 = xno; then AC_CHECK_FUNCS(getresuid) AC_CHECK_FUNCS(setresuid) AC_CHECK_FUNCS(kqueue) + AC_CHECK_FUNCS(backtrace_symbols) dnl ****************************************************************** dnl *** Check for large file support *** @@ -1027,15 +1054,27 @@ if test x$platform_win32 = xno; then dnl ********************************** dnl *** Checks for MonoPosixHelper *** dnl ********************************** - AC_CHECK_FUNCS(posix_fadvise) - AC_CHECK_FUNCS(posix_madvise) - AC_CHECK_FUNCS(posix_fallocate) + AC_CHECK_HEADERS(checklist.h) + AC_CHECK_HEADERS(fstab.h) + AC_CHECK_HEADERS(sys/sendfile.h) + AC_CHECK_HEADERS(sys/statvfs.h) + AC_CHECK_HEADERS(sys/vfstab.h) + AC_CHECK_FUNCS(getdomainname) + AC_CHECK_FUNCS(setdomainname) AC_CHECK_FUNCS(fgetgrent) AC_CHECK_FUNCS(fgetpwent) AC_CHECK_FUNCS(fgetpwent) - AC_CHECK_HEADERS(sys/sendfile.h) + AC_CHECK_FUNCS(getfsstat) + AC_CHECK_FUNCS(posix_fadvise) + AC_CHECK_FUNCS(posix_fallocate) + AC_CHECK_FUNCS(posix_madvise) + AC_CHECK_FUNCS(vsnprintf) AC_CHECK_FUNCS(sendfile) AC_CHECK_FUNCS(sethostid) + AC_CHECK_FUNCS(statfs) + AC_CHECK_FUNCS(fstatfs) + AC_CHECK_FUNCS(statvfs) + AC_CHECK_FUNCS(fstatvfs) AC_CHECK_FUNCS(stime) AC_CHECK_FUNCS(strerror_r) AC_CHECK_FUNCS(ttyname_r) @@ -1044,6 +1083,17 @@ if test x$platform_win32 = xno; then [struct dirent.d_off, struct dirent.d_reclen, struct dirent.d_type],,, [#include #include ]) + + dnl ********************************* + dnl *** Check for Console 2.0 I/O *** + dnl ********************************* + AC_CHECK_HEADERS([curses.h]) + AC_CHECK_HEADERS([term.h], [], [], + [#if HAVE_CURSES_H + #include + #endif + ]) + AC_CHECK_HEADERS([termios.h]) else jdk_headers_found=no AC_CHECK_LIB(ws2_32, main, LIBS="$LIBS -lws2_32", AC_ERROR(bad mingw install?)) @@ -1200,14 +1250,17 @@ fi # ICU_CFLAGS="" ICU_LIBS="" -enable_icu=no +enable_icu="no; default" -probe_icu=true +probe_icu=false AC_ARG_WITH(icu, [ --with-icu=yes/no], if test x$with_icu = xno; then probe_icu=false; AC_MSG_RESULT(Will not probe for ICU) fi + if test x$with_icu = xyes; then + probe_icu=true; + fi ) if $probe_icu; then @@ -1225,14 +1278,19 @@ fi AC_SUBST(ICU_CFLAGS) AC_SUBST(ICU_LIBS) +AC_ARG_ENABLE(nunit-tests, [ --enable-nunit-tests Run the nunit tests of the class library on 'make check']) +AM_CONDITIONAL(ENABLE_NUNIT_TESTS, [test x$enable_nunit_tests = xyes]) + TARGET="unknown" ACCESS_UNALIGNED="yes" JIT_SUPPORTED=no +INTERP_SUPPORTED=no LIBC="libc.so.6" INTL="libc.so.6" jit_wanted=false +interp_wanted=false case "$host" in # mips-sgi-irix5.* | mips-sgi-irix6.*) # TARGET=MIPS; @@ -1262,11 +1320,16 @@ case "$host" in LIBC="libc.so" INTL="libintl.so" jit_wanted=true + if test x"$GCC" = xyes; then + CFLAGS="$CFLAGS -Wno-cast-align" + fi ;; alpha*-*-linux* | alpha*-*-osf*) TARGET=ALPHA; ACCESS_UNALIGNED="no" JIT_SUPPORTED=no + INTERP_SUPPORTED=yes + interp_wanted=true arch_target=alpha; ;; # ia64-*-linux* | ia64-*-hpux*) @@ -1287,15 +1350,20 @@ case "$host" in arch_target=hppa; LIBC="libc.sl" ACCESS_UNALIGNED="no" + INTERP_SUPPORTED=yes + interp_wanted=true ;; hppa*linux*) TARGET=HPPA; arch_target=hppa; ACCESS_UNALIGNED="no" + INTERP_SUPPORTED=yes + interp_wanted=true ;; macppc-*-openbsd* | powerpc-*-linux* | powerpc-*-openbsd* | \ powerpc-*-sysv* | powerpc-*-darwin*) TARGET=POWERPC; + AC_DEFINE(MONO_ARCH_REGPARMS,1,[Architecture uses registers for Parameters]) arch_target=ppc; JIT_SUPPORTED=yes jit_wanted=true @@ -1304,15 +1372,19 @@ case "$host" in TARGET=ARM; arch_target=arm; ACCESS_UNALIGNED="no" + INTERP_SUPPORTED=yes + interp_wanted=true ;; s390-*-linux*) TARGET=S390; + AC_DEFINE(MONO_ARCH_REGPARMS,1,[Architecture uses registers for Parameters]) arch_target=s390; ACCESS_UNALIGNED="no" JIT_SUPPORTED=yes ;; s390x-*-linux*) TARGET=S390x; + AC_DEFINE(MONO_ARCH_REGPARMS,1,[Architecture uses registers for Parameters]) arch_target=s390x; ACCESS_UNALIGNED="no" JIT_SUPPORTED=yes @@ -1327,16 +1399,32 @@ AC_ARG_WITH(jit, [ --with-jit=yes,no If you want to build scripts that de fi ]) +AC_ARG_WITH(interp, [ --with-interp=yes,no If you want to build scripts that default to the interpreter],[ + if test x$withval = xyes; then + interp_wanted=true + else + interp_wanted=false + fi +]) + USEJIT=false if test x$JIT_SUPPORTED = xyes; then if $jit_wanted; then USEJIT=true jit_status="Building and using the JIT" else - jit_status="Building the JIT, defaulting to the interpreter" + if $interp_wanted; then + jit_status="Building the JIT, defaulting to the interpreter" + else + AC_ERROR(No JIT or interpreter support available or selected.) + fi fi else - jit_status="interpreter" + if $interp_wanted; then + jit_status="interpreter" + else + AC_ERROR(No JIT or interpreter support available or selected.) + fi fi AM_CONDITIONAL(USE_JIT, test x$USEJIT = xtrue) @@ -1448,6 +1536,7 @@ AM_CONDITIONAL(S390x, test x$TARGET = xS390x) AM_CONDITIONAL(HPPA, test x$TARGET = xHPPA) AM_CONDITIONAL(JIT_SUPPORTED, test x$JIT_SUPPORTED = xyes) +AM_CONDITIONAL(INTERP_SUPPORTED, test x$interp_wanted = xtrue) AM_CONDITIONAL(INCLUDED_LIBGC, test x$gc = xincluded) AC_SUBST(LIBC) @@ -1458,10 +1547,59 @@ AC_SUBST(CFLAGS) AC_SUBST(CPPFLAGS) AC_SUBST(LDFLAGS) +mono_build_root=`pwd` +AC_SUBST(mono_build_root) + +if test x$USEJIT = xtrue; then + mono_runtime=mono/mini/mono +else + mono_runtime=mono/interpreter/mint +fi +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 +else + mono_cfg_dir=$mono_cfg_root/etc +fi +AC_SUBST(mono_cfg_dir) + +AC_CONFIG_FILES([runtime/mono-wrapper],[chmod +x runtime/mono-wrapper]) + +AC_CONFIG_COMMANDS([runtime/etc/mono/1.0/machine.config], +[ depth=../../../.. + case $srcdir in + [\\/$]* | ?:[\\/]* ) reldir=$srcdir ;; + .) reldir=$depth ;; + *) reldir=$depth/$srcdir ;; + esac + $ac_aux_dir/install-sh -d runtime/etc/mono/1.0 + cd runtime/etc/mono/1.0 + rm -f machine.config + $LN_S $reldir/data/net_1_1/machine.config machine.config + cd $depth +],[LN_S='$LN_S']) + +AC_CONFIG_COMMANDS([runtime/etc/mono/2.0/machine.config], +[ depth=../../../.. + case $srcdir in + [\\/$]* | ?:[\\/]* ) reldir=$srcdir ;; + .) reldir=$depth ;; + *) reldir=$depth/$srcdir ;; + esac + $ac_aux_dir/install-sh -d runtime/etc/mono/2.0 + cd runtime/etc/mono/2.0 + rm -f machine.config + $LN_S $reldir/data/net_2_0/machine.config machine.config + cd $depth +],[LN_S='$LN_S']) + AC_OUTPUT([ Makefile mint.pc mono.pc +scripts/mono-nunit.pc mono/Makefile mono/utils/Makefile mono/metadata/Makefile @@ -1490,10 +1628,7 @@ mono/io-layer/Makefile mono/handles/Makefile mono/mini/Makefile mono/profiler/Makefile -ikvm-jni/Makefile -runtime/Makefile -runtime/net_1_1/Makefile -runtime/net_2_0/Makefile +ikvm-native/Makefile scripts/Makefile man/Makefile web/Makefile @@ -1507,8 +1642,21 @@ data/config mono.spec tools/Makefile tools/locale-builder/Makefile +runtime/Makefile ]) +( + case $prefix in + NONE) prefix=/usr/local ;; + esac + case $exec_prefix in + NONE | '${prefix}') exec_prefix=$prefix ;; + esac + + echo "prefix=$exec_prefix" > $srcdir/$mcsdir/build/config.make + echo 'MCS_FLAGS = $(PLATFORM_DEBUG_FLAGS)' >> $srcdir/$mcsdir/build/config.make +) + echo " mcs source: $mcs_topdir GC: $gc @@ -1518,5 +1666,6 @@ echo " Engine: $jit_status 2.0 Alpha: $PREVIEW JNI support: $jdk_headers_found + $disabled "