Elliott Hughes | ed39800 | 2017-06-21 14:41:24 -0700 | [diff] [blame^] | 1 | #!/bin/sh |
| 2 | |
| 3 | extract_svn_version() |
| 4 | { |
| 5 | if [ -d "$1"/.svn ] |
| 6 | then |
| 7 | svnversion -n "$1" |
| 8 | elif [ -d "$1"/.git/svn ] |
| 9 | then |
| 10 | cd "$1" || exit 1 |
| 11 | git svn info . | grep '^Revision' | cut -d ' ' -f2 | tr -d '\n' |
| 12 | else |
| 13 | echo "unknown" |
| 14 | fi |
| 15 | } |
| 16 | |
| 17 | srcdir="${1:-.}" |
| 18 | |
| 19 | if [ -e "$srcdir"/include/vgversion_dist.h ] |
| 20 | then |
| 21 | cp "$srcdir"/include/vgversion_dist.h include/vgversion.h.tmp |
| 22 | else |
| 23 | cat > include/vgversion.h.tmp <<EOF |
| 24 | /* Do not edit: file generated by auxprogs/make_or_upd_vgversion_h. |
| 25 | This file defines VGSVN and VEXSVN, used to report SVN revision |
| 26 | when using command line options: -v --version |
| 27 | */ |
| 28 | #define VGSVN "$(extract_svn_version "$srcdir/.")" |
| 29 | #define VEXSVN "$(extract_svn_version "$srcdir/VEX")" |
| 30 | EOF |
| 31 | fi |
| 32 | |
| 33 | if [ -f include/vgversion.h ] |
| 34 | then |
| 35 | # There is already a vgversion.h. |
| 36 | # Update it only if we found a different and real svn version |
| 37 | if grep -q unknown include/vgversion.h.tmp || |
| 38 | cmp -s include/vgversion.h include/vgversion.h.tmp |
| 39 | then |
| 40 | rm -f include/vgversion.h.tmp |
| 41 | else |
| 42 | mv include/vgversion.h.tmp include/vgversion.h |
| 43 | fi |
| 44 | else |
| 45 | # There is no vgversion.h. Use the one just generated, whatever it is. |
| 46 | mv include/vgversion.h.tmp include/vgversion.h |
| 47 | fi |