1#!/bin/sh
2#
3# This generates a version string which includes recent version as
4# specified in correspondent sub project's configure.in file, plus
5# git revision abbreviation in the case if sub-project HEAD is different
6# from recent tag, plus "-dirty" suffix if local uncommitted changes are
7# in the sub project tree.
8#
9
10usage()
11{
12	echo "Usage: $0 <target>"
13	exit 2
14}
15
16test -z "$1" && usage
17
18package=$1
19
20cd `dirname $0`
21
22conf_file=$package/configure.in
23version=`cat $conf_file | sed -ne '/AC_INIT.*'$package'.*/s/^AC_INIT.*'$package', \(.*\),.*$/\1/p'`
24
25git diff --quiet $package-$version..HEAD -- $package > /dev/null 2>&1
26if [ $? -eq 1 ] ; then
27	abbr=`git rev-parse --short --verify HEAD 2>/dev/null`
28	if [ ! -z "$abbr" ] ; then
29		version="${version}_${abbr}"
30	fi
31fi
32
33git diff-index --quiet HEAD -- $package > /dev/null 2>&1
34if [ $? -eq 1 ] ; then
35	version="${version}_dirty"
36fi
37
38echo $version
39