build system can create different ROMs per platforn
This commit is contained in:
1 parent
212724d8f5
commit
4c60ad1653
10 files changed
+166
-183
No files matched your search
@@ -1,61 +1,165 @@
|
||||
all: Ophis src/collect_data src/preprocess
|
||||
|
||||
# Source files
|
||||
|
||||
SRC_COMMON = $(wildcard c64/aliases/*.s)
|
||||
SRC_BASIC_COMMON = $(SRC_COMMON) $(wildcard c64/basic/*.s)
|
||||
SRC_KERNAL_COMMON = $(SRC_COMMON) $(wildcard c64/kernal/*.s)
|
||||
|
||||
SRC_BASIC_GENERIC = $(SRC_BASIC_COMMON) $(wildcard c64/basic/,platform_generic/*.s)
|
||||
SRC_BASIC_MEGA65 = $(SRC_BASIC_COMMON) $(wildcard c64/basic/,platform_mega65/*.s)
|
||||
SRC_BASIC_ULTIMATE64 = $(SRC_BASIC_COMMON) $(wildcard c64/basic/,platform_ultimate64/*.s)
|
||||
|
||||
SRC_KERNAL_GENERIC = $(SRC_KERNAL_COMMON) $(wildcard c64/kernal/,platform_generic/*.s)
|
||||
SRC_KERNAL_MEGA65 = $(SRC_KERNAL_COMMON) $(wildcard c64/kernal/,platform_mega65/*.s)
|
||||
SRC_KERNAL_ULTIMATE64 = $(SRC_KERNAL_COMMON) $(wildcard c64/kernal/,platform_ultimate64/*.s)
|
||||
|
||||
# Rules - maintainance
|
||||
|
||||
all: build/chargen build/newkern_generic build/newbasic_generic build/newkern_mega65 build/newbasic_mega65 build/newkern_ultimate64 build/newbasic_ultimate64
|
||||
|
||||
clean:
|
||||
@rm -rf build
|
||||
@rm -f temp.s
|
||||
@rm -f temp.map
|
||||
@rm -f c64/basic/packed_messages.s
|
||||
|
||||
.PHONY: prep
|
||||
prep: Ophis build/collect_data build/compress_text build/preprocess build/similarity
|
||||
|
||||
Ophis:
|
||||
git submodule init
|
||||
git submodule update
|
||||
|
||||
src/pngprepare: src/pngprepare.c Makefile
|
||||
$(CC) $(COPT) -I/usr/local/include -L/usr/local/lib -o src/pngprepare src/pngprepare.c -lpng
|
||||
# Rules - tools
|
||||
|
||||
chargen: src/pngprepare assets/8x8font.png
|
||||
src/pngprepare charrom assets/8x8font.png chargen
|
||||
build/pngprepare: src/pngprepare.c Makefile
|
||||
@mkdir -p build
|
||||
$(CC) $(COPT) -I/usr/local/include -L/usr/local/lib -o build/pngprepare src/pngprepare.c -lpng
|
||||
|
||||
src/collect_data: src/collect_data.c Makefile
|
||||
gcc -Wall -o src/collect_data src/collect_data.c
|
||||
build/collect_data: src/collect_data.c Makefile
|
||||
@mkdir -p build
|
||||
gcc -Wall -o build/collect_data src/collect_data.c
|
||||
|
||||
src/preprocess: src/preprocess.c Makefile
|
||||
gcc -g -Wall -o src/preprocess src/preprocess.c
|
||||
build/preprocess: src/preprocess.c Makefile
|
||||
@mkdir -p build
|
||||
gcc -g -Wall -o build/preprocess src/preprocess.c
|
||||
|
||||
src/similarity: src/similarity.c Makefile
|
||||
gcc -g -Wall -o src/similarity src/similarity.c
|
||||
build/similarity: src/similarity.c Makefile
|
||||
@mkdir -p build
|
||||
gcc -g -Wall -o build/similarity src/similarity.c
|
||||
|
||||
src/compress_text: src/compress_text.c Makefile
|
||||
gcc -g -Wall -o src/compress_text src/compress_text.c -lm
|
||||
build/compress_text: src/compress_text.c Makefile
|
||||
@mkdir -p build
|
||||
gcc -g -Wall -o build/compress_text src/compress_text.c -lm
|
||||
|
||||
newrom: c64/kernal/OUT.BIN c64/basic/OUT.BIN
|
||||
cat c64/basic/OUT.BIN c64/kernal/OUT.BIN >newrom
|
||||
# Rules - chargen
|
||||
|
||||
newkern: newrom Makefile
|
||||
dd if=newrom bs=8192 count=1 skip=2 of=newkern
|
||||
build/chargen: build/pngprepare assets/8x8font.png
|
||||
build/pngprepare charrom assets/8x8font.png build/chargen
|
||||
|
||||
newbasic: newrom Makefile
|
||||
dd if=newrom bs=8192 count=1 skip=0 of=newbasic
|
||||
# Rules - platform 'generic'
|
||||
|
||||
newc65: newkern newbasic chargen Makefile
|
||||
dd if=/dev/zero bs=4096 count=10 of=newc65
|
||||
cat newbasic chargen chargen newkern >>newc65
|
||||
dd if=/dev/zero bs=65536 count=1 of=padding
|
||||
cat padding >>newc65
|
||||
build/basic_generic/OUT.BIN: build/preprocess $(SRC_BASIC_GENERIC) c64/basic/packed_messages.s
|
||||
@mkdir -p build/basic_generic
|
||||
@rm -f build/basic_generic/*
|
||||
@for SRC in $(SRC_BASIC_GENERIC); do \
|
||||
ln -s ../../$$SRC build/basic_generic/$$(basename $$SRC); \
|
||||
done
|
||||
build/preprocess -d build/basic_generic -l a000 -h e4d2
|
||||
|
||||
build/kernal_generic/OUT.BIN: build/preprocess $(SRC_KERNAL_GENERIC)
|
||||
@mkdir -p build/kernal_generic
|
||||
@rm -f build/kernal_generic/*
|
||||
@for SRC in $(SRC_KERNAL_GENERIC); do \
|
||||
ln -s ../../$$SRC build/kernal_generic/$$(basename $$SRC); \
|
||||
done
|
||||
build/preprocess -d build/kernal_generic -l e4d3 -h ffff
|
||||
|
||||
c64/basic/packed_messages.s: Makefile src/compress_text
|
||||
src/compress_text > c64/basic/packed_messages.s
|
||||
build/newrom_generic: build/basic_generic/OUT.BIN build/kernal_generic/OUT.BIN
|
||||
cat build/basic_generic/OUT.BIN build/kernal_generic/OUT.BIN > build/newrom_generic
|
||||
|
||||
c64/kernal/OUT.BIN: src/preprocess c64/kernal/*.s
|
||||
src/preprocess -d c64/kernal -l e4d3 -h ffff
|
||||
build/newkern_generic: build/newrom_generic Makefile
|
||||
dd if=build/newrom_generic bs=8192 count=1 skip=2 of=build/newkern_generic
|
||||
|
||||
c64/basic/OUT.BIN: src/preprocess c64/basic/*.s c64/basic/packed_messages.s
|
||||
src/preprocess -d c64/basic -l a000 -h e4d2
|
||||
build/newbasic_generic: build/newrom_generic Makefile
|
||||
dd if=build/newrom_generic bs=8192 count=1 skip=0 of=build/newbasic_generic
|
||||
|
||||
testremote: newkern newbasic
|
||||
x64 -kernal newkern -basic newbasic -remotemonitor
|
||||
# Rules - platform 'Mega 65'
|
||||
|
||||
test: newkern newbasic
|
||||
x64 -kernal newkern -basic newbasic -8 empty.d64
|
||||
build/basic_mega65/OUT.BIN: build/preprocess $(SRC_BASIC_MEGA65) c64/basic/packed_messages.s
|
||||
@mkdir -p build/basic_mega65
|
||||
@rm -f build/basic_mega65/*
|
||||
@for SRC in $(SRC_BASIC_MEGA65); do \
|
||||
ln -s ../../$$SRC build/basic_mega65/$$(basename $$SRC); \
|
||||
done
|
||||
build/preprocess -d build/basic_mega65 -l a000 -h e4d2
|
||||
|
||||
testm65: newc65
|
||||
m65 -b ../mega65-core/bin/mega65r1.bit -k ../mega65-core/bin/KICKUP.M65 -R newc65 -4
|
||||
build/kernal_mega65/OUT.BIN: build/preprocess $(SRC_KERNAL_MEGA65)
|
||||
@mkdir -p build/kernal_mega65
|
||||
@rm -f build/kernal_mega65/*
|
||||
@for SRC in $(SRC_KERNAL_MEGA65); do \
|
||||
ln -s ../../$$SRC build/kernal_mega65/$$(basename $$SRC); \
|
||||
done
|
||||
build/preprocess -d build/kernal_mega65 -l e4d3 -h ffff
|
||||
|
||||
testsimilarity: newkern newbasic src/similarity
|
||||
src/similarity kernal newrom
|
||||
src/similarity basic newrom
|
||||
build/newrom_mega65: build/basic_mega65/OUT.BIN build/kernal_mega65/OUT.BIN
|
||||
cat build/basic_mega65/OUT.BIN build/kernal_mega65/OUT.BIN > build/newrom_mega65
|
||||
|
||||
build/newkern_mega65: build/newrom_mega65 Makefile
|
||||
dd if=build/newrom_mega65 bs=8192 count=1 skip=2 of=build/newkern_mega65
|
||||
|
||||
build/newbasic_mega65: build/newrom_mega65 Makefile
|
||||
dd if=build/newrom_mega65 bs=8192 count=1 skip=0 of=build/newbasic_mega65
|
||||
|
||||
build/newc65: build/newkern_mega65 build/newbasic_mega65 build/chargen Makefile
|
||||
dd if=/dev/zero bs=4096 count=10 of=build/newc65
|
||||
cat build/newbasic_mega65 build/chargen build/chargen build/newkern_mega65 >>build/newc65
|
||||
dd if=/dev/zero bs=65536 count=1 of=build/padding
|
||||
cat build/padding >>build/newc65
|
||||
|
||||
# Rules - platform 'Ultimate 64'
|
||||
|
||||
build/basic_ultimate64/OUT.BIN: build/preprocess $(SRC_BASIC_ULTIMATE64) c64/basic/packed_messages.s
|
||||
@mkdir -p build/basic_ultimate64
|
||||
@rm -f build/basic_ultimate64/*
|
||||
@for SRC in $(SRC_BASIC_ULTIMATE64); do \
|
||||
ln -s ../../$$SRC build/basic_ultimate64/$$(basename $$SRC); \
|
||||
done
|
||||
build/preprocess -d build/basic_ultimate64 -l a000 -h e4d2
|
||||
|
||||
build/kernal_ultimate64/OUT.BIN: build/preprocess $(SRC_KERNAL_ULTIMATE64)
|
||||
@mkdir -p build/kernal_ultimate64
|
||||
@rm -f build/kernal_ultimate64/*
|
||||
@for SRC in $(SRC_KERNAL_ULTIMATE64); do \
|
||||
ln -s ../../$$SRC build/kernal_ultimate64/$$(basename $$SRC); \
|
||||
done
|
||||
build/preprocess -d build/kernal_ultimate64 -l e4d3 -h ffff
|
||||
|
||||
build/newrom_ultimate64: build/basic_ultimate64/OUT.BIN build/kernal_ultimate64/OUT.BIN
|
||||
cat build/basic_ultimate64/OUT.BIN build/kernal_ultimate64/OUT.BIN > build/newrom_ultimate64
|
||||
|
||||
build/newkern_ultimate64: build/newrom_ultimate64 Makefile
|
||||
dd if=build/newrom_ultimate64 bs=8192 count=1 skip=2 of=build/newkern_ultimate64
|
||||
|
||||
build/newbasic_ultimate64: build/newrom_ultimate64 Makefile
|
||||
dd if=build/newrom_ultimate64 bs=8192 count=1 skip=0 of=build/newbasic_ultimate64
|
||||
|
||||
# Rules - misc
|
||||
|
||||
c64/basic/packed_messages.s: Makefile build/compress_text
|
||||
build/compress_text > c64/basic/packed_messages.s
|
||||
|
||||
# Rules - tests
|
||||
|
||||
testremote: build/newkern_generic build/newbasic_generic
|
||||
x64 -kernal build/newkern-generic -basic build/newbasic-generic -remotemonitor
|
||||
|
||||
test: build/newkern_generic build/newbasic_generic
|
||||
x64 -kernal build/newkern_generic -basic build/newbasic_generic -8 empty.d64
|
||||
|
||||
testm65: build/newc65
|
||||
m65 -b ../mega65-core/bin/mega65r1.bit -k ../mega65-core/bin/KICKUP.M65 -R build/newc65 -4
|
||||
|
||||
testsimilarity: build/newrom_generic src/similarity
|
||||
build/similarity kernal build/newrom_generic
|
||||
build/similarity basic build/newrom_generic
|
||||
Reference in new issue
Block a user