merge -r 53980:53981
[mono.git] / configure.in
index b26e88fe160e6d667122667c8536227d36046aa4..fa83802daf358f45b24c775f2ea75c5859d092f4 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.9)
+AM_INIT_AUTOMAKE(mono,1.1.10)
 AM_MAINTAINER_MODE
 
 AC_PROG_LN_S
@@ -42,6 +42,11 @@ libmono_ldflags=""
 AC_SUBST(libmono_cflags)
 AC_SUBST(libmono_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
 
@@ -253,6 +258,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 +357,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 +405,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)
@@ -596,6 +604,8 @@ if test x$platform_win32 = xno; then
 
        AC_SUBST(ikvm_native_dir)
 
+       AC_CHECK_HEADERS(execinfo.h)
+
        AC_CHECK_FUNCS(getgrgid_r)
        AC_CHECK_FUNCS(getgrnam_r)
        AC_CHECK_FUNCS(getpwnam_r)
@@ -1798,6 +1808,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 +1824,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 +1854,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