.PHONY: all compare clean text .SUFFIXES: .SUFFIXES: .asm .o .gbc .png .SECONDEXPANSION: ROMS := pokegold-spaceworld.gb BASEROM := baserom.gb OBJS := home.o main.o wram.o hram.o # Link objects together to build a rom. all: $(ROMS) compare tools: $(MAKE) -C tools/ define DEP $1: $2 $$(shell tools/scan_includes $2) rgbasm -E -o $$@ $$< endef ifeq (,$(filter clean tools,$(MAKECMDGOALS))) $(info $(shell $(MAKE) -C tools)) $(foreach obj, $(OBJS), $(eval $(call DEP,$(obj),$(obj:.o=.asm)))) endif $(ROMS): $(OBJS) rgblink -d -n $(ROMS:.gb=.sym) -m $(ROMS:.gb=.map) -O $(BASEROM) -o $@ $^ rgbfix -f -v -k 01 -l 0x33 -m 0x03 -p 0 -r 3 -t "POKEMON2GOLD" $@ compare: $(ROMS) $(BASEROM) cmp $^ # Remove files generated by the build process. clean: rm -rf $(ROMS) $(OBJS) $(ROMS:.gbc=.sym) build/* find . \( -iname '*.1bpp' -o -iname '*.2bpp' -o -iname '*.pcm' \) -exec rm {} + %.2bpp: %.png rgbgfx -o $@ $< %.1bpp: %.png rgbgfx -d1 -o $@ $< %.tilemap: %.png rgbgfx -t $@ $< %.gbcpal: %.png rgbgfx -p $@ $<