Enabled VPATH feature: changed nearly all Makefiles (149 files).
[fw/sdcc] / support / regression / ports / host / spec.mk
index 9471f7e94ce8b594df72dc9a2f39513ef2f5303d..ab3f89f440158466fa155b408a39de0d06bb0520 100644 (file)
@@ -1,23 +1,32 @@
 # Port specification for compiling on the host machines version of gcc
-SDCC = gcc
-SDCCFLAGS = -Wall -fsigned-char -DREENTRANT=
+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 = .
+
+# otherwise `make` deletes testfwk.o and `make -j` will fail
+.PRECIOUS: $(PORT_CASES_DIR)/%$(OBJEXT)
 
 # Required extras
-EXTRAS = fwk/lib/testfwk$(OBJEXT) ports/$(PORT)/support$(OBJEXT)
+EXTRAS = $(PORT_CASES_DIR)/testfwk$(OBJEXT) $(PORT_CASES_DIR)/support$(OBJEXT)
 
 %.out: %$(EXEEXT)
-       mkdir -p `dirname $@`
+       mkdir -p $(dir $@)
        -$< > $@
-       -grep -n FAIL $@ /dev/null || true      
+       -grep -n FAIL $@ /dev/null || true
 
 %$(EXEEXT): %$(OBJEXT) $(EXTRAS)
-       $(SDCC) $(SDCCFLAGS) -o $@ $< $(EXTRAS)
+       $(SDCC) $(SDCCFLAGS) -o $@ $< $(EXTRAS) -lm
 
-%$(OBJEXT): %.c fwk/include/*.h
+%$(OBJEXT): %.c
        $(SDCC) $(SDCCFLAGS) -c $< -o $@
 
-_clean:
-       rm -f ports/$(PORT)/support.o
+$(PORT_CASES_DIR)/%$(OBJEXT): $(PORTS_DIR)/$(PORT)/%.c
+       $(SDCC) $(SDCCFLAGS) -c $< -o $@
 
+$(PORT_CASES_DIR)/%$(OBJEXT): fwk/lib/%.c
+       $(SDCC) $(SDCCFLAGS) -c $< -o $@
+
+_clean: