162306a36Sopenharmony_ci#!/bin/sh
262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
362306a36Sopenharmony_ci
462306a36Sopenharmony_ciif [ $# -eq 1 ]  ; then
562306a36Sopenharmony_ci	OUTPUT=$1
662306a36Sopenharmony_cifi
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciGVF=${OUTPUT}PERF-VERSION-FILE
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ciLF='
1162306a36Sopenharmony_ci'
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#
1462306a36Sopenharmony_ci# Use version from kernel Makefile unless not in a git repository and
1562306a36Sopenharmony_ci# PERF-VERSION-FILE exists
1662306a36Sopenharmony_ci#
1762306a36Sopenharmony_ciCID=
1862306a36Sopenharmony_ciTAG=
1962306a36Sopenharmony_ciif test -d ../../.git -o -f ../../.git
2062306a36Sopenharmony_cithen
2162306a36Sopenharmony_ci	TAG=$(MAKEFLAGS= make -sC ../.. kernelversion)
2262306a36Sopenharmony_ci	CID=$(git log -1 --abbrev=12 --pretty=format:"%h" --no-show-signature 2>/dev/null) && CID="-g$CID"
2362306a36Sopenharmony_cielif test -f ../../PERF-VERSION-FILE
2462306a36Sopenharmony_cithen
2562306a36Sopenharmony_ci	TAG=$(cut -d' ' -f3 ../../PERF-VERSION-FILE | sed -e 's/\"//g')
2662306a36Sopenharmony_cifi
2762306a36Sopenharmony_ciif test -z "$TAG"
2862306a36Sopenharmony_cithen
2962306a36Sopenharmony_ci	TAG=$(MAKEFLAGS= make -sC ../.. kernelversion)
3062306a36Sopenharmony_cifi
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciVN="$TAG$CID"
3362306a36Sopenharmony_ciif test -n "$CID"
3462306a36Sopenharmony_cithen
3562306a36Sopenharmony_ci	# format version string, strip trailing zero of sublevel:
3662306a36Sopenharmony_ci	VN=$(echo "$VN" | sed -e 's/-/./g;s/\([0-9]*[.][0-9]*\)[.]0/\1/')
3762306a36Sopenharmony_cifi
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ciVN=$(expr "$VN" : v*'\(.*\)')
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciif test -r $GVF
4262306a36Sopenharmony_cithen
4362306a36Sopenharmony_ci	VC=$(sed -e 's/^#define PERF_VERSION "\(.*\)"/\1/' <$GVF)
4462306a36Sopenharmony_cielse
4562306a36Sopenharmony_ci	VC=unset
4662306a36Sopenharmony_cifi
4762306a36Sopenharmony_citest "$VN" = "$VC" || {
4862306a36Sopenharmony_ci	echo >&2 "  PERF_VERSION = $VN"
4962306a36Sopenharmony_ci	echo "#define PERF_VERSION \"$VN\"" >$GVF
5062306a36Sopenharmony_ci}
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci
53