X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=web%2Fmono-build-w32.sh;h=fe9d061fe51311684dbe497f30c7d60d2415b790;hb=c828a3d1392efe01fa54d7e735e9327075a51760;hp=28768d97df8caabc085b968900fa1cd104161c73;hpb=c356e2c07ca7c8fa242f687c4ab5ea1849910f62;p=mono.git diff --git a/web/mono-build-w32.sh b/web/mono-build-w32.sh index 28768d97df8..fe9d061fe51 100755 --- a/web/mono-build-w32.sh +++ b/web/mono-build-w32.sh @@ -16,6 +16,13 @@ test -z "$here" && here=`pwd` echo "Building Mono and dependencies in $here, installing to $here/install" PATH=$here/install/bin:$here/install/lib:$PATH +export C_INCLUDE_PATH=$here/install/include + +# Make sure cygwin's libiconv is installed, or libtool blows its tiny mind +if [ ! -f /usr/lib/libiconv.la ]; then + echo "You need to install the cygwin \"libiconv\" package!" + exit -1 +fi # Check mono out first, so we can run aclocal from inside the mono dir (it # needs to see which version of the real aclocal to run) @@ -42,15 +49,28 @@ fi cvs checkout mono || exit -1 -if [ ! -z "${AUTO_STABLE}" -o -e /usr/autotool/stable ]; then - export AUTO_STABLE=${AUTO_STABLE:-/usr/autotool/stable} - export AUTO_DEVEL=${AUTO_STABLE} +echo "Checking automake version" +automake_required="1.6.2" +automake_version=`automake --version | head -1 | awk '{print $4}' | tr -d '[a-zA-Z]' | sed 's/-.*$//g'` +echo "Found automake version $automake_version" +if expr $automake_version \< $automake_required > /dev/null; then + echo "Your automake is too old! You need version $automake_required or newer." + exit -1 +else + echo "Automake version new enough." fi +# This causes libgc-not-found problem +# +## Select the stable version anyway... +#if [ ! -z "${AUTO_STABLE}" -o -e /usr/autotool/stable ]; then +# export AUTO_STABLE=${AUTO_STABLE:-/usr/autotool/stable} +# export AUTO_DEVEL=${AUTO_STABLE} +#fi + # Need to install pkgconfig and set ACLOCAL_FLAGS if there is not a # pkgconfig installed already. Otherwise set PKG_CONFIG_PATH to the -# glib we're about to install in $here/install. This script could -# attempt to be clever and see if glib 2 is already installed, too. +# glib we're about to install in $here/install. # --print-ac-dir was added in 1.2h according to the ChangeLog. This @@ -61,15 +81,17 @@ fi # it finds two copies of the m4 macros). The GIMP for Windows # pkgconfig sets its prefix based on the location of its binary, so we # dont need PKG_CONFIG_PATH (the internal pkgconfig config file -# $prefix is handled similarly). +# $prefix is handled similarly). For the cygwin pkgconfig we do need to +# set it, and we need to edit the mingw pc files too. function aclocal_scan () { # Quietly ignore the rogue '-I' and other aclocal flags that # aren't actually directories... # # cd into mono/ so that the aclocal wrapper can work out which version - # of aclocal to run - for i in `(cd mono && aclocal --print-ac-dir)` $ACLOCAL_FLAGS + # of aclocal to run, and add /usr/share/aclocal too cos aclocal looks there + # too. + for i in `(cd mono && aclocal --print-ac-dir)` /usr/share/aclocal $ACLOCAL_FLAGS do if [ -f $i/$1 ]; then return 0 @@ -79,6 +101,15 @@ function aclocal_scan () { return 1 } +function install_icuconfig() { + if [ ! -f $here/install/bin/icu-config ]; then + wget http://www.go-mono.com/archive/icu-config + mv icu-config $here/install/bin + chmod 755 $here/install/bin/icu-config + fi +} + + function install_package() { zipfile=$1 markerfile=$2 @@ -96,12 +127,21 @@ function install_package() { fi } -if ! aclocal_scan pkg.m4 ; then - ACLOCAL_FLAGS="-I $here/install/share/aclocal $ACLOCAL_FLAGS" +# pkgconfig is only used during the build, so we can use the cygwin version +# if it exists +if aclocal_scan pkg.m4 ; then + install_pkgconfig=no +else + install_pkgconfig=yes fi -export PATH -export ACLOCAL_FLAGS +# This causes libgc-not-found problem +# +## But we still need to use the mingw libs for glib & co +#ACLOCAL_FLAGS="-I $here/install/share/aclocal $ACLOCAL_FLAGS" + +#export PATH +#export ACLOCAL_FLAGS # Grab pkg-config, glib etc if [ ! -d $here/install ]; then @@ -110,19 +150,34 @@ fi # Fetch and install pkg-config, glib, iconv, intl -install_package pkgconfig-0.80-tml-20020101.zip bin/pkg-config.exe pkgconfig -install_package glib-1.3.12-20020101.zip lib/libglib-1.3-12.dll glib -install_package glib-dev-1.3.12-20020101.zip lib/glib-1.3.lib glib-dev +if [ $install_pkgconfig = "yes" ]; then + install_package pkgconfig-0.11-20020310.zip bin/pkg-config.exe pkgconfig +else + echo "Not installing pkgconfig, you already seem to have it installed" +fi +install_package glib-2.0.4-20020703.zip lib/libglib-2.0-0.dll glib +install_package glib-dev-2.0.4-20020703.zip lib/glib-2.0.lib glib-dev install_package libiconv-1.7.zip lib/iconv.dll iconv -install_package libiconv-dev-1.7.zip lib/iconv.lib iconv-dev install_package libintl-0.10.40-20020101.zip lib/libintl-1.dll intl install_package libgc-dev.zip lib/gc.dll gc-dev +install_package icu-2.6.1-Win32_msvc7.zip icu/bin/icuuc26.dll icu + +install_icuconfig + +if [ $install_pkgconfig = "no" ]; then + echo "Fixing up the pkgconfig paths" + for i in $here/install/lib/pkgconfig/*.pc + do + mv $i $i.orig + sed -e "s@^prefix=/target\$@prefix=$here/install@" < $i.orig > $i + done + export PKG_CONFIG_PATH=$here/install/lib/pkgconfig +fi -# Needed to find the libiconv bits -CPPFLAGS="$CPPFLAGS -I$here/install/include" -LDFLAGS="$LDFLAGS -L$here/install/lib" -export CPPFLAGS -export LDFLAGS +# Needed to find the libgc bits +export CFLAGS="-I $here/install/include -I $here/install/icu/include" +export LDFLAGS="-L$here/install/lib -L$here/install/icu/lib" +export PATH="$here/install/icu/bin:$PATH" # Make sure we build native w32, not cygwin #CC="gcc -mno-cygwin"