add support for ScriptMethodAttribute.XmlSerializeString
[mono.git] / configure.in
index 312f25b2f6b42c2a772d406815443bf05d72caf8..9a79bb93227c9fdd5c011e00ba68f63379d0ddf0 100644 (file)
@@ -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.2)
+AM_INIT_AUTOMAKE(mono,1.2.5)
 AM_MAINTAINER_MODE
 
 API_VER=1.0
@@ -44,12 +44,13 @@ 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}`
 AC_SUBST(reloc_libdir)
 
-
 dnl if linker handles the version script
 no_version_script=no
 
@@ -69,7 +70,7 @@ case "$host" in
                        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=
@@ -82,14 +83,15 @@ case "$host" in
                ;;
        *-*-*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
 #
@@ -220,6 +222,7 @@ case "$host" in
        *-*-darwin*)
                platform_win32=no
                CPPFLAGS="$CPPFLAGS -no-cpp-precomp -D_THREAD_SAFE -DGC_MACOSX_THREADS -DPLATFORM_MACOSX -DUSE_MMAP -DUSE_MUNMAP"
+               CPPFLAGS="$CPPFLAGS -DGetCurrentProcess=MonoGetCurrentProcess"
                libmono_cflags="-D_THREAD_SAFE"
                LDFLAGS="$LDFLAGS -pthread"
                libmono_ldflags="-pthread"
@@ -246,6 +249,7 @@ AM_CONDITIONAL(PLATFORM_WIN32, test x$platform_win32 = xyes)
 
 AC_CHECK_TOOL(CC, gcc, gcc)
 AC_PROG_CC
+AM_PROG_AS
 AM_PROG_CC_STDC
 AC_PROG_INSTALL
 AC_PROG_AWK
@@ -299,8 +303,26 @@ 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 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)
@@ -481,7 +503,7 @@ AC_ARG_WITH(tls, [  --with-tls=__thread,pthread       select Thread Local Storag
 
 # 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])
 
@@ -752,6 +774,8 @@ if test x$platform_win32 = xno; then
        AC_CHECK_FUNCS(mmap)
        AC_CHECK_FUNCS(madvise)
 
+       AC_CHECK_FUNCS(sched_setaffinity)
+
        dnl ******************************************************************
        dnl *** Check for large file support                               ***
        dnl *** (If we were using autoconf 2.50 we'd use AC_SYS_LARGEFILE) ***
@@ -879,20 +903,48 @@ if test x$platform_win32 = xno; then
        ])
 
        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)
@@ -1344,6 +1396,9 @@ if test x$platform_win32 = xno; then
                 #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>
@@ -1354,6 +1409,12 @@ if test x$platform_win32 = xno; then
                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 ***
@@ -1374,6 +1435,7 @@ else
        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?))
 
        dnl *********************************
@@ -1559,6 +1621,10 @@ case "$host" in
                  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")));
@@ -1572,7 +1638,6 @@ case "$host" in
                        # 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-*-*)
@@ -1606,7 +1671,6 @@ case "$host" in
                  *)
                        LIBC="libc.so"
                        INTL="libintl.so"
-                       libmono_ldflags="$libmono_ldflags $LIBS"
                esac
                jit_wanted=true
                if test x"$GCC" = xyes; then
@@ -1645,10 +1709,11 @@ case "$host" in
                ;;
        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*)
@@ -1857,13 +1922,23 @@ if test ${ACCESS_UNALIGNED} = no; then
 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)
@@ -1890,7 +1965,7 @@ AC_SUBST(INTL)
 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)
@@ -1960,6 +2035,20 @@ AC_CONFIG_COMMANDS([runtime/etc/mono/2.0/web.config],
     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
@@ -2017,6 +2106,7 @@ data/config
 tools/Makefile
 tools/locale-builder/Makefile
 runtime/Makefile
+msvc/Makefile
 ])
 
 if test x$platform_win32 = xyes; then
@@ -2077,9 +2167,11 @@ echo "
        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
 
 "
@@ -2087,10 +2179,6 @@ if test x$with_static_mono = xno -a "x$platform_win32" != "xyes"; then
    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