| #!/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 |
| |