2008-08-05 Marek Habersack <mhabersack@novell.com>
authorMarek Habersack <grendel@twistedcode.net>
Tue, 5 Aug 2008 12:13:51 +0000 (12:13 -0000)
committerMarek Habersack <grendel@twistedcode.net>
Tue, 5 Aug 2008 12:13:51 +0000 (12:13 -0000)
* configure.in: added support for cross-compilation

2008-08-05  Marek Habersack  <mhabersack@novell.com>

* build-mingw32.sh: added a script to build Mono for Windows on a
Linux host using mingw.

2008-08-05  Marek Habersack  <mhabersack@novell.com>

* scripts/Makefile.am: added support for cross-compilation,
including .bat generation for windows targets.

2008-08-05  Marek Habersack  <mhabersack@novell.com>

* scripts/smcs.bat.in, scripts/script.bat.in,
scripts/script_umask.bat.in: added .bat templates.

2008-08-05  Marek Habersack  <mhabersack@novell.com>

* runtime/Makefile.am: mingw cross-compilation support.

2008-08-05  Marek Habersack  <mhabersack@novell.com>

* Makefile.am (GENMDESC_PRG): when cross-compiling use full path
to the genmdesc.pl file

2008-08-05  Marek Habersack  <mhabersack@novell.com>

* Makefile.am: added support for cross-compilation

svn path=/trunk/mono/; revision=109671

12 files changed:
ChangeLog
build-mingw32.sh [new file with mode: 0755]
configure.in
mono/metadata/ChangeLog
mono/metadata/Makefile.am
mono/mini/ChangeLog
mono/mini/Makefile.am
runtime/Makefile.am
scripts/Makefile.am
scripts/script.bat.in [new file with mode: 0644]
scripts/script_umask.bat.in [new file with mode: 0644]
scripts/smcs.bat.in [new file with mode: 0644]

index 1d9efbda4d2f41617370e51dedcb792dd594f5fb..bc146f18c5c1521527605e64449137cb2f1c6830 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,26 @@
+2008-08-05  Marek Habersack  <mhabersack@novell.com>
+
+       * configure.in: added support for cross-compilation
+
+2008-08-05  Marek Habersack  <mhabersack@novell.com>
+
+       * build-mingw32.sh: added a script to build Mono for Windows on a
+       Linux host using mingw.
+
+2008-08-05  Marek Habersack  <mhabersack@novell.com>
+
+       * scripts/Makefile.am: added support for cross-compilation,
+       including .bat generation for windows targets.
+
+2008-08-05  Marek Habersack  <mhabersack@novell.com>
+
+       * scripts/smcs.bat.in, scripts/script.bat.in,
+       scripts/script_umask.bat.in: added .bat templates.
+
+2008-08-05  Marek Habersack  <mhabersack@novell.com>
+
+       * runtime/Makefile.am: mingw cross-compilation support.
+
 2008-08-05  Andreas Färber  <andreas.faerber@web.de>
 
        * autogen.sh: Suppress arguments warning for NOCONFIGURE.
diff --git a/build-mingw32.sh b/build-mingw32.sh
new file mode 100755 (executable)
index 0000000..200c5fa
--- /dev/null
@@ -0,0 +1,110 @@
+#!/bin/bash -e
+CURDIR="`pwd`"
+CROSS_DIR=${1:-/opt/cross/}
+MINGW=${1:-i386-mingw32msvc}
+CROSS_BIN_DIR="$CROSS_DIR/bin"
+CROSS_DLL_DIR="$CROSS_DIR/$MINGW/bin"
+CROSS_PKG_CONFIG_DIR=$CROSS_DIR/$MINGW/lib/pkgconfig
+COPY_DLLS="libgio*.dll libglib*.dll libgmodule*.dll libgthread*.dll libgobject*.dll"
+PATH=$CROSS_BIN_DIR:$PATH
+INSTALL_DESTDIR="$CURDIR/mono-win32"
+PROFILES="default net_2_0 net_2_1 net_3_5"
+
+export PATH
+
+function setup ()
+{
+    if [ -d ./.git/svn ]; then
+       SVN_INFO='git svn info'
+    elif [ -d ./.svn ]; then
+       SVN_INFO='svn info'
+    else
+       SVN_INFO=""
+    fi
+
+    if [ -n "$SVN_INFO" ]; then
+       MONO_SVN_REVISION=`$SVN_INFO | grep Revision | sed 's/.*: //'`
+       MONO_BRANCH=`$SVN_INFO | grep URL | sed -e 's;.*source/;;g' -e 's;/mono;;g'`
+    else
+       MONO_SVN_REVISION="rUNKNOWN"
+       MONO_BRANCH="tarball"
+    fi
+
+    MONO_VERSION=`grep AM_INIT_AUTOMAKE configure.in | cut -d ',' -f 2|tr -d '\)'`
+    MONO_RELEASE="$MONO_VERSION-$MONO_BRANCH-r$MONO_SVN_REVISION"
+    MONO_PREFIX="/mono-$MONO_RELEASE"
+
+    NOCONFIGURE=yes
+    export NOCONFIGURE
+
+    echo Mono Win32 installation prefix: $MONO_PREFIX
+}
+
+function build ()
+{
+    ./autogen.sh 
+
+    if [ -f ./Makefile ]; then
+       make distclean
+    fi
+
+    if [ ! -d "$CURDIR/build-cross-windows" ]; then
+       mkdir "$CURDIR/build-cross-windows"
+    fi
+
+    cd "$CURDIR/build-cross-windows"
+    rm -rf *
+    ../configure --prefix=$MONO_PREFIX --with-crosspkgdir=$CROSS_PKG_CONFIG_DIR --target=$MINGW --host=$MINGW --enable-parallel-mark --program-transform-name=""
+    make
+    cd "$CURDIR"
+
+    if [ ! -d "$CURDIR/build-cross-windows-mcs" ]; then
+       mkdir "$CURDIR/build-cross-windows-mcs"
+    fi
+    cd "$CURDIR/build-cross-windows-mcs"
+    rm -rf *
+    ../configure --prefix=$MONO_PREFIX --enable-parallel-mark
+    make
+}
+
+function doinstall ()
+{
+    if [ -d "$INSTALL_DIR" ]; then
+       rm -rf "$INSTALL_DIR"
+    fi
+    cd "$CURDIR/build-cross-windows"
+    make DESTDIR="$INSTALL_DESTDIR" USE_BATCH_FILES=yes install
+
+    cd "$CURDIR/../mcs/mcs"
+
+    for p in $PROFILES; do
+       make DESTDIR="$INSTALL_DESTDIR" PROFILE=$p install || echo "mcs profile $p installation failed"
+    done
+
+    cd "$CURDIR/../mcs/class"
+    for p in $PROFILES; do
+       make DESTDIR="$INSTALL_DESTDIR" PROFILE=$p install || echo "class library profile $p installation failed"
+    done
+
+    cd "$CURDIR/../mcs/tools"
+    for p in $PROFILES; do
+       make DESTDIR="$INSTALL_DESTDIR" PROFILE=$p install || echo "tools profile $p installation failed"
+    done
+
+    cd "$CURDIR/mono-win32"
+    for dll in $COPY_DLLS; do
+       cp -ap "$CROSS_DLL_DIR"/$dll "$INSTALL_DESTDIR/$MONO_PREFIX/bin"
+    done
+
+    rm -f "$CURDIR/mono-win32-$MONO_RELEASE".zip
+    zip -9r "$CURDIR/mono-win32-$MONO_RELEASE".zip .
+
+}
+
+pushd . > /dev/null
+
+setup
+build
+doinstall
+
+popd > /dev/null
index 39925c5fc0f49cd54f28d5ba6b77c7a1776a111d..67aeb8ee520387a0087d3d741c88f37fb6890d1e 100644 (file)
@@ -78,8 +78,8 @@ case "$host" in
                HOST_CC="gcc"
                # Windows 2000 is required that includes Internet Explorer 5.01
                CPPFLAGS="$CPPFLAGS -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0501 -D_UNICODE -DUNICODE -DWIN32_THREADS -DFD_SETSIZE=1024"
-               libmono_cflags="-mno-cygwin"
-               libmono_ldflags="-mno-cygwin"
+               libmono_cflags="-mno-cygwin -mms-bitfields -mwindows"
+               libmono_ldflags="-mno-cygwin -mms-bitfields -mwindows"
                libdl=
                libgc_threads=win32
                gc_default=included
@@ -296,6 +296,7 @@ AC_SUBST(HOST_CC)
 AC_SUBST(BUILD_EXEEXT)
 
 AM_CONDITIONAL(CROSS_COMPILING, [test x$cross_compiling = xyes])
+AM_CONDITIONAL(USE_BATCH_FILES, [test x$platform_win32 = xyes -a x$cross_compiling = xyes])
 
 # Set STDC_HEADERS
 AC_HEADER_STDC
@@ -494,9 +495,13 @@ embedded)
   AC_CONFIG_SUBDIRS(eglib)
   ;;
 system)
+  pkg_config_path="$PKG_CONFIG_PATH"
+  unset PKG_CONFIG_PATH
   BUILD_GLIB_CFLAGS=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0`
   BUILD_GLIB_LIBS=`$PKG_CONFIG --libs glib-2.0 gthread-2.0`
-
+  PKG_CONFIG_PATH=$pkg_config_path
+  export PKG_CONFIG_PATH
+  
   ## Versions of dependencies
   GLIB_REQUIRED_VERSION=1.3.11
   
@@ -2188,7 +2193,11 @@ AC_SUBST(mono_runtime)
 
 mono_cfg_root=$mono_build_root/runtime
 if test x$platform_win32 = xyes; then
-  mono_cfg_dir=`cygpath -w -a $mono_cfg_root`\\etc
+  if test "x$cross_compiling" = "xno"; then
+    mono_cfg_dir=`cygpath -w -a $mono_cfg_root`\\etc
+  else
+    mono_cfg_dir=`echo $mono_cfg_root | tr '/' '\\\'`\\etc
+  fi
 else
   mono_cfg_dir=$mono_cfg_root/etc
 fi
index 1965b5d427e04ae4d3371caa9316419fb8375e16..350e195dd09fe2eba09f9f5e69815d660215e339 100644 (file)
@@ -1,3 +1,7 @@
+2008-08-05  Marek Habersack  <mhabersack@novell.com>
+
+       * Makefile.am: added support for cross-compilation
+
 2008-08-04  Zoltan Varga  <vargaz@gmail.com>
 
        * socket-io.c (get_socket_assembly): Make 'moonlight' variable static.
index f7be2d412fdf8fe00745d137a19548eea2f4f7d9..57a1976654ae527909a1e059546d2007a9b497e7 100644 (file)
@@ -2,8 +2,13 @@ if PLATFORM_WIN32
 # Use -m here. This will use / as directory separator (C:/WINNT).
 # The files that use MONO_ASSEMBLIES and/or MONO_CFG_DIR replace the
 # / by \ if running under WIN32.
+if CROSS_COMPILING
+assembliesdir = ${libdir}
+confdir = ${sysconfdir}
+else
 assembliesdir = `cygpath -m "${libdir}"`
 confdir = `cygpath -m "${sysconfdir}"`
+endif
 export HOST_CC
 # The mingw math.h has "extern inline" functions that dont appear in libs, so
 # optimisation is required to actually inline them
index b4e6451470c9eab11bd286d3d332b6962a68c412..7e89c9effc4c953a2b055a7f27682cc26c069ea0 100644 (file)
@@ -1,3 +1,8 @@
+2008-08-05  Marek Habersack  <mhabersack@novell.com>
+
+       * Makefile.am (GENMDESC_PRG): when cross-compiling use full path
+       to the genmdesc.pl file
+
 2008-08-05  Zoltan Varga  <vargaz@gmail.com>
 
        * ir-emit.h (EMIT_NEW_ARGSTORE): Fix the usage of param_types and
index 214a0f9f07a91bc821837b1f72f01a76ddeedf0a..7fc21f3d6449416c432141f12fd7ef1eda42d795 100644 (file)
@@ -416,7 +416,7 @@ generics-variant-types.dll: generics-variant-types.il
 # $(arch_define) is the preprocessor symbol that enables all the opcodes
 # for the specific platform in mini-ops.h
 if CROSS_COMPILING
-GENMDESC_PRG=perl genmdesc.pl $(arch_define) $(srcdir)
+GENMDESC_PRG=perl $(srcdir)/genmdesc.pl $(arch_define) $(srcdir)
 else !CROSS_COMPILING
 GENMDESC_PRG=./genmdesc
 endif !CROSS_COMPILING
index 339c6a0fee02ebfdd86910a9cb52a82f0e92a10e..bcff9b4bf5e5f9e8d5c124a758ed4d0052655d6e 100644 (file)
@@ -75,8 +75,13 @@ mcs-do-run-test-profiles: test-support-files
        cd $(mcs_topdir) && $(MAKE) NO_DIR_CHECK=1 PROFILES='$(build_profiles)' run-test-profiles
 
 if PLATFORM_WIN32
+if CROSS_COMPILING
+cur_dir_cmd = pwd
+PLATFORM_PATH_SEPARATOR = :
+else
 cur_dir_cmd = cygpath -w -a .
 PLATFORM_PATH_SEPARATOR = ;
+endif
 else
 cur_dir_cmd = pwd
 PLATFORM_PATH_SEPARATOR = :
index b1fb2fd10c210861eaed3d014715790eaffc961b..9e289bbad78f9ed4e295a120e71d46d3153f6652 100644 (file)
 # To preserve compatibility with old Makefiles and tools we keep the
 # command names that had the suffix 2 (like wsdl2)
 #
+if USE_BATCH_FILES
+SCRIPT_IN=script.bat.in
+SMCS_IN=smcs.bat.in
+FILTER=sed -e 's,\.bat\.exe,\.exe,g' -e 's,/,\\,g'
+SCRIPT_SUFFIX=.bat
+else
+SCRIPT_IN=script.in
+SMCS_IN=smcs.in
+FILTER=cat
+SCRIPT_SUFFIX=
+endif
+
+COMPAT_1_0_SUFFIX=1$(SCRIPT_SUFFIX)
+COMPAT_2_0_SUFFIX=2$(SCRIPT_SUFFIX)
+
 bin_SCRIPTS = \
        $(scripts_1_0)          \
        $(scripts_1_0_umask)    \
@@ -23,63 +38,63 @@ bin_SCRIPTS = \
        mono-test-install
 
 scripts_1_0_compat = \
-       al1                     \
-       genxs1                  \
-       ilasm1                  \
-       mcs1                    \
-       mkbundle1               \
-       mono-api-info1          \
-       monop1                  \
-       resgen1                 \
-       wsdl1
+       al1$(SCRIPT_SUFFIX)                     \
+       genxs1$(SCRIPT_SUFFIX)                  \
+       ilasm1$(SCRIPT_SUFFIX)                  \
+       mcs1$(SCRIPT_SUFFIX)                    \
+       mkbundle1$(SCRIPT_SUFFIX)               \
+       mono-api-info1$(SCRIPT_SUFFIX)          \
+       monop1$(SCRIPT_SUFFIX)                  \
+       resgen1$(SCRIPT_SUFFIX)                 \
+       wsdl1$(SCRIPT_SUFFIX)
 
 scripts_1_0 = \
-       caspol                  \
-       cert2spc                \
-       certmgr                 \
-       chktrust                \
-       cilc                    \
-       disco                   \
-       dtd2xsd                 \
-       dtd2rng                 \
-       gacutil                 \
-       installvst              \
-       macpack                 \
-       mcs                     \
-       mjs                     \
-       monolinker              \
-       mono-api-diff           \
-       mono-shlib-cop          \
-       mono-xmltool            \
-       mozroots                \
-       permview                \
-       prj2make                \
-       secutil                 \
-       setreg                  \
-       signcode                \
-       soapsuds                \
-       sqlsharp                \
-       xsd
+       caspol$(SCRIPT_SUFFIX)                  \
+       cert2spc$(SCRIPT_SUFFIX)                \
+       certmgr$(SCRIPT_SUFFIX)                 \
+       chktrust$(SCRIPT_SUFFIX)                \
+       cilc$(SCRIPT_SUFFIX)                    \
+       disco$(SCRIPT_SUFFIX)                   \
+       dtd2xsd$(SCRIPT_SUFFIX)                 \
+       dtd2rng$(SCRIPT_SUFFIX)                 \
+       gacutil$(SCRIPT_SUFFIX)                 \
+       installvst$(SCRIPT_SUFFIX)              \
+       macpack$(SCRIPT_SUFFIX)                 \
+       mcs$(SCRIPT_SUFFIX)                     \
+       mjs$(SCRIPT_SUFFIX)                     \
+       monolinker$(SCRIPT_SUFFIX)              \
+       mono-api-diff$(SCRIPT_SUFFIX)           \
+       mono-shlib-cop$(SCRIPT_SUFFIX)          \
+       mono-xmltool$(SCRIPT_SUFFIX)            \
+       mozroots$(SCRIPT_SUFFIX)                \
+       permview$(SCRIPT_SUFFIX)                \
+       prj2make$(SCRIPT_SUFFIX)                \
+       secutil$(SCRIPT_SUFFIX)                 \
+       setreg$(SCRIPT_SUFFIX)                  \
+       signcode$(SCRIPT_SUFFIX)                \
+       soapsuds$(SCRIPT_SUFFIX)                \
+       sqlsharp$(SCRIPT_SUFFIX)                \
+       xsd$(SCRIPT_SUFFIX)
 
 scripts_1_0_umask = \
-       makecert                \
-       sn
+       makecert$(SCRIPT_SUFFIX)                \
+       sn$(SCRIPT_SUFFIX)
 
 scripts_2_0 = \
-       al2                     \
-       genxs2                  \
-       gmcs                    \
-       httpcfg                 \
-       ilasm2                  \
-       mconfig                 \
-       mkbundle2               \
-       mono-api-info2          \
-       monop2                  \
-       resgen2                 \
-       wsdl2                   \
-       xsd2                    \
-       sgen                    \
-       xbuild
+       al2$(SCRIPT_SUFFIX)                     \
+       genxs2$(SCRIPT_SUFFIX)                  \
+       gmcs$(SCRIPT_SUFFIX)                    \
+       httpcfg$(SCRIPT_SUFFIX)                 \
+       ilasm2$(SCRIPT_SUFFIX)                  \
+       mconfig$(SCRIPT_SUFFIX)                 \
+       mkbundle2$(SCRIPT_SUFFIX)               \
+       mono-api-info2$(SCRIPT_SUFFIX)          \
+       monop2$(SCRIPT_SUFFIX)                  \
+       resgen2$(SCRIPT_SUFFIX)                 \
+       wsdl2$(SCRIPT_SUFFIX)                   \
+       xsd2$(SCRIPT_SUFFIX)                    \
+       sgen$(SCRIPT_SUFFIX)                    \
+       xbuild$(SCRIPT_SUFFIX)
 
 #
 # these are the new defaults, 2.0 profile-based commands
@@ -89,18 +104,18 @@ scripts_2_0 = \
 # the scripts_1_0_compat list
 #
 scripts_defaults =             \
-       al                      \
-       genxs                   \
-       ilasm                   \
-       mkbundle                \
-       mono-api-info           \
-       monop                   \
-       resgen                  \
-       wsdl
-
-scripts_2_1 = smcs
+       al$(SCRIPT_SUFFIX)                      \
+       genxs$(SCRIPT_SUFFIX)                   \
+       ilasm$(SCRIPT_SUFFIX)                   \
+       mkbundle$(SCRIPT_SUFFIX)                \
+       mono-api-info$(SCRIPT_SUFFIX)           \
+       monop$(SCRIPT_SUFFIX)                   \
+       resgen$(SCRIPT_SUFFIX)                  \
+       wsdl$(SCRIPT_SUFFIX)
+
+scripts_2_1 = smcs$(SCRIPT_SUFFIX)
 scripts_service = mono-service mono-service2
-scripts_nunit = nunit-console nunit-console2
+scripts_nunit = nunit-console$(SCRIPT_SUFFIX) nunit-console2$(SCRIPT_SUFFIX)
 scripts_rpmhelpers = mono-find-provides mono-find-requires
 
 pkgconfigdir = $(libdir)/pkgconfig
@@ -109,13 +124,16 @@ pkgconfig_DATA= mono-nunit.pc
 CLEANFILES = $(scripts_1_0) $(scripts_1_0_umask) $(scripts_2_0) $(scripts_2_1) $(scripts_defaults) $(scripts_1_0_compat) mono-service mono-service2 nunit-console nunit-console2 mono-find-provides mono-find-requires
 DISTCLEANFILES = $(pkgconfig_DATA) $(scripts_rpmhelpers)
 
-EXTRA_DIST =                   \
-       script.in              \
-       script_umask.in        \
+EXTRA_DIST =                   \
+       script.in               \
+       script.bat.in           \
+       script_umask.in         \
+       script_umask.bat.in     \
        smcs.in                 \
-       mono-service.in        \
-       mono-nunit.pc.in       \
-       mono-find-provides.in  \
+       smcs.bat.in             \
+       mono-service.in         \
+       mono-nunit.pc.in        \
+       mono-find-provides.in   \
        mono-find-requires.in   \
        mono-test-install
 
@@ -126,13 +144,19 @@ mono_interp = mint
 endif
 
 if PLATFORM_WIN32
+if CROSS_COMPILING
+plat_bindir = $(bindir)
+mono_instdir = $(prefix)/lib/mono
+else
 plat_bindir = $(shell cygpath -m $(libdir))
 mono_instdir = $(shell cygpath -m $(libdir))/mono
+endif
 else
 plat_bindir = $(bindir)
 mono_instdir = $(prefix)/lib/mono
 endif
 
+
 REWRITE_COMMON = sed \
        -e 's,@''bindir@,$(bindir),g'                           \
        -e 's,@''plat_bindir@,$(plat_bindir),g'                 \
@@ -148,6 +172,7 @@ REWRITE2_1 = $(REWRITE) -e 's,@''framework_version@,2.1,g'
 REWRITE1_DEBUG = $(REWRITE_DEBUG) -e 's,@''framework_version@,1.0,g'
 REWRITE2_DEBUG = $(REWRITE_DEBUG) -e 's,@''framework_version@,2.0,g'
 
+
 mono-service: mono-service.in Makefile
        $(REWRITE1) -e 's,@''exe_name@,$@,g' $(srcdir)/mono-service.in > $@.tmp
        mv $@.tmp $@
@@ -156,36 +181,35 @@ mono-service2: mono-service.in Makefile
        $(REWRITE2) -e 's,@''exe_name@,$@,g' $(srcdir)/mono-service.in > $@.tmp
        mv $@.tmp $@
 
-nunit-console: script.in Makefile
-       $(REWRITE1_DEBUG) -e 's,@''exe_name@,nunit-console,g' $(srcdir)/script.in > $@.tmp
+nunit-console$(SCRIPT_SUFFIX): $(SCRIPT_IN) Makefile
+       $(REWRITE1_DEBUG) -e 's,@''exe_name@,nunit-console,g' $(srcdir)/$(SCRIPT_IN) | $(FILTER) > $@.tmp
        mv $@.tmp $@
 
-nunit-console2: script.in Makefile
-       $(REWRITE2_DEBUG) -e 's,@''exe_name@,nunit-console,g' $(srcdir)/script.in > $@.tmp
+nunit-console2$(SCRIPT_SUFFIX): $(SCRIPT_IN) Makefile
+       $(REWRITE2_DEBUG) -e 's,@''exe_name@,nunit-console,g' $(srcdir)/$(SCRIPT_IN) | $(FILTER) > $@.tmp
        mv $@.tmp $@
 
-smcs: smcs.in Makefile
-       $(REWRITE2_1) -e "s,@""exe_name@,smcs,g" $(srcdir)/smcs.in > $@.tmp
+smcs$(SCRIPT_SUFFIX): $(SMCS_IN) Makefile
+       $(REWRITE2_1) -e "s,@""exe_name@,smcs,g" $(srcdir)/$(SMCS_IN) | $(FILTER) > $@.tmp
        mv $@.tmp $@
 
-$(scripts_1_0): script.in Makefile
-       $(REWRITE1) -e 's,@''exe_name@,$@,g' $(srcdir)/script.in > $@.tmp
+$(scripts_1_0): $(SCRIPT_IN) Makefile
+       $(REWRITE1) -e 's,@''exe_name@,$@,g' $(srcdir)/$(SCRIPT_IN) | $(FILTER) > $@.tmp
        mv $@.tmp $@
 
 $(scripts_1_0_umask): script_umask.in Makefile
        $(REWRITE1) -e 's,@''exe_name@,$@,g' $(srcdir)/script_umask.in > $@.tmp
        mv $@.tmp $@
 
-$(scripts_1_0_compat): script.in Makefile
-       t=`basename $@ 1`; $(REWRITE1) -e "s,@exe_name@,$$t,g" $(srcdir)/script.in > $@.tmp
+$(scripts_1_0_compat): $(SCRIPT_IN) Makefile
+       t=`basename $@ $(COMPAT_1_0_SUFFIX)`; $(REWRITE1) -e "s,@exe_name@,$$t,g" $(srcdir)/$(SCRIPT_IN) | $(FILTER) > $@.tmp
        mv $@.tmp $@
 
-$(scripts_defaults): script.in Makefile
-       $(REWRITE2) -e "s,@exe_name@,$@,g" $(srcdir)/script.in > $@.tmp
+$(scripts_defaults): $(SCRIPT_IN) Makefile
+       $(REWRITE2) -e "s,@exe_name@,$@,g" $(srcdir)/$(SCRIPT_IN) | $(FILTER) > $@.tmp
        mv $@.tmp $@
 
-$(scripts_2_0): script.in Makefile
-       n=`echo $@ | sed 's,2$$,,'`; \
-       $(REWRITE2) -e "s,@""exe_name@,$$n,g" $(srcdir)/script.in > $@.tmp
+$(scripts_2_0): $(SCRIPT_IN) Makefile
+       n=`echo $@ | sed 's,$(COMPAT_2_0_SUFFIX)$$,,'`; \
+       $(REWRITE2) -e "s,@""exe_name@,$$n,g" $(srcdir)/$(SCRIPT_IN) | $(FILTER) > $@.tmp
        mv $@.tmp $@
-
diff --git a/scripts/script.bat.in b/scripts/script.bat.in
new file mode 100644 (file)
index 0000000..d074008
--- /dev/null
@@ -0,0 +1,2 @@
+@echo off
+@bindir@\@mono_interp@ %MONO_OPTIONS% @mono_instdir@\@framework_version@\@exe_name@.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/scripts/script_umask.bat.in b/scripts/script_umask.bat.in
new file mode 100644 (file)
index 0000000..d074008
--- /dev/null
@@ -0,0 +1,2 @@
+@echo off
+@bindir@\@mono_interp@ %MONO_OPTIONS% @mono_instdir@\@framework_version@\@exe_name@.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/scripts/smcs.bat.in b/scripts/smcs.bat.in
new file mode 100644 (file)
index 0000000..e7a10db
--- /dev/null
@@ -0,0 +1,2 @@
+@echo off
+@bindir@\@mono_interp@ %MONO_OPTIONS% --runtime=moonlight --security=temporary-smcs-hack @mono_instdir@\@framework_version@\@exe_name@.exe %1 %2 %3 %4 %5 %6 %7 %8 %9