* as/mcs51/lkmem (summary): better fix for sp problem
* src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
* src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
+ * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
+ remove --stack-after-data
2003-01-12 Bernhard Held <bernhard@bernhardheld.de>
S51 = $(shell if [ -f $(S51A) ]; then echo $(S51A); else echo $(S51B); fi)
-SDCCFLAGS +=-mds390 --lesspedantic -DREENTRANT=reentrant --stack-after-data
+SDCCFLAGS +=-mds390 --lesspedantic -DREENTRANT=reentrant
OBJEXT = .rel
EXEEXT = .ihx
-EXTRAS = fwk/lib/testfwk$(OBJEXT) $(PORTS_DIR)/$(PORT)/support$(OBJEXT)
+EXTRAS = $(PORTS_DIR)/$(PORT)/testfwk$(OBJEXT) $(PORTS_DIR)/$(PORT)/support$(OBJEXT)
# Rule to link into .ihx
%$(EXEEXT): %$(OBJEXT) $(EXTRAS)
%$(OBJEXT): %.c
$(SDCC) $(SDCCFLAGS) -c $< -o $@
+$(PORTS_DIR)/$(PORT)/testfwk$(OBJEXT): fwk/lib/testfwk.c
+ $(SDCC) $(SDCCFLAGS) -c $< -o $@
+
# run simulator with 10 seconds timeout
%.out: %$(EXEEXT) fwk/lib/timeout
mkdir -p `dirname $@`
fwk/lib/timeout: fwk/lib/timeout.c
+
_clean:
rm -f fwk/lib/timeout fwk/lib/timeout.exe $(PORTS_DIR)/$(PORT)/*.rel $(PORTS_DIR)/$(PORT)/*.rst \
- $(PORTS_DIR)/$(PORT)/*.lst $(PORTS_DIR)/$(PORT)/*.sym $(PORTS_DIR)/$(PORT)/*.asm temp.lnk
+ $(PORTS_DIR)/$(PORT)/*.lst $(PORTS_DIR)/$(PORT)/*.sym $(PORTS_DIR)/$(PORT)/*.asm \
+ $(PORTS_DIR)/$(PORT)/*.lnk $(PORTS_DIR)/$(PORT)/*.map $(PORTS_DIR)/$(PORT)/*.mem
EXEEXT = .gb
# Needs parts of gbdk-lib, namely the internal mul/div/mod functions.
-EXTRAS = fwk/lib/testfwk$(OBJEXT) ports/$(PORT)/support$(OBJEXT)
+EXTRAS = ports/$(PORT)/testfwk$(OBJEXT) ports/$(PORT)/support$(OBJEXT)
# Rule to link into .ihx
%.gb: %.c $(EXTRAS)
../../bin/as-gbz80 -plosgff $@ $<
%$(OBJEXT): %.c
+ echo $(OBJEXT)
+ $(SDCC) $(SDCCFLAGS) -c $< -o $@
+
+ports/$(PORT)/%$(OBJEXT): fwk/lib/%.c
$(SDCC) $(SDCCFLAGS) -c $< -o $@
# PENDING: Path to sdcc-extra
-grep -n FAIL $@ /dev/null || true
_clean:
- rm -f ports/$(PORT)/*.lst ports/$(PORT)/*.o ports/$(PORT)/*.sym
+ rm -f ports/$(PORT)/testfwk.asm ports/$(PORT)/*.lst ports/$(PORT)/*.o ports/$(PORT)/*.sym
EXEEXT = .bin
# Required extras
-EXTRAS = fwk/lib/testfwk$(OBJEXT) ports/$(PORT)/support$(OBJEXT)
+EXTRAS = ports/$(PORT)/testfwk$(OBJEXT) ports/$(PORT)/support$(OBJEXT)
%.out: %$(EXEEXT)
mkdir -p `dirname $@`
%$(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
+ rm -f ports/$(PORT)/support.o ports/$(PORT)/testfwk$(OBJEXT)
S51 = $(shell if [ -f $(S51A) ]; then echo $(S51A); else echo $(S51B); fi)
-SDCCFLAGS +=--lesspedantic -DREENTRANT=reentrant --stack-after-data
+SDCCFLAGS +=--lesspedantic -DREENTRANT=reentrant
OBJEXT = .rel
EXEEXT = .ihx
-EXTRAS = fwk/lib/testfwk$(OBJEXT) $(PORTS_DIR)/$(PORT)/support$(OBJEXT)
+EXTRAS = $(PORTS_DIR)/$(PORT)/testfwk$(OBJEXT) $(PORTS_DIR)/$(PORT)/support$(OBJEXT)
# Rule to link into .ihx
%$(EXEEXT): %$(OBJEXT) $(EXTRAS)
%$(OBJEXT): %.c
$(SDCC) $(SDCCFLAGS) -c $< -o $@
+$(PORTS_DIR)/$(PORT)/testfwk$(OBJEXT): fwk/lib/testfwk.c
+ $(SDCC) $(SDCCFLAGS) -c $< -o $@
+
# run simulator with 10 seconds timeout
%.out: %$(EXEEXT) fwk/lib/timeout
mkdir -p `dirname $@`
fwk/lib/timeout: fwk/lib/timeout.c
+
_clean:
rm -f fwk/lib/timeout fwk/lib/timeout.exe $(PORTS_DIR)/$(PORT)/*.rel $(PORTS_DIR)/$(PORT)/*.rst \
- $(PORTS_DIR)/$(PORT)/*.lst $(PORTS_DIR)/$(PORT)/*.sym $(PORTS_DIR)/$(PORT)/*.asm temp.lnk
-
+ $(PORTS_DIR)/$(PORT)/*.lst $(PORTS_DIR)/$(PORT)/*.sym $(PORTS_DIR)/$(PORT)/*.asm \
+ $(PORTS_DIR)/$(PORT)/*.lnk $(PORTS_DIR)/$(PORT)/*.map $(PORTS_DIR)/$(PORT)/*.mem
#UCZ80 = $(SDCC_DIR)/bin/s51
SDCCFLAGS +=-mz80 --lesspedantic --profile -DREENTRANT=
-#SDCCFLAGS +=--lesspedantic -DREENTRANT=reentrant --stack-after-data
+#SDCCFLAGS +=--lesspedantic -DREENTRANT=reentrant
#OBJEXT = .o
EXEEXT = .ihx
-EXTRAS = fwk/lib/testfwk$(OBJEXT) $(PORTS_DIR)/$(PORT)/support$(OBJEXT)
+EXTRAS = $(PORTS_DIR)/$(PORT)/testfwk$(OBJEXT) $(PORTS_DIR)/$(PORT)/support$(OBJEXT)
# Rule to link into .ihx
#%$(EXEEXT): %$(OBJEXT) $(EXTRAS)
%$(OBJEXT): %.c
$(SDCC) $(SDCCFLAGS) -c $< -o $@
+$(PORTS_DIR)/$(PORT)/%$(OBJEXT): fwk/lib/%.c
+ $(SDCC) $(SDCCFLAGS) -c $< -o $@
+
# run simulator with 10 seconds timeout
%.out: %$(EXEEXT) fwk/lib/timeout
mkdir -p `dirname $@`
fwk/lib/timeout: fwk/lib/timeout.c
_clean:
- rm -f fwk/lib/timeout fwk/lib/timeout.exe $(PORTS_DIR)/$(PORT)/*.rel $(PORTS_DIR)/$(PORT)/*.rst \
- $(PORTS_DIR)/$(PORT)/*.lst $(PORTS_DIR)/$(PORT)/*.sym temp.lnk
+ rm -f ports/$(PORT)/testfwk.asm ports/$(PORT)/*.lst ports/$(PORT)/*.o ports/$(PORT)/*.sym
OBJEXT = .rel
EXEEXT = .hex
-EXTRAS = fwk/lib/testfwk$(OBJEXT) $(PORTS_DIR)/$(PORT)/support$(OBJEXT)
+EXTRAS = $(PORTS_DIR)/$(PORT)/testfwk$(OBJEXT) $(PORTS_DIR)/$(PORT)/support$(OBJEXT)
# Rule to link into .hex
%$(EXEEXT): %$(OBJEXT) $(EXTRAS)
%$(OBJEXT): %.c
$(SDCC) $(SDCCFLAGS) -c $< -o $@
+$(PORTS_DIR)/$(PORT)/%$(OBJEXT): fwk/lib/%.c
+ $(SDCC) $(SDCCFLAGS) -c $< -o $@
+
# run simulator with 10 seconds timeout
%.out: %$(EXEEXT) fwk/lib/timeout
mkdir -p `dirname $@`
_clean:
rm -f fwk/lib/timeout fwk/lib/timeout.exe $(PORTS_DIR)/$(PORT)/*.rel $(PORTS_DIR)/$(PORT)/*.rst \
- $(PORTS_DIR)/$(PORT)/*.lst $(PORTS_DIR)/$(PORT)/*.sym $(PORTS_DIR)/$(PORT)/*.xa temp.lnk
+ $(PORTS_DIR)/$(PORT)/*.lst $(PORTS_DIR)/$(PORT)/*.sym $(PORTS_DIR)/$(PORT)/*.xa $(PORTS_DIR)/$(PORT)/*.lnk
EXEEXT = .bin
# Needs parts of gbdk-lib, namely the internal mul/div/mod functions.
-EXTRAS = fwk/lib/testfwk$(OBJEXT) ports/$(PORT)/support$(OBJEXT)
+EXTRAS = ports/$(PORT)/testfwk$(OBJEXT) ports/$(PORT)/support$(OBJEXT)
# Rule to generate a Emulator .bin file from the .ihx linker output.
%$(EXEEXT): %.ihx
$(SDCC_DIR)/bin/as-z80 -plosgff $@ $<
%$(OBJEXT): %.c
- $(SDCC) $(SDCCFLAGS) -c $<
+ $(SDCC) $(SDCCFLAGS) -c $< -o $@
-fwk/lib/testfwk$(OBJEXT): fwk/lib/testfwk.c
+ports/$(PORT)/%$(OBJEXT): fwk/lib/%.c
$(SDCC) $(SDCCFLAGS) -c $< -o $@
# PENDING: Path to sdcc-extra
-grep -n FAIL $@ /dev/null || true
_clean:
- rm -f ports/$(PORT)/*.lst ports/$(PORT)/*.o ports/$(PORT)/*.sym
+ rm -f ports/$(PORT)/testfwk.asm ports/$(PORT)/*.lst ports/$(PORT)/*.o ports/$(PORT)/*.sym