2005-09-11 Zoltan Varga <vargaz@gmail.com>
[mono.git] / configure.in
index d4e146239b85661be99cbe777c1679d3d9034d2c..151c98c36f881e4e0d339d9f5c49111148a29f17 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.1.8)
+AM_INIT_AUTOMAKE(mono,1.1.9)
 AM_MAINTAINER_MODE
 
 AC_PROG_LN_S
@@ -25,6 +25,7 @@ dnl
 gc_headers=no
 gc=included
 use_included_gc=no
+libgc_configure_args=
 
 if test -d $srcdir/libgc ; then
   gc_default=included
@@ -54,12 +55,12 @@ case "$host" in
        *-*-mingw*|*-*-cygwin*)
                platform_win32=yes
                AC_DEFINE(PLATFORM_WIN32,1,[Platform is Win32])
-               CC="gcc -mno-cygwin -g"
+               if test "x$cross_compiling" = "xno"; then
+                       CC="gcc -mno-cygwin -g"
+                       # So libgc configure gets -mno-cygwin
+                       export CC
+               fi
                HOST_CC="gcc"
-               # So libgc configure gets -mno-cygwin
-               export CC
-# latest libgc already defines GC_WIN32_THREADS
-#              CPPFLAGS="$CPPFLAGS -DGC_WIN32_THREADS -DWIN32_THREADS"
                CPPFLAGS="$CPPFLAGS -DWIN32_THREADS -DFD_SETSIZE=1024"
                libdl=
                libgc_threads=win32
@@ -67,6 +68,8 @@ case "$host" in
                with_nptl=default
                with_sigaltstack=no
                LN_S=cp
+               # This forces libgc to use the DllMain based thread registration code on win32
+               libgc_configure_args="$libgc_configure_args --enable-win32-dllmain=yes"
                ;;
        *-*-*netbsd*)
                platform_win32=no
@@ -392,17 +395,19 @@ GLIB_REQUIRED_VERSION=1.3.11
 
 PKG_CHECK_MODULES(BASE_DEPENDENCIES, glib-2.0 >= $GLIB_REQUIRED_VERSION)
 
-GLIB_CFLAGS=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0`
-GLIB_LIBS=`$PKG_CONFIG --libs glib-2.0 gthread-2.0`
-GMODULE_CFLAGS=`$PKG_CONFIG --cflags gmodule-2.0`
-GMODULE_LIBS=`$PKG_CONFIG --libs gmodule-2.0`
+if test "x$cross_compiling" = "xno"; then
+   GLIB_CFLAGS=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0`
+   GLIB_LIBS=`$PKG_CONFIG --libs glib-2.0 gthread-2.0`
+   GMODULE_CFLAGS=`$PKG_CONFIG --cflags gmodule-2.0`
+   GMODULE_LIBS=`$PKG_CONFIG --libs gmodule-2.0`
+fi
 
 AC_SUBST(GLIB_CFLAGS)
 AC_SUBST(GLIB_LIBS)
 AC_SUBST(GMODULE_CFLAGS)
 AC_SUBST(GMODULE_LIBS)
 
-if test x$platform_win32 = xyes; then   
+if test x$platform_win32 = xyes -a x$cross_compiling = xno; then   
    AC_MSG_CHECKING(for cygwin glib2-dev package)
    if [ cygcheck --f /usr/lib/libglib-2.0.dll.a | grep -q glib2-devel ]; then
       AC_MSG_RESULT(found)
@@ -453,6 +458,11 @@ if test "x$enable_static" = "xno"; then
    with_static_mono=no
 fi
 
+if test "x$platform_win32" = "xyes"; then
+   # Boehm GC requires the runtime to be in its own dll
+   with_static_mono=no
+fi
+
 AM_CONDITIONAL(STATIC_MONO, test x$with_static_mono != xno)
 
 AC_ARG_ENABLE(minimal, [  --enable-minimal=LIST      drop support for LIST subsystems.
@@ -559,7 +569,7 @@ if test "x$large_heap" = "xyes"; then
 fi
 
 # tell libgc/configure about what we want
-ac_configure_args="$ac_configure_args --disable-embed-check --with-libgc-threads=$libgc_threads"
+ac_configure_args="$ac_configure_args --disable-embed-check --with-libgc-threads=$libgc_threads $libgc_configure_args"
 
 AM_CONDITIONAL(INCLUDED_LIBGC, test x$use_included_gc = xyes)
 AC_SUBST(LIBGC_CFLAGS)
@@ -1409,7 +1419,7 @@ case "$host" in
                jit_wanted=true
                LIBC="libc.so.6.1"
                AC_CHECK_LIB(unwind, _U_dyn_register, [], [AC_MSG_ERROR(library libunwind not found)])
-
+               libmono_ldflags="-lunwind"
                ;;
        sparc*-*-*)
                if test "x$ac_cv_sizeof_void_p" = "x8"; then
@@ -1470,12 +1480,12 @@ case "$host" in
                JIT_SUPPORTED=yes
                jit_wanted=true
                ;;
-       arm-*-linux-* | armv4l-*-linux-*)
+       arm*-linux-*)
                TARGET=ARM;
                arch_target=arm;
                ACCESS_UNALIGNED="no"
-               INTERP_SUPPORTED=yes
-               interp_wanted=true
+               JIT_SUPPORTED=yes
+               jit_wanted=true
                ;;
        s390-*-linux*)
                TARGET=S390;
@@ -1522,7 +1532,7 @@ if test x$JIT_SUPPORTED = xyes; then
       fi
    fi
 else
-   if $interp_wanted; then
+   if test x$interp_wanted = xtrue; then
       jit_status="interpreter"
    else
       AC_ERROR(No JIT or interpreter support available or selected.)
@@ -1589,8 +1599,8 @@ if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86"; then
                #
                rm -f conftest.c conftest.so conftest
                echo "static __thread int foo; void main () { foo = 5; }" > conftest.c
-               gcc -fPIC --shared -o conftest.so conftest.c > /dev/null 2>&1
-               gcc -o conftest conftest.so > /dev/null 2>&1
+               $CC -fPIC --shared -o conftest.so conftest.c > /dev/null 2>&1
+               $CC -o conftest conftest.so > /dev/null 2>&1
                if test ! -f conftest; then
                   AC_MSG_WARN([Disabling usage of __thread.]);
                   with_tls=pthread
@@ -1735,6 +1745,7 @@ AC_OUTPUT([
 Makefile
 mint.pc
 mono.pc
+dotnet.pc
 mono-uninstalled.pc
 scripts/mono-nunit.pc
 scripts/mono-find-provides
@@ -1784,6 +1795,11 @@ tools/locale-builder/Makefile
 runtime/Makefile
 ])
 
+if test x$platform_win32 = xyes; then
+   # Get rid of 'cyg' prefixes in library names
+   sed -e "s/\/cyg\//\/\//" libtool > libtool.new; mv libtool.new libtool; chmod 755 libtool
+fi
+
 (
   case $prefix in
   NONE) prefix=$ac_default_prefix ;;
@@ -1805,18 +1821,12 @@ runtime/Makefile
 
   export VERSION
   [myver=$($AWK 'BEGIN {
-    split (ENVIRON["VERSION"] ".0.0.0.0", vsplit, ".")
+    split (ENVIRON["VERSION"] ".0.0.0", vsplit, ".")
     print vsplit [1] "." vsplit [2] "." vsplit [3] "." vsplit [4]
   }')]
-  
-  cat > $srcdir/$mcsdir/build/common/MonoVersion.cs <<EOF
-//
-// This version number is generated from configure.in in the mono source tree.
-//
-using System.Reflection;
-
-[[assembly: AssemblyVersion("${myver}")]]
-EOF
+
+  # Generate Consts.cs
+  sed -e "s/@MONO_VERSION@/$myver/" $srcdir/$mcsdir/build/common/Consts.cs.in > $srcdir/$mcsdir/build/common/Consts.cs
 )
 
 libgdiplus_msg=${libgdiplus_loc:-assumed to be installed}