@@ -3,6 +3,8 @@ CC = $(CROSS_COMPILE)gcc
33BUILD_OUTPUT := $(CURDIR )
44PREFIX ?= /usr
55DESTDIR ?=
6+ DAY := $(shell date +% Y.% m.% d)
7+ SNAPSHOT = turbostat-$(DAY )
68
79ifeq ("$(origin O ) ", "command line")
810 BUILD_OUTPUT := $(O)
@@ -12,6 +14,7 @@ turbostat : turbostat.c
1214override CFLAGS += -O2 -Wall -Wextra -I../../../include
1315override CFLAGS += -DMSRHEADER='"../../../../arch/x86/include/asm/msr-index.h"'
1416override CFLAGS += -DINTEL_FAMILY_HEADER='"../../../../arch/x86/include/asm/intel-family.h"'
17+ override CFLAGS += -DBUILD_BUG_HEADER='"../../../../include/linux/build_bug.h"'
1518override CFLAGS += -D_FILE_OFFSET_BITS=64
1619override CFLAGS += -D_FORTIFY_SOURCE=2
1720
@@ -22,9 +25,33 @@ override CFLAGS += -D_FORTIFY_SOURCE=2
2225.PHONY : clean
2326clean :
2427 @rm -f $(BUILD_OUTPUT ) /turbostat
28+ @rm -f $(SNAPSHOT ) .tar.gz
2529
2630install : turbostat
27- install -d $(DESTDIR )$(PREFIX ) /bin
31+ install -d $(DESTDIR )$(PREFIX ) /bin
2832 install $(BUILD_OUTPUT ) /turbostat $(DESTDIR )$(PREFIX ) /bin/turbostat
29- install -d $(DESTDIR )$(PREFIX ) /share/man/man8
33+ install -d $(DESTDIR )$(PREFIX ) /share/man/man8
3034 install -m 644 turbostat.8 $(DESTDIR )$(PREFIX ) /share/man/man8
35+
36+ snapshot : turbostat
37+ @rm -rf $(SNAPSHOT )
38+ @mkdir $(SNAPSHOT )
39+ @cp turbostat Makefile turbostat.c turbostat.8 ../../../../arch/x86/include/asm/intel-family.h $(SNAPSHOT )
40+
41+ @sed -e 's/^# include <linux\/bits.h>/#include "bits.h"/' ../../../../arch/x86/include/asm/msr-index.h > $(SNAPSHOT)/msr-index.h
42+ @echo '# define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))' >> $(SNAPSHOT)/msr-index.h
43+ @echo "# define BIT(x) (1 << (x))" > $(SNAPSHOT)/bits.h
44+ @echo "# define BIT_ULL(nr) (1ULL << (nr))" >> $(SNAPSHOT)/bits.h
45+ @echo "# define GENMASK(h, l) (((~0UL) << (l)) & (~0UL >> (sizeof(long) * 8 - 1 - (h))))" >> $(SNAPSHOT)/bits.h
46+ @echo "# define GENMASK_ULL(h, l) (((~0ULL) << (l)) & (~0ULL >> (sizeof(long long) * 8 - 1 - (h))))" >> $(SNAPSHOT)/bits.h
47+
48+ @echo '# define BUILD_BUG_ON(cond) do { enum { compile_time_check ## __COUNTER__ = 1/(!(cond)) }; } while (0)' > $(SNAPSHOT)/build_bug.h
49+
50+ @echo PWD=. > $(SNAPSHOT)/Makefile
51+ @echo "CFLAGS += -DMSRHEADER='\"msr-index.h\"'" >> $(SNAPSHOT)/Makefile
52+ @echo "CFLAGS += -DINTEL_FAMILY_HEADER='\"intel-family.h\"'" >> $(SNAPSHOT)/Makefile
53+ @echo "CFLAGS += -DBUILD_BUG_HEADER='\"build_bug.h\"'" >> $(SNAPSHOT)/Makefile
54+ @sed -e's/.*MSRHEADER.*//' -e's/.*INTEL_FAMILY_HEADER.*//' -e's/.*BUILD_BUG_HEADER.*//' Makefile >> $(SNAPSHOT)/Makefile
55+
56+ @rm -f $(SNAPSHOT).tar.gz
57+ tar cvzf $(SNAPSHOT).tar.gz $(SNAPSHOT)
0 commit comments