dos33fsprogs/games/duke/Makefile
2024-03-10 01:26:40 -05:00

98 lines
2.5 KiB
Makefile

include ../../Makefile.inc
DOS33 = ../../utils/dos33fs-utils/dos33
DOS33_RAW = ../../utils/dos33fs-utils/dos33_raw
B2D = ../../utils/bmp2dhr/b2d
PNG2GR = ../../utils/gr-utils/png2gr
LZSA = ~/research/lzsa/lzsa/lzsa
TOKENIZE = ../../utils/asoft_basic-utils/tokenize_asoft
EMPTY_DISK = ../../empty_disk/empty.dsk
all: duke.dsk
duke.dsk: HELLO LOADER DUKE_TITLE DUKE_LEVEL1 DUKE_LEVEL2
cp $(EMPTY_DISK) duke.dsk
$(DOS33) -y duke.dsk SAVE A HELLO
$(DOS33) -y duke.dsk BSAVE -a 0x1000 LOADER
$(DOS33) -y duke.dsk BSAVE -a 0x4000 DUKE_TITLE
$(DOS33) -y duke.dsk BSAVE -a 0x2000 DUKE_LEVEL1
$(DOS33) -y duke.dsk BSAVE -a 0x2000 DUKE_LEVEL2
###
HELLO: hello.bas
$(TOKENIZE) < hello.bas > HELLO
####
LOADER: loader.o
ld65 -o LOADER loader.o -C ../../linker_scripts/apple2_1000.inc
loader.o: loader.s
ca65 -o loader.o loader.s -l loader.lst
####
DUKE_TITLE: duke_title.o
ld65 -o DUKE_TITLE duke_title.o -C ../../linker_scripts/apple2_4000.inc
duke_title.o: duke_title.s zp.inc hardware.inc init_vars.s
ca65 -o duke_title.o duke_title.s -l duke_title.lst
####
DUKE_LEVEL1: duke_level1.o
ld65 -o DUKE_LEVEL1 duke_level1.o -C ../../linker_scripts/apple2_2000.inc
duke_level1.o: duke_level1.s zp.inc hardware.inc \
print_help.s gr_fast_clear.s quit_yn.s text_drawbox.s level_end.s \
enemies_level1.s actions_level1.s item_level1.s \
graphics/duke_graphics.inc sprites/duke_sprites.inc \
maps/level1_map.lzsa \
status_bar.s draw_duke.s move_duke.s gr_putsprite_crop.s \
draw_tilemap.s \
sound_effects.s speaker_tone.s \
keyboard.s handle_laser.s
ca65 -o duke_level1.o duke_level1.s -l duke_level1.lst
####
DUKE_LEVEL2: duke_level2.o
ld65 -o DUKE_LEVEL2 duke_level2.o -C ../../linker_scripts/apple2_2000.inc
duke_level2.o: duke_level2.s zp.inc hardware.inc \
print_help.s gr_fast_clear.s quit_yn.s text_drawbox.s level_end.s \
enemies_level2.s actions_level2.s item_level2.s \
graphics/duke_graphics.inc sprites/duke_sprites.inc \
maps/level2_map.lzsa \
status_bar.s draw_duke.s move_duke.s gr_putsprite_crop.s \
draw_tilemap.s \
sound_effects.s speaker_tone.s \
keyboard.s handle_laser.s
ca65 -o duke_level2.o duke_level2.s -l duke_level2.lst
####
sprites/duke_sprites.inc:
cd sprites && make
graphics/duke_graphics.inc:
cd graphics && make
title/new_title.lzsa:
cd title && make
maps/level1_map.lzsa:
cd maps && make
####
clean:
rm -f *~ *.o *.lst HELLO DUKE
cd graphics && make clean
cd maps && make clean
cd title && make clean
cd sprites && make clean