]>
Commit | Line | Data |
---|---|---|
1 | ||
2 | # The system-independent files: | |
3 | ||
4 | SRC_CPSKER = cpsker.asm cpsdef.asm cpsmit.asm cpscom.asm cpspk1.asm \ | |
5 | cpspk2.asm cpsrem.asm cpsser.asm cpstt.asm cpscpm.asm \ | |
6 | cpswld.asm cpscmd.asm cpsutl.asm cpsdat.asm cpxlnk.asm | |
7 | ||
8 | # The system-dependent files: | |
9 | ||
10 | SRC_SYSDEP = cpxtyp.asm cpxlnk.asm cpxcom.asm cpxswt.asm cpxvdu.asm | |
11 | ||
12 | # One of: | |
13 | ||
14 | SRC_SYSTEM = cpxsys.asm cpxtor.asm cpxnor.asm cpxmrl.asm cpxsb.asm \ | |
15 | cpxcif.asm cpxhea.asm cpxapp.asm cpxpcw.asm cpxbbi.asm cpxbee.asm \ | |
16 | cpxsyo.asm cpxtm4.asm cpxgni.asm cpxpro.asm cpxz80.asm cpxac.asm | |
17 | ||
18 | ||
19 | OVLADR = 7000 | |
20 | ||
21 | ||
22 | ||
23 | ||
24 | # CP/M emulator | |
25 | #CPMEMU = aliados | |
26 | CPMEMU = zxcc | |
27 | ||
28 | ifeq "$(OS)" "Windows_NT" | |
29 | PLATFORM=win32 | |
30 | else | |
31 | PLATFORM=Linux | |
32 | endif | |
33 | ||
34 | #Location of M80/L80 | |
35 | ifeq ($(PLATFORM),Linux) | |
36 | CPMBIN = /usr/local/lib/cpm/bin80 | |
37 | else | |
38 | CPMBIN = C:/cpmbin | |
39 | endif | |
40 | ||
41 | AS = $(CPMEMU) $(CPMBIN)/m80.com | |
42 | LINK = $(CPMEMU) $(CPMBIN)/l80.com | |
43 | ||
44 | do_as = | |
45 | @COMMAND="$(AS) =$<"; \ | |
46 | OUTPUT=$$(mktemp); echo $${COMMAND}; \ | |
47 | $${COMMAND} > $${OUTPUT}; \ | |
48 | grep -q 'No Fatal error(s).$$' $${OUTPUT}; ERROR=$$? ; \ | |
49 | if [ "$${ERROR}" != "0" ]; then cat $${OUTPUT}; rm $@; fi ; \ | |
50 | rm $${OUTPUT}; \ | |
51 | exit $${ERROR} | |
52 | ||
53 | ||
54 | .PHONY: all | |
55 | ||
56 | .SUFFIXES: | |
57 | ||
58 | all: kerm411.com cpxtyp.prn cpsker.prn | |
59 | ||
60 | ||
61 | kerm411.com: cpsker.rel cpxtyp.rel | |
62 | $(LINK) -/P:100,cpsker,cpsker/N/X/E | |
63 | $(LINK) -/P:$(OVLADR),cpxtyp,cpxtyp/N/X/E | |
64 | $(CPMEMU) mload.com -kerm411.com=cpsker.hex,cpxtyp.hex | |
65 | ||
66 | # grep -v -P '^(\x1A)|(:..7)|(:00....01)' cpsker.hex >kerm411.hex | |
67 | # grep -v -P '^\x1A' cpxtyp.hex >>kerm411.hex | |
68 | # objcopy -I ihex -O binary kerm411.hex kerm411.com | |
69 | ||
70 | ||
71 | cpxtyp.rel: $(SRC_SYSDEP) $(SRC_SYSTEM) | |
72 | cpsker.rel: $(SRC_CPSKER) | |
73 | cpxtyp.prn: $(SRC_SYSDEP) $(SRC_SYSTEM) | |
74 | cpsker.prn: $(SRC_CPSKER) | |
75 | ||
76 | mload.com: mload.rel | |
77 | $(LINK) -/P:100,mload,mload/N/E | |
78 | ||
79 | mload.rel: mload.asm | |
80 | echo -e 'aseg\r' >tmp.mac | |
81 | cat mload.asm >>tmp.mac | |
82 | @COMMAND="$(AS) -mload=tmp.mac"; \ | |
83 | OUTPUT=$$(mktemp); echo $${COMMAND}; \ | |
84 | $${COMMAND} > $${OUTPUT}; \ | |
85 | grep -q 'No Fatal error(s).$$' $${OUTPUT}; ERROR=$$? ; \ | |
86 | if [ "$${ERROR}" != "0" ]; then cat $${OUTPUT}; rm $@; fi ; \ | |
87 | rm $${OUTPUT}; \ | |
88 | exit $${ERROR} | |
89 | ||
90 | ||
91 | %.rel: %.asm | |
92 | @COMMAND="$(AS) =$<"; \ | |
93 | OUTPUT=$$(mktemp); echo $${COMMAND}; \ | |
94 | $${COMMAND} | tee $${OUTPUT}; \ | |
95 | grep -q 'No Fatal error(s).$$' $${OUTPUT}; ERROR=$$? ; \ | |
96 | if [ "$${ERROR}" != "0" ]; then cat $${OUTPUT}; rm $@; fi ; \ | |
97 | #rm $${OUTPUT}; \ | |
98 | exit $${ERROR} | |
99 | ||
100 | ||
101 | %.prn: %.asm | |
102 | @COMMAND="$(AS) ,$@=$<"; \ | |
103 | OUTPUT=$$(mktemp); echo $${COMMAND}; \ | |
104 | $${COMMAND} > $${OUTPUT}; \ | |
105 | grep -q 'No Fatal error(s).$$' $${OUTPUT}; ERROR=$$? ; \ | |
106 | if [ "$${ERROR}" != "0" ]; then cat $${OUTPUT}; fi ; \ | |
107 | #rm $${OUTPUT}; \ | |
108 | exit $${ERROR} | |
109 | ||
110 | ||
111 | #%.BIN: %.rel | |
112 | # $(LINK) $<,$@/N/E | |
113 | ## zxcc l80.com -$<,$@/N/E | |
114 | ||
115 | %.com: %.rel | |
116 | $(LINK) $<,$@/N/E | |
117 | ||
118 | ||
119 | .PHONY: clean | |
120 | ||
121 | clean: | |
122 | rm -f *.rel *.prn |