#!/bin/bash ##Find updates at /?s=mono ##Additional help http://www.mono-project.com/Parallel_Mono_Environments #source ./mono-env MONO_VERSION="2.10.2" MONO_PREFIX="${HOME}/mono-${MONO_VERSION}" GNOME_PREFIX=/usr export DYLD_LIBRARY_FALLBACK_PATH="${MONO_PREFIX}/lib:${DYLD_LIBRARY_FALLBACK_PATH}" export LD_LIBRARY_PATH="${MONO_PREFIX}/lib:${LD_LIBRARY_PATH}" export LD_RUN_PATH="${MONO_PREFIX}:${LD_RUN_PATH}" export C_INCLUDE_PATH="${MONO_PREFIX}/include:${GNOME_PREFIX}/include" export ACLOCAL_PATH="${MONO_PREFIX}/share/aclocal" export PKG_CONFIG_PATH="${MONO_PREFIX}/lib/pkgconfig:${GNOME_PREFIX}/lib/pkgconfig:${MONO_PREFIX}/share/pkgconfig:${PKG_CONFIG_PATH}" export LIBRARY_PATH="${MONO_PREFIX}/lib" export PATH="${MONO_PREFIX}/bin:${PATH}" INSTALL_MONO_SRC="${HOME}/src/mono-build-${MONO_VERSION}" INSTALL_CURRENT_DIR=`pwd` INSTALL_LOG_FILE="${INSTALL_CURRENT_DIR}/log-${MONO_VERSION}.txt" echo -e "Starting mono install to $MONO_PREFIX" > $INSTALL_LOG_FILE echo "Starting mono install to $MONO_PREFIX" while true; do read -p "Do you wish to install this program? (y/n)" yn case $yn in [Yy]* ) break;; [Nn]* ) echo "Ok. leaving. ";exit;; * ) echo "Please answer yes or no.";; esac done mkdir -p "${MONO_PREFIX}" mkdir -p "${MONO_PREFIX}/etc" mkdir -p "${INSTALL_MONO_SRC}" logg "make 'mono-env' file" cat > "$MONO_PREFIX/mono-env" <> $INSTALL_LOG_FILE echo "-- $1" } ##download extract install function getLib { #spp=(${1//// }) spp=`echo $1 | sed "s/.*\///"` name=${spp[${#spp[@]}-1]} ##reslving folder names case $name in jpegsrc.v7*) name_dir="jpeg-7" ;; jpegsrc.v8c*) name_dir="jpeg-8c" ;; *) name_dir=`echo $name | sed "s/\.tar.*$//"` ;; esac logg "$name: started" cd ${INSTALL_MONO_SRC} ##nice -n 19 (wget, tar, ./configure, make, make install) wget -c "$1" if [ $? -ne 0 ]; then exit 1; fi logg "$name: downloaded" ##resolve archive format case $name in *bz2) tar -xjf "$name" ;; *gz) tar -xzf "$name" ;; esac if [ $? -ne 0 ]; then exit 1; fi logg "$name: extracted" cd "${INSTALL_MONO_SRC}/${name_dir}" if [ $? -ne 0 ]; then exit 1; fi logg "$name: entered archive" paramz="" ##Additional params for dependencies case $name in zlib*) paramz="--shared";; glib*) paramz="--with-libiconv=gnu";; libgdiplus*) paramz="--with-gnu";; *) paramz="";; esac ##install it ./configure "--prefix=${MONO_PREFIX}" $paramz if [ $? -ne 0 ]; then exit 1; fi logg "$name: configured" make if [ $? -ne 0 ]; then exit 1; fi logg "$name: compiled" make install if [ $? -ne 0 ]; then exit 1; fi logg "$name: installed" cd ${INSTALL_CURRENT_DIR} #read -p "PAUSED... Press any key or CTL-C" } #issue:http://serverfault.com/questions/249411/mono-undefined-reference-to-locale-charset libiconv_version="1.8" #1.13.1" libs=( "ftp://ftp.gnu.org/gnu/m4/m4-1.4.16.tar.bz2" #newer version of bizon requres it "ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-${libiconv_version}.tar.gz" "http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.tar.gz" ##again/recommended in install guide at http://www.gnu.org/software/libiconv "ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-${libiconv_version}.tar.gz" "http://ftp.gnu.org/gnu/bison/bison-2.5.tar.bz2" "http://xmlsoft.org/sources/libxml2-2.7.8.tar.gz" "http://xmlsoft.org/sources/libxslt-1.1.26.tar.gz" "http://zlib.net/zlib-1.2.5.tar.gz" ##here are the mono libs "http://ftp.novell.com/pub/mono/sources/mono/mono-${MONO_VERSION}.tar.bz2" "http://ftp.novell.com/pub/mono/sources/xsp/xsp-${MONO_VERSION}.tar.bz2" ##Visual basic. I don't want it ##"http://ftp.novell.com/pub/mono/sources/mono-basic/mono-basic-${MONO_VERSION}.tar.bz2" ) #checking for LIBEXIF... yes #configure: error: "Failed to compile with X11/Xlib.h include. You must fix your compiler paths" export X11_LIBS="${LIBRARY_PATH}" #http://dev.n0ll.com/?p=857 ######## libsGdiPlus=( ##X11 libs for libgdiplus "ftp://ftp.freedesktop.org/pub/xorg/X11R7.6/src/proto/xproto-7.0.20.tar.bz2" "ftp://ftp.freedesktop.org/pub/xorg/X11R7.6/src/lib/libXau-1.0.6.tar.bz2" "ftp://ftp.freedesktop.org/pub/xorg/X11R7.6/src/lib/xtrans-1.2.6.tar.bz2" "http://xcb.freedesktop.org/dist/libpthread-stubs-0.3.tar.bz2" "http://xcb.freedesktop.org/dist/xcb-proto-1.6.tar.bz2" "http://xcb.freedesktop.org/dist/libxcb-1.7.tar.bz2" "ftp://ftp.freedesktop.org/pub/xorg/X11R7.6/src/proto/xextproto-7.1.2.tar.bz2" "ftp://ftp.freedesktop.org/pub/xorg/X11R7.6/src/proto/kbproto-1.0.5.tar.bz2" "ftp://ftp.freedesktop.org/pub/xorg/X11R7.6/src/proto/inputproto-2.0.1.tar.bz2" "ftp://ftp.freedesktop.org/pub/xorg/X11R7.6/src/lib/libX11-1.4.0.tar.bz2" ##file formats for libgdiplus "http://iweb.dl.sourceforge.net/project/libexif/libexif/0.6.20/libexif-0.6.20.tar.bz2" "http://www.ijg.org/files/jpegsrc.v8c.tar.gz" "ftp://ftp.remotesensing.org/pub/libtiff/tiff-3.9.5.tar.gz" "http://sourceforge.net/projects/giflib/files/giflib%204.x/giflib-4.1.6/giflib-4.1.6.tar.bz2" "http://sourceforge.net/projects/giflib/files/libungif%204.x/libungif-4.1.4/libungif-4.1.4.tar.bz2" "ftp://sourceware.org/pub/libffi/libffi-3.0.9.tar.gz" ##libgdiplus compile problem: "http://sourceforge.net/projects/libpng/files/libpng15/1.5.2/libpng-1.5.2.tar.bz2" "ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.4.7.tar.bz2" "http://ftp.gnome.org/pub/GNOME/sources/glib/2.29/glib-2.29.8.tar.bz2" ##fonts for cairo #"http://download.savannah.gnu.org/releases/freetype/freetype-2.4.4.tar.bz2" #"http://www.freedesktop.org/software/fontconfig/release/fontconfig-2.8.0.tar.gz" ##here are the mono libs "http://ftp.novell.com/pub/mono/sources/libgdiplus/libgdiplus-2.10.tar.bz2" ) for ix in ${!libs[*]} do getLib ${libs[$ix]} done echo "---mono version:" mono --version for ix in ${!libsGdiPlus[*]} do getLib ${libsGdiPlus[$ix]} done echo "---All finished. Congrats!"