blob: 15e50514121729ceb9f7a827adf386d97ec9d65f [file] [log] [blame]
Simon Kelleya4f04ed2012-01-06 11:47:02 +00001#!/bin/sh
2
3# Determine the version string to build into a binary.
4# When building in the git repository, we can use the output
5# of "git describe" which gives an unequivocal answer.
6#
7# Failing that, we use the contents of the VERSION file
8# which has a set of references substituted into it by git.
9# If we can find one which matches $v[0-9].* then we assume it's
10# a version-number tag, else we just use the whole string.
Simon Kelley00acd062012-08-17 14:18:50 +010011# If there is more than one v[0-9].* tag, sort them and use the
12# first. This favours, eg v2.63 over 2.63rc6.
Simon Kelleya4f04ed2012-01-06 11:47:02 +000013
Simon Kelleyfdacfb02012-02-28 15:20:25 +000014if which git >/dev/null 2>&1 && [ -d $1/.git ]; then
15 cd $1; git describe
16elif grep '\$Format:%d\$' $1/VERSION >/dev/null 2>&1; then
Simon Kelley98d76a02012-02-10 22:16:45 +000017# unsubstituted VERSION, but no git available.
18 echo UNKNOWN
Simon Kelleya4f04ed2012-01-06 11:47:02 +000019else
Simon Kelley990123a2012-12-14 11:56:15 +000020 vers=`cat $1/VERSION | sed 's/[(), ]/,/ g' | tr ',' '\n' | grep ^v[0-9]`
Simon Kelleya4f04ed2012-01-06 11:47:02 +000021
22 if [ $? -eq 0 ]; then
Simon Kelley00acd062012-08-17 14:18:50 +010023 echo "${vers}" | sort | head -n 1 | sed 's/^v//'
Simon Kelleya4f04ed2012-01-06 11:47:02 +000024 else
Simon Kelleyfdacfb02012-02-28 15:20:25 +000025 cat $1/VERSION
Simon Kelleya4f04ed2012-01-06 11:47:02 +000026 fi
27fi
28
29exit 0
30