-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
17 lines (12 loc) · 862 Bytes
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
challenges := $(wildcard */day*/main.go)
benchmarkFiles := $(patsubst %/main.go,benchmarks/results/%-ns,$(challenges)) $(patsubst %/main.go,benchmarks/results/%-mem-b,$(challenges))
benchmarks/README.md: benchmarks/README.template.md benchmarks/benchmarks.md
cat $^ > $@
benchmarks/benchmarks.md: $(benchmarkFiles) benchmarks/main.go
cd benchmarks && go run .
benchmarks/results/%-ns benchmarks/results/%-mem-b: %/main.go %/main_test.go
@mkdir -p $(@D)
$(eval resultPrefix := ../../benchmarks/results/$*)
cd $* && go test -bench=BenchmarkMain -benchmem . | grep "BenchmarkMain-" | awk '{print $$3>"$(resultPrefix)-ns"}{print $$5>"$(resultPrefix)-mem-b"}' || rm $(resultPrefix)-ns $(resultPrefix)-mem-b
benchmarks/benchmarks.snippet.md: $(benchmarkFiles) | benchmarks
jq --raw-input -r '(input_filename|split("/")|first|sub("day";""))+" | "+.' $^ > $@