PERF-VERSION-GEN 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/bin/sh
  2. # SPDX-License-Identifier: GPL-2.0
  3. if [ $# -eq 1 ] ; then
  4. OUTPUT=$1
  5. fi
  6. GVF=${OUTPUT}PERF-VERSION-FILE
  7. LF='
  8. '
  9. #
  10. # First check if there is a .git to get the version from git describe
  11. # otherwise try to get the version from the kernel Makefile
  12. #
  13. CID=
  14. TAG=
  15. if test -d ../../.git -o -f ../../.git
  16. then
  17. TAG=$(git describe --abbrev=0 --match "v[0-9].[0-9]*" 2>/dev/null )
  18. CID=$(git log -1 --abbrev=4 --pretty=format:"%h" 2>/dev/null) && CID="-g$CID"
  19. elif test -f ../../PERF-VERSION-FILE
  20. then
  21. TAG=$(cut -d' ' -f3 ../../PERF-VERSION-FILE | sed -e 's/\"//g')
  22. fi
  23. if test -z "$TAG"
  24. then
  25. TAG=$(MAKEFLAGS= make -sC ../.. kernelversion)
  26. fi
  27. VN="$TAG$CID"
  28. if test -n "$CID"
  29. then
  30. # format version string, strip trailing zero of sublevel:
  31. VN=$(echo "$VN" | sed -e 's/-/./g;s/\([0-9]*[.][0-9]*\)[.]0/\1/')
  32. fi
  33. VN=$(expr "$VN" : v*'\(.*\)')
  34. if test -r $GVF
  35. then
  36. VC=$(sed -e 's/^#define PERF_VERSION "\(.*\)"/\1/' <$GVF)
  37. else
  38. VC=unset
  39. fi
  40. test "$VN" = "$VC" || {
  41. echo >&2 " PERF_VERSION = $VN"
  42. echo "#define PERF_VERSION \"$VN\"" >$GVF
  43. }