]> cloudbase.mooo.com Git - kermit-80.git/blame - Makefile
Improved Makefile
[kermit-80.git] / Makefile
CommitLineData
b0db0839
L
1
2# The system-independent files:
3
4SRC_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
10SRC_SYSDEP = cpxtyp.asm cpxlnk.asm cpxcom.asm cpxswt.asm cpxvdu.asm
11
12# One of:
13
14SRC_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
19OVLADR = 7000
20
0a1239e0
L
21# Create assembler listing by default
22AS_FLAGS = /L
b0db0839
L
23
24# CP/M emulator
25#CPMEMU = aliados
26CPMEMU = zxcc
27
28ifeq "$(OS)" "Windows_NT"
29 PLATFORM=win32
30else
31 PLATFORM=Linux
32endif
33
34#Location of M80/L80
35ifeq ($(PLATFORM),Linux)
36 CPMBIN = /usr/local/lib/cpm/bin80
37else
38 CPMBIN = C:/cpmbin
39endif
40
41AS = $(CPMEMU) $(CPMBIN)/m80.com
42LINK = $(CPMEMU) $(CPMBIN)/l80.com
43
0a1239e0
L
44ECHO = /bin/echo -e
45RM = rm -f
46
47comma := ,
48empty :=
49space := $(empty) $(empty)
50commasep = $(subst $(space),$(comma),$(strip $(1)))
51ccpline = $(CPMEMU) $(1) -$(call commasep, $(2))
52
53do_as = \
54 @COMMAND="$(AS) -=$<$(AS_FLAGS)"; \
b0db0839 55 OUTPUT=$$(mktemp); echo $${COMMAND}; \
0a1239e0 56 $${COMMAND} | tee $${OUTPUT}; \
b0db0839 57 grep -q 'No Fatal error(s).$$' $${OUTPUT}; ERROR=$$? ; \
0a1239e0
L
58 if [ "$${ERROR}" != "0" ]; then cat $${OUTPUT}; $(RM) $@; fi ; \
59 $(RM) $${OUTPUT}; \
b0db0839
L
60 exit $${ERROR}
61
62
0a1239e0 63.SUFFIXES:
b0db0839
L
64.PHONY: all
65
b0db0839 66
0a1239e0 67all: kerm411.com
b0db0839 68
0a1239e0
L
69kerm411.com: cpsker.hex cpxtyp.hex
70 $(CPMEMU) mload.com -$@=$(call commasep, $^)
b0db0839 71
0a1239e0
L
72cpsker.hex: LOADADR = 100
73cpxtyp.hex: LOADADR = $(OVLADR)
b0db0839 74
b0db0839 75
0a1239e0
L
76cpxtyp.hex: $(SRC_SYSDEP) $(SRC_SYSTEM)
77cpsker.hex: $(SRC_CPSKER)
78#cpxtyp.prn: $(SRC_SYSDEP) $(SRC_SYSTEM)
79#cpsker.prn: $(SRC_CPSKER)
b0db0839 80
0a1239e0 81kerm411.com: | mload.com
b0db0839 82
0a1239e0
L
83.SECONDARY: mload.com
84.INTERMEDIATE: mload.rel tmp.asm
85mload.rel: AS_FLAGS = / # No assembler listing
86mload.rel: tmp.asm
87tmp.asm: mload.asm
88 $(ECHO) 'aseg\r' >tmp.asm
89 cat mload.asm >>tmp.asm
b0db0839
L
90
91
92%.rel: %.asm
0a1239e0 93 $(do_as)
b0db0839
L
94
95
0a1239e0
L
96%.hex: %.rel
97 $(LINK) -/P:$(LOADADR),$(call commasep, $< $@)/N/X/E
b0db0839 98
b0db0839
L
99
100%.com: %.rel
0a1239e0 101 $(LINK) -/P:100,$(call commasep, $< $@)/N/E
b0db0839
L
102
103
104.PHONY: clean
105
106clean:
0a1239e0 107 $(RM) *.hex *.prn