3 SRC
:= init
.180 ddtz
.180
5 SRC
+= msgbuf-a
.180 conbuf-a
.180
9 INC
:= config.inc z180reg.inc z180.lib
11 OBJ
:= $(SRC
:.180=.rel
)
16 #Location of CP/M binaries
17 CPMBIN
= /usr
/local
/lib
/cpm
/bin80
19 #AS = $(CPMEMU) $(CPMBIN)/m80.com
20 AS
= $(CPMEMU
) slr180.com
21 LN
= $(CPMEMU
) slrnk
+.com
22 #LN = $(CPMEMU) ccpline.com
47 space
:= $(empty
) $(empty
)
49 ccpline
= $(CPMEMU
) $(1) -$(subst $(space
),$(comma
),$(strip $(2)))
52 COMMAND
="$(AS) -$(basename $<)/$(AS_OPT)"; \
53 OUTPUT
=$$(mktemp
); echo
$${COMMAND}; \
54 $${COMMAND} > $${OUTPUT}; \
55 grep
-q
'^ 0 Error(s) Detected' $${OUTPUT}; ERROR
=$$?
; \
56 if
[ "$${ERROR}" != "0" ]; then cat
$${OUTPUT}; rm -f
$@
; fi
; \
61 COMMAND
="$(call ccpline, slrnk+, $(basename $@)/H/M /V \
62 /P:$(LN_PROG) /D:$(LN_DATA) $(basename $^) /E /Q)";\
63 OUTPUT
=$$(mktemp
); echo
$${COMMAND};\
64 $${COMMAND} > $${OUTPUT};\
67 grep
-q
' Duplicate Symbol ' $${OUTPUT} && ERROR
=2; \
68 grep
-q
'\- Previously Defined' $${OUTPUT} && ERROR
=2; \
69 [ "$${ERROR}" = "0" ] && grep
-q
'^ ** ' $${OUTPUT} && ERROR
=1 ; \
70 [ "$${ERROR}" != "0" ] && rm -f
$@
; \
74 #Use: MAKESYM Filename[.ext][/PXXXX][/DXXXX][/CXXXX]
75 #egrep '^[[:xdigit:]]{4}[[:space:]]+[[:xdigit:]]{4}[[:space:]]+D.*init\.rel' hdrom.map
77 COMMAND
="$(CPMEMU) makesym -$^ -/P -D"; \
78 OUTPUT
=$$(mktemp
); echo
$${COMMAND}; \
79 $${COMMAND} > $${OUTPUT}; \
80 grep
-q
'^ 0 Error(s) Detected' $${OUTPUT}; ERROR
=$$?
; \
81 if
[ "$${ERROR}" != "0" ]; then cat
$${OUTPUT}; rm -f
$@
; fi
; \
86 srec_cat
-o
$@
-c_array
$(basename $<) -C_COMpressed
-include $< -Intel
90 ld80
-o
$@
-ms
$(@
:.hex
=.map
) -P
$(LN_PROG
) -D
$(LN_DATA
) $^
97 %.sym
: hdrom.map
%.lst
100 .phony
: clean realclean
102 rm -f
$(OBJ
) $(OBJ
:.rel
=.lst
) $(OBJ
:.rel
=.sym
) hdrom.hex
105 rm -f
*.prn
*~ hdrom.map
108 #==================================================================
111 @COMMAND
="$(AS) =$<"; \
112 OUTPUT
=$$(mktemp
); echo
$${COMMAND}; \
113 $${COMMAND} > $${OUTPUT}; \
114 grep
-q
'No Fatal error(s).$$' $${OUTPUT}; ERROR
=$$?
; \
115 if
[ "$${ERROR}" != "0" ]; then cat
$${OUTPUT}; rm $@
; fi
; \
121 @COMMAND
="$(AS) ,$@=$<"; \
122 OUTPUT
=$$(mktemp
); echo
$${COMMAND}; \
123 $${COMMAND} > $${OUTPUT}; \
124 grep
-q
'No Fatal error(s).$$' $${OUTPUT}; ERROR
=$$?
; \
125 if
[ "$${ERROR}" != "0" ]; then cat
$${OUTPUT}; fi
; \