-SDCC = gcc
-SDCCFLAGS = -Wall
+# Port specification for compiling on the host machines version of gcc
+SDCC = $(shell which gcc || which cc)
+SDCCFLAGS = -DPORT_HOST=1 -Wall -fsigned-char -DREENTRANT=
EXEEXT = .bin
-EXTRAS = fwk/lib/testfwk$(OBJEXT) ports/$(PORT)/support$(OBJEXT)
+# Required extras
+EXTRAS = ports/$(PORT)/testfwk$(OBJEXT) ports/$(PORT)/support$(OBJEXT)
-$(PORT_SUBRESULTS_DIR)/%.out: $(PORT_CASES_DIR)/%$(EXEEXT)
+%.out: %$(EXEEXT)
mkdir -p `dirname $@`
-$< > $@
- if grep -q FAIL $@; then echo FAILURES in $@; fi
+ -grep -n FAIL $@ /dev/null || true
%$(EXEEXT): %$(OBJEXT) $(EXTRAS)
$(SDCC) $(SDCCFLAGS) -o $@ $< $(EXTRAS)
-%$(OBJEXT): %.c fwk/include/*.h
+%$(OBJEXT): %.c
$(SDCC) $(SDCCFLAGS) -c $< -o $@
+
+ports/$(PORT)/%$(OBJEXT): fwk/lib/%.c
+ $(SDCC) $(SDCCFLAGS) -c $< -o $@
+
+_clean:
+ rm -f ports/$(PORT)/support.o ports/$(PORT)/testfwk$(OBJEXT)
+