mirror of
https://codeberg.org/hkzlab/TK2048.git
synced 2025-12-26 10:12:16 +11:00
98 lines
No EOL
4 KiB
Makefile
98 lines
No EOL
4 KiB
Makefile
VPATH = src
|
|
|
|
# Apple Commander tool JAR
|
|
ACMD=/d/Users/hkzla/software/applecommander/AppleCommander-ac-1.11.0.jar
|
|
JAVA=/c/Program\ Files/Microsoft/jdk-21.0.8.9-hotspot/bin/java.exe
|
|
|
|
# Program output
|
|
SW_NAME=tk2048
|
|
|
|
MASTER_PRG=master
|
|
INTRO_PRG=intro
|
|
DLOG_PRG=dlog
|
|
GAME_PRG=game
|
|
DEMO_PRG=demo
|
|
|
|
# Libraries
|
|
LIBS=clib-6502.a
|
|
|
|
MASTER_ASM_SRCS = tk2k_startup_master.s disk2.s master_func.s
|
|
MASTER_C_SRCS = master_main.c dos_floppy.c utility.c
|
|
|
|
INTRO_ASM_SRCS = tk2k_startup_module.s preserve_zero_pages.s
|
|
INTRO_C_SRCS = intro_main.c utility.c
|
|
|
|
DLOG_ASM_SRCS = tk2k_startup_module.s preserve_zero_pages.s sound.s
|
|
DLOG_C_SRCS = dlog_main.c input.c utility.c game_hgr_graphics.c hgr_line_data.c
|
|
|
|
GAME_ASM_SRCS = tk2k_startup_module.s preserve_zero_pages.s input_asm.s sound.s
|
|
GAME_C_SRCS = game_main.c input.c utility.c game_hgr_graphics.c hgr_line_data.c game_logic.c arrows_pic.c tiles.c hgr_graph_misc_data.c
|
|
|
|
DEMO_ASM_SRCS = tk2k_startup_module.s preserve_zero_pages.s input_asm.s sound.s
|
|
DEMO_C_SRCS = demo_main.c input.c utility.c game_hgr_graphics_demo.c hgr_line_data.c game_logic.c arrows_pic.c tiles.c hgr_graph_misc_data.c
|
|
|
|
# Object files
|
|
MASTER_OBJS = $(MASTER_ASM_SRCS:%.s=%.o) $(MASTER_C_SRCS:%.c=%.o)
|
|
INTRO_OBJS = $(INTRO_ASM_SRCS:%.s=%.o) $(INTRO_C_SRCS:%.c=%.o)
|
|
DLOG_OBJS = $(DLOG_ASM_SRCS:%.s=%.o) $(DLOG_C_SRCS:%.c=%.o)
|
|
GAME_OBJS = $(GAME_ASM_SRCS:%.s=%.o) $(GAME_C_SRCS:%.c=%.o)
|
|
DEMO_OBJS = $(DEMO_ASM_SRCS:%.s=%.o) $(DEMO_C_SRCS:%.c=%.o)
|
|
|
|
all: $(SW_NAME).woz
|
|
|
|
%.o: %.s
|
|
as6502 --core=6502 --list-file=$(@:%.o=obj/%.lst) -o obj/$@ $<
|
|
|
|
%.o: %.c
|
|
cc6502 --core=6502 -O2 --list-file=$(@:%.o=obj/%.lst) --char-is-unsigned --pedantic-errors -o obj/$@ $<
|
|
|
|
$(MASTER_PRG).hex: $(MASTER_OBJS)
|
|
(cd obj ; ln6502 -g ../linker-files/master.scm $^ -o ../out/$@ $(LIBS) -l --cross-reference --cstartup=tk2k --no-automatic-placement-rules --output-format intel-hex --rom-code)
|
|
|
|
$(INTRO_PRG).hex: $(INTRO_OBJS)
|
|
(cd obj ; ln6502 -g ../linker-files/module.scm $^ -o ../out/$@ $(LIBS) -l --cross-reference --cstartup=tk2k --no-automatic-placement-rules --output-format intel-hex --rom-code)
|
|
|
|
$(DLOG_PRG).hex: $(DLOG_OBJS)
|
|
(cd obj ; ln6502 -g ../linker-files/module.scm $^ -o ../out/$@ $(LIBS) -l --cross-reference --cstartup=tk2k --no-automatic-placement-rules --output-format intel-hex --rom-code)
|
|
|
|
$(GAME_PRG).hex: $(GAME_OBJS)
|
|
(cd obj ; ln6502 -g ../linker-files/module.scm $^ -o ../out/$@ $(LIBS) -l --cross-reference --cstartup=tk2k --no-automatic-placement-rules --output-format intel-hex --rom-code)
|
|
|
|
$(DEMO_PRG).hex: $(DEMO_OBJS)
|
|
(cd obj ; ln6502 -g ../linker-files/module.scm $^ -o ../out/$@ $(LIBS) -l --cross-reference --cstartup=tk2k --no-automatic-placement-rules --output-format intel-hex --rom-code)
|
|
|
|
$(MASTER_PRG).bin: $(MASTER_PRG).hex
|
|
(cd out ; objcopy -I ihex -O binary $(MASTER_PRG).hex $(MASTER_PRG).bin)
|
|
|
|
$(INTRO_PRG).bin: $(INTRO_PRG).hex
|
|
(cd out ; objcopy -I ihex -O binary $(INTRO_PRG).hex $(INTRO_PRG).bin)
|
|
|
|
$(DLOG_PRG).bin: $(DLOG_PRG).hex
|
|
(cd out ; objcopy -I ihex -O binary $(DLOG_PRG).hex $(DLOG_PRG).bin)
|
|
|
|
$(GAME_PRG).bin: $(GAME_PRG).hex
|
|
(cd out ; objcopy -I ihex -O binary $(GAME_PRG).hex $(GAME_PRG).bin)
|
|
|
|
$(DEMO_PRG).bin: $(DEMO_PRG).hex
|
|
(cd out ; objcopy -I ihex -O binary $(DEMO_PRG).hex $(DEMO_PRG).bin)
|
|
|
|
$(SW_NAME).dsk: $(MASTER_PRG).bin $(INTRO_PRG).bin $(DLOG_PRG).bin $(GAME_PRG).bin $(DEMO_PRG).bin
|
|
(cd out ; cp ../dsk/TK2048_AUTO_BRUN.dsk ./$(SW_NAME).dsk; \
|
|
cat $(MASTER_PRG).bin | $(JAVA) -jar $(ACMD) -p $(SW_NAME).dsk HELLO B 0x800; \
|
|
cat $(INTRO_PRG).bin | $(JAVA) -jar $(ACMD) -p $(SW_NAME).dsk INTRO b; \
|
|
cat $(DLOG_PRG).bin | $(JAVA) -jar $(ACMD) -p $(SW_NAME).dsk DLOG b; \
|
|
cat $(GAME_PRG).bin | $(JAVA) -jar $(ACMD) -p $(SW_NAME).dsk GAME b; \
|
|
cat $(DEMO_PRG).bin | $(JAVA) -jar $(ACMD) -p $(SW_NAME).dsk DEMO b; \
|
|
cat ../data/LOADS.bin | $(JAVA) -jar $(ACMD) -p $(SW_NAME).dsk LOADS b; \
|
|
cat ../data/STATE.bin | $(JAVA) -jar $(ACMD) -p $(SW_NAME).dsk STATE b;)
|
|
|
|
$(SW_NAME).woz: $(SW_NAME).dsk
|
|
(cd out ; dsk2woz ./$(SW_NAME).dsk ./$(SW_NAME).woz)
|
|
|
|
clean:
|
|
-rm obj/*.o
|
|
-rm obj/*.lst
|
|
-rm out/*.hex
|
|
-rm out/*.bin
|
|
-rm out/*.dsk
|
|
-rm out/*.woz
|