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