build-sys: update git-version-gen from gnulib

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
Sami Kerola 2013-04-09 20:47:11 +01:00
parent d2b7d10dbc
commit 7c34231004

View file

@ -1,8 +1,8 @@
#!/bin/sh #!/bin/sh
# Print a version string. # Print a version string.
scriptversion=2011-02-19.19; # UTC scriptversion=2012-12-31.23; # UTC
# Copyright (C) 2007-2011 Free Software Foundation, Inc. # Copyright (C) 2007-2013 Free Software Foundation, Inc.
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
@ -44,8 +44,10 @@ scriptversion=2011-02-19.19; # UTC
# files to pick up a version string change; and leave it stale to # files to pick up a version string change; and leave it stale to
# minimize rebuild time after unrelated changes to configure sources. # minimize rebuild time after unrelated changes to configure sources.
# #
# It is probably wise to add these two files to .gitignore, so that you # As with any generated file in a VC'd directory, you should add
# don't accidentally commit either generated file. # /.version to .gitignore, so that you don't accidentally commit it.
# .tarball-version is never generated in a VC'd directory, so needn't
# be listed there.
# #
# Use the following line in your configure.ac, so that $(VERSION) will # Use the following line in your configure.ac, so that $(VERSION) will
# automatically be up-to-date each time configure is run (and note that # automatically be up-to-date each time configure is run (and note that
@ -57,24 +59,73 @@ scriptversion=2011-02-19.19; # UTC
# [bug-project@example]) # [bug-project@example])
# #
# Then use the following lines in your Makefile.am, so that .version # Then use the following lines in your Makefile.am, so that .version
# will be present for dependencies, and so that .tarball-version will # will be present for dependencies, and so that .version and
# exist in distribution tarballs. # .tarball-version will exist in distribution tarballs.
# #
# EXTRA_DIST = $(top_srcdir)/.version
# BUILT_SOURCES = $(top_srcdir)/.version # BUILT_SOURCES = $(top_srcdir)/.version
# $(top_srcdir)/.version: # $(top_srcdir)/.version:
# echo $(VERSION) > $@-t && mv $@-t $@ # echo $(VERSION) > $@-t && mv $@-t $@
# dist-hook: # dist-hook:
# echo $(VERSION) > $(distdir)/.tarball-version # echo $(VERSION) > $(distdir)/.tarball-version
case $# in
1|2) ;;
*) echo 1>&2 "Usage: $0 \$srcdir/.tarball-version" \
'[TAG-NORMALIZATION-SED-SCRIPT]'
exit 1;;
esac
tarball_version_file=$1 me=$0
tag_sed_script="${2:-s/x/x/}"
version="git-version-gen $scriptversion
Copyright 2011 Free Software Foundation, Inc.
There is NO warranty. You may redistribute this software
under the terms of the GNU General Public License.
For more information about these matters, see the files named COPYING."
usage="\
Usage: $me [OPTION]... \$srcdir/.tarball-version [TAG-NORMALIZATION-SED-SCRIPT]
Print a version string.
Options:
--prefix prefix of git tags (default 'v')
--fallback fallback version to use if \"git --version\" fails
--help display this help and exit
--version output version information and exit
Running without arguments will suffice in most cases."
prefix=v
fallback=
while test $# -gt 0; do
case $1 in
--help) echo "$usage"; exit 0;;
--version) echo "$version"; exit 0;;
--prefix) shift; prefix="$1";;
--fallback) shift; fallback="$1";;
-*)
echo "$0: Unknown option '$1'." >&2
echo "$0: Try '--help' for more information." >&2
exit 1;;
*)
if test "x$tarball_version_file" = x; then
tarball_version_file="$1"
elif test "x$tag_sed_script" = x; then
tag_sed_script="$1"
else
echo "$0: extra non-option argument '$1'." >&2
exit 1
fi;;
esac
shift
done
if test "x$tarball_version_file" = x; then
echo "$usage"
exit 1
fi
tag_sed_script="${tag_sed_script:-s/x/x/}"
nl=' nl='
' '
@ -92,22 +143,22 @@ then
[0-9]*) ;; [0-9]*) ;;
*) v= ;; *) v= ;;
esac esac
test -z "$v" \ test "x$v" = x \
&& echo "$0: WARNING: $tarball_version_file is missing or damaged" 1>&2 && echo "$0: WARNING: $tarball_version_file is missing or damaged" 1>&2
fi fi
if test -n "$v" if test "x$v" != x
then then
: # use $v : # use $v
# Otherwise, if there is at least one git commit involving the working # Otherwise, if there is at least one git commit involving the working
# directory, and "git describe" output looks sensible, use that to # directory, and "git describe" output looks sensible, use that to
# derive a version string. # derive a version string.
elif test "`git log -1 --pretty=format:x . 2>&1`" = x \ elif test "`git log -1 --pretty=format:x . 2>&1`" = x \
&& v=`git describe --tags --abbrev=4 --match='v*' HEAD 2>/dev/null \ && v=`git describe --abbrev=4 --match="$prefix*" HEAD 2>/dev/null \
|| git describe --tags --abbrev=4 HEAD 2>/dev/null` \ || git describe --abbrev=4 HEAD 2>/dev/null` \
&& v=`printf '%s\n' "$v" | sed "$tag_sed_script"` \ && v=`printf '%s\n' "$v" | sed "$tag_sed_script"` \
&& case $v in && case $v in
v[0-9]*) ;; $prefix[0-9]*) ;;
*) (exit 1) ;; *) (exit 1) ;;
esac esac
then then
@ -136,16 +187,18 @@ then
# Remove the "g" in git describe's output string, to save a byte. # Remove the "g" in git describe's output string, to save a byte.
v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`; v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`;
v_from_git=1 v_from_git=1
else elif test "x$fallback" = x || git --version >/dev/null 2>&1; then
v=UNKNOWN v=UNKNOWN
else
v=$fallback
fi fi
v=`echo "$v" |sed 's/^v//'` v=`echo "$v" |sed "s/^$prefix//"`
# Test whether to append the "-dirty" suffix only if the version # Test whether to append the "-dirty" suffix only if the version
# string we're using came from git. I.e., skip the test if it's "UNKNOWN" # string we're using came from git. I.e., skip the test if it's "UNKNOWN"
# or if it came from .tarball-version. # or if it came from .tarball-version.
if test -n "$v_from_git"; then if test "x$v_from_git" != x; then
# Don't declare a version "dirty" merely because a time stamp has changed. # Don't declare a version "dirty" merely because a time stamp has changed.
git update-index --refresh > /dev/null 2>&1 git update-index --refresh > /dev/null 2>&1