#!/bin/sh

# Determine the version string to build into a binary.
# When building in the git repository, we can use the output 
# of "git describe" which gives an unequivocal answer.
#
# Failing that, we use the contents of the VERSION file
# which has a set of references substituted into it by git.
# If we can find one which matches $v[0-9].* then we assume it's
# a version-number tag, else we just use the whole string.
# If there is more than one v[0-9].* tag, sort them and use the
# first. This favours, eg v2.63 over 2.63rc6.

# Change directory to the toplevel source directory.
if test -z "$1" || ! test -d "$1" || ! cd "$1"; then
    echo "$0: First argument $1 must be toplevel dir." >&2
    exit 1
fi

if which git >/dev/null 2>&1 && \
    ([ -d .git ] || grep '^gitdir:' .git >/dev/null 2>&1) && \
    git describe >/dev/null 2>&1; then 
    git describe | sed 's/^v//'
elif grep '\$Format:%d\$' $1/VERSION >/dev/null 2>&1; then
    # unsubstituted VERSION, but no git available.
    echo UNKNOWN
else
     vers=`cat $1/VERSION | sed 's/[(), ]/,/ g' | tr ',' '\n' | grep ^v[0-9]`

     if [ $? -eq 0 ]; then
         echo "${vers}" | sort -r | head -n 1 | sed 's/^v//'
     else
         cat $1/VERSION
     fi
fi

exit 0

