From f4d5b4febbffab80cb06bd18564d4c326756fad7 Mon Sep 17 00:00:00 2001 From: Leo C Date: Wed, 2 Jul 2014 14:33:22 +0200 Subject: Rename dir Z180 --> z180 --- z180/Makefile | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 z180/Makefile (limited to 'z180/Makefile') diff --git a/z180/Makefile b/z180/Makefile new file mode 100644 index 0000000..f676826 --- /dev/null +++ b/z180/Makefile @@ -0,0 +1,126 @@ + + +SRC := r3init.180 ddtz.180 +SRC += fifoio.180 msgbuf.180 ser1-i.180 console.180 +SRC += romend.180 + +INC := config.inc z180reg.inc z180.lib + +OBJ := $(SRC:.180=.rel) + +#CP/M emulator +CPMEMU = zxcc + +#Location of CP/M binaries +CPMBIN = /usr/local/lib/cpm/bin80 + +#AS = $(CPMEMU) $(CPMBIN)/m80.com +AS = $(CPMEMU) slr180.com +LN = $(CPMEMU) slrnk+.com +#LN = $(CPMEMU) ccpline.com + +AS_OPT := MFS + +AS_QUIET = 1 +LN_QUIET = 1 + +#LNKCMD = +LN_VERB = /V +LN_PROG = 0 +LN_DATA = C000 + + +.suffixes: +#.suffixes: .180 .rel + +.phony: all +all: hdrom.c hdrom.h + +$(OBJ): $(INC) + +hdrom.h: hdrom.c + +comma:= , +empty:= +space:= $(empty) $(empty) + +ccpline = $(CPMEMU) $(1) -$(subst $(space),$(comma),$(strip $(2))) + +define cpm-asm = +COMMAND="$(AS) -$(basename $<)/$(AS_OPT)"; \ +OUTPUT=$$(mktemp); echo $${COMMAND}; \ +$${COMMAND} > $${OUTPUT}; \ +grep -q '^ 0 Error(s) Detected' $${OUTPUT}; ERROR=$$? ; \ +if [ "$${ERROR}" != "0" ]; then cat $${OUTPUT}; rm -f $@; fi ; \ +exit $${ERROR} +endef + +define cpm-link = + COMMAND="$(call ccpline, slrnk+, $(basename $@)/H/M /V \ + /P:$(LN_PROG) /D:$(LN_DATA) $(basename $^) /E /Q)";\ + OUTPUT=$$(mktemp); echo $${COMMAND};\ + $${COMMAND} > $${OUTPUT};\ + ERROR=0;\ + cat $${OUTPUT};\ + grep -q ' Duplicate Symbol ' $${OUTPUT} && ERROR=2; \ + grep -q '\- Previously Defined' $${OUTPUT} && ERROR=2; \ + [ "$${ERROR}" = "0" ] && grep -q '^ ** ' $${OUTPUT} && ERROR=1 ; \ + [ "$${ERROR}" != "0" ] && rm -f $@; \ + exit $${ERROR} +endef + +#Use: MAKESYM Filename[.ext][/PXXXX][/DXXXX][/CXXXX] +#egrep '^[[:xdigit:]]{4}[[:space:]]+[[:xdigit:]]{4}[[:space:]]+D.*r3init\.rel' hdrom.map +define cpm-mksym = +COMMAND="$(CPMEMU) makesym -$^ -/P -D"; \ +OUTPUT=$$(mktemp); echo $${COMMAND}; \ +$${COMMAND} > $${OUTPUT}; \ +grep -q '^ 0 Error(s) Detected' $${OUTPUT}; ERROR=$$? ; \ +if [ "$${ERROR}" != "0" ]; then cat $${OUTPUT}; rm -f $@; fi ; \ +exit $${ERROR} +endef + +hdrom.c: hdrom.hex + srec_cat -o $@ -c_array $(basename $<) -C_COMpressed -include $< -Intel + +hdrom.hex : $(OBJ) + @#$(cpm-link) + ld80 -o $@ -ms $(@:.hex=.map) -P $(LN_PROG) -D $(LN_DATA) $^ + +%.rel %lst: %.180 + @$(cpm-asm) + +hdrom.map: hdrom.hex + +%.sym: hdrom.map %.lst + @$(cpm-mksym) + +.phony: clean realclean +clean: + rm -f $(OBJ) $(OBJ:.rel=.lst) $(OBJ:.rel=.sym) hdrom.hex + +realclean: clean + rm -f *.prn *~ hdrom.map + + +#================================================================== + +%.REL: %.MAC + @COMMAND="$(AS) =$<"; \ + OUTPUT=$$(mktemp); echo $${COMMAND}; \ + $${COMMAND} > $${OUTPUT}; \ + grep -q 'No Fatal error(s).$$' $${OUTPUT}; ERROR=$$? ; \ + if [ "$${ERROR}" != "0" ]; then cat $${OUTPUT}; rm $@; fi ; \ + rm $${OUTPUT}; \ + exit $${ERROR} + + +%.PRN: %.MAC + @COMMAND="$(AS) ,$@=$<"; \ + OUTPUT=$$(mktemp); echo $${COMMAND}; \ + $${COMMAND} > $${OUTPUT}; \ + grep -q 'No Fatal error(s).$$' $${OUTPUT}; ERROR=$$? ; \ + if [ "$${ERROR}" != "0" ]; then cat $${OUTPUT}; fi ; \ + rm $${OUTPUT}; \ + exit $${ERROR} + -- cgit v1.2.3