diff options
| author | pikalaxalt <PikalaxALT@gmail.com> | 2016-06-08 00:35:33 -0400 |
|---|---|---|
| committer | pikalaxalt <PikalaxALT@gmail.com> | 2016-06-08 00:35:33 -0400 |
| commit | 5da4ad3d5c62292f062d4f7b4382e6c09b7faaea (patch) | |
| tree | 97319f45578efa0901fb1986678c16bbdeda6bcc /Makefile | |
| parent | Is this an OAM printer? (diff) | |
| parent | Clean up main.asm (diff) | |
| download | pokeyellow-5da4ad3d5c62292f062d4f7b4382e6c09b7faaea.tar.gz pokeyellow-5da4ad3d5c62292f062d4f7b4382e6c09b7faaea.tar.xz pokeyellow-5da4ad3d5c62292f062d4f7b4382e6c09b7faaea.zip | |
Merge branch 'master' of github.com:pret/pokeyellow
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 99 |
1 files changed, 35 insertions, 64 deletions
@@ -1,85 +1,56 @@ -# Build Yellow. -roms := pokeyellow.gbc - - -.PHONY: all clean yellow compare - -all: $(roms) -yellow: pokeyellow.gbc - -versions := yellow - - -# Header options for rgbfix. -cgb_opt = -cjsv -k 01 -l 0x33 -m 0x1b -p 0 -r 03 - -yellow_opt = $(cgb_opt) -t "POKEMON YELLOW" - - -# If your default python is 3, you may want to change this to python27. PYTHON := python - -# md5sum -c is used to compare rom hashes. The options may vary across platforms. MD5 := md5sum -c --quiet +2bpp := $(PYTHON) gfx.py 2bpp +1bpp := $(PYTHON) gfx.py 1bpp +pcm := $(PYTHON) extras/pokemontools/pcm.py pcm +pic := $(PYTHON) extras/pokemontools/pic.py compress +includes := $(PYTHON) extras/pokemontools/scan_includes.py -# The compare target is a shortcut to check that the build matches the original roms exactly. -# This is for contributors to make sure a change didn't affect the contents of the rom. -# More thorough comparison can be made by diffing the output of hexdump -C against both roms. -compare: yellow - @$(MD5) roms.md5 +objs := \ + audio.o \ + main.o \ + text.o \ + wram.o +$(foreach obj, $(objs:.o=), \ + $(eval $(obj)_dep := $(shell $(includes) $(obj).asm)) \ +) -# Clear the default suffixes. .SUFFIXES: .SUFFIXES: .asm .o .gbc .png .2bpp .1bpp .pic .wav .pcm - -# Secondary expansion is required for dependency variables in object rules. .SECONDEXPANSION: - # Suppress annoying intermediate file deletion messages. .PRECIOUS: %.2bpp +.PHONY: all clean yellow compare -# Filepath shortcuts to avoid overly long recipes. -poketools := extras/pokemontools -gfx := $(PYTHON) gfx.py -pcm := $(PYTHON) $(poketools)/pcm.py -pic := $(PYTHON) $(poketools)/pic.py -includes := $(PYTHON) $(poketools)/scan_includes.py +rom := pokeyellow.gbc +all: $(rom) +yellow: $(rom) -# Collect file dependencies for objects in yellow/. -$(foreach ver, $(versions), \ - $(eval $(ver)_asm := $(shell find $(ver) -iname '*.asm')) \ - $(eval $(ver)_obj := $($(ver)_asm:.asm=.o)) \ - $(eval all_obj += $($(ver)_obj)) \ -) -$(foreach obj, $(all_obj), \ - $(eval $(obj:.o=)_dep := $(shell $(includes) $(obj:.o=.asm))) \ -) - - -%.png: ; -%.2bpp: %.png ; @$(gfx) 2bpp $< -%.1bpp: %.png ; @$(gfx) 1bpp $< -%.pic: %.2bpp ; @$(pic) compress $< +# For contributors to make sure a change didn't affect the contents of the rom. +compare: yellow + @$(MD5) roms.md5 -%.wav: ; -%.pcm: %.wav $(poketools)/pcm.py ; @$(pcm) pcm $< +clean: + rm -f $(rom) $(objs) $(rom:.gbc=.sym) + find . \( -iname '*.1bpp' -o -iname '*.2bpp' -o -iname '*.pic' -o -iname '*.pcm' \) -exec rm {} + -# Assemble source files into objects. -$(all_obj): $$*.asm $$($$*_dep) +%.asm: ; +$(objs): %.o: %.asm $$(%_dep) rgbasm -h -o $@ $*.asm -# Make a symfile for debugging. -link_opt = -n poke$*.sym +opts = -cjsv -k 01 -l 0x33 -m 0x1b -p 0 -r 03 -t "POKEMON YELLOW" -# Link objects together to build a rom. -poke%.gbc: $$(%_obj) - rgblink $(link_opt) -o $@ $^ - rgbfix $($*_opt) $@ +$(rom): $(objs) + rgblink -n $*.sym -o $@ $^ + rgbfix $(opts) $@ +%.png: ; +%.2bpp: %.png ; @$(2bpp) $< +%.1bpp: %.png ; @$(1bpp) $< +%.pic: %.2bpp ; @$(pic) $< -clean: - rm -f $(roms) $(all_obj) poke*.sym - find . \( -iname '*.1bpp' -o -iname '*.2bpp' -o -iname '*.pic' -o -iname '*.pcm' \) -exec rm {} + +%.wav: ; +%.pcm: %.wav ; @$(pcm) $< |
