run_untar() { local package=$1 local version=$2 local ext=$3 tar_args=""; if [ $ext = ".tar.gz" ] ; then tar_args="xvzf" elif [ $ext = ".tgz" ] ; then tar_args="xvzf" elif [ $ext = ".tar.bz2" ] ; then tar_args="xvjf" elif [ $ext = ".tar.bz" ] ; then tar_args="xvjf" elif [ $ext = ".tar" ] ; then tar_args="xvf" else echo "Warning: Unrecognized extension: $ext" echo "Assuming tarred, gzipped file" tar_args="xvjf" fi echo tar $tar_args $package$version$ext tar $tar_args $package$version$ext if [ $? != 0 ] ; then echo " Error encountered running *untar* stage of $progname" exit 1 fi } opt_run_tarclean() { local type=$1 local package=$2 local version=$3 if [ $type = "1" ] ; then local dir=$package$version if [ -d $dir ] ; then echo /bin/rm -rf $dir /bin/rm -rf $dir if [ $? != 0 ] ; then echo " Error encountered running *tarclean* stage of $progname" exit 1 fi else echo "Unable to find directory $dir" fi fi } opt_run_untar() { local force_untar=$1 local auto_untar=$2 local package=$3 local version=$4 local ext=""; if [ ! -z "$5" ] ; then ext=$5 else ext=".tar.gz" fi if [ $force_untar = "1" ] ; then run_untar $package $version $ext elif [ $auto_config = "1" ] ; then if [ -d $package$version ] ; then echo "Found untarred version of $package$version$ext => no need to untar" else run_untar $package $version $ext fi fi } opt_run_configure() { local force_config=$1 local auto_config=$2 local package=$3 local version=$4 local prefix=$5 local opt_args=""; if [ ! -z "$6" ] ; then opt_args=$6 fi if [ $force_config = "1" ] ; then ( echo "[pushd $package$version]" cd $package$version ; \ echo ./configure --prefix="$prefix" $opt_args ; \ ./configure --prefix="$prefix" $opt_args ) echo "[popd]" if [ $? != 0 ] ; then echo " Error encountered running *configure* stage of $progname" exit 1 fi else if [ $auto_config = "1" ] ; then echo "Found top-level for ${progname%.*} => no need to run ./configure" fi fi } opt_run_setuppy() { local type=$1 local package=$2 local version=$3 local opt_target="" if [ ! -z "$4" ] ; then opt_target=$4 fi if [ $type = "1" ] ; then ( cd $package$version ; \ python setup.py $opt_target) if [ $? != 0 ] ; then echo " Error encountered running *setup.py $target* stage of $progname" exit 1 fi fi } opt_run_make() { local type=$1 local package=$2 local version=$3 local opt_target="" if [ ! -z "$4" ] ; then opt_target=$4 fi if [ $type = "1" ] ; then ( cd $package$version ; \ make $opt_target) if [ $? != 0 ] ; then echo " Error encountered running *make $target* stage of $progname" exit 1 fi fi } opt_run_cmake() { local type=$1 local package=$2 local version=$3 local subdir=$4 local opt_target="" if [ ! -z "$5" ] ; then opt_target=$5 fi if [ $type = "1" ] ; then ( cd $package$version/$subdir ; \ make $opt_target) if [ $? != 0 ] ; then echo " Error encountered running *make $target* stage of $progname" exit 1 fi fi } force_untar=0 auto_untar=0 force_config=0 auto_config=0 compile=0 install=0 clean=0 distclean=0 tarclean=0 if [ $# -gt 0 ] ; then for cmd in $* ; do echo $cmd if [ $cmd = "untar" ] ; then force_untar=1 elif [ $cmd = "configure" ] ; then force_config=1 elif [ $cmd = "compile" ] ; then compile=1 elif [ $cmd = "install" ] ; then install=1 elif [ $cmd = "clean" ] ; then clean=1 elif [ $cmd = "distclean" ] ; then distclean=1 elif [ $cmd = "tarclean" ] ; then tarclean=1 fi done else # defaults auto_untar=1 auto_config=1 compile=1 install=1 clean=0 distclean=0 tarclean=0 fi if [ $auto_config = "1" ] ; then if [ ! -e $package$version/Makefile ] ; then force_config=1 fi fi