Replace echo with printf, do not use heredoc with sftp since some shell don't understand it

This commit is contained in:
Samuel Aubertin 2022-01-29 13:28:10 +01:00
parent 334324466b
commit 9dc0135e68

View File

@ -16,7 +16,14 @@
.PHONY: clean build upload
.SILENT:
EXECUTABLES= clang gcc uuid rsync lld taskset
ifeq ($(shell uname),OpenBSD)
GCC:= egcc
else
GCC:= gcc
endif
EXECUTABLES= clang $(GCC) uuid lld taskset
XXXX:= $(foreach exec,$(EXECUTABLES), $(if $(shell which $(exec) 2> /dev/null),X,$(error "No '$(exec)' in PATH, please install it and restart octopus !")))
### Generic flags
@ -30,7 +37,7 @@ CFLAGS+= -Wno-missing-field-initializers
LDFLAGS= -fuse-ld=lld
### Octopus flags
CCS= clang gcc
CCS= clang $(GCC)
OPTIMIZATIONS= 0 1 2 3 fast s
RETPOLINE= mretpoline
UUID:= $(shell uuid || uuidgen)
@ -41,7 +48,7 @@ OCTOFLAGS= -j
### Octopus internals
CPU:= $(shell LC_ALL=en_US.UTF-8 lscpu | grep "Model name" | cut -d":" -f 2 | sort | uniq | awk '{$$1=$$1;print}')
UCODE:= $(shell grep microcode /proc/cpuinfo | sort | uniq | awk '{print $$NF}')
UCODE:= $(shell grep microcode /proc/cpuinfo | sort | uniq | awk '{print $$NF}' || printf none)
KERN:= $(shell uname -svm)
CLANGV:= $(shell clang -v 2>&1 | head -n 1)
GCCV:= $(shell gcc -v 2>&1 | grep 'gcc version')
@ -108,53 +115,54 @@ PROGS+= $(RGROGS)
PROGS+= $(RSGPROGS)
all: upload
echo -e "\033[1mThank you for helping science today !\033[0m"
printf "\033[1mThank you for helping science today !\033[0m\n"
upload: $(RESULTS_FILE)
echo -e "\033[4mUploading $^ to www.sk4.nz\033[0m"
printf "\033[4mUploading $^ to www.sk4.nz\033[0m\n"
chmod 600 $(SSH_KEY)
sftp -b - -i $(SSH_KEY) -o BatchMode=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
octoupload@www.sk4.nz: <<< $$'put $^'
printf 'put $^\n' | sftp -b - -i $(SSH_KEY) \
-o BatchMode=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
octoupload@www.sk4.nz:
build: $(PROGS)
$(RESULTS_FILE): build
echo -e "\033[1m\033[94m________ __";
echo "\_____ \ _____/ |_ ____ ______ __ __ ______";
echo " / | \_/ ___\ __\/ _ \\____ \| | \/ ___/";
echo "/ | \ \___| | ( <_> ) |_> > | /\___ \ ";
echo "\_______ /\___ >__| \____/| __/|____//____ >";
echo -e " \/ \/ |__| \/\033[0m";
echo -e " Samuel AUBERTIN - EURECOM\n"
echo -e "\033[4mUUID\033[0m\t\t$(UUID)"
echo -e "\033[4mCPU\033[0m\t\t$(CPU)"
echo -e "\033[4mMicrocode\033[0m\t$(UCODE)"
echo -e "\033[4mKernel\033[0m\t\t$(KERN)"
echo -e "\033[4mClang\033[0m\t\t$(CLANGV)"
echo -e "\033[4mGCC\033[0m\t\t$(GCCV)"
echo -e "\033[4mSpectre v1\033[0m\t$(VULN1)"
echo -e "\033[4mSpectre v2\033[0m\t$(VULN2)"
echo -e "{ \"$(UUID)\": {" >> $@
echo -e "\"cpu\": \"$(CPU)\"," >> $@
echo -e "\"microcode\": \"$(UCODE)\"," >> $@
echo -e "\"kernel\": \"$(KERN)\"," >> $@
echo -e "\"clang\": \"$(CLANGV)\"," >> $@
echo -e "\"gcc\": \"$(GCCV)\"," >> $@
echo -e "\"spectre_v1\": \"$(VULN1)\"," >> $@
echo -e "\"spectre_v2\": \"$(VULN2)\"," >> $@
echo -e "\"results\": [" >> $@
printf "\033[1m\033[94m________ __\n";
printf "\_____ \ _____/ |_ ____ ______ __ __ ______\n";
printf " / | \_/ ___\ __\/ _ \\____ \| | \/ ___/\n";
printf "/ | \ \___| | ( <_> ) |_> > | /\___ \ \n";
printf "\_______ /\___ >__| \____/| __/|____//____ >\n";
printf " \/ \/ |__| \/\033[0m\n";
printf " Samuel AUBERTIN - EURECOM\n"
printf "\033[4mUUID\033[0m\t\t$(UUID)\n"
printf "\033[4mCPU\033[0m\t\t$(CPU)\n"
printf "\033[4mMicrocode\033[0m\t$(UCODE)\n"
printf "\033[4mKernel\033[0m\t\t$(KERN)\n"
printf "\033[4mClang\033[0m\t\t$(CLANGV)\n"
printf "\033[4mGCC\033[0m\t\t$(GCCV)\n"
printf "\033[4mSpectre v1\033[0m\t$(VULN1)\n"
printf "\033[4mSpectre v2\033[0m\t$(VULN2)\n"
printf "{ \"$(UUID)\": {\n" >> $@
printf "\"cpu\": \"$(CPU)\",\n" >> $@
printf "\"microcode\": \"$(UCODE)\",\n" >> $@
printf "\"kernel\": \"$(KERN)\",\n" >> $@
printf "\"clang\": \"$(CLANGV)\",\n" >> $@
printf "\"gcc\": \"$(GCCV)\",\n" >> $@
printf "\"spectre_v1\": \"$(VULN1)\",\n" >> $@
printf "\"spectre_v2\": \"$(VULN2)\",\n" >> $@
printf "\"results\": [\n" >> $@
for p in $(PROGS); do \
for t in $$(seq $(TIMES)); do \
sleep 0.1; \
(taskset 01 ./$$p $(OCTOFLAGS) || printf "{ \"$$p\": false }")>> $@; \
if ! [ "$$p" = "$(lastword $(PROGS))" ]; \
then echo ',' >> $@; \
then printf ',\n' >> $@; \
else if ! [ $$t -eq $(TIMES) ]; \
then echo ',' >> $@; fi; \
then printf ',\n' >> $@; fi; \
fi; \
done \
done
echo -e "\n]}}" >> $@
printf "\n]}}\n" >> $@
$(OPROGS):
@$(PROGRESS) $(SUB_TWO) $(CFLAGS) $(LDFLAGS) -$(SUB_THREE) -o $@ $(SUB_ONE).c