+++ /dev/null
-#!/bin/bash
-
-# Script to automate the building of mono and its dependencies on
-# cygwin. Relies on wget being installed (could make it fall back to
-# using lynx, links, w3, curl etc), assumes that gcc, make, tar,
-# automake, etc are already installed too (may be worth testing for
-# all that right at the top and bailing out if missing/too old/too new
-# etc).
-
-
-# See where we are. This will become the top level directory for the
-# installation, unless we are given an alternative location
-here=$1
-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)
-test -z "$CVSROOT" && CVSROOT=:pserver:anonymous@anoncvs.go-mono.com:/mono
-export CVSROOT
-
-echo "Updating mono"
-
-# cvs checkout does the same as cvs update, except that it copes with
-# new modules being added
-
-# Older versions of cvs insist on a cvs login for :pserver: methods
-# Make sure cvs is using ssh for :ext: methods
-
-if [ ${CVSROOT:0:5} = ":ext:" ]; then
- CVS_RSH=ssh
- export CVS_RSH
-elif [ ${CVSROOT:0:9} = ":pserver:" ]; then
- if ! grep $CVSROOT ~/.cvspass > /dev/null 2>&1 ; then
- echo "Logging into CVS server. Anonymous CVS password is probably empty"
- cvs login || exit -1
- fi
-fi
-
-cvs checkout mono || exit -1
-
-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.
-
-
-# --print-ac-dir was added in 1.2h according to the ChangeLog. This
-# should mean that any automake new enough for us has it.
-
-# This sets ACLOCAL_FLAGS to point to the freshly installed pkgconfig
-# if it doesnt already exist on the system (otherwise auto* breaks if
-# 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). 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, 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
- fi
- done
-
- 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
- name=$3
-
- echo "Installing $name..."
- if [ ! -f $here/$zipfile ]; then
- wget http://www.go-mono.com/archive/$zipfile
- fi
-
- # Assume that the package is installed correctly if the marker
- # file is there
- if [ ! -f $here/install/$markerfile ]; then
- (cd $here/install || exit -1; unzip -o $here/$zipfile || exit -1) || exit -1
- fi
-}
-
-# 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
-
-# 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
- mkdir $here/install || exit -1
-fi
-
-# Fetch and install pkg-config, glib, iconv, intl
-
-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 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 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"
-#export CC
-
-# --prefix is used to set the class library dir in mono, and it needs
-# to be in windows-native form. It also needs to have '\' turned into
-# '/' to avoid quoting issues during the build.
-prefix=`cygpath -w $here/install | sed -e 's@\\\\@/@g'`
-
-# Build and install mono
-echo "Building and installing mono"
-
-(cd $here/mono; ./autogen.sh --prefix=$prefix || exit -1; make || exit -1; make install || exit -1) || exit -1
-
-
-echo ""
-echo ""
-echo "All done."
-echo "Add $here/install/bin and $here/install/lib to \$PATH"
-echo "Don't forget to copy the class libraries to $here/install/lib"
-