#!/bin/sh
#jlst 2015

if ! which gcc 1>/dev/null 2>&1 ; then
	echo "* ERROR: gcc is not present" ; exit 1;
fi

echo '----------------------------------------'
[ -f /usr/bin/cpp ] && file /usr/bin/cpp
[ -f /usr/bin/gcc ] && file /usr/bin/gcc
[ -f /usr/bin/g++ ] && file /usr/bin/g++
echo '----------------------------------------'

gcc46='/usr/bin/cpp-4.6
/usr/bin/g++-4.6
/usr/bin/gcc-4.6
/usr/bin/gcc-ar-4.6
/usr/bin/gccgo-4.6
/usr/bin/gcc-nm-4.6
/usr/bin/gcc-ranlib-4.6
/usr/bin/gcov-4.6
/usr/bin/gfortran-4.6
/usr/bin/gdc-4.7'

gcc47='/usr/bin/cpp-4.7
/usr/bin/g++-4.7
/usr/bin/gcc-4.7
/usr/bin/gcc-ar-4.7
/usr/bin/gccgo-4.7
/usr/bin/gcc-nm-4.7
/usr/bin/gcc-ranlib-4.7
/usr/bin/gcov-4.7
/usr/bin/gfortran-4.7
/usr/bin/gdc-4.7'

gcc48='/usr/bin/cpp-4.8
/usr/bin/g++-4.8
/usr/bin/gcc-4.8
/usr/bin/gcc-ar-4.8
/usr/bin/gccgo-4.8
/usr/bin/gcc-nm-4.8
/usr/bin/gcc-ranlib-4.8
/usr/bin/gcov-4.8
/usr/bin/gdc-4.8'

gcc49='/usr/bin/cpp-4.9
/usr/bin/g++-4.9
/usr/bin/gcc-4.9
/usr/bin/gcc-ar-4.9
/usr/bin/gccgo-4.9
/usr/bin/gcc-nm-4.9
/usr/bin/gcc-ranlib-4.9
/usr/bin/gcov-4.9
/usr/bin/gdc-4.9'

gcc410=''

read -r testx <<< "$gcc46"
if [ -x $testx ] ; then
	gcc46ok=1
fi

read -r testx <<< "$gcc47"
if [ -x "$testx" ] ; then
	gcc47ok=1
fi

read -r testx <<< "$gcc48"
if [ -x "$testx" ] ; then
	gcc48ok=1
fi

read -r testx <<< "$gcc49"
if [ -x "$testx" ] ; then
	gcc49ok=1
fi

read -r testx <<< "$gcc410"
if [ -x "$testx" ] ; then
	echo aaaaaaa
	gcc410ok=1
fi

###########################

echo "* Choose one of the following GCC versions available: "
[ "$gcc46ok" ] && echo "	4.6"
[ "$gcc47ok" ] && echo "	4.7"
[ "$gcc48ok" ] && echo "	4.8"
[ "$gcc49ok" ] && echo "	4.9"
[ "$gcc410ok" ] && echo "	4.10"
echo
echo -n "Type a version number: "
read version

case $version in
	"4.6")
		[ ! "$gcc46ok" ] && echo "* ERROR" && exit
		exelist="$gcc46"
		;;
	"4.7")
		[ ! "$gcc47ok" ] && echo "* ERROR" && exit
		exelist="$gcc47"
		;;
	"4.8")
		[ ! "$gcc48ok" ] && echo "* ERROR" && exit
		exelist="$gcc48"
		;;
	"4.9")
		[ ! "$gcc49ok" ] && echo "* ERROR" && exit
		exelist="$gcc49"
		;;
	"4.10")
		[ ! "$gcc410ok" ] && echo "* ERROR" && exit
		exelist="$gcc410"
		;;		
	*) 
		echo "* ERROR" && exit
		;;
esac

if [ "$exelist" ] ; then
	echo "$exelist" | while read exe ; do 
		if [ -f $exe ] ; then
			name=${exe##*/}
			dir=${exe%/*}
			shortexe=${name%-*}
			rm -f ${dir}/${shortexe}
			ln -sfv ${name} ${dir}/${shortexe}
		fi
	done
fi

### END ###