1 .PHONY: clean all bench prepare
3 SOURCES=$(wildcard *.c)
4 BASENAMES=$(SOURCES:.c=)
5 GCCEXES=$(SOURCES:.c=.gcc)
6 GCCEXES=$(SOURCES:.c=.ogcc)
7 ACCEXES=$(SOURCES:.c=.acc)
8 EXES=$(GCCEXES) $(ACCEXES)
9 RESULTS=$(SOURCES:.c=.result)
21 @ $(GCC) $(CPPFLAGS) $(CFLAGS) -o $@ $<
24 @ $(GCC) $(CPPFLAGS) $(OFLAGS) -o $@ $<
30 @ $(GCC) $(CPPFLAGS) $(CFLAGS) -o $@ $<
33 @ $(TIME) -f %U ./$< > $@
36 @ $(TIME) -f %U ./$< > $@
39 @ $(TIME) -f %U ./$< > $@
41 %.ratio1: %.acc-run %.gcc-run
42 @ echo "print round(`cat $*.acc-run` / `cat $*.gcc-run`, 2)" | python > $@
44 %.ratio2: %.acc-run %.ogcc-run
45 @ echo "print round(`cat $*.acc-run` / `cat $*.ogcc-run`, 2)" | python > $@
48 @ echo Benchmarking "$*.c"...
51 %.result: %.announce %.acc-run %.gcc-run %.ogcc-run %.ratio1 %.ratio2
52 @ cat $^ | tr '\n' '&' > $@
57 bench: prepare $(RESULTS)
58 @ echo '& acc & gcc -O0 & gcc -O2 & 1/2 & 1/3 \\'
59 @ for i in $(BASENAMES); do cat $$i.result; echo '\\'; done
62 rm --force $(EXES) $(RESULTS) \
63 *.gcc-run *.ogcc-run *.acc-run *.ratio* *.announce *.Clight *.ASM