jack2 codebase
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
1.2KB

  1. #!/bin/sh
  2. #set -x
  3. if test $# -ne 1 -a $# -ne 2
  4. then
  5. echo "Usage: "`basename "$0"`" <file> [define_name]"
  6. exit 1
  7. fi
  8. OUTPUT_FILE="`pwd`/${1}"
  9. TEMP_FILE="${OUTPUT_FILE}.tmp"
  10. #echo svnversion...
  11. #pwd
  12. #echo $OUTPUT_FILE
  13. #echo $TEMP_FILE
  14. OLDPWD=`pwd`
  15. cd ..
  16. if test $# -eq 2
  17. then
  18. DEFINE=${2}
  19. else
  20. DEFINE=SVN_VERSION
  21. fi
  22. if test -d .svn
  23. then
  24. REV=`svnversion 2> /dev/null`
  25. else
  26. if test -d .git
  27. then
  28. git status >/dev/null # updates dirty state
  29. REV=`git show | grep '^ *git-svn-id:' | sed 's/.*@\([0-9]*\) .*/\1/'`
  30. if test ${REV}
  31. then
  32. test -z "$(git diff-index --name-only HEAD)" || REV="${REV}M"
  33. else
  34. REV=0+`git rev-parse HEAD`
  35. test -z "$(git diff-index --name-only HEAD)" || REV="${REV}-dirty"
  36. fi
  37. fi
  38. fi
  39. if test -z ${REV}
  40. then
  41. REV="unknown"
  42. fi
  43. echo "#define ${DEFINE} \"${REV}\"" > ${TEMP_FILE}
  44. if test ! -f ${OUTPUT_FILE}
  45. then
  46. echo "Generated ${OUTPUT_FILE} (${REV})"
  47. cp ${TEMP_FILE} ${OUTPUT_FILE}
  48. if test $? -ne 0; then exit 1; fi
  49. else
  50. if ! cmp -s ${OUTPUT_FILE} ${TEMP_FILE}
  51. then echo "Regenerated ${OUTPUT_FILE} (${REV})"
  52. cp ${TEMP_FILE} ${OUTPUT_FILE}
  53. if test $? -ne 0; then exit 1; fi
  54. fi
  55. fi
  56. cd "${OLDPWD}"
  57. rm ${TEMP_FILE}
  58. exit $?