1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0 2ee0778a3SMark AsselstineCC = $(CROSS_COMPILE)gcc 3f82263c6SThomas DBUILD_OUTPUT := $(CURDIR) 4ac485cb4SAndy ShevchenkoPREFIX ?= /usr 5ac485cb4SAndy ShevchenkoDESTDIR ?= 6231ce08bSLen BrownDAY := $(shell date +%Y.%m.%d) 7231ce08bSLen BrownSNAPSHOT = turbostat-$(DAY) 8ee0778a3SMark Asselstine 9f82263c6SThomas Difeq ("$(origin O)", "command line") 10f82263c6SThomas D BUILD_OUTPUT := $(O) 11f82263c6SThomas Dendif 12f82263c6SThomas D 13103a8feaSLen Brownturbostat : turbostat.c 149878bf7aSLen Brownoverride CFLAGS += -O2 -Wall -Wextra -I../../../include 156b7f98a3SJiri Olsaoverride CFLAGS += -DMSRHEADER='"../../../../arch/x86/include/asm/msr-index.h"' 166b7f98a3SJiri Olsaoverride CFLAGS += -DINTEL_FAMILY_HEADER='"../../../../arch/x86/include/asm/intel-family.h"' 17b15943c4SPatryk Wlazlynoverride CFLAGS += -DBUILD_BUG_HEADER='"../../../../include/linux/build_bug.h"' 184be61e6bSAlexander Monakovoverride CFLAGS += -D_FILE_OFFSET_BITS=64 196ac1730fSBen Hutchingsoverride CFLAGS += -D_FORTIFY_SOURCE=2 20103a8feaSLen Brown 21ee0778a3SMark Asselstine%: %.c 22ee0778a3SMark Asselstine @mkdir -p $(BUILD_OUTPUT) 2387e15da9SChen Yu $(CC) $(CFLAGS) $< -o $(BUILD_OUTPUT)/$@ $(LDFLAGS) -lcap -lrt 24103a8feaSLen Brown 25ee0778a3SMark Asselstine.PHONY : clean 26103a8feaSLen Brownclean : 27ee0778a3SMark Asselstine @rm -f $(BUILD_OUTPUT)/turbostat 28231ce08bSLen Brown @rm -f $(SNAPSHOT).tar.gz 29103a8feaSLen Brown 30ee0778a3SMark Asselstineinstall : turbostat 31ee0778a3SMark Asselstine install -d $(DESTDIR)$(PREFIX)/bin 32ee0778a3SMark Asselstine install $(BUILD_OUTPUT)/turbostat $(DESTDIR)$(PREFIX)/bin/turbostat 33ee0778a3SMark Asselstine install -d $(DESTDIR)$(PREFIX)/share/man/man8 34e29dc460SLaura Abbott install -m 644 turbostat.8 $(DESTDIR)$(PREFIX)/share/man/man8 35231ce08bSLen Brown 36231ce08bSLen Brownsnapshot: turbostat 37231ce08bSLen Brown @rm -rf $(SNAPSHOT) 38231ce08bSLen Brown @mkdir $(SNAPSHOT) 39231ce08bSLen Brown @cp turbostat Makefile turbostat.c turbostat.8 ../../../../arch/x86/include/asm/intel-family.h $(SNAPSHOT) 40231ce08bSLen Brown 41231ce08bSLen Brown @sed -e 's/^#include <linux\/bits.h>/#include "bits.h"/' ../../../../arch/x86/include/asm/msr-index.h > $(SNAPSHOT)/msr-index.h 42231ce08bSLen Brown @echo '#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))' >> $(SNAPSHOT)/msr-index.h 43231ce08bSLen Brown @echo "#define BIT(x) (1 << (x))" > $(SNAPSHOT)/bits.h 44231ce08bSLen Brown @echo "#define BIT_ULL(nr) (1ULL << (nr))" >> $(SNAPSHOT)/bits.h 45231ce08bSLen Brown @echo "#define GENMASK(h, l) (((~0UL) << (l)) & (~0UL >> (sizeof(long) * 8 - 1 - (h))))" >> $(SNAPSHOT)/bits.h 46231ce08bSLen Brown @echo "#define GENMASK_ULL(h, l) (((~0ULL) << (l)) & (~0ULL >> (sizeof(long long) * 8 - 1 - (h))))" >> $(SNAPSHOT)/bits.h 47231ce08bSLen Brown 48b15943c4SPatryk Wlazlyn @echo '#define BUILD_BUG_ON(cond) do { enum { compile_time_check ## __COUNTER__ = 1/(!(cond)) }; } while (0)' > $(SNAPSHOT)/build_bug.h 49*361b8fc7SPatryk Wlazlyn @echo '#define __must_be_array(arr) 0' >> $(SNAPSHOT)/build_bug.h 50b15943c4SPatryk Wlazlyn 51231ce08bSLen Brown @echo PWD=. > $(SNAPSHOT)/Makefile 52231ce08bSLen Brown @echo "CFLAGS += -DMSRHEADER='\"msr-index.h\"'" >> $(SNAPSHOT)/Makefile 53231ce08bSLen Brown @echo "CFLAGS += -DINTEL_FAMILY_HEADER='\"intel-family.h\"'" >> $(SNAPSHOT)/Makefile 54b15943c4SPatryk Wlazlyn @echo "CFLAGS += -DBUILD_BUG_HEADER='\"build_bug.h\"'" >> $(SNAPSHOT)/Makefile 55b15943c4SPatryk Wlazlyn @sed -e's/.*MSRHEADER.*//' -e's/.*INTEL_FAMILY_HEADER.*//' -e's/.*BUILD_BUG_HEADER.*//' Makefile >> $(SNAPSHOT)/Makefile 56231ce08bSLen Brown 57231ce08bSLen Brown @rm -f $(SNAPSHOT).tar.gz 58231ce08bSLen Brown tar cvzf $(SNAPSHOT).tar.gz $(SNAPSHOT) 59