PYTHON ?= python # Graphics SPRITE_PNG := $(shell find png/sprite -type f -name '*.png') BG_PNG := $(shell find png/bg -type f -name '*.png') MAP_PNG := $(shell find png/map -type f -name '*.png' -not -name '*_coll.png') MAP_COLL := $(shell find png/map -type f -name '*_coll.png') # Graphics (generated) MAP_S := $(MAP_PNG:%.png=%.s) MAP_INC := $(MAP_PNG:%.png=%.inc) SPRITE_2BPP := $(SPRITE_PNG:%.png=%.2bpp) BG_DATA := $(BG_PNG:%.png=%.2bpp) $(BG_PNG:%.png=%.tilemap) # Code SFILES := $(shell find src -type f -name '*.s') OFILES := $(SFILES:%.s=%.o) $(MAP_S:%.s=%.o) .PHONY: clean is.gb is.gb.sym: $(OFILES) @echo "[LINK] is.gb" @rgblink -o $@ -n $@.sym $(OFILES) @rgbfix -v -p 0 $@ $(OFILES): $(MAP_INC) $(OFILES): $(SPRITE_2BPP) $(OFILES): $(BG_DATA) %.o: %.s @echo "[ASSEMBLE] $<" @rgbasm -i inc -o $@ $< png/map/%.s png/map/%.inc: png/map/%.png png/map/%_coll.png @echo "[MAP] $<" @$(PYTHON) scripts/generate_map.py $< png/sprite/%.2bpp: png/sprite/%.png @echo "[SPRITE] $<" @rgbgfx -o $@ $< png/bg/%.2bpp png/bg/%.tilemap: png/bg/%.png @echo "[BG] $<" @rgbgfx -T -u -o "$(shell dirname $<)/$(shell basename --suffix=.png $<).2bpp" $< clean: @rm -f is.gb is.gb.sym $(OFILES) $(MAP_S) $(MAP_INC) $(SPRITE_2BPP) $(BG_DATA) @echo "All build files removed"