#!/bin/sh # Get version-info specified in Makefile V=$1 # When building from a git repository, derive the version from the most recent # release tag instead. The result follows Semantic Versioning 2.0.0, using the # number of commits made since that tag as build metadata, so seven commits # after the v1.3.1 tag gives "v1.3.1+7", while a build of the tag itself gives # plain "v1.3.1". Release tags are expected to be named vMAJOR.MINOR.PATCH. if test "$(git rev-parse --git-dir 2>/dev/null)" = '.git' then tag=$(git describe --abbrev=0 --match 'v[0-9]*' HEAD 2>/dev/null) if test -n "$tag" then ahead=$(git rev-list --count "$tag..HEAD" 2>/dev/null) if test -n "$ahead" && test "$ahead" -gt 0 then V="$tag+$ahead" else V="$tag" fi fi fi new="CGIT_VERSION = $V" old=$(cat VERSION 2>/dev/null) # Exit if VERSION is uptodate test "$old" = "$new" && exit 0 # Update VERSION with new version-info echo "$new" > VERSION cat VERSION