summaryrefslogtreecommitdiff
path: root/z180/Makefile
diff options
context:
space:
mode:
authorLeo C2019-05-29 22:26:45 +0200
committerLeo C2019-05-29 23:03:12 +0200
commit8a500c7f3634212263ab1291c139d9c6a8967b8b (patch)
tree224d0479e8853b21b865b35b4fe4b8144cefdbf3 /z180/Makefile
parent24ba732a4e11bae37bd42f3c9317a5d54597b11a (diff)
downloadz180-stamp-8a500c7f3634212263ab1291c139d9c6a8967b8b.zip
Add makefiles (replace Tup)
Diffstat (limited to 'z180/Makefile')
-rw-r--r--z180/Makefile133
1 files changed, 11 insertions, 122 deletions
diff --git a/z180/Makefile b/z180/Makefile
index 159371f..02ef580 100644
--- a/z180/Makefile
+++ b/z180/Makefile
@@ -1,127 +1,16 @@
+HDROM_SRC := init.180 ddtz.180 msgbuf-a.180
+HDROM_SRC += conbuf-a.180 console.180 asci-p.180
+#HDROM_SRC += bioscio.180 chario.180
+HDROM_SRC += romend.180
-SRC := init.180 ddtz.180
-SRC += console.180
-SRC += msgbuf-a.180 conbuf-a.180
-SRC += asci1-p.180
-SRC += romend.180
+.PHONY: all
+all: hdrom.c cfboot.c cpuinfo.c
-INC := config.inc z180reg.inc z180.lib
+hdrom.hex: ASM_OPT = MFS
+hdrom.hex: PROG_SEG = 0
+hdrom.hex: DATA_SEG = C000
+hdrom.hex: $(HDROM_SRC:.180=.rel)
-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.*init\.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}
+include ../mk/cpm.rules.mk