]> cloudbase.mooo.com Git - kermit-80.git/blob - Makefile
Add AVR-CP/M system (cpxac.asm) and a Makefile
[kermit-80.git] / Makefile
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