File mono-5.4.0.56-build-mingw.patch of Package mingw64-mono

--- mono-5.4.0.56/build-mingw32.sh	1970-01-01 01:00:00.000000000 +0100
+++ mono-5.4.0.56/build-mingw32.sh	2017-07-26 19:21:53.300968909 +0200
@@ -0,0 +1,227 @@
+#!/bin/bash -e
+CURDIR="`pwd`"
+MINGW=i386-mingw32msvc
+CROSS_DIR=/opt/cross/$MINGW
+EXTRA_CROSS_DIR=
+INSTALL_DESTDIR="$CURDIR/mono-win32"
+PROFILES="basic net_4_x"
+TEMPORARY_PKG_CONFIG_DIR=/tmp/$RANDOM-pkg-config-$RANDOM
+ORIGINAL_PATH="$PATH"
+
+export CPPFLAGS_FOR_EGLIB CFLAGS_FOR_EGLIB CPPFLAGS_FOR_LIBGC CFLAGS_FOR_LIBGC
+
+function cleanup ()
+{
+    if [ -d "$TEMPORARY_PKG_CONFIG_DIR" ]; then
+	rm -rf "$TEMPORARY_PKG_CONFIG_DIR"
+    fi
+}
+
+function check_pkg_config_dir ()
+{
+    local DIR="$1"
+    local DIR_PREFIX="$2"
+
+    if [ ! -d "$DIR" ]; then
+	return
+    fi
+
+    install -d -m 755 "$TEMPORARY_PKG_CONFIG_DIR"
+    for pc in "$DIR"/*.pc; do
+	if [ -f $pc ]; then
+	    pcname="`basename $pc`"
+	    sed -e "s;^prefix=.*;prefix=$DIR_PREFIX;g" < $pc > "$TEMPORARY_PKG_CONFIG_DIR"/$pcname
+	fi;
+    done
+
+    if [ -z "$CROSS_PKG_CONFIG_DIR" ]; then
+	CROSS_PKG_CONFIG_DIR="$TEMPORARY_PKG_CONFIG_DIR"
+    fi
+}
+
+function show_build_info ()
+{
+    cat <<EOF
+Installation prefix: $MONO_PREFIX
+           CPPFLAGS: ${CPPFLAGS:=not set}
+            LDFLAGS: ${LDFLAGS:=not set}
+          MONO_PATH: ${MONO_PATH:=not set}
+EOF
+}
+
+function setup ()
+{
+    local pcname
+
+    CROSS_BIN_DIR="$CROSS_DIR/bin"
+    CROSS_DLL_DIR="$CROSS_DIR/bin"
+    PATH=$CROSS_BIN_DIR:$PATH
+
+    MONO_VERSION=`grep AC_INIT configure.ac | cut -d ',' -f 2|tr -d '\[ \]'`
+    
+    if [ -d ./.git ]; then
+	MONO_GIT_COMMIT="`git log -1 --format=format:%t`"
+	MONO_GIT_BRANCH="`git branch|grep '\*'|cut -d ' ' -f 2|tr -d '\)'|tr -d '\('`"
+	MONO_RELEASE="$MONO_VERSION-$MONO_GIT_BRANCH-$MONO_GIT_COMMIT"
+    else
+	MONO_RELEASE="$MONO_VERSION"
+    fi
+
+    MONO_PREFIX="$MONO_PREFIX/mono-$MONO_RELEASE"
+
+    NOCONFIGURE=yes
+    export NOCONFIGURE
+
+    check_pkg_config_dir "$CROSS_DIR/lib/pkgconfig" "$CROSS_DIR"
+
+    if [ -n "$EXTRA_CROSS_DIR" -a -d "$EXTRA_CROSS_DIR" ]; then
+	if [ -d "$EXTRA_CROSS_DIR/bin" ]; then
+		PATH="$EXTRA_CROSS_DIR/bin":$PATH
+	fi
+	
+	check_pkg_config_dir "$EXTRA_CROSS_DIR/lib/pkgconfig" "$EXTRA_CROSS_DIR"
+
+	if [ -d "$EXTRA_CROSS_DIR/include" ]; then
+	    if [ -z "$CPPFLAGS" ]; then
+		CPPFLAGS="-I \"$EXTRA_CROSS_DIR/include\""
+	    else
+		CPPFLAGS="-I \"$EXTRA_CROSS_DIR/include\" $CFLAGS"
+	    fi
+	fi
+
+	if [ -d "$EXTRA_CROSS_DIR/lib" ]; then
+	    if [ -z "$LDFLAGS" ]; then
+		LDFLAGS="-I \"$EXTRA_CROSS_DIR/lib\""
+	    else
+		LDFLAGS="-I \"$EXTRA_CROSS_DIR/lib\" $LDFLAGS"
+	    fi
+	fi
+
+	if [ -d "$EXTRA_CROSS_DIR/share/aclocal" ]; then
+	    if [ -z "$MONO_PATH" ]; then
+		MONO_PATH="\"$EXTRA_CROSS_DIR\""
+	    else
+		MONO_PATH="\"$EXTRA_CROSS_DIR\":$MONO_PATH"
+	    fi
+	fi
+    fi
+    
+    export PATH MONO_PATH CPPFLAGS
+    show_build_info
+}
+
+function build ()
+{
+    if [ -f ./Makefile ]; then
+	make distclean
+    fi
+
+    if [ -d ./autom4te.cache ]; then
+	rm -rf ./autom4te.cache
+    fi
+
+    if [ -f ./config.status ]; then
+	for f in `find -name config.status -type f`; do
+	    rm $f
+	done
+    fi
+
+    ./autogen.sh 
+
+    BUILD="`./config.guess`"
+
+    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 --build=$BUILD --target=$MINGW --host=$MINGW --enable-parallel-mark --program-transform-name="" --with-tls=none --disable-mcs-build --disable-embed-check --enable-win32-dllmain=yes --with-libgc-threads=win32 --with-profile4=yes
+    make
+    cd "$CURDIR"
+
+    if [ ! -d "$CURDIR/build-cross-windows-mcs" ]; then
+	mkdir "$CURDIR/build-cross-windows-mcs"
+    fi
+
+    rm -rf autom4te.cache
+    unset PATH
+    PATH="$ORIGINAL_PATH"
+    export PATH
+    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
+
+    if test -d $CURDIR/mcs; then
+      mcsdir=$CURDIR/mcs
+    else
+      mcsdir=$CURDIR/../mcs
+    fi
+
+    cd "$mcsdir/mcs"
+    for p in $PROFILES; do
+	make DESTDIR="$INSTALL_DESTDIR" PROFILE=$p install || echo "mcs profile $p installation failed"
+    done
+
+    cd "$mcsdir/class"
+    for p in $PROFILES; do
+	make DESTDIR="$INSTALL_DESTDIR" PROFILE=$p install || echo "class library profile $p installation failed"
+    done
+
+    cd "$mcsdir/tools"
+    for p in $PROFILES; do
+	make DESTDIR="$INSTALL_DESTDIR" PROFILE=$p install || echo "tools profile $p installation failed"
+    done
+
+    cd "$CURDIR/mono-win32"
+    rm -f "$CURDIR/mono-win32-$MONO_RELEASE".zip
+    zip -9r "$CURDIR/mono-win32-$MONO_RELEASE".zip .
+
+}
+
+function usage ()
+{
+    cat <<EOF
+Usage: build-mingw32.sh [OPTIONS]
+
+where OPTIONS are:
+
+ -d DIR     Sets the location of directory where MINGW is installed [$CROSS_DIR]
+ -e DIR     Sets the location of directory where additional cross develoment packages are installed [${EXTRA_CROSS_DIR:=none}]
+ -m MINGW   Sets the MINGW target name to be passed to configure [$MINGW]
+ -p PREFIX  Prefix at which Mono is to be installed. Build will append the 'mono-X.Y' string to that path
+EOF
+
+    exit 1
+}
+
+trap cleanup 0
+
+pushd . > /dev/null
+
+while getopts "d:m:e:p:" opt; do
+    case "$opt" in
+	d) CROSS_DIR="$OPTARG" ;;
+	m) MINGW="$OPTARG" ;;
+	e) EXTRA_CROSS_DIR="$OPTARG" ;;
+	p) MONO_PREFIX="$OPTARG" ;;
+	*) usage ;;
+    esac
+done
+
+setup
+build
+doinstall
+show_build_info
+
+popd > /dev/null
--- mono-5.4.0.56/build-mingw.sh	1970-01-01 01:00:00.000000000 +0100
+++ mono-5.4.0.56/build-mingw.sh	2017-07-26 19:21:53.300968909 +0200
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec ./build-mingw32.sh "$@"
openSUSE Build Service is sponsored by