diff options
author | yenatch <yenatch@gmail.com> | 2014-05-29 18:52:37 -0700 |
---|---|---|
committer | yenatch <yenatch@gmail.com> | 2014-05-30 01:16:02 -0700 |
commit | 0e12eafe6635da8e80ed33f7460e09c567d0e31f (patch) | |
tree | 0d0258f6b8ba50e87cd38d7f5b6bce83312dce20 /Makefile | |
parent | da0a72cdbf45fa624b2d1151afe94a98d7da2ae0 (diff) |
Dust off the makefile and prepare to build Yellow.
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 109 |
1 files changed, 48 insertions, 61 deletions
@@ -1,94 +1,81 @@ PYTHON := python +MD5 := md5sum -c --quiet .SUFFIXES: .SUFFIXES: .asm .tx .o .gbc -.PHONY: all clean red blue compare pngs +.PHONY: all clean red blue yellow compare .PRECIOUS: %.2bpp .SECONDEXPANSION: -POKEMONTOOLS := extras/pokemontools -GFX := $(PYTHON) $(POKEMONTOOLS)/gfx.py -PIC := $(PYTHON) $(POKEMONTOOLS)/pic.py -INCLUDES := $(PYTHON) $(POKEMONTOOLS)/scan_includes.py -PREPROCESS := $(PYTHON) prequeue.py +poketools := extras/pokemontools +gfx := $(PYTHON) $(poketools)/gfx.py +pic := $(PYTHON) $(poketools)/pic.py +includes := $(PYTHON) $(poketools)/scan_includes.py +pre := $(PYTHON) prequeue.py -TEXTQUEUE := -RED_OBJS := \ -pokered.o \ -audio_red.o \ -wram.o \ -text.o +versions := red blue yellow -BLUE_OBJS := \ -pokeblue.o \ -audio_blue.o \ -wram.o \ -text.o +$(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))) \ +) -OBJS := $(RED_OBJS) $(BLUE_OBJS) -OBJS := $(sort $(OBJS)) -ROMS := pokered.gbc pokeblue.gbc +roms := pokered.gbc pokeblue.gbc -# object dependencies -$(shell $(foreach obj, $(OBJS), $(eval $(obj:.o=)_DEPENDENCIES := $(shell $(INCLUDES) $(obj:.o=.asm))))) +all: $(roms) +red: pokered.gbc +blue: pokeblue.gbc +yellow: pokeyellow.gbc -all: $(ROMS) -red: pokered.gbc -blue: pokeblue.gbc compare: - @md5sum -c --quiet roms.md5 + @$(MD5) roms.md5 clean: - rm -f $(ROMS) - rm -f $(OBJS) - find . -iname '*.tx' -exec rm {} + - find gfx -iname '*.[12]bpp' -exec rm {} + - find pic -iname '*.pic' -exec rm {} + - find pic -iname '*.2bpp' -exec rm {} + - rm -f redrle - - -redrle: extras/redtools/redrle.c - ${CC} -o $@ $< + rm -f $(roms) $(all_obj) + find . \( -iname '*.tx' -o -iname '*.1bpp' -o -iname '*.2bpp' -o -iname '*.pic' \) -exec rm {} + %.asm: ; -.asm.tx: - $(eval TEXTQUEUE += $<) +%.tx: %.asm + $(eval txq += $<) @rm -f $@ -$(OBJS): $$*.tx $$(patsubst %.asm, %.tx, $$($$*_DEPENDENCIES)) - @$(PREPROCESS) $(TEXTQUEUE) - @$(eval TEXTQUEUE :=) - @$(GFX) 2bpp $(2BPPQUEUE) - @$(eval 2BPPQUEUE :=) - @$(GFX) 1bpp $(1BPPQUEUE) - @$(eval 1BPPQUEUE :=) - @$(PIC) compress $(PICQUEUE) - @$(eval PICQUEUE :=) +$(all_obj): $$*.tx $$(patsubst %.asm, %.tx, $$($$*_dep)) + @$(pre) $(txq); $(eval txq :=) + @$(gfx) 2bpp $(2bppq); $(eval 2bppq :=) + @$(gfx) 1bpp $(1bppq); $(eval 1bppq :=) + @$(pic) compress $(picq); $(eval picq :=) rgbasm -o $@ $*.tx -OPTIONS = -jsv -k 01 -l 0x33 -m 0x13 -p 0 -r 03 +link := rgblink -n $*.sym -m $*.map +dmg_opt := -jsv -k 01 -l 0x33 -m 0x13 -p 0 -r 03 +cgb_opt := -cjsv -k 01 -l 0x33 -m 0x1b -p 0 -r 03 + +pokered.gbc: $(red_obj) + $(link) -o $@ $^ + rgbfix $(dmg_opt) -t "POKEMON RED" $@ -pokered.gbc: $(RED_OBJS) - rgblink -n $*.sym -m $*.map -o $@ $^ - rgbfix $(OPTIONS) -t "POKEMON RED" $@ +pokeblue.gbc: $(blue_obj) + $(link) -o $@ $^ + rgbfix $(dmg_opt) -t "POKEMON BLUE" $@ -pokeblue.gbc: $(BLUE_OBJS) - rgblink -n $*.sym -m $*.map -o $@ $^ - rgbfix $(OPTIONS) -t "POKEMON BLUE" $@ +pokeyellow.gbc: $(yellow_obj) + $(link) -o $@ $^ + rgbfix $(cgb_opt) -t "POKEMON YELLOW" $@ %.2bpp: %.png - $(eval 2BPPQUEUE += $<) + $(eval 2bppq += $<) @rm -f $@ %.1bpp: %.png - $(eval 1BPPQUEUE += $<) + $(eval 1bppq += $<) @rm -f $@ -%.pic: %.2bpp - $(eval PICQUEUE += $<) +%.pic: %.2bpp + $(eval picq += $<) @rm -f $@ - - |