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 <linux@dominikbrodowski.net>
This commit is contained in:
Dominik Brodowski 2011-04-20 20:01:39 +02:00
parent a1ce5ba2b7
commit af594f0ceb
2 changed files with 41 additions and 7 deletions

View file

@ -47,7 +47,7 @@ DESTDIR ?=
# Package-related definitions. Distributions can modify the version # Package-related definitions. Distributions can modify the version
# and _should_ modify the PACKAGE_BUGREPORT definition # and _should_ modify the PACKAGE_BUGREPORT definition
VERSION = 009p1 VERSION= $(shell ./utils/version-gen.sh)
LIB_MAJ= 0.0.0 LIB_MAJ= 0.0.0
LIB_MIN= 0 LIB_MIN= 0
@ -110,7 +110,7 @@ WARNINGS += $(call cc-supports,-Wno-pointer-sign)
WARNINGS += $(call cc-supports,-Wdeclaration-after-statement) WARNINGS += $(call cc-supports,-Wdeclaration-after-statement)
WARNINGS += -Wshadow WARNINGS += -Wshadow
CPPFLAGS += -DVERSION=\"$(VERSION)\" -DPACKAGE=\"$(PACKAGE)\" \ CFLAGS += -DVERSION=\"$(VERSION)\" -DPACKAGE=\"$(PACKAGE)\" \
-DPACKAGE_BUGREPORT=\"$(PACKAGE_BUGREPORT)\" -D_GNU_SOURCE -DPACKAGE_BUGREPORT=\"$(PACKAGE_BUGREPORT)\" -D_GNU_SOURCE
UTIL_OBJS = utils/helpers/amd.o utils/helpers/topology.o utils/helpers/msr.o \ 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 # if DEBUG is enabled, then we do not strip or optimize
ifeq ($(strip $(DEBUG)),true) ifeq ($(strip $(DEBUG)),true)
CFLAGS += -O1 -g CFLAGS += -O1 -g -DDEBUG
CPPFLAGS += -DDEBUG
STRIPCMD = /bin/true -Since_we_are_debugging STRIPCMD = /bin/true -Since_we_are_debugging
else else
CFLAGS += $(OPTIMIZATION) -fomit-frame-pointer CFLAGS += $(OPTIMIZATION) -fomit-frame-pointer
@ -172,11 +171,11 @@ all: libcpufreq cpupower $(COMPILE_NLS) $(COMPILE_BENCH)
lib/%.o: $(LIB_SRC) $(LIB_HEADERS) lib/%.o: $(LIB_SRC) $(LIB_HEADERS)
$(ECHO) " CC " $@ $(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) libcpufreq.so.$(LIB_MAJ): $(LIB_OBJS)
$(ECHO) " LD " $@ $(ECHO) " LD " $@
$(QUIET) $(CC) -shared $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \ $(QUIET) $(CC) -shared $(CFLAGS) $(LDFLAGS) -o $@ \
-Wl,-soname,libcpufreq.so.$(LIB_MIN) $(LIB_OBJS) -Wl,-soname,libcpufreq.so.$(LIB_MIN) $(LIB_OBJS)
@ln -sf $@ libcpufreq.so @ln -sf $@ libcpufreq.so
@ln -sf $@ libcpufreq.so.$(LIB_MIN) @ln -sf $@ libcpufreq.so.$(LIB_MIN)
@ -189,7 +188,7 @@ $(UTIL_OBJS): $(UTIL_HEADERS)
.c.o: .c.o:
$(ECHO) " CC " $@ $(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) cpupower: $(UTIL_OBJS) libcpufreq.so.$(LIB_MAJ)
$(ECHO) " CC " $@ $(ECHO) " CC " $@

View file

@ -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