mirror of
https://github.com/pret/pokegold-spaceworld.git
synced 2026-08-08 19:25:24 -05:00
96 lines
2.7 KiB
Makefile
96 lines
2.7 KiB
Makefile
BUILD := build
|
|
|
|
MD5 := md5sum -c
|
|
PYTHON := python
|
|
|
|
RGBASM := rgbasm
|
|
RGBGFX := rgbgfx
|
|
RGBLINK := rgblink
|
|
RGBFIX := rgbfix
|
|
|
|
RGBASMFLAGS := -h -E -i $(BUILD)/
|
|
tools/gfx :=
|
|
|
|
ROMS := pokegold-spaceworld.gb
|
|
BASEROM := baserom.gb
|
|
DIRS := home engine data audio
|
|
OBJS := $(addprefix $(BUILD)/, gfx.o sram.o wram.o hram.o shim.o)
|
|
|
|
rwildcard = $(foreach d, $(wildcard $1*), $(filter $(subst *, %, $2), $d) $(call rwildcard, $d/, $2))
|
|
OBJS += $(patsubst %.asm, $(BUILD)/%.o, $(call rwildcard, $(DIRS), *.asm))
|
|
|
|
GFX := $(patsubst %.png, $(BUILD)/%.2bpp, \
|
|
$(patsubst %.1bpp.png, $(BUILD)/%.1bpp, \
|
|
$(patsubst gfx/pokemon/%/front.png, $(BUILD)/gfx/pokemon/%/front.pic, \
|
|
$(patsubst gfx/pokemon/%/back.png, $(BUILD)/gfx/pokemon/%/back.pic, \
|
|
$(call rwildcard, gfx, *.png)))))
|
|
|
|
.SECONDEXPANSION:
|
|
|
|
.PHONY: all
|
|
all: $(ROMS) compare
|
|
|
|
.PHONY: compare
|
|
compare: $(ROMS)
|
|
$(MD5) roms.md5
|
|
|
|
.PHONY: tools
|
|
tools tools/pkmncompress tools/gfx:
|
|
$(MAKE) -C tools/
|
|
|
|
# Remove files generated by the build process.
|
|
.PHONY: clean
|
|
clean:
|
|
rm -rf $(ROMS) $(BUILD) $(ROMS:.gb=.sym) $(ROMS:.gb=.map)
|
|
make -C tools clean
|
|
|
|
# Remove files except for graphics.
|
|
.PHONY: mostlyclean
|
|
mostlyclean:
|
|
rm -rf $(ROMS) $(OBJS) $(ROMS:.gb=.sym) $(ROMS:.gb=.map)
|
|
|
|
$(ROMS): $(OBJS)
|
|
$(RGBLINK) -d -n $(@:.gb=.sym) -m $(@:.gb=.map) -O $(BASEROM) -o $@ $^
|
|
$(RGBFIX) -f lh -k 01 -l 0x33 -m 0x03 -p 0 -r 3 -t "POKEMON2GOLD" $@
|
|
|
|
$(BUILD)/shim.asm: tools/make_shim.py shim.sym | $$(dir $$@)
|
|
$(PYTHON) tools/make_shim.py -w -- $(filter-out $<, $^) > $@
|
|
|
|
$(BUILD)/gfx.o: | $(GFX)
|
|
$(BUILD)/%.o: $(BUILD)/%.asm | $$(dir $$@)
|
|
$(RGBASM) $(RGBASMFLAGS) -M $(@:.o=.d) $(OUTPUT_OPTION) $<
|
|
$(BUILD)/%.o: %.asm | $$(dir $$@)
|
|
$(RGBASM) $(RGBASMFLAGS) -M $(@:.o=.d) $(OUTPUT_OPTION) $<
|
|
|
|
$(BUILD)/gfx/sgb/sgb_border_alt.2bpp: tools/gfx += --trim-whitespace
|
|
$(BUILD)/gfx/sgb/sgb_border.2bpp: tools/gfx += --trim-whitespace
|
|
$(BUILD)/gfx/title/title.2bpp: tools/gfx += --trim-whitespace
|
|
$(BUILD)/gfx/trainer_card/leaders.2bpp: tools/gfx += --trim-whitespace
|
|
$(BUILD)/gfx/minigames/slots.2bpp: tools/gfx += --trim-whitespace
|
|
$(BUILD)/gfx/minigames/poker.2bpp: tools/gfx += --trim-whitespace
|
|
$(BUILD)/gfx/intro/purin_pikachu.2bpp: tools/gfx += --trim-whitespace
|
|
|
|
.PRECIOUS: $(BUILD)/%.pic
|
|
$(BUILD)/%.pic: $(BUILD)/%.2bpp tools/pkmncompress | $$(dir $$@)
|
|
tools/pkmncompress $< $@
|
|
|
|
.PRECIOUS: $(BUILD)/%.2bpp
|
|
$(BUILD)/%.2bpp: %.png tools/gfx | $$(dir $$@)
|
|
$(RGBGFX) $(OUTPUT_OPTION) $<
|
|
tools/gfx $(tools/gfx) $(OUTPUT_OPTION) $@
|
|
|
|
.PRECIOUS: $(BUILD)/%.1bpp
|
|
$(BUILD)/%.1bpp: %.1bpp.png tools/gfx | $$(dir $$@)
|
|
$(RGBGFX) -d1 $(OUTPUT_OPTION) $<
|
|
tools/gfx $(tools/gfx) -d1 $(OUTPUT_OPTION) $@
|
|
|
|
.PRECIOUS: $(BUILD)/%.tilemap
|
|
$(BUILD)/%.tilemap: %.png | $$(dir $$@)
|
|
$(RGBGFX) -t $@ $<
|
|
|
|
.PRECIOUS: %/
|
|
%/:
|
|
mkdir -p $@
|
|
|
|
-include $(call rwildcard, $(BUILD)/, *.d)
|