#!/usr/bin/env bash VERSION=3.0.3.4 PACKAGE=monodevelop_addinauthoring prefix=/usr/local config=DEBUG configurations=" RELEASE DEBUG" common_packages=" monodevelop;3.0.3.4 gtk-sharp-2.0;2.12.8 mono-addins-setup;0.4 mono-addins;0.5" usage () { echo "Usage : configure [--prefix=PREFIX] [--config=CONFIG]" echo echo "Configurations available :" for c in $configurations; do if [ "$c" = "$config" ]; then echo " $c (Default)" else echo " $c" fi done } validate_config () { test -z "$1" && return 0 for c in $configurations; do if [ "$c" = "$1" ]; then return 1 fi done return 0 } check_package () { name=`echo $1 | cut -d\; -f1` version=`echo $1 | cut -d\; -f2` echo -n "Checking for package '$name'.." | tee -a config.log pkg-config --atleast-version=$version $name if [ $? -ne 0 ]; then echo " ERROR: Package named '$name' >= $version not found." | tee -a config.log echo "Try adjusting your PKG_CONFIG_PATH environment variable." | tee -a config.log return 1 fi echo " found." | tee -a config.log } check_required_packages () { echo "Looking for required packages" | tee config.log var=required_packages_$config for pkg in $common_packages ${!var}; do check_package $pkg retval=$? [ $retval -ne 0 ] && return $retval done return 0 } while test x$1 != x; do case $1 in --prefix=*) prefix=`echo $1 | sed 's/--prefix=//'` ;; --prefix) shift prefix=$1 ;; --config=*) conf=`echo $1 | sed 's/--config=//'` validate_config "$conf" if [ $? -eq 1 ]; then config=$conf else echo "Invalid config name - $conf" usage exit 1 fi ;; --help) usage exit ;; *) echo Unknown argument $1 >&2 usage exit 1 ;; esac shift done check_required_packages [ $? -eq 1 ] && exit 1 echo "prefix=$prefix" > config.make echo "RUNTIME=mono" >> config.make echo "ASSEMBLY_VERSION=$VERSION.0.0" >> config.make echo "VERSION=$VERSION" >> config.make echo "PACKAGE=$PACKAGE" >> config.make echo "CONFIG=$config" >> config.make echo echo "$PACKAGE has been configured with " echo " prefix = $prefix" echo " config = $config" echo