diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/scripts/version | 54 | ||||
-rw-r--r-- | src/vpp.am | 4 |
2 files changed, 56 insertions, 2 deletions
diff --git a/src/scripts/version b/src/scripts/version new file mode 100755 index 00000000000..af447286912 --- /dev/null +++ b/src/scripts/version @@ -0,0 +1,54 @@ +#!/bin/bash + +path=$( cd "$(dirname "${BASH_SOURCE}")" ; pwd -P ) + +cd "$path" + +git rev-parse 2> /dev/null +if [ $? == 0 ]; then + vstring=$(git describe) +elif [ -f .version ]; then + vstring=$(cat .version) +else + if [ -f ../rpm/*.gz ]; then + vstring=$(ls ../rpm/*.gz) + else + exit 1 + fi +fi + +TAG=$(echo ${vstring} | cut -d- -f1 | sed -e 's/^v//') +ADD=$(echo ${vstring} | cut -s -d- -f2) + +git rev-parse 2> /dev/null +if [ $? == 0 ]; then + CMT=$(git describe --dirty --match 'v*'| cut -s -d- -f3,4) +else + CMT=$(echo ${vstring} | cut -s -d- -f3,4) +fi +CMTR=$(echo $CMT | sed 's/-/_/') + +if [ -n "${BUILD_NUMBER}" ]; then + BLD="~b${BUILD_NUMBER}" +fi + +if [ "$1" = "rpm-version" ]; then + echo ${TAG} + exit +fi + +if [ "$1" = "rpm-release" ]; then + [ -z "${ADD}" ] && echo release && exit + echo ${ADD}${CMTR:+~${CMTR}}${BLD} + exit +fi + + if [ -n "${ADD}" ]; then + if [ "$1" = "rpm-string" ]; then + echo ${TAG}-${ADD}${CMTR:+~${CMTR}}${BLD} + else + echo ${TAG}-${ADD}${CMT:+~${CMT}}${BLD} + fi + else + echo ${TAG} +fi diff --git a/src/vpp.am b/src/vpp.am index 1d07b90a89e..5128e8ac302 100644 --- a/src/vpp.am +++ b/src/vpp.am @@ -55,8 +55,8 @@ vpp/app/version.h: @echo "#define VPP_BUILD_DATE \"$$(date)\"" > $@ @echo "#define VPP_BUILD_USER \"$$(whoami)\"" >> $@ @echo "#define VPP_BUILD_HOST \"$$(hostname)\"" >> $@ - @echo "#define VPP_BUILD_TOPDIR \"$$(git rev-parse --show-toplevel)\"" >> $@ - @echo "#define VPP_BUILD_VER \"$$(../../scripts/version)\"" >> $@ + @echo "#define VPP_BUILD_TOPDIR \"$$(cd $(srcdir) && git rev-parse --show-toplevel)\"" >> $@ + @echo "#define VPP_BUILD_VER \"$$($(srcdir)/scripts/version)\"" >> $@ # Generate a plugin configuration script. Misconfiguring a # plugin can cause very subtle problems. |