PROJECT_NAME = flight
START_ADDR = 100
EMU = ~/Progs/Emu80qt_40456_linux_x86-64/run.sh

.PHONY: all
all : $(PROJECT_NAME).rkr $(PROJECT_NAME).rka

.PHONY: bin
bin : $(PROJECT_NAME).rkr.bin $(PROJECT_NAME).rka.bin

$(PROJECT_NAME).rk% : $(PROJECT_NAME).rk%.bin
	bin2rk -a $(START_ADDR)h -o $@ $<

$(PROJECT_NAME).rkr.bin : *.asm title.bin
	sjasmplus \
		--i8080\
		--raw=$@\
		--sym=$(PROJECT_NAME).sym\
		-DRK86=1\
		-Dstart_addr=$(START_ADDR)\
		$(PROJECT_NAME).asm

$(PROJECT_NAME).rka.bin : *.asm title.bin
	sjasmplus \
		--i8080\
		--raw=$@\
		--sym=$(PROJECT_NAME).sym\
		-DAPOGEE=1\
		-Dstart_addr=$(START_ADDR)\
		$(PROJECT_NAME).asm

title.bin : title.hex
	xxd -r -p $< >$@

.PHONY: run
run : $(PROJECT_NAME).rkr
	$(EMU) --platform rk86 $(PROJECT_NAME).rkr

.PHONY: runa
runa : $(PROJECT_NAME).rka
	$(EMU) --platform apogey $(PROJECT_NAME).rka

.PHONY: soundtest
soundtest : soundtest.rka
	$(EMU) --platform apogey soundtest.rka

.PHONY: dist
sources = $(shell sed -n "/include/{s:^.*include *:: ; s:\\\"::g; p}" ${PROJECT_NAME}.asm)
bins = $(shell sed -n "/incbin/{s:^.*incbin *::;s:\\\"::g;p}" $(sources))

dist : $(sources) $(bins) all 
	rm $(PROJECT_NAME).zip
	zip $(PROJECT_NAME).zip $(sources) $(bins) $(PROJECT_NAME).asm Makefile title.hex
	zip $(PROJECT_NAME).rka.zip $(PROJECT_NAME).rka 
	zip $(PROJECT_NAME).rkr.zip $(PROJECT_NAME).rkr
