]>
cloudbase.mooo.com Git - z180-stamp.git/blob - mk/cpm.rules.mk
3 # Define a helper macro for debugging make errors online
4 # you can type "make print-VARIABLE" and it will show you
5 # how that ended up being resolved by all of the included
15 #Location of CP/M binaries
16 CPMBIN
= /usr
/local
/lib
/cpm
/bin80
18 #AS = $(CPMEMU) $(CPMBIN)/m80.com
19 AS
= $(CPMEMU
) slr180.com
20 LN
= $(CPMEMU
) slrnk
+.com
21 #LN = $(CPMEMU) ccpline.com
31 space
:= $(empty
) $(empty
)
33 ccpline
= $(CPMEMU
) $(1) -$(subst $(space
),$(comma
),$(strip $(2)))
36 COMMAND
="$(AS) -$*/$(ASM_OPT)"; \
37 OUTPUT
=$$(mktemp
); echo
$${COMMAND}; \
38 $${COMMAND} < $< > $${OUTPUT}; \
39 grep
-q
'^ 0 Error(s) Detected' $${OUTPUT}; ERROR
=$$?
; \
40 if
[ "$${ERROR}" != "0" ]; then cat
$${OUTPUT}; rm -f
$@
; fi
; \
45 COMMAND
="$(call ccpline, slrnk+, $*/H/M /V \
46 /P:$(PROG_SEG) /D:$(DATA_SEG) $(basename $^) /E /Q)";\
47 OUTPUT
=$$(mktemp
); echo
$${COMMAND};\
48 $${COMMAND} > $${OUTPUT};\
51 grep
-q
' Duplicate Symbol ' $${OUTPUT} && ERROR
=2; \
52 grep
-q
'\- Previously Defined' $${OUTPUT} && ERROR
=2; \
53 [ "$${ERROR}" = "0" ] && grep
-q
'^ ** ' $${OUTPUT} && ERROR
=1 ; \
54 [ "$${ERROR}" != "0" ] && rm -f
$@
; \
58 #Use: MAKESYM Filename[.ext][/PXXXX][/DXXXX][/CXXXX]
59 #egrep '^[[:xdigit:]]{4}[[:space:]]+[[:xdigit:]]{4}[[:space:]]+D.*init\.rel' hdrom.map
61 COMMAND
="$(CPMEMU) makesym -$^ -/P0 -/D0"; \
62 OUTPUT
=$$(mktemp
); echo
$${COMMAND}; \
63 $${COMMAND} > $${OUTPUT}; \
64 grep
-q
'^ 0 Error(s) Detected' $${OUTPUT}; ERROR
=$$?
; \
65 if
[ "$${ERROR}" != "0" ]; then cat
$${OUTPUT}; rm -f
$@
; fi
; \
77 ld80
-o
$@
-ms
$(@
:.hex
=.map
) -P
$(PROG_SEG
) -D
$(DATA_SEG
) $^
83 srec_cat
-o
$@
-c_array
$* -C_COMpressed
-include $< -Intel
90 $(RM
) *.hex
*.rel
*.lst
*.sym
*.map
*.c
*.h