Hackfix and re-enable strtoull and wcstoull, see bug #3798.
[sdcc.git] / sdcc-extra / historygraphs / Makefile
blob86581c400727e80bc7bf0e54d3a1c1a2ffc358c1
1 # Release revisions:
2 # 3.4.0: 8985 (affected by -Werror bug #2280)
3 # 3.5.0: 9256
4 # 3.6.0: 9618
5 # 3.7.0: 10233
6 # 3.8.0: 10582
7 # 3.9.0: 11214
8 # 4.0.0: 11533
9 # 4.1.0: 12085
10 # 4.2.0: 13131
11 # Broken: 8984-9000, 9104 (bug #2280), 9106-9114 (whetstone build segfaults), 9379-9418 (SDCC build fails), 9424 (library build fails) 9477 (SDCC build fails), 9891-9946 (stdcbench build fails), 9958-10147 (Dhrystone z80 build fails) 10233-10270 (stdcbench build segfaults), 10185-10340 (stdcbench build segfaults) 10408 (stdcbench build segfaults) 10426-10462 (coremark build fails) 10682 (library build fails for mcs51) 11952 (library build fails). 14400 (build fails).
12 # Build of large-stack-auto lib for mcs51 was enabled in 9521.
13 REVISIONS_R3KA_STDCBENCH_POST = 12392 12415 12430 12450 12464 12488 12495 12508 12642 12673 12689 12692 12746 12784 12795 12827 12862 12875 12891 12900 12969 13131 13200 13300 13495 13689 13699 13709 13748 13772 13800 13900 14000 14184 14208 14211 14225 14235 14238 14246 14248 14253 14300 14346 14370 14398 14405 14443 14472 14510 14528 14648 14650 14710 14738 14817 14889 14955 14958 14996 15015 15022 15029 15032 15037 15060 15093 15104 15117 15118 15119 15172
14 # Bug #3216 resulted in wrong r3ka stdcbench scores for 12100-12243. For 12121-12300, Coremark fails for z80. For 14221-14224. Whetstone fails for mcs51.
15 REVISIONS_R3KA_STDCBENCH = 12001 12056 12085 12098 $(REVISIONS_R3KA_STDCBENCH_POST) # Bug #3216 resulted in wrong r3ka stdcbench scores for 12100-12243.
16 REVISIONS_R3KA = 12001 12056 12085 12098 12100 12102 12106 12109 12114 $(REVISIONS_R3KA_STDCBENCH_POST) # Earlier than 11919 doesn't have a default crt0 that works for RCM boards. For 11919 and 11972, Dhrystone hangs. For 12121-12300, Coremark fails for z80.
17 REVISIONS_MCS51 = 9521 9540 9550 9568 9581 9589 9596 9601 9602 9603 9604 9618 9624 9632 9635 9636 9637 9638 9640 9645 9646 9649 9651 9653 9654 9659 9662 9664 9665 9666 9679 9707 9730 9740 9747 9751 9761 9764 9765 9766 9767 9773 9784 9790 9791 9793 9797 9803 9807 9808 9815 9818 9819 9820 9830 9832 9836 9879 9949 9953 9955 9956 9961 10163 10165 10167 10174 10181 10182 10345 10349 10350 10366 10367 10374 10463 10495 10510 10540 10558 10582 10592 10601 10605 10621 10640 10645 10656 10660 10668 10775 10782 10786 10787 10788 10790 10800 10900 10960 10974 11087 11100 11150 11214 11260 11330 11335 11371 11435 11438 11447 11507 11509 11533 11586 11614 11615 11625 11630 11631 11637 11638 11722 11822 $(REVISIONS_R3KA)
18 REVISIONS = 9105 9120 9124 9127 9138 9157 9171 9175 9182 9187 9191 9193 9207 9208 9218 9233 9256 9275 9291 9307 9311 9319 9354 9376 9438 9442 9445 9452 9461 9478 9487 9492 9493 9498 $(REVISIONS_MCS51)
20 BENCHMARKS = whetstone dhrystone coremark stdcbench
22 GOALS = size speed default
24 TARGETS = stm8 mcs51 r3ka z80
26 COMPILERS = $(foreach revision, $(REVISIONS), sdcc-$(revision)/bin/sdcc)
28 BENCHMARKS_WHETSTONE = $(foreach target, $(TARGETS), $(foreach goal, $(GOALS), $(foreach revision, $(REVISIONS), whetstone-$(target)-$(goal)-$(revision)/image.ihx)))
29 $(BENCHMARKS_WHETSTONE): BENCHMARK = whetstone
30 BENCHMARKS_DHRYSTONE = $(foreach target, $(TARGETS), $(foreach goal, $(GOALS), $(foreach revision, $(REVISIONS), dhrystone-$(target)-$(goal)-$(revision)/image.ihx)))
31 $(BENCHMARKS_DHRYSTONE): BENCHMARK = dhrystone
32 BENCHMARKS_COREMARK = $(foreach target, $(TARGETS), $(foreach goal, $(GOALS), $(foreach revision, $(REVISIONS), coremark-$(target)-$(goal)-$(revision)/image.ihx)))
33 $(BENCHMARKS_COREMARK): BENCHMARK = coremark
34 BENCHMARKS_STDCBENCH = $(foreach target, $(TARGETS), $(foreach goal, $(GOALS), $(foreach revision, $(REVISIONS), stdcbench-$(target)-$(goal)-$(revision)/image.ihx)))
35 $(BENCHMARKS_STDCBENCH): BENCHMARK = stdcbench
37 BENCHMARKS_STM8 = $(foreach benchmark, $(BENCHMARKS), $(foreach goal, $(GOALS), $(foreach revision, $(REVISIONS), $(benchmark)-stm8-$(goal)-$(revision)/image.ihx)))
38 $(BENCHMARKS_STM8): TARGET = stm8
39 $(BENCHMARKS_STM8): SDCCFLAGS += -mstm8
40 BENCHMARKS_MCS51 = $(foreach benchmark, $(BENCHMARKS), $(foreach goal, $(GOALS), $(foreach revision, $(REVISIONS_MCS51), $(benchmark)-mcs51-$(goal)-$(revision)/image.ihx)))
41 $(BENCHMARKS_MCS51): TARGET = mcs51
42 $(BENCHMARKS_MCS51): SDCCFLAGS += -mmcs51 --model-large --stack-auto
43 BENCHMARKS_R3KA = $(foreach benchmark, $(BENCHMARKS), $(foreach goal, $(GOALS), $(foreach revision, $(REVISIONS_R3KA), $(benchmark)-r3ka-$(goal)-$(revision)/image.ihx)))
44 $(BENCHMARKS_R3KA): TARGET = r3ka
45 $(BENCHMARKS_R3KA): SDCCFLAGS += -mr3ka
46 BENCHMARKS_R3KA_STDCBENCH = $(foreach benchmark, $(BENCHMARKS), $(foreach goal, $(GOALS), $(foreach revision, $(REVISIONS_R3KA_STDCBENCH), $(benchmark)-r3ka-$(goal)-$(revision)/image.ihx)))
47 BENCHMARKS_Z80 = $(foreach benchmark, $(BENCHMARKS), $(foreach goal, $(GOALS), $(foreach revision, $(REVISIONS), $(benchmark)-z80-$(goal)-$(revision)/image.ihx)))
48 $(BENCHMARKS_Z80): TARGET = z80
49 $(BENCHMARKS_Z80): SDCCFLAGS += -mz80
51 BENCHMARKS_DEFAULT = $(foreach benchmark, $(BENCHMARKS), $(foreach target, $(TARGETS), $(foreach revision, $(REVISIONS), $(benchmark)-$(target)-default-$(revision)/image.ihx)))
52 $(BENCHMARKS_DEFAULT): GOAL = default
53 BENCHMARKS_SIZE = $(foreach benchmark, $(BENCHMARKS), $(foreach target, $(TARGETS), $(foreach revision, $(REVISIONS), $(benchmark)-$(target)-size-$(revision)/image.ihx)))
54 $(BENCHMARKS_SIZE): GOAL = size
55 $(BENCHMARKS_SIZE): SDCCFLAGS += --opt-code-size
56 BENCHMARKS_SPEED = $(foreach benchmark, $(BENCHMARKS), $(foreach target, $(TARGETS), $(foreach revision, $(REVISIONS), $(benchmark)-$(target)-speed-$(revision)/image.ihx)))
57 $(BENCHMARKS_SPEED): GOAL = speed
58 $(BENCHMARKS_SPEED): SDCCFLAGS += --opt-code-speed
60 # Default setting for --max-allocs-per-node (currently 3000)
61 BENCHMARKS_3000 = $(BENCHMARKS_WHETSTONE) $(BENCHMARKS_DHRYSTONE) $(BENCHMARKS_COREMARK) $(BENCHMARKS_STDCBENCH)
63 BENCHMARKS_WHETSTONE_SIZES = $(BENCHMARKS_WHETSTONE:image.ihx=size)
64 BENCHMARKS_DHRYSTONE_SIZES = $(BENCHMARKS_DHRYSTONE:image.ihx=size)
65 BENCHMARKS_COREMARK_SIZES = $(BENCHMARKS_COREMARK:image.ihx=size)
66 BENCHMARKS_STDCBENCH_SIZES = $(BENCHMARKS_STDCBENCH:image.ihx=size)
67 BENCHMARKS_SIZES = $(BENCHMARKS_3000:image.ihx=size)
68 BENCHMARKS_WHETSTONE_SCORES = $(BENCHMARKS_WHETSTONE:image.ihx=score)
69 BENCHMARKS_DHRYSTONE_SCORES = $(BENCHMARKS_DHRYSTONE:image.ihx=score)
70 BENCHMARKS_COREMARK_SCORES = $(BENCHMARKS_COREMARK:image.ihx=score)
71 BENCHMARKS_STDCBENCH_SCORES = $(BENCHMARKS_STDCBENCH:image.ihx=score)
72 BENCHMARKS_SCORES = $(BENCHMARKS_3000:image.ihx=score)
74 # No Coremark for the MCS-51 - Coremark is just too big.
75 BENCHMARKS_WHETSTONE_STM8_SIZES = $(patsubst %image.ihx, %size, $(filter $(BENCHMARKS_WHETSTONE), $(BENCHMARKS_STM8)))
76 BENCHMARKS_WHETSTONE_MCS51_SIZES = $(patsubst %image.ihx, %size, $(filter $(BENCHMARKS_WHETSTONE), $(BENCHMARKS_MCS51)))
77 BENCHMARKS_WHETSTONE_R3KA_SIZES = $(patsubst %image.ihx, %size, $(filter $(BENCHMARKS_WHETSTONE), $(BENCHMARKS_R3KA)))
78 BENCHMARKS_WHETSTONE_Z80_SIZES = $(patsubst %image.ihx, %size, $(filter $(BENCHMARKS_WHETSTONE), $(BENCHMARKS_Z80)))
79 BENCHMARKS_DHRYSTONE_STM8_SIZES = $(patsubst %image.ihx, %size, $(filter $(BENCHMARKS_DHRYSTONE), $(BENCHMARKS_STM8)))
80 BENCHMARKS_DHRYSTONE_MCS51_SIZES = $(patsubst %image.ihx, %size, $(filter $(BENCHMARKS_DHRYSTONE), $(BENCHMARKS_MCS51)))
81 BENCHMARKS_DHRYSTONE_R3KA_SIZES = $(patsubst %image.ihx, %size, $(filter $(BENCHMARKS_DHRYSTONE), $(BENCHMARKS_R3KA)))
82 BENCHMARKS_DHRYSTONE_Z80_SIZES = $(patsubst %image.ihx, %size, $(filter $(BENCHMARKS_DHRYSTONE), $(BENCHMARKS_Z80)))
83 BENCHMARKS_COREMARK_STM8_SIZES = $(patsubst %image.ihx, %size, $(filter $(BENCHMARKS_COREMARK), $(BENCHMARKS_STM8)))
84 BENCHMARKS_COREMARK_R3KA_SIZES = $(patsubst %image.ihx, %size, $(filter $(BENCHMARKS_COREMARK), $(BENCHMARKS_R3KA)))
85 BENCHMARKS_COREMARK_Z80_SIZES = $(patsubst %image.ihx, %size, $(filter $(BENCHMARKS_COREMARK), $(BENCHMARKS_Z80)))
86 BENCHMARKS_STDCBENCH_STM8_SIZES = $(patsubst %image.ihx, %size, $(filter $(BENCHMARKS_STDCBENCH), $(BENCHMARKS_STM8)))
87 BENCHMARKS_STDCBENCH_MCS51_SIZES = $(patsubst %image.ihx, %size, $(filter $(BENCHMARKS_STDCBENCH), $(BENCHMARKS_MCS51)))
88 BENCHMARKS_STDCBENCH_R3KA_SIZES = $(patsubst %image.ihx, %size, $(filter $(BENCHMARKS_STDCBENCH), $(BENCHMARKS_R3KA)))
89 BENCHMARKS_STDCBENCH_Z80_SIZES = $(patsubst %image.ihx, %size, $(filter $(BENCHMARKS_STDCBENCH), $(BENCHMARKS_Z80)))
90 BENCHMARKS_WHETSTONE_STM8_SCORES = $(patsubst %image.ihx, %score, $(filter $(BENCHMARKS_WHETSTONE), $(BENCHMARKS_STM8)))
91 BENCHMARKS_WHETSTONE_MCS51_SCORES = $(patsubst %image.ihx, %score, $(filter $(BENCHMARKS_WHETSTONE), $(BENCHMARKS_MCS51)))
92 BENCHMARKS_WHETSTONE_R3KA_SCORES = $(patsubst %image.ihx, %score, $(filter $(BENCHMARKS_WHETSTONE), $(BENCHMARKS_R3KA)))
93 BENCHMARKS_DHRYSTONE_STM8_SCORES = $(patsubst %image.ihx, %score, $(filter $(BENCHMARKS_DHRYSTONE), $(BENCHMARKS_STM8)))
94 BENCHMARKS_DHRYSTONE_MCS51_SCORES = $(patsubst %image.ihx, %score, $(filter $(BENCHMARKS_DHRYSTONE), $(BENCHMARKS_MCS51)))
95 BENCHMARKS_DHRYSTONE_R3KA_SCORES = $(patsubst %image.ihx, %score, $(filter $(BENCHMARKS_DHRYSTONE), $(BENCHMARKS_R3KA)))
96 BENCHMARKS_COREMARK_STM8_SCORES = $(patsubst %image.ihx, %score, $(filter $(BENCHMARKS_COREMARK), $(BENCHMARKS_STM8)))
97 BENCHMARKS_COREMARK_R3KA_SCORES = $(patsubst %image.ihx, %score, $(filter $(BENCHMARKS_COREMARK), $(BENCHMARKS_R3KA)))
98 BENCHMARKS_STDCBENCH_STM8_SCORES = $(patsubst %image.ihx, %score, $(filter $(BENCHMARKS_STDCBENCH), $(BENCHMARKS_STM8)))
99 BENCHMARKS_STDCBENCH_MCS51_SCORES = $(patsubst %image.ihx, %score, $(filter $(BENCHMARKS_STDCBENCH), $(BENCHMARKS_MCS51)))
100 BENCHMARKS_STDCBENCH_R3KA_SCORES = $(patsubst %image.ihx, %score, $(filter $(BENCHMARKS_STDCBENCH), $(BENCHMARKS_R3KA_STDCBENCH)))
102 .PHONY: all clean
104 # Do not include Coremark (non-free) or score graphs (require STM8AF / C8051 V2.1 C8051F120 / RCM3319 boards) in all target.
105 all: whetstone-stm8-size.svg whetstone-mcs51-size.svg whetstone-r3ka-size.svg dhrystone-stm8-size.svg dhrystone-mcs51-size.svg dhrystone-r3ka-size.svg dhrystone-z80-size.svg stdcbench-stm8-size.svg stdcbench-mcs51-size.svg
107 clean:
108 echo $(BENCHMARKS_SIZES)
110 # coremark-1.01.tar.gz is free (identical to old non-free coremark_v1.0.tgz, except for the license and documentation), can be downloaded from https://www.eembc.org/coremark/
111 coremark-stm8: coremark_v1.0.tgz coremark-1.0-stm8.patch
112 rm -rf coremark_v1.0 coremark-stm8
113 tar -xzf coremark_v1.0.tgz
114 mv coremark_v1.0 coremark-stm8
115 cd coremark-stm8 && cp barebones/core_portme.? ./ && cat ../coremark-1.0-stm8.patch | patch -p1
116 cp Makefile.coremark coremark-stm8/Makefile
118 coremark-r3ka: coremark_v1.0.tgz coremark-1.0-r3ka.patch
119 rm -rf coremark_v1.0 coremark-r3ka
120 tar -xzf coremark_v1.0.tgz
121 mv coremark_v1.0 coremark-r3ka
122 cd coremark-r3ka && cp barebones/core_portme.? ./ && cat ../coremark-1.0-r3ka.patch | patch -p1
123 cp Makefile.coremark coremark-r3ka/Makefile
125 coremark-z80: coremark_v1.0.tgz coremark-1.0-z80.patch
126 rm -rf coremark_v1.0 coremark-z80
127 tar -xzf coremark_v1.0.tgz
128 mv coremark_v1.0 coremark-z80
129 cd coremark-z80 && cp barebones/core_portme.? ./ && cat ../coremark-1.0-z80.patch | patch -p1
130 cp Makefile.coremark-z80 coremark-z80/Makefile
131 cp crt.0.s.coremark-SDCC-Z80 coremark-z80/crt0.s
133 # stdcbench-0.7.tar.gz is free, can be downloaded from http://stdcbench.sourceforge.net
134 stdcbench-stm8: stdcbench-0.7.tar.gz stdcbench-0.6-stm8.patch
135 rm -rf stdcbench-0.7 stdcbench-stm8
136 tar -xzf stdcbench-0.7.tar.gz
137 mv stdcbench-0.7 stdcbench-stm8
138 cd stdcbench-stm8 && cp examples/Makefile.SDCC-STM8AF Makefile && cat ../stdcbench-0.6-stm8.patch | patch -p1
140 stdcbench-mcs51: stdcbench-0.7.tar.gz stdcbench-0.7-mcs51.patch
141 rm -rf stdcbench-0.7 stdcbench-mcs51
142 tar -xzf stdcbench-0.7.tar.gz
143 mv stdcbench-0.7 stdcbench-mcs51
144 cd stdcbench-mcs51 && cp examples/Makefile.SDCC-C8051 Makefile && cat ../stdcbench-0.7-mcs51.patch | patch -p1
146 # Using custom Makefile, portme.h, portme.c, since stdcbench 0.7 doesn't come with one suitable for the Rabbit 3000A.
147 stdcbench-r3ka: stdcbench-0.7.tar.gz Makefile.stdcbench-SDCC-R3KA portme.h.stdcbench-SDCC-R3KA portme.c.stdcbench-SDCC-R3KA
148 rm -rf stdcbench-0.7 stdcbench-r3ka
149 tar -xzf stdcbench-0.7.tar.gz
150 mv stdcbench-0.7 stdcbench-r3ka
151 cp Makefile.stdcbench-SDCC-R3KA stdcbench-r3ka/Makefile
152 cp portme.h.stdcbench-SDCC-R3KA stdcbench-r3ka/examples/portme.h.SDCC-R3KA
153 cp portme.c.stdcbench-SDCC-R3KA stdcbench-r3ka/examples/portme.c.SDCC-R3KA
155 # Using custom Makefile, portme.h, portme.c, since stdcbench 0.7 doesn't come with one suitable for the Z80-MBC2.
156 stdcbench-z80: stdcbench-0.7.tar.gz Makefile.stdcbench-SDCC-Z80 portme.h.stdcbench-SDCC-Z80 portme.c.stdcbench-SDCC-Z80 crt.0.s.stdcbench-SDCC-Z80
157 rm -rf stdcbench-0.7 stdcbench-z80
158 tar -xzf stdcbench-0.7.tar.gz
159 mv stdcbench-0.7 stdcbench-z80
160 cp Makefile.stdcbench-SDCC-Z80 stdcbench-z80/Makefile
161 cp portme.h.stdcbench-SDCC-Z80 stdcbench-z80/examples/portme.h.SDCC-Z80
162 cp portme.c.stdcbench-SDCC-Z80 stdcbench-z80/examples/portme.c.SDCC-Z80
163 cp crt.0.s.stdcbench-SDCC-Z80 stdcbench-z80/examples/crt0.s.SDCC-Z80
165 whetstone-stm8-size.svg: whetstone-stm8-sizetable whetstone-stm8-sizetable.p
166 gnuplot whetstone-stm8-sizetable.p
168 whetstone-mcs51-size.svg: whetstone-mcs51-sizetable whetstone-mcs51-sizetable.p
169 gnuplot whetstone-mcs51-sizetable.p
171 whetstone-r3ka-size.svg: whetstone-r3ka-sizetable whetstone-r3ka-sizetable.p
172 gnuplot whetstone-r3ka-sizetable.p
174 dhrystone-stm8-size.svg: dhrystone-stm8-sizetable dhrystone-stm8-sizetable.p
175 gnuplot dhrystone-stm8-sizetable.p
177 dhrystone-mcs51-size.svg: dhrystone-mcs51-sizetable dhrystone-mcs51-sizetable.p
178 gnuplot dhrystone-mcs51-sizetable.p
180 dhrystone-r3ka-size.svg: dhrystone-r3ka-sizetable dhrystone-r3ka-sizetable.p
181 gnuplot dhrystone-r3ka-sizetable.p
183 dhrystone-z80-size.svg: dhrystone-z80-sizetable dhrystone-z80-sizetable.p
184 gnuplot dhrystone-z80-sizetable.p
186 coremark-stm8-size.svg: coremark-stm8-sizetable coremark-stm8-sizetable.p
187 gnuplot coremark-stm8-sizetable.p
189 coremark-r3ka-size.svg: coremark-r3ka-sizetable coremark-r3ka-sizetable.p
190 gnuplot coremark-r3ka-sizetable.p
192 coremark-z80-size.svg: coremark-z80-sizetable coremark-z80-sizetable.p
193 gnuplot coremark-z80-sizetable.p
195 stdcbench-stm8-size.svg: stdcbench-stm8-sizetable stdcbench-stm8-sizetable.p
196 gnuplot stdcbench-stm8-sizetable.p
198 stdcbench-mcs51-size.svg: stdcbench-mcs51-sizetable stdcbench-mcs51-sizetable.p
199 gnuplot stdcbench-mcs51-sizetable.p
201 stdcbench-r3ka-size.svg: stdcbench-r3ka-sizetable stdcbench-r3ka-sizetable.p
202 gnuplot stdcbench-r3ka-sizetable.p
204 stdcbench-z80-size.svg: stdcbench-z80-sizetable stdcbench-z80-sizetable.p
205 gnuplot stdcbench-z80-sizetable.p
207 whetstone-stm8-score.svg: whetstone-stm8-scoretable whetstone-stm8-scoretable.p
208 gnuplot whetstone-stm8-scoretable.p
210 whetstone-mcs51-score.svg: whetstone-mcs51-scoretable whetstone-mcs51-scoretable.p
211 gnuplot whetstone-mcs51-scoretable.p
213 whetstone-r3ka-score.svg: whetstone-r3ka-scoretable whetstone-r3ka-scoretable.p
214 gnuplot whetstone-r3ka-scoretable.p
216 whetstone-z80-size.svg: whetstone-z80-sizetable whetstone-z80-sizetable.p
217 gnuplot whetstone-z80-sizetable.p
219 dhrystone-stm8-score.svg: dhrystone-stm8-scoretable dhrystone-stm8-scoretable.p
220 gnuplot dhrystone-stm8-scoretable.p
222 dhrystone-mcs51-score.svg: dhrystone-mcs51-scoretable dhrystone-mcs51-scoretable.p
223 gnuplot dhrystone-mcs51-scoretable.p
225 dhrystone-r3ka-score.svg: dhrystone-r3ka-scoretable dhrystone-r3ka-scoretable.p
226 gnuplot dhrystone-r3ka-scoretable.p
228 coremark-stm8-score.svg: coremark-stm8-scoretable coremark-stm8-scoretable.p
229 gnuplot coremark-stm8-scoretable.p
231 coremark-r3ka-score.svg: coremark-r3ka-scoretable coremark-r3ka-scoretable.p
232 gnuplot coremark-r3ka-scoretable.p
234 stdcbench-stm8-score.svg: stdcbench-stm8-scoretable stdcbench-stm8-scoretable.p
235 gnuplot stdcbench-stm8-scoretable.p
237 stdcbench-mcs51-score.svg: stdcbench-mcs51-scoretable stdcbench-mcs51-scoretable.p
238 gnuplot stdcbench-mcs51-scoretable.p
240 stdcbench-r3ka-score.svg: stdcbench-r3ka-scoretable stdcbench-r3ka-scoretable.p
241 gnuplot stdcbench-r3ka-scoretable.p
243 stdcbench-z80-score.svg: stdcbench-r3ka-scoretable stdcbench-z80-scoretable.p
244 gnuplot stdcbench-z80-scoretable.p
246 whetstone-stm8-sizetable: $(BENCHMARKS_WHETSTONE_STM8_SIZES)
247 echo "#Revision size speed default" > $@
248 for r in $(REVISIONS); do \
249 SIZE_SIZE=`cat whetstone-stm8-size-$$r/size`; \
250 SIZE_SPEED=`cat whetstone-stm8-speed-$$r/size`; \
251 SIZE_DEFAULT=`cat whetstone-stm8-default-$$r/size `; \
252 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
253 done
255 whetstone-mcs51-sizetable: $(BENCHMARKS_WHETSTONE_MCS51_SIZES)
256 echo "#Revision size speed default" > $@
257 for r in $(REVISIONS_MCS51); do \
258 SIZE_SIZE=`cat whetstone-mcs51-size-$$r/size`; \
259 SIZE_SPEED=`cat whetstone-mcs51-speed-$$r/size`; \
260 SIZE_DEFAULT=`cat whetstone-mcs51-default-$$r/size `; \
261 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
262 done
264 whetstone-r3ka-sizetable: $(BENCHMARKS_WHETSTONE_R3KA_SIZES)
265 echo "#Revision size speed default" > $@
266 for r in $(REVISIONS_R3KA); do \
267 SIZE_SIZE=`cat whetstone-r3ka-size-$$r/size`; \
268 SIZE_SPEED=`cat whetstone-r3ka-speed-$$r/size`; \
269 SIZE_DEFAULT=`cat whetstone-r3ka-default-$$r/size `; \
270 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
271 done
273 whetstone-z80-sizetable: $(BENCHMARKS_WHETSTONE_Z80_SIZES)
274 echo "#Revision size speed default" > $@
275 for r in $(REVISIONS); do \
276 SIZE_SIZE=`cat whetstone-z80-size-$$r/size`; \
277 SIZE_SPEED=`cat whetstone-z80-speed-$$r/size`; \
278 SIZE_DEFAULT=`cat whetstone-z80-default-$$r/size `; \
279 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
280 done
282 dhrystone-stm8-sizetable: $(BENCHMARKS_DHRYSTONE_STM8_SIZES)
283 echo "#Revision size speed default" > $@
284 for r in $(REVISIONS); do \
285 SIZE_SIZE=`cat dhrystone-stm8-size-$$r/size`; \
286 SIZE_SPEED=`cat dhrystone-stm8-speed-$$r/size`; \
287 SIZE_DEFAULT=`cat dhrystone-stm8-default-$$r/size `; \
288 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
289 done
291 dhrystone-mcs51-sizetable: $(BENCHMARKS_DHRYSTONE_MCS51_SIZES)
292 echo "#Revision size speed default" > $@
293 for r in $(REVISIONS_MCS51); do \
294 SIZE_SIZE=`cat dhrystone-mcs51-size-$$r/size`; \
295 SIZE_SPEED=`cat dhrystone-mcs51-speed-$$r/size`; \
296 SIZE_DEFAULT=`cat dhrystone-mcs51-default-$$r/size `; \
297 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
298 done
300 dhrystone-r3ka-sizetable: $(BENCHMARKS_DHRYSTONE_R3KA_SIZES)
301 echo "#Revision size speed default" > $@
302 for r in $(REVISIONS_R3KA); do \
303 SIZE_SIZE=`cat dhrystone-r3ka-size-$$r/size`; \
304 SIZE_SPEED=`cat dhrystone-r3ka-speed-$$r/size`; \
305 SIZE_DEFAULT=`cat dhrystone-r3ka-default-$$r/size `; \
306 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
307 done
309 dhrystone-z80-sizetable: $(BENCHMARKS_DHRYSTONE_Z80_SIZES)
310 echo "#Revision size speed default" > $@
311 for r in $(REVISIONS); do \
312 SIZE_SIZE=`cat dhrystone-z80-size-$$r/size`; \
313 SIZE_SPEED=`cat dhrystone-z80-speed-$$r/size`; \
314 SIZE_DEFAULT=`cat dhrystone-z80-default-$$r/size `; \
315 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
316 done
318 coremark-stm8-sizetable: $(BENCHMARKS_COREMARK_STM8_SIZES)
319 echo "#Revision size speed default" > $@
320 for r in $(REVISIONS); do \
321 SIZE_SIZE=`cat coremark-stm8-size-$$r/size`; \
322 SIZE_SPEED=`cat coremark-stm8-speed-$$r/size`; \
323 SIZE_DEFAULT=`cat coremark-stm8-default-$$r/size `; \
324 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
325 done
327 coremark-r3ka-sizetable: $(BENCHMARKS_COREMARK_R3KA_SIZES)
328 echo "#Revision size speed default" > $@
329 for r in $(REVISIONS_R3KA); do \
330 SIZE_SIZE=`cat coremark-r3ka-size-$$r/size`; \
331 SIZE_SPEED=`cat coremark-r3ka-speed-$$r/size`; \
332 SIZE_DEFAULT=`cat coremark-r3ka-default-$$r/size `; \
333 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
334 done
336 coremark-z80-sizetable: $(BENCHMARKS_COREMARK_Z80_SIZES)
337 echo "#Revision size speed default" > $@
338 for r in $(REVISIONS); do \
339 SIZE_SIZE=`cat coremark-z80-size-$$r/size`; \
340 SIZE_SPEED=`cat coremark-z80-speed-$$r/size`; \
341 SIZE_DEFAULT=`cat coremark-z80-default-$$r/size `; \
342 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
343 done
345 stdcbench-stm8-sizetable: $(BENCHMARKS_STDCBENCH_STM8_SIZES)
346 echo "#Revision size speed default" > $@
347 for r in $(REVISIONS); do \
348 SIZE_SIZE=`cat stdcbench-stm8-size-$$r/size`; \
349 SIZE_SPEED=`cat stdcbench-stm8-speed-$$r/size`; \
350 SIZE_DEFAULT=`cat stdcbench-stm8-default-$$r/size `; \
351 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
352 done
354 stdcbench-mcs51-sizetable: $(BENCHMARKS_STDCBENCH_MCS51_SIZES)
355 echo "#Revision size speed default" > $@
356 for r in $(REVISIONS_MCS51); do \
357 SIZE_SIZE=`cat stdcbench-mcs51-size-$$r/size`; \
358 SIZE_SPEED=`cat stdcbench-mcs51-speed-$$r/size`; \
359 SIZE_DEFAULT=`cat stdcbench-mcs51-default-$$r/size `; \
360 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
361 done
363 stdcbench-r3ka-sizetable: $(BENCHMARKS_STDCBENCH_R3KA_SIZES)
364 echo "#Revision size speed default" > $@
365 for r in $(REVISIONS_R3KA_STDCBENCH); do \
366 SIZE_SIZE=`cat stdcbench-r3ka-size-$$r/size`; \
367 SIZE_SPEED=`cat stdcbench-r3ka-speed-$$r/size`; \
368 SIZE_DEFAULT=`cat stdcbench-r3ka-default-$$r/size `; \
369 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
370 done
372 stdcbench-z80-sizetable: $(BENCHMARKS_STDCBENCH_Z80_SIZES)
373 echo "#Revision size speed default" > $@
374 for r in $(REVISIONS); do \
375 SIZE_SIZE=`cat stdcbench-z80-size-$$r/size`; \
376 SIZE_SPEED=`cat stdcbench-z80-speed-$$r/size`; \
377 SIZE_DEFAULT=`cat stdcbench-z80-default-$$r/size `; \
378 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
379 done
381 whetstone-stm8-scoretable: $(BENCHMARKS_WHETSTONE_STM8_SCORES)
382 echo "#Revision size speed default" > $@
383 for r in $(REVISIONS); do \
384 SIZE_SIZE=`cat whetstone-stm8-size-$$r/score`; \
385 SIZE_SPEED=`cat whetstone-stm8-speed-$$r/score`; \
386 SIZE_DEFAULT=`cat whetstone-stm8-default-$$r/score `; \
387 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
388 done
390 whetstone-mcs51-scoretable: $(BENCHMARKS_WHETSTONE_MCS51_SCORES)
391 echo "#Revision size speed default" > $@
392 for r in $(REVISIONS_MCS51); do \
393 SIZE_SIZE=`cat whetstone-mcs51-size-$$r/score`; \
394 SIZE_SPEED=`cat whetstone-mcs51-speed-$$r/score`; \
395 SIZE_DEFAULT=`cat whetstone-mcs51-default-$$r/score `; \
396 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
397 done
399 whetstone-r3ka-scoretable: $(BENCHMARKS_WHETSTONE_R3KA_SCORES)
400 echo "#Revision size speed default" > $@
401 for r in $(REVISIONS_R3KA); do \
402 SIZE_SIZE=`cat whetstone-r3ka-size-$$r/score`; \
403 SIZE_SPEED=`cat whetstone-r3ka-speed-$$r/score`; \
404 SIZE_DEFAULT=`cat whetstone-r3ka-default-$$r/score `; \
405 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
406 done
408 dhrystone-stm8-scoretable: $(BENCHMARKS_DHRYSTONE_STM8_SCORES)
409 echo "#Revision size speed default" > $@
410 for r in $(REVISIONS); do \
411 SIZE_SIZE=`cat dhrystone-stm8-size-$$r/score`; \
412 SIZE_SPEED=`cat dhrystone-stm8-speed-$$r/score`; \
413 SIZE_DEFAULT=`cat dhrystone-stm8-default-$$r/score `; \
414 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
415 done
417 dhrystone-mcs51-scoretable: $(BENCHMARKS_DHRYSTONE_MCS51_SCORES)
418 echo "#Revision size speed default" > $@
419 for r in $(REVISIONS_MCS51); do \
420 SIZE_SIZE=`cat dhrystone-mcs51-size-$$r/score`; \
421 SIZE_SPEED=`cat dhrystone-mcs51-speed-$$r/score`; \
422 SIZE_DEFAULT=`cat dhrystone-mcs51-default-$$r/score `; \
423 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
424 done
426 dhrystone-r3ka-scoretable: $(BENCHMARKS_DHRYSTONE_R3KA_SCORES)
427 echo "#Revision size speed default" > $@
428 for r in $(REVISIONS_R3KA); do \
429 SIZE_SIZE=`cat dhrystone-r3ka-size-$$r/score`; \
430 SIZE_SPEED=`cat dhrystone-r3ka-speed-$$r/score`; \
431 SIZE_DEFAULT=`cat dhrystone-r3ka-default-$$r/score `; \
432 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
433 done
435 coremark-stm8-scoretable: $(BENCHMARKS_COREMARK_STM8_SCORES)
436 echo "#Revision size speed default" > $@
437 for r in $(REVISIONS); do \
438 SIZE_SIZE=`cat coremark-stm8-size-$$r/score`; \
439 SIZE_SPEED=`cat coremark-stm8-speed-$$r/score`; \
440 SIZE_DEFAULT=`cat coremark-stm8-default-$$r/score `; \
441 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
442 done
444 coremark-r3ka-scoretable: $(BENCHMARKS_COREMARK_R3KA_SCORES)
445 echo "#Revision size speed default" > $@
446 for r in $(REVISIONS_R3KA); do \
447 SIZE_SIZE=`cat coremark-r3ka-size-$$r/score`; \
448 SIZE_SPEED=`cat coremark-r3ka-speed-$$r/score`; \
449 SIZE_DEFAULT=`cat coremark-r3ka-default-$$r/score `; \
450 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
451 done
453 stdcbench-stm8-scoretable: $(BENCHMARKS_STDCBENCH_STM8_SCORES)
454 echo "#Revision size speed default" > $@
455 for r in $(REVISIONS); do \
456 SIZE_SIZE=`cat stdcbench-stm8-size-$$r/score`; \
457 SIZE_SPEED=`cat stdcbench-stm8-speed-$$r/score`; \
458 SIZE_DEFAULT=`cat stdcbench-stm8-default-$$r/score `; \
459 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
460 done
462 stdcbench-mcs51-scoretable: $(BENCHMARKS_STDCBENCH_MCS51_SCORES)
463 echo "#Revision size speed default" > $@
464 for r in $(REVISIONS_MCS51); do \
465 SIZE_SIZE=`cat stdcbench-mcs51-size-$$r/score`; \
466 SIZE_SPEED=`cat stdcbench-mcs51-speed-$$r/score`; \
467 SIZE_DEFAULT=`cat stdcbench-mcs51-default-$$r/score `; \
468 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
469 done
471 stdcbench-r3ka-scoretable: $(BENCHMARKS_STDCBENCH_R3KA_SCORES)
472 echo "#Revision size speed default" > $@
473 for r in $(REVISIONS_R3KA_STDCBENCH); do \
474 SIZE_SIZE=`cat stdcbench-r3ka-size-$$r/score`; \
475 SIZE_SPEED=`cat stdcbench-r3ka-speed-$$r/score`; \
476 SIZE_DEFAULT=`cat stdcbench-r3ka-default-$$r/score `; \
477 echo $$r $$SIZE_SIZE $$SIZE_SPEED $$SIZE_DEFAULT >> $@; \
478 done
480 # Download (with some retries to improve stability on bad connections) and compile an sdcc revision
481 $(COMPILERS): sdcc-%/bin/sdcc:
482 rm -rf sdcc-$*
483 svn co -r $* https://svn.code.sf.net/p/sdcc/code/trunk/sdcc sdcc-$* || echo "svn checkout incomplete. Second attempt in 8s." && sleep 8 && svn cleanup sdcc-$* && svn co -r $* https://svn.code.sf.net/p/sdcc/code/trunk/sdcc sdcc-$* || echo "svn checkout incomplete. Third attempt in 8s." && sleep 8 && svn cleanup sdcc-$* && svn co -r $* https://svn.code.sf.net/p/sdcc/code/trunk/sdcc sdcc-$* || echo "svn checkout incomplete. Last attempt in 8s." && sleep 8 && svn cleanup sdcc-$* && svn co -r $* https://svn.code.sf.net/p/sdcc/code/trunk/sdcc sdcc-$*
484 cd sdcc-$* && ./configure --disable-pic14-port --disable-pic16-port && $(MAKE) && rm -rf device/non-free .svn && rm src/*.o src/*/*.o src/*/*.a
486 %: REVISION=$(lastword $(subst -, ,$*))
488 .SECONDEXPANSION:
489 $(BENCHMARKS_3000): %/image.ihx: $$(BENCHMARK)-$$(TARGET) sdcc-$$(REVISION)/bin/sdcc
490 rm -rf $(BENCHMARK)-$(TARGET)-$(GOAL)-$(REVISION)
491 cp --reflink=auto -r $(BENCHMARK)-$(TARGET) $(BENCHMARK)-$(TARGET)-$(GOAL)-$(REVISION)
492 if [ "$(TARGET)" = "mcs51" ] ; \
493 then \
494 cd $(BENCHMARK)-$(TARGET)-$(GOAL)-$(REVISION) && $(MAKE) SDCC="../sdcc-$(REVISION)/bin/sdcc" SDCCFLAGS="$(SDCCFLAGS) --nostdinc -I../sdcc-$(REVISION)/device/include -I../sdcc-$(REVISION)/device/include/$(TARGET) -L ../sdcc-$(REVISION)/device/lib/build/large-stack-auto"; \
495 else \
496 cd $(BENCHMARK)-$(TARGET)-$(GOAL)-$(REVISION) && $(MAKE) SDAS="../sdcc-$(REVISION)/bin/sdas$(TARGET)" SDCC="../sdcc-$(REVISION)/bin/sdcc" SDCCFLAGS="$(SDCCFLAGS) --nostdinc -I../sdcc-$(REVISION)/device/include -L ../sdcc-$(REVISION)/device/lib/build/$(TARGET)"; \
499 $(BENCHMARKS_SIZES): %/size: %/image.ihx
500 echo `size $< | tail -n 1 | sed -e "s/ *0[ ]*\([0-9]*\).*/\1/"`> $@
502 # The benchmarks are executed on external boards, and thus cannot be run in parallel. Also this might require root, so don't target all depend on it.
503 .NOTPARALLEL: $(BENCHMARKS_SCORES)
505 $(BENCHMARKS_WHETSTONE_STM8_SCORES): %/score: %/image.ihx
506 echo "scale=3;" 1000000 / `./execute_benchmark-stm8 /dev/ttyUSB0 $< | sed -e "s/Loops: 10, Iterations: 1, Duration: //" | sed -e "s/ msec.//"` | bc > $@
508 $(BENCHMARKS_WHETSTONE_MCS51_SCORES): %/score: %/image.ihx
509 echo "scale=3;" 1000000 / `./execute_benchmark-mcs51 /dev/ttyUSB1 $< | sed -e "s/Loops: 10, Iterations: 1, Duration: //" | sed -e "s/ msec.//"` | bc > $@
511 $(BENCHMARKS_WHETSTONE_R3KA_SCORES): %/score: %/image.ihx
512 echo "scale=3;" 1000000 / `./execute_benchmark-r3ka /dev/ttyUSB2 $< | sed -e "s/Loops: 10, Iterations: 1, Duration: //" | sed -e "s/ msec.*//"` | bc > $@
514 $(BENCHMARKS_DHRYSTONE_STM8_SCORES): %/score: %/image.ihx
515 ./execute_benchmark-stm8 /dev/ttyUSB0 $< | sed -e "s/Dhrystones per Second: //" > $@
517 $(BENCHMARKS_DHRYSTONE_MCS51_SCORES): %/score: %/image.ihx
518 ./execute_benchmark-mcs51 /dev/ttyUSB1 $< | sed -e "s/Dhrystones per Second: //" > $@
520 $(BENCHMARKS_DHRYSTONE_R3KA_SCORES): %/score: %/image.ihx
521 ./execute_benchmark-r3ka /dev/ttyUSB3 $< | sed -e "s/Dhrystones per Second: //" > $@
523 $(BENCHMARKS_COREMARK_STM8_SCORES): %/score: %/image.ihx
524 echo "scale=3;" 60000 / `./execute_benchmark-stm8 /dev/ttyUSB0 $< | sed -e "s/Total ticks : //"` | bc > $@
526 $(BENCHMARKS_COREMARK_R3KA_SCORES): %/score: %/image.ihx
527 echo "scale=3;" 1966080 / `./execute_benchmark-r3ka /dev/ttyUSB3 $< | sed -e "s/Total ticks : //"` | bc > $@
529 $(BENCHMARKS_STDCBENCH_STM8_SCORES): %/score: %/image.ihx
530 ./execute_benchmark-stm8 /dev/ttyUSB0 $< | sed -e "s/stdcbench final score: //" > $@
532 $(BENCHMARKS_STDCBENCH_MCS51_SCORES): %/score: %/image.ihx
533 ./execute_benchmark-mcs51 /dev/ttyUSB1 $< | sed -e "s/stdcbench final score: //" > $@
535 $(BENCHMARKS_STDCBENCH_R3KA_SCORES): %/score: %/image.ihx
536 ./execute_benchmark-r3ka /dev/ttyUSB3 $< | sed -e "s/stdcbench final score: //" > $@