2005-10-18 Lluis Sanchez Gual <lluis@novell.com>
[mono.git] / configure.in
index 52da442527f1993c60ea0610326661feb2191bba..c2520a5d27529a3640a6150c50a2c5156accf97b 100644 (file)
@@ -253,6 +253,8 @@ AC_SUBST(CC_FOR_BUILD)
 AC_SUBST(HOST_CC)
 AC_SUBST(BUILD_EXEEXT)
 
+AM_CONDITIONAL(CROSS_COMPILING, [test x$cross_compiling = xyes])
+
 # Set STDC_HEADERS
 AC_HEADER_STDC
 AC_LIBTOOL_WIN32_DLL
@@ -350,6 +352,9 @@ fi
 mcs_topdir='$(top_srcdir)/'$mcsdir
 mcs_topdir_from_srcdir='$(top_builddir)/'$mcsdir
 
+## Maybe should also disable if mcsdir is invalid.  Let's punt the issue for now.
+AM_CONDITIONAL(BUILD_MCS, [test x$cross_compiling = xno])
+
 AC_SUBST([mcs_topdir])
 AC_SUBST([mcs_topdir_from_srcdir])
 
@@ -395,19 +400,17 @@ GLIB_REQUIRED_VERSION=1.3.11
 
 PKG_CHECK_MODULES(BASE_DEPENDENCIES, glib-2.0 >= $GLIB_REQUIRED_VERSION)
 
-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
+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`
 
 AC_SUBST(GLIB_CFLAGS)
 AC_SUBST(GLIB_LIBS)
 AC_SUBST(GMODULE_CFLAGS)
 AC_SUBST(GMODULE_LIBS)
 
-if test x$platform_win32 = xyes -a x$cross_compiling = xno; then   
+if test x$cross_compiling$platform_win32 = xnoyes; 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)
@@ -1480,7 +1483,7 @@ case "$host" in
                JIT_SUPPORTED=yes
                jit_wanted=true
                ;;
-       arm*-linux-*)
+       arm*-linux*)
                TARGET=ARM;
                arch_target=arm;
                ACCESS_UNALIGNED="no"
@@ -1798,6 +1801,10 @@ 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
+   # libtool seems to inherit -mno-cygwin from our CFLAGS, and uses it to compile its executable
+   # wrapper scripts which use exec(). gcc has no problem compiling+linking this, but the resulting
+   # executable doesn't work...
+   sed -e "s,-mno-cygwin,,g" libtool > libtool.new; mv libtool.new libtool; chmod 755 libtool
 fi
 
 (
@@ -1810,22 +1817,29 @@ fi
 
   test -w $srcdir/$mcsdir/build || chmod +w $srcdir/$mcsdir/build
 
-  echo "prefix=$prefix" > $srcdir/$mcsdir/build/config.make
-  echo "exec_prefix=$exec_prefix" >> $srcdir/$mcsdir/build/config.make
-  echo 'mono_libdir=${exec_prefix}/lib' >> $srcdir/$mcsdir/build/config.make
-  echo 'MCS_FLAGS = $(PLATFORM_DEBUG_FLAGS)' >> $srcdir/$mcsdir/build/config.make
-  echo 'IL_FLAGS = /debug' >> $srcdir/$mcsdir/build/config.make
-  echo "RUNTIME = $mono_build_root/runtime/mono-wrapper" >> $srcdir/$mcsdir/build/config.make
-  echo "ILDISASM = $mono_build_root/runtime/monodis-wrapper" >> $srcdir/$mcsdir/build/config.make
-  echo "INSTALL = $INSTALL" >> $srcdir/$mcsdir/build/config.make
-
-  export VERSION
-  [myver=$($AWK 'BEGIN {
-    split (ENVIRON["VERSION"] ".0.0.0", vsplit, ".")
-    print vsplit [1] "." vsplit [2] "." vsplit [3] "." vsplit [4]
-  }')]
-
-  echo "MONO_VERSION = $myver" >> $srcdir/$mcsdir/build/config.make
+  #
+  # If we are cross compiling, we don't build in the mcs/ tree.  Let us not clobber
+  # any existing config.make.  This allows people to share the same source tree
+  # with different build directories, one native and one cross
+  #
+  if test x$cross_compiling = xno; then
+    echo "prefix=$prefix" > $srcdir/$mcsdir/build/config.make
+    echo "exec_prefix=$exec_prefix" >> $srcdir/$mcsdir/build/config.make
+    echo 'mono_libdir=${exec_prefix}/lib' >> $srcdir/$mcsdir/build/config.make
+    echo 'MCS_FLAGS = $(PLATFORM_DEBUG_FLAGS)' >> $srcdir/$mcsdir/build/config.make
+    echo 'IL_FLAGS = /debug' >> $srcdir/$mcsdir/build/config.make
+    echo "RUNTIME = $mono_build_root/runtime/mono-wrapper" >> $srcdir/$mcsdir/build/config.make
+    echo "ILDISASM = $mono_build_root/runtime/monodis-wrapper" >> $srcdir/$mcsdir/build/config.make
+    echo "INSTALL = $INSTALL" >> $srcdir/$mcsdir/build/config.make
+
+    export VERSION
+    [myver=$($AWK 'BEGIN {
+      split (ENVIRON["VERSION"] ".0.0.0", vsplit, ".")
+      print vsplit [1] "." vsplit [2] "." vsplit [3] "." vsplit [4]
+    }')]
+
+    echo "MONO_VERSION = $myver" >> $srcdir/$mcsdir/build/config.make
+  fi
 )
 
 libgdiplus_msg=${libgdiplus_loc:-assumed to be installed}
@@ -1833,7 +1847,6 @@ libgdiplus_msg=${libgdiplus_loc:-assumed to be installed}
 echo "
         mcs source:  $mcs_topdir
        GC:          $gc
-       Globalization:     $enable_glob
        TLS:         $with_tls
        SIGALTSTACK: $with_sigaltstack
        Engine:      $jit_status