3 SRC
:= r3init
.180 ddtz
.180
4 SRC
+= fifoio
.180 msgbuf
.180 ser1-i
.180 console
.180
7 INC
:= config.inc z180reg.inc z180.lib
9 OBJ
:= $(SRC
:.180=.rel
)
14 #Location of CP/M binaries
15 CPMBIN
= /usr
/local
/lib
/cpm
/bin80
17 #AS = $(CPMEMU) $(CPMBIN)/m80.com
18 AS
= $(CPMEMU
) slr180.com
19 LN
= $(CPMEMU
) slrnk
+.com
20 #LN = $(CPMEMU) ccpline.com
37 all: ..
/stm32
/hdrom.c ..
/stm32
/hdrom.h
41 ..
/stm32
/hdrom.h
: ..
/stm32
/hdrom.c
45 space
:= $(empty
) $(empty
)
47 ccpline
= $(CPMEMU
) $(1) -$(subst $(space
),$(comma
),$(strip $(2)))
50 COMMAND
="$(AS) -$(basename $<)/$(AS_OPT)"; \
51 OUTPUT
=$$(mktemp
); echo
$${COMMAND}; \
52 $${COMMAND} > $${OUTPUT}; \
53 grep
-q
'^ 0 Error(s) Detected' $${OUTPUT}; ERROR
=$$?
; \
54 if
[ "$${ERROR}" != "0" ]; then cat
$${OUTPUT}; rm -f
$@
; fi
; \
59 COMMAND
="$(call ccpline, slrnk+, $(basename $@)/H/M /V \
60 /P:$(LN_PROG) /D:$(LN_DATA) $(basename $^) /E /Q)";\
61 OUTPUT
=$$(mktemp
); echo
$${COMMAND};\
62 $${COMMAND} > $${OUTPUT};\
65 grep
-q
' Duplicate Symbol ' $${OUTPUT} && ERROR
=2; \
66 grep
-q
'\- Previously Defined' $${OUTPUT} && ERROR
=2; \
67 [ "$${ERROR}" = "0" ] && grep
-q
'^ ** ' $${OUTPUT} && ERROR
=1 ; \
68 [ "$${ERROR}" != "0" ] && rm -f
$@
; \
72 #Use: MAKESYM Filename[.ext][/PXXXX][/DXXXX][/CXXXX]
73 #egrep '^[[:xdigit:]]{4}[[:space:]]+[[:xdigit:]]{4}[[:space:]]+D.*r3init\.rel' hdrom.map
75 COMMAND
="$(CPMEMU) makesym -$^ -/P -D"; \
76 OUTPUT
=$$(mktemp
); echo
$${COMMAND}; \
77 $${COMMAND} > $${OUTPUT}; \
78 grep
-q
'^ 0 Error(s) Detected' $${OUTPUT}; ERROR
=$$?
; \
79 if
[ "$${ERROR}" != "0" ]; then cat
$${OUTPUT}; rm -f
$@
; fi
; \
83 ..
/stm32
/hdrom.c
: hdrom.hex
84 srec_cat
-o
$@
-c_array
$(basename $<) -C_COMpressed
-include $< -Intel
88 ld80
-o
$@
-ms
$(@
:.hex
=.map
) -P
$(LN_PROG
) -D
$(LN_DATA
) $^
95 %.sym
: hdrom.map
%.lst
98 .phony
: clean realclean
100 rm -f
$(OBJ
) $(OBJ
:.rel
=.lst
) $(OBJ
:.rel
=.sym
) hdrom.hex
103 rm -f
*.prn
*~ hdrom.map
106 #==================================================================
109 @COMMAND
="$(AS) =$<"; \
110 OUTPUT
=$$(mktemp
); echo
$${COMMAND}; \
111 $${COMMAND} > $${OUTPUT}; \
112 grep
-q
'No Fatal error(s).$$' $${OUTPUT}; ERROR
=$$?
; \
113 if
[ "$${ERROR}" != "0" ]; then cat
$${OUTPUT}; rm $@
; fi
; \
119 @COMMAND
="$(AS) ,$@=$<"; \
120 OUTPUT
=$$(mktemp
); echo
$${COMMAND}; \
121 $${COMMAND} > $${OUTPUT}; \
122 grep
-q
'No Fatal error(s).$$' $${OUTPUT}; ERROR
=$$?
; \
123 if
[ "$${ERROR}" != "0" ]; then cat
$${OUTPUT}; fi
; \