#!/bin/sh

if ! echo "$@" | grep -- -c >/dev/null; then
  g++ "$@"
  exit $?
fi
if echo "$@" | grep -- -fPIC >/dev/null; then
  g++ "$@"
  exit $?
fi

MAXMEM="`dirname $0`/maxmem2.sh"
mem=`$MAXMEM g++ "$@" 2>&1 | grep 'total:' | sed -e 's/^.*total: \([0-9]*\).*$/\1/g'`
if test -z "$mem"; then
  mem=0
fi
time=`/usr/bin/time 2>&1 -f "time: %U" g++ $@ | grep 'time:' | sed -e 's/^.*time: \([0-9\.]*\).*$/\1/g'`
if test -z "$time"; then
  time=0
fi
#time2=`/usr/bin/time 2>&1 -f "time: %U" g++ $@ | grep 'time:' | sed -e 's/^.*time: \([0-9\.]*\).*$/\1/g'`
#time3=`/usr/bin/time 2>&1 -f "time: %U" g++ $@ | grep 'time:' | sed -e 's/^.*time: \([0-9\.]*\).*$/\1/g'`

#time=`python -c "print ($time + $time2 + $time3)/3.0"`

# find source file
while ! test -z "$1"; do
  case "$1" in
    *.cc)
	obj=`echo $1 | sed -e 's/\.cc$/\.o/g'`
	objsize="42"
	if test -f $obj; then
	  objsize="`size $obj | tail -1 | cut -f 1`"
	fi
	echo >&2 BENCHDATA $1 $mem $time $objsize
	exit ;;
  esac
  shift
done
if test -z "$1"; then
  echo >&2 error in wrapping
fi
