build: Generate version numbers for git

Update the version.sh script for git so it'll generate version numbers
more useful than "UNKNOWN". At the moment it only generates the short
SHA1 name, but adding a tag as a starting point should allow more
useful output. Rather than update the Makefile logic that tried to
guess whether the svn revision had changed since the last version.h
update, just run the version.sh script from configure so the version
is updated at least at that time.
This commit is contained in:
Uoti Urpala 2009-11-23 05:40:52 +02:00
parent d3a1fa98f4
commit 1dba61a670
3 changed files with 7 additions and 11 deletions

View File

@ -768,10 +768,6 @@ config.mak: configure
help_mp.h: help/help_mp-en.h $(HELP_FILE)
help/help_create.sh $(HELP_FILE) $(CHARSET)
# rebuild version.h each time the working copy is updated
ifeq ($(wildcard .svn/entries),.svn/entries)
version.h: .svn/entries
endif
version.h: version.sh
./$< `$(CC) -dumpversion`

2
configure vendored
View File

@ -8434,6 +8434,8 @@ cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
#############################################################################
./version.sh `$_cc -dumpversion`
cat << EOF
Config files successfully generated by ./configure $_configuration !

View File

@ -4,16 +4,14 @@ test "$1" && extra="-$1"
# Extract revision number from file used by daily tarball snapshots
# or from the places different Subversion versions have it.
svn_revision=$(cat snapshot_version 2> /dev/null)
test $svn_revision || svn_revision=$(LC_ALL=C svn info 2> /dev/null | grep Revision | cut -d' ' -f2)
test $svn_revision || svn_revision=$(grep revision .svn/entries 2>/dev/null | cut -d '"' -f2)
test $svn_revision || svn_revision=$(sed -n -e '/^dir$/{n;p;q;}' .svn/entries 2>/dev/null)
test $svn_revision && svn_revision=SVN-r$svn_revision
test $svn_revision || svn_revision=UNKNOWN
git_revision=$(cat snapshot_version 2> /dev/null)
test $git_revision || test -d .git && git_revision=`git describe --always`
test $git_revision && git_revision=git-$git_revision
test $git_revision || git_revision=UNKNOWN
# releases extract the version number from the VERSION file
version=$(cat VERSION 2> /dev/null)
test $version || version=$svn_revision
test $version || version=$git_revision
NEW_REVISION="#define VERSION \"${version}${extra}\""
OLD_REVISION=$(head -n 1 version.h 2> /dev/null)