Enabled VPATH feature: changed nearly all Makefiles (149 files).
[fw/sdcc] / support / regression / ports / host / spec.mk
index dc2449c6bd09528f6b05ee367aeacc2acead0420..ab3f89f440158466fa155b408a39de0d06bb0520 100644 (file)
@@ -1,17 +1,32 @@
-SDCC = gcc
-SDCCFLAGS = -Wall
+# Port specification for compiling on the host machines version of gcc
+SDCC = $(shell ( sh -c "gcc --version" 2>&1 ) > /dev/null  && echo gcc || echo cc)
+SDCCFLAGS = -DPORT_HOST=1 -Wall -fsigned-char -fpack-struct -DREENTRANT= -I$(top_builddir) -I$(top_srcdir)
 
 EXEEXT = .bin
+OBJEXT = .o
+INC_DIR = .
 
-EXTRAS = fwk/lib/testfwk$(OBJEXT) ports/$(PORT)/support$(OBJEXT)
+# otherwise `make` deletes testfwk.o and `make -j` will fail
+.PRECIOUS: $(PORT_CASES_DIR)/%$(OBJEXT)
 
-$(PORT_SUBRESULTS_DIR)/%.out: $(PORT_CASES_DIR)/%$(EXEEXT)
-       mkdir -p `dirname $@`
+# Required extras
+EXTRAS = $(PORT_CASES_DIR)/testfwk$(OBJEXT) $(PORT_CASES_DIR)/support$(OBJEXT)
+
+%.out: %$(EXEEXT)
+       mkdir -p $(dir $@)
        -$< > $@
-       if grep -q FAIL $@; then echo FAILURES in $@; fi
+       -grep -n FAIL $@ /dev/null || true
 
 %$(EXEEXT): %$(OBJEXT) $(EXTRAS)
-       $(SDCC) $(SDCCFLAGS) -o $@ $< $(EXTRAS)
+       $(SDCC) $(SDCCFLAGS) -o $@ $< $(EXTRAS) -lm
+
+%$(OBJEXT): %.c
+       $(SDCC) $(SDCCFLAGS) -c $< -o $@
 
-%$(OBJEXT): %.c fwk/include/*.h
+$(PORT_CASES_DIR)/%$(OBJEXT): $(PORTS_DIR)/$(PORT)/%.c
        $(SDCC) $(SDCCFLAGS) -c $< -o $@
+
+$(PORT_CASES_DIR)/%$(OBJEXT): fwk/lib/%.c
+       $(SDCC) $(SDCCFLAGS) -c $< -o $@
+
+_clean: