45 lines
1.2 KiB
Makefile
45 lines
1.2 KiB
Makefile
DEPENDENCIES= glibc-static
|
|
|
|
|
|
CC= clang
|
|
PROG= spectre
|
|
CFLAGS= -march=native
|
|
CFLAGS+= -W
|
|
CFLAGS+= -Wall
|
|
CFLAGS+= -Werror
|
|
CFLAGS+= -Wno-unused-parameter
|
|
CFLAGS+= -Wno-missing-field-initializers
|
|
|
|
|
|
OPTIMIZATIONS= 0 1 2 3
|
|
LINKAGE= static
|
|
|
|
OPROGS= $(foreach O, $(OPTIMIZATIONS), $(addsuffix -O$(O), $(PROG)))
|
|
PROGS+= $(OPROGS) $(foreach L, $(LINKAGE), $(addsuffix -$(L), $(foreach O, $(OPTIMIZATIONS), $(addsuffix -O$(O), $(PROG)))))
|
|
|
|
.PHONY: clean
|
|
.SILENT:
|
|
.NOTPARALLEL:
|
|
|
|
all: $(PROGS)
|
|
echo -e "\033[1mCPU\t\t" $$(LC_ALL=en_US.UTF-8 lscpu | grep "Model name" | cut -d":" -f 2 | sort | uniq | awk '{$$1=$$1;print}')
|
|
echo -e "Kernel\t\t" $$(uname -a)
|
|
echo -e "Test date\t" $$(date "+%d-%m-%Y")
|
|
echo -e "Clang\t\t" $$(clang -v 2>&1 | head -n 1)"\033[0m"
|
|
for p in $(PROGS); do \
|
|
sleep 1; \
|
|
echo -e "\033[4m$$p\033[0m "; \
|
|
taskset 01 ./$$p; \
|
|
echo; done
|
|
|
|
|
|
$(foreach O, $(OPTIMIZATIONS), $(addsuffix -O$(O), $(PROG))):
|
|
$(CC) $(CFLAGS) -$(word 2, $(subst -, ,$@)) -o $@ $(PROG).c
|
|
|
|
$(foreach L, $(LINKAGE), $(addsuffix -$(L), $(foreach O, $(OPTIMIZATIONS), $(addsuffix -O$(O), $(PROG))))):
|
|
$(CC) $(addprefix -, $(word 3, $(subst -, ,$@))) $(CFLAGS) -$(word 2, $(subst -, ,$@)) -o $@ $(PROG).c
|
|
|
|
|
|
clean:
|
|
rm -rf $(PROGS)
|