#!/bin/bash

# Copyright (c)2004-2021 Ren_ Rebe

. ./functions

set -e
#set -x

CC=""
CXX=""
CFLAGS=""
CXXFLAGS=""
suffix=""
benchmarks=""

while [ "$1" ] ; do
  case "$1" in
	-benchmarks)
		benchmarks="$2" ; shift
		;;
	-cc)
		CC="$2" ; shift
		;;
	-cxx)
		CXX="$2" ; shift
		;;
	-cflags)
		CFLAGS="$2" ; shift
		;;
	-cxxflags)
		CXXFLAGS="$2" ; shift
		;;
	-suffix)
		suffix="$2" ; shift
		;;
	-*)
		echo "Unrecognized argument $1"
		exit
		;;
	*)
		break
		;;
  esac
  shift
done

[ "$CXX" ] || CXX="$CC"
[ "$CXXFLAGS" ] || CXXFLAGS="$CFLAGS"

# use all compilers if none specified
if [ ! "$1" ] ; then
	set -- `(cd .. ; ls -d bin* | sed s/bin-//)` 
	echo "No compiler specified - using detected ones:"
fi

# use all benchmarks if none specified
if [ ! "$benchmarks" ] ; then
	benchmarks="lua-5.1.5  gnupg-1.4.22  gzip-1.2.4a
	zstd-1.5.2  lame-3.98.4  libmad-0.15.1b  jpeg-9e"
	# "Botan-1.8.10 openssl-1.0.0a tramp3d-v4"
	echo "No benchmark specified - using detected ones:"
fi

echo "Compiler:   $*"
echo "Benchmarks: $benchmarks"

for x ; do
	# set the PATH and LD_LIBRARY_PATH for our various gccs
	var_insert PATH : "$PWD/../bin-$x/bin"

	var_insert LD_LIBRARY_PATH ":" $PWD/../bin-$x/lib
        var_insert LD_LIBRARY_PATH ":" $PWD/../bin-$x/lib/gcc/*/*

	export PATH LD_LIBRARY_PATH CC CXX CFLAGS CXXFLAGS

	[ "$suffix" ] && x="$x-$suffix"

	./bench.sh $x $benchmarks || true
done
