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
|