]> cloudbase.mooo.com Git - z180-stamp.git/blobdiff - z180/Makefile
Add makefiles (replace Tup)
[z180-stamp.git] / z180 / Makefile
index 159371f5261304964a26b0ca885b5063f041aaca..02ef58019a1e13618516f9066e32a62d432a0ca0 100644 (file)
 
+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