2005-01-23 Miguel de Icaza <miguel@ximian.com>
[mono.git] / configure.in
index edad1e9c0af738d776287199b21dc941fed67a3c..0b6b84b2a11be39c72d44e06cbb8730380f7dc5c 100644 (file)
@@ -1,7 +1,12 @@
 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.3)
 AM_MAINTAINER_MODE
 
 AC_PROG_LN_S
@@ -235,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])
 
@@ -246,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 <math.h>], [
+       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)
@@ -379,6 +396,7 @@ AC_ARG_ENABLE(minimal, [  --enable-minimal=LIST      drop support for LIST subsy
                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
@@ -487,56 +505,14 @@ 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
+       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
-                       AC_MSG_RESULT($with_jdk_dir/include $with_jdk_dir/include/$jdk_platform)
-               else
-                       AC_MSG_RESULT(not found)
-               fi
-
-               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
        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)
@@ -545,6 +521,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                               ***
@@ -1064,15 +1041,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)
@@ -1272,10 +1261,12 @@ 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;
@@ -1305,11 +1296,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*)
@@ -1330,11 +1326,15 @@ 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*)
@@ -1348,6 +1348,8 @@ case "$host" in
                TARGET=ARM;
                arch_target=arm;
                ACCESS_UNALIGNED="no"
+               INTERP_SUPPORTED=yes
+               interp_wanted=true
                ;;
        s390-*-linux*)
                TARGET=S390;
@@ -1373,16 +1375,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)
@@ -1494,6 +1512,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)
@@ -1556,6 +1575,7 @@ AC_OUTPUT([
 Makefile
 mint.pc
 mono.pc
+scripts/mono-nunit.pc
 mono/Makefile
 mono/utils/Makefile
 mono/metadata/Makefile
@@ -1584,7 +1604,7 @@ mono/io-layer/Makefile
 mono/handles/Makefile
 mono/mini/Makefile
 mono/profiler/Makefile
-ikvm-jni/Makefile
+ikvm-native/Makefile
 scripts/Makefile
 man/Makefile
 web/Makefile
@@ -1601,6 +1621,18 @@ 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
@@ -1610,6 +1642,6 @@ echo "
        Engine:      $jit_status
        2.0 Alpha:   $PREVIEW
        JNI support: $jdk_headers_found
-       Disabled:    $enable_minimal
+       $disabled
 
 "