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