From af594f0ceb73c5bd984c89f3386bd7e8ecc471f5 Mon Sep 17 00:00:00 2001 From: Dominik Brodowski Date: Wed, 20 Apr 2011 20:01:39 +0200 Subject: [PATCH] cpupowerutils: use kernel version-derived version string As cpupowerutils is intended to be included into the kernel sources, use the kernel versioning instead of a custom version. The script utils/version-gen.sh is largely based on the script already found in tools/perf/util/PERF-VERSION-GEN . Signed-off-by: Dominik Brodowski --- tools/power/cpupower/Makefile | 13 ++++----- tools/power/cpupower/utils/version-gen.sh | 35 +++++++++++++++++++++++ 2 files changed, 41 insertions(+), 7 deletions(-) create mode 100755 tools/power/cpupower/utils/version-gen.sh diff --git a/tools/power/cpupower/Makefile b/tools/power/cpupower/Makefile index 62c2716a9588..90d079e0e48d 100644 --- a/tools/power/cpupower/Makefile +++ b/tools/power/cpupower/Makefile @@ -47,7 +47,7 @@ DESTDIR ?= # Package-related definitions. Distributions can modify the version # and _should_ modify the PACKAGE_BUGREPORT definition -VERSION = 009p1 +VERSION= $(shell ./utils/version-gen.sh) LIB_MAJ= 0.0.0 LIB_MIN= 0 @@ -110,7 +110,7 @@ WARNINGS += $(call cc-supports,-Wno-pointer-sign) WARNINGS += $(call cc-supports,-Wdeclaration-after-statement) WARNINGS += -Wshadow -CPPFLAGS += -DVERSION=\"$(VERSION)\" -DPACKAGE=\"$(PACKAGE)\" \ +CFLAGS += -DVERSION=\"$(VERSION)\" -DPACKAGE=\"$(PACKAGE)\" \ -DPACKAGE_BUGREPORT=\"$(PACKAGE_BUGREPORT)\" -D_GNU_SOURCE UTIL_OBJS = utils/helpers/amd.o utils/helpers/topology.o utils/helpers/msr.o \ @@ -157,8 +157,7 @@ export QUIET ECHO # if DEBUG is enabled, then we do not strip or optimize ifeq ($(strip $(DEBUG)),true) - CFLAGS += -O1 -g - CPPFLAGS += -DDEBUG + CFLAGS += -O1 -g -DDEBUG STRIPCMD = /bin/true -Since_we_are_debugging else CFLAGS += $(OPTIMIZATION) -fomit-frame-pointer @@ -172,11 +171,11 @@ all: libcpufreq cpupower $(COMPILE_NLS) $(COMPILE_BENCH) lib/%.o: $(LIB_SRC) $(LIB_HEADERS) $(ECHO) " CC " $@ - $(QUIET) $(CC) $(CPPFLAGS) $(CFLAGS) -fPIC -o $@ -c lib/$*.c + $(QUIET) $(CC) $(CFLAGS) -fPIC -o $@ -c lib/$*.c libcpufreq.so.$(LIB_MAJ): $(LIB_OBJS) $(ECHO) " LD " $@ - $(QUIET) $(CC) -shared $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \ + $(QUIET) $(CC) -shared $(CFLAGS) $(LDFLAGS) -o $@ \ -Wl,-soname,libcpufreq.so.$(LIB_MIN) $(LIB_OBJS) @ln -sf $@ libcpufreq.so @ln -sf $@ libcpufreq.so.$(LIB_MIN) @@ -189,7 +188,7 @@ $(UTIL_OBJS): $(UTIL_HEADERS) .c.o: $(ECHO) " CC " $@ - $(QUIET) $(CC) $(CFLAGS) $(CPPFLAGS) -I./lib -I ./utils -o $@ -c $*.c + $(QUIET) $(CC) $(CFLAGS) -I./lib -I ./utils -o $@ -c $*.c cpupower: $(UTIL_OBJS) libcpufreq.so.$(LIB_MAJ) $(ECHO) " CC " $@ diff --git a/tools/power/cpupower/utils/version-gen.sh b/tools/power/cpupower/utils/version-gen.sh new file mode 100755 index 000000000000..5ec41c556992 --- /dev/null +++ b/tools/power/cpupower/utils/version-gen.sh @@ -0,0 +1,35 @@ +#!/bin/sh +# +# Script which prints out the version to use for building cpupowerutils. +# Must be called from tools/power/cpupower/ +# +# Heavily based on tools/perf/util/PERF-VERSION-GEN . + +LF=' +' + +# First check if there is a .git to get the version from git describe +# otherwise try to get the version from the kernel makefile +if test -d ../../../.git -o -f ../../../.git && + VN=$(git describe --abbrev=4 HEAD 2>/dev/null) && + case "$VN" in + *$LF*) (exit 1) ;; + v[0-9]*) + git update-index -q --refresh + test -z "$(git diff-index --name-only HEAD --)" || + VN="$VN-dirty" ;; + esac +then + VN=$(echo "$VN" | sed -e 's/-/./g'); +else + eval $(grep '^VERSION[[:space:]]*=' ../../../Makefile|tr -d ' ') + eval $(grep '^PATCHLEVEL[[:space:]]*=' ../../../Makefile|tr -d ' ') + eval $(grep '^SUBLEVEL[[:space:]]*=' ../../../Makefile|tr -d ' ') + eval $(grep '^EXTRAVERSION[[:space:]]*=' ../../../Makefile|tr -d ' ') + + VN="${VERSION}.${PATCHLEVEL}.${SUBLEVEL}${EXTRAVERSION}" +fi + +VN=$(expr "$VN" : v*'\(.*\)') + +echo $VN