Imported Upstream version 2.9.0
[debian/cc1111] / support / regression / ports / ucz80 / spec.mk
1 # Regression test specification for the z80 target running with uCsim
2 #
3
4 # path to uCsim
5 ifdef SDCC_BIN_PATH
6   UCZ80 = $(SDCC_BIN_PATH)/sz80
7
8   AS_Z80 = $(SDCC_BIN_PATH)/as-z80
9 else
10   SZ80A = $(top_builddir)/sim/ucsim/z80.src/sz80
11   SZ80B = $(top_builddir)/bin/sz80
12
13   UCZ80 = $(shell if [ -f $(SZ80A) ]; then echo $(SZ80A); else echo $(SZ80B); fi)
14
15   AS_Z80 = $(top_builddir)/bin/as-z80
16
17   SDCCFLAGS += --nostdinc -I$(top_srcdir)
18   LINKFLAGS += --nostdlib -L$(top_builddir)/device/lib/build/z80
19 endif
20
21 SDCCFLAGS +=-mz80 --less-pedantic --profile -DREENTRANT=
22 #SDCCFLAGS +=--less-pedantic -DREENTRANT=reentrant
23 LINKFLAGS += z80.lib
24
25 #OBJEXT = .o
26 EXEEXT = .ihx
27
28 EXTRAS = $(PORT_CASES_DIR)/testfwk$(OBJEXT) $(PORT_CASES_DIR)/support$(OBJEXT)
29
30 # Rule to link into .ihx
31 %.ihx: %.c $(EXTRAS)
32         $(SDCC) $(SDCCFLAGS) $(LINKFLAGS) $(EXTRAS) $< -o $@
33
34 $(PORT_CASES_DIR)/%$(OBJEXT): $(PORTS_DIR)/$(PORT)/%.asm
35         $(AS_Z80) -plosgff $@ $<
36
37 %$(OBJEXT): %.c
38         $(SDCC) $(SDCCFLAGS) -c $< -o $@
39
40 $(PORT_CASES_DIR)/%$(OBJEXT): $(PORTS_DIR)/$(PORT)/%.c
41         $(SDCC) $(SDCCFLAGS) -c $< -o $@
42
43 $(PORT_CASES_DIR)/%$(OBJEXT): fwk/lib/%.c
44         $(SDCC) $(SDCCFLAGS) -c $< -o $@
45
46 # run simulator with 10 seconds timeout
47 %.out: %$(EXEEXT) $(CASES_DIR)/timeout
48         mkdir -p $(dir $@)
49         -$(CASES_DIR)/timeout 10 $(UCZ80) $< < $(PORTS_DIR)/$(PORT)/uCsim.cmd > $@ \
50           || echo -e --- FAIL: \"timeout, simulation killed\" in $(<:$(EXEEXT)=.c)"\n"--- Summary: 1/1/1: timeout >> $@
51         python $(srcdir)/get_ticks.py < $@ >> $@
52         -grep -n FAIL $@ /dev/null || true
53
54 $(CASES_DIR)/timeout: fwk/lib/timeout.c
55         $(CC) $(CFLAGS) $< -o $@
56
57 _clean: