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 48