xref: /linux/tools/perf/util/PERF-VERSION-GEN (revision ea68a3e9d14e9e0bf017d178fb4bd53b6deb1482)
107800601SIngo Molnar#!/bin/sh
2b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
307800601SIngo Molnar
4c29ede61SArnaldo Carvalho de Meloif [ $# -eq 1 ]  ; then
5c29ede61SArnaldo Carvalho de Melo	OUTPUT=$1
6c29ede61SArnaldo Carvalho de Melofi
7c29ede61SArnaldo Carvalho de Melo
8c29ede61SArnaldo Carvalho de MeloGVF=${OUTPUT}PERF-VERSION-FILE
907800601SIngo Molnar
1007800601SIngo MolnarLF='
1107800601SIngo Molnar'
1207800601SIngo Molnar
130e2af956SIngo Molnar#
1481935f10SWill Chandler# Use version from kernel Makefile unless not in a git repository and
1581935f10SWill Chandler# PERF-VERSION-FILE exists
160e2af956SIngo Molnar#
17a4147f0fSRobert RichterCID=
18a4147f0fSRobert RichterTAG=
19a4147f0fSRobert Richterif test -d ../../.git -o -f ../../.git
2007800601SIngo Molnarthen
217572733bSJohn Garry	TAG=$(MAKEFLAGS= make -sC ../.. kernelversion)
22*f24fb539SAhelenia Ziemiańska	CID=$(git log -1 --abbrev=12 --pretty=format:"%h" --no-show-signature 2>/dev/null) && CID="-g$CID"
2381935f10SWill Chandlerelif test -f ../../PERF-VERSION-FILE
2481935f10SWill Chandlerthen
25a614d01bSDavid Ahern	TAG=$(cut -d' ' -f3 ../../PERF-VERSION-FILE | sed -e 's/\"//g')
26a4147f0fSRobert Richterfi
2781935f10SWill Chandlerif test -z "$TAG"
2881935f10SWill Chandlerthen
2981935f10SWill Chandler	TAG=$(MAKEFLAGS= make -sC ../.. kernelversion)
3081935f10SWill Chandlerfi
317572733bSJohn Garry
32a4147f0fSRobert RichterVN="$TAG$CID"
33a4147f0fSRobert Richterif test -n "$CID"
34a4147f0fSRobert Richterthen
35a4147f0fSRobert Richter	# format version string, strip trailing zero of sublevel:
36a4147f0fSRobert Richter	VN=$(echo "$VN" | sed -e 's/-/./g;s/\([0-9]*[.][0-9]*\)[.]0/\1/')
3707800601SIngo Molnarfi
3807800601SIngo Molnar
3907800601SIngo MolnarVN=$(expr "$VN" : v*'\(.*\)')
4007800601SIngo Molnar
4107800601SIngo Molnarif test -r $GVF
4207800601SIngo Molnarthen
433cecaa20SNamhyung Kim	VC=$(sed -e 's/^#define PERF_VERSION "\(.*\)"/\1/' <$GVF)
4407800601SIngo Molnarelse
4507800601SIngo Molnar	VC=unset
4607800601SIngo Molnarfi
4707800601SIngo Molnartest "$VN" = "$VC" || {
4807800601SIngo Molnar	echo >&2 "  PERF_VERSION = $VN"
493cecaa20SNamhyung Kim	echo "#define PERF_VERSION \"$VN\"" >$GVF
5007800601SIngo Molnar}
5107800601SIngo Molnar
5207800601SIngo Molnar
53