version.sh 666 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#!/bin/sh

svn_revision=`cd "$1" && LC_ALL=C svn info 2> /dev/null | grep Revision | cut -d' ' -f2`
test $svn_revision || svn_revision=`cd "$1" && grep revision .svn/entries 2>/dev/null | \
                                    cut -d '"' -f2 2> /dev/null`
test $svn_revision || svn_revision=UNKNOWN

if test "$svn_revision" = UNKNOWN && test -n "$2"; then
    NEW_REVISION="#define VERSION \"$2\""
else
    NEW_REVISION="#define VERSION \"SVN-r$svn_revision\""
fi
OLD_REVISION=`cat version.h 2> /dev/null`

# Update version.h only on revision changes to avoid spurious rebuilds
if test "$NEW_REVISION" != "$OLD_REVISION"; then
    echo "$NEW_REVISION" > version.h
fi