X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=build-mingw32.sh;h=d751b2e83331ad8d6f3a4bc64c19bfd666d5c99a;hb=557c65a64b6c108f4c42bbabf00f7f2d07b2c2b7;hp=3b0538e6fc13909c136f168cb964b917d84912f2;hpb=0717f141b92db56481cc09af70c026d7ffad8921;p=mono.git diff --git a/build-mingw32.sh b/build-mingw32.sh index 3b0538e6fc1..d751b2e8333 100755 --- a/build-mingw32.sh +++ b/build-mingw32.sh @@ -1,66 +1,153 @@ #!/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 +MINGW=i386-mingw32msvc +CROSS_DIR=/opt/cross/$MINGW +EXTRA_CROSS_DIR= INSTALL_DESTDIR="$CURDIR/mono-win32" -PROFILES="default net_2_0 moonlight net_3_5" +PROFILES="default net_2_0 net_3_5 net_4_0 moonlight" +TEMPORARY_PKG_CONFIG_DIR=/tmp/$RANDOM-pkg-config-$RANDOM +ORIGINAL_PATH="$PATH" -export PATH +export CPPFLAGS_FOR_EGLIB CFLAGS_FOR_EGLIB CPPFLAGS_FOR_LIBGC CFLAGS_FOR_LIBGC -function setup () +function cleanup () { - if [ -d ./.git/svn ]; then - SVN_INFO='git svn info' - elif [ -d ./.svn ]; then - SVN_INFO='svn info' - else - SVN_INFO="" + if [ -d "$TEMPORARY_PKG_CONFIG_DIR" ]; then + rm -rf "$TEMPORARY_PKG_CONFIG_DIR" 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" +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 < /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