Home | History | Annotate | Download | only in auxprogs
      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