File: Makefile

package info (click to toggle)
xa 2.4.1-0.1
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,356 kB
  • sloc: ansic: 8,585; asm: 845; makefile: 755; perl: 116; sh: 53
file content (149 lines) | stat: -rw-r--r-- 5,060 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149

FILES=at1.o65 at2.o65 at4.o65 at256.o65 ad1.o65 ad2.o65 ad4.o65 ad256.o65 ab1.o65 ab2.o65 ab4.o65 ab256.o65

VERBOSE=
#VERBOSE=-v

XA=../../xa
LDO=../../ldo65
RELOC=../../reloc65
FILE=../../file65

all: test1.o65 test2.o65 test3.o65 test4 cpus relocsame overwrite linkup1.tmp linkup2

.SUFFIXES: .a65 .o65

.a65.o65:
	${XA} -R -o $@ $?

# test with files in order of increasing align
test1.o65: ${FILES}
	${LDO} ${VERBOSE} -o $@ ${FILES}
	../hextool -cmp=$@.ok $@

# test with files in order of decreasing align
test2.o65: ${FILES}
	${LDO} ${VERBOSE} -o $@ ab256.o65 ab4.o65 ab2.o65 ab1.o65 ad256.o65 ad4.o65 ad2.o65 ad1.o65 at256.o65 at4.o65 at2.o65 at1.o65
	../hextool -cmp=$@.ok $@

# test with files in order of increasing align, not starting at align=1
test3.o65: ${FILES}
	${LDO} ${VERBOSE} -o $@ ab2.o65 at2.o65 ad2.o65 ab4.o65 at4.o65 ad4.o65 ad256.o65 at256.o65 ab256.o65
	../hextool -cmp=$@.ok $@

# test with files in order of increasing align, with non-aligned segment addresses
test4: ${FILES}
	${LDO} ${VERBOSE} -bt 1025 -bd 1025 -o $@.o65 ab2.o65 at2.o65 ad2.o65 ab4.o65 at4.o65 ad4.o65 ad256.o65 at256.o65 ab256.o65 || exit 0 && exit 1
	${LDO} ${VERBOSE} -bt 1026 -bd 1026 -o $@.o65 ab2.o65 at2.o65 ad2.o65 ab4.o65 at4.o65 ad4.o65 ad256.o65 at256.o65 ab256.o65 || exit 0 && exit 1
	${LDO} ${VERBOSE} -bt 1027 -bd 1027 -o $@.o65 ab2.o65 at2.o65 ad2.o65 ab4.o65 at4.o65 ad4.o65 ad256.o65 at256.o65 ab256.o65 || exit 0 && exit 1
	${LDO} ${VERBOSE} -bt 1028 -bd 1028 -o $@.o65 ab2.o65 at2.o65 ad2.o65 ab4.o65 at4.o65 ad4.o65 ad256.o65 at256.o65 ab256.o65 || exit 0 && exit 1

#c6502: at2.o65 ad4.o65
#	for i in $^; do ${RELOC} -C 6502 -o $@-$$i $$i; done
#	cmp $@-at2.o65 $@-at2.ok
#	cmp $@-ad4.o65 $@-ad4.ok
c6502: c6502-at2.o65 c6502-ad4.o65
c6502-at2.o65: at2.o65
	${RELOC} -C 6502 -o $@ $?
	../hextool -cmp=$@.ok $@
c6502-ad4.o65: ad4.o65
	${RELOC} -C 6502 -o $@ $?
	../hextool -cmp=$@.ok $@

#c65c02: at2.o65 ad4.o65
#	for i in $^; do ${RELOC} -C 65C02 -o $@-$$i $$i; done
#	cmp $@-at2.o65 $@-at2.ok
#	cmp $@-ad4.o65 $@-ad4.ok
c65c02: c65c02-at2.o65 c65c02-ad4.o65
c65c02-at2.o65: at2.o65
	${RELOC} -C 65C02 -o $@ $?
	../hextool -cmp=$@.ok $@
c65c02-ad4.o65: ad4.o65
	${RELOC} -C 65C02 -o $@ $?
	../hextool -cmp=$@.ok $@

#c65ce02: at2.o65 ad4.o65
#	for i in $^; do ${RELOC} -C 65CE02 -o $@-$$i $$i; done
#	cmp $@-at2.o65 $@-at2.ok
#	cmp $@-ad4.o65 $@-ad4.ok
c65ce02: c65ce02-at2.o65 c65ce02-ad4.o65
c65ce02-at2.o65: at2.o65
	${RELOC} -C 65CE02 -o $@ $?
	../hextool -cmp=$@.ok $@
c65ce02-ad4.o65: ad4.o65
	${RELOC} -C 65CE02 -o $@ $?
	../hextool -cmp=$@.ok $@

#c65sc02: at2.o65 ad4.o65
#	for i in $^; do ${RELOC} -C 65SC02 -o $@-$$i $$i; done
#	cmp $@-at2.o65 $@-at2.ok
#	cmp $@-ad4.o65 $@-ad4.ok
c65sc02: c65sc02-at2.o65 c65sc02-ad4.o65
c65sc02-at2.o65: at2.o65
	${RELOC} -C 65SC02 -o $@ $?
	../hextool -cmp=$@.ok $@
c65sc02-ad4.o65: ad4.o65
	${RELOC} -C 65SC02 -o $@ $?
	../hextool -cmp=$@.ok $@

#c65816: at2.o65 ad4.o65
#	for i in $^; do ${RELOC} -C 65816 -o $@-$$i $$i; done
#	cmp $@-at2.o65 $@-at2.ok
#	cmp $@-ad4.o65 $@-ad4.ok
c65816: c65816-at2.o65 c65816-ad4.o65
c65816-at2.o65: at2.o65
	${RELOC} -C 65816 -o $@ $?
	../hextool -cmp=$@.ok $@
c65816-ad4.o65: ad4.o65
	${RELOC} -C 65816 -o $@ $?
	../hextool -cmp=$@.ok $@

#n6502: at2.o65 ad4.o65
#	for i in $^; do ${RELOC} -C NMOS6502 -o $@-$$i $$i; done
#	cmp $@-at2.o65 $@-at2.ok
#	cmp $@-ad4.o65 $@-ad4.ok
n6502: n6502-at2.o65 n6502-ad4.o65
n6502-at2.o65: at2.o65
	${RELOC} -C NMOS6502 -o $@ $?
	../hextool -cmp=$@.ok $@
n6502-ad4.o65: ad4.o65
	${RELOC} -C NMOS6502 -o $@ $?
	../hextool -cmp=$@.ok $@

cpus: c65816 c6502 n6502 c65sc02 c65c02 c65ce02
	# prereq for the following

relocsame: cpus
	${RELOC} -o $@.o65 c65816-ad4.o65
	../hextool -cmp=c65816-ad4.o65 $@.o65
	${RELOC} -o $@.o65 c65sc02-at2.o65
	../hextool -cmp=c65sc02-at2.o65 $@.o65

overwrite: cpus
	# overwrite 65816 with nmos 6502
	${RELOC} -C NMOS6502 -o $@-1.o65 c65816-at2.o65
	../hextool -cmp=n6502-at2.o65 $@-1.o65
	# overwrite 65sc02 with 65c02
	${RELOC} -C 65C02 -o $@-2.o65 c65sc02-ad4.o65
	../hextool -cmp=c65c02-ad4.o65 $@-2.o65

linkup1.tmp: cpus
	${LDO} -v -o $@.tmp c6502-ad4.o65 c65c02-at2.o65 c65sc02-ad4.o65
	${FILE} $@.tmp > $@
	../hextool -cmp=$@.ok $@

linkup2: 
	# incompatible links
	${LDO} ${VERBOSE} -o $@.o65 c6502-ad4.o65 c65c02-at2.o65 c65816-ad4.o65 || exit 0 && exit 1
	${LDO} ${VERBOSE} -o $@.o65 c6502-ad4.o65 c65ce02-at2.o65 c65816-ad4.o65 || exit 0 && exit 1
	${LDO} ${VERBOSE} -o $@.o65 c6502-ad4.o65 c65816-at2.o65 c65c02-ad4.o65 || exit 0 && exit 1
	${LDO} ${VERBOSE} -o $@.o65 c6502-ad4.o65 c65816-at2.o65 c65ce02-ad4.o65 || exit 0 && exit 1
	${LDO} ${VERBOSE} -o $@.o65 c65816-at2.o65 c65ce02-ad4.o65 c65c02-at2.o65 || exit 0 && exit 1
	${LDO} ${VERBOSE} -o $@.o65 n6502-at2.o65 c65ce02-ad4.o65 || exit 0 && exit 1
	${LDO} ${VERBOSE} -o $@.o65 n6502-at2.o65 c65c02-ad4.o65 || exit 0 && exit 1
	${LDO} ${VERBOSE} -o $@.o65 n6502-at2.o65 c65sc02-ad4.o65 || exit 0 && exit 1
	${LDO} ${VERBOSE} -o $@.o65 n6502-at2.o65 c65816-ad4.o65 || exit 0 && exit 1

clean:
	rm -f *.o65 *.tmp