summaryrefslogtreecommitdiff
path: root/bld/get-version
blob: 5372869c0852639ab994cac5833cfdb01989fc13 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/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.

if which git >/dev/null 2>&1 && \
    ([ -d $1/.git ] || grep '^gitdir:' $1/.git >/dev/null 2>&1); then 
    cd $1; 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