| #!/bin/sh |
| |
| extract_svn_version() |
| { |
| if [ -d "$1"/.svn ] |
| then |
| svnversion -n "$1" |
| elif [ -d "$1"/.git/svn ] |
| then |
| cd "$1" || exit 1 |
| git svn info . | grep '^Revision' | cut -d ' ' -f2 | tr -d '\n' |
| else |
| echo "unknown" |
| fi |
| } |
| |
| srcdir="${1:-.}" |
| |
| if [ -e "$srcdir"/include/vgversion_dist.h ] |
| then |
| cp "$srcdir"/include/vgversion_dist.h include/vgversion.h.tmp |
| else |
| cat > include/vgversion.h.tmp <<EOF |
| /* Do not edit: file generated by auxprogs/make_or_upd_vgversion_h. |
| This file defines VGSVN and VEXSVN, used to report SVN revision |
| when using command line options: -v --version |
| */ |
| #define VGSVN "$(extract_svn_version "$srcdir/.")" |
| #define VEXSVN "$(extract_svn_version "$srcdir/VEX")" |
| EOF |
| fi |
| |
| if [ -f include/vgversion.h ] |
| then |
| # There is already a vgversion.h. |
| # Update it only if we found a different and real svn version |
| if grep -q unknown include/vgversion.h.tmp || |
| cmp -s include/vgversion.h include/vgversion.h.tmp |
| then |
| rm -f include/vgversion.h.tmp |
| else |
| mv include/vgversion.h.tmp include/vgversion.h |
| fi |
| else |
| # There is no vgversion.h. Use the one just generated, whatever it is. |
| mv include/vgversion.h.tmp include/vgversion.h |
| fi |