shithub: pokered

Download patch

ref: b852fe5b421fecd2b75c85bf5da926dd878434c0
parent: 8c5bf5746447ebb51fbf3aa2d688f410558e2a4c
author: yenatch <yenatch@gmail.com>
date: Wed Feb 17 10:33:01 EST 2016

Use rgbasm -D in the makefile.

diff: cannot open a/blue//null: file does not exist: 'a/blue//null' diff: cannot open a/red//null: file does not exist: 'a/red//null' diff: cannot open a/yellow//null: file does not exist: 'a/yellow//null'
--- a/Makefile
+++ b/Makefile
@@ -1,48 +1,37 @@
-# python 2.7
 PYTHON := python
-
-# md5sum -c is used to compare rom hashes. The options may vary across platforms.
 MD5 := md5sum -c --quiet
 
+2bpp     := $(PYTHON) extras/pokemontools/gfx.py 2bpp
+1bpp     := $(PYTHON) extras/pokemontools/gfx.py 1bpp
+pic      := $(PYTHON) extras/pokemontools/pic.py compress
+includes := $(PYTHON) extras/pokemontools/scan_includes.py
 
-# Clear the default suffixes.
+base_obj := \
+	audio.o \
+	main.o \
+	text.o \
+	wram.o
+
+red_obj := $(base_obj:.o=_red.o)
+blue_obj := $(base_obj:.o=_blue.o)
+all_obj := $(red_obj) $(blue_obj)
+
+$(foreach obj, $(base_obj:.o=), \
+	$(eval $(obj)_dep := $(shell $(includes) $(obj).asm)) \
+)
+
 .SUFFIXES:
 .SUFFIXES: .asm .o .gbc .png .2bpp .1bpp .pic
-
-# Secondary expansion is required for dependency variables in object rules.
 .SECONDEXPANSION:
-
 # Suppress annoying intermediate file deletion messages.
 .PRECIOUS: %.2bpp
-
 .PHONY: all clean red blue compare
 
-
-poketools := extras/pokemontools
-gfx       := $(PYTHON) $(poketools)/gfx.py
-2bpp      := $(gfx) 2bpp
-1bpp      := $(gfx) 1bpp
-pic       := $(PYTHON) $(poketools)/pic.py compress
-includes  := $(PYTHON) $(poketools)/scan_includes.py
-
-versions := red blue
-
-# Collect file dependencies for objects in red/ and blue/.
-$(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))) \
-)
-
-
 roms := pokered.gbc pokeblue.gbc
 
-all:    $(roms)
-red:    pokered.gbc
-blue:   pokeblue.gbc
+all: $(roms)
+red: pokered.gbc
+blue: pokeblue.gbc
 
 # For contributors to make sure a change didn't affect the contents of the rom.
 compare: red blue
@@ -52,29 +41,21 @@
 	rm -f $(roms) $(all_obj) $(roms:.gbc=.sym)
 	find . \( -iname '*.1bpp' -o -iname '*.2bpp' -o -iname '*.pic' \) -exec rm {} +
 
+%.asm: ;
+$(red_obj): %_red.o: %.asm $$(%_dep)
+	rgbasm -D "_RED" -h -o $@ $*.asm
+$(blue_obj): %_blue.o: %.asm $$(%_dep)
+	rgbasm -D "_BLUE" -h -o $@ $*.asm
 
-# Don't fix halts.
-asm_opt = -h
-
-# Make a symfile for debugging.
-link_opt = -n poke$*.sym
-
-# Header options for rgbfix.
 dmg_opt  = -jsv -k 01 -l 0x33 -m 0x13 -p 0 -r 03
 red_opt  = $(dmg_opt) -t "POKEMON RED"
 blue_opt = $(dmg_opt) -t "POKEMON BLUE"
 
+poke%.gbc: $$(%_obj)
+	rgblink -n poke$*.sym -o $@ $^
+	rgbfix $($*_opt) $@
 
 %.png:  ;
 %.2bpp: %.png  ; @$(2bpp) $<
 %.1bpp: %.png  ; @$(1bpp) $<
 %.pic:  %.2bpp ; @$(pic)  $<
-
-# Assemble source files into objects.
-$(all_obj): $$*.asm $$($$*_dep)
-	rgbasm $(asm_opt) -o $@ $*.asm
-
-# Link objects to produce a rom.
-poke%.gbc: $$(%_obj)
-	rgblink $(link_opt) -o $@ $^
-	rgbfix $($*_opt) $@
--- a/blue.asm
+++ /dev/null
@@ -1,2 +1,0 @@
-_BLUE EQU 1
-INCLUDE "charmap.asm"
--- a/blue/audio.asm
+++ /dev/null
@@ -1,2 +1,0 @@
-INCLUDE "blue.asm"
-INCLUDE "audio.asm"
--- a/blue/main.asm
+++ /dev/null
@@ -1,2 +1,0 @@
-INCLUDE "blue.asm"
-INCLUDE "main.asm"
--- a/blue/text.asm
+++ /dev/null
@@ -1,2 +1,0 @@
-INCLUDE "blue.asm"
-INCLUDE "text.asm"
--- a/blue/wram.asm
+++ /dev/null
@@ -1,2 +1,0 @@
-INCLUDE "blue.asm"
-INCLUDE "wram.asm"
--- a/constants.asm
+++ b/constants.asm
@@ -1,4 +1,5 @@
 INCLUDE "macros.asm"
+INCLUDE "charmap.asm"
 
 INCLUDE "hram.asm"
 INCLUDE "vram.asm"
--- a/red.asm
+++ /dev/null
@@ -1,2 +1,0 @@
-_RED EQU 1
-INCLUDE "charmap.asm"
--- a/red/audio.asm
+++ /dev/null
@@ -1,2 +1,0 @@
-INCLUDE "red.asm"
-INCLUDE "audio.asm"
--- a/red/main.asm
+++ /dev/null
@@ -1,2 +1,0 @@
-INCLUDE "red.asm"
-INCLUDE "main.asm"
--- a/red/text.asm
+++ /dev/null
@@ -1,2 +1,0 @@
-INCLUDE "red.asm"
-INCLUDE "text.asm"
--- a/red/wram.asm
+++ /dev/null
@@ -1,2 +1,0 @@
-INCLUDE "red.asm"
-INCLUDE "wram.asm"
--- a/text.asm
+++ b/text.asm
@@ -15,6 +15,7 @@
 MOVE_NAMES   EQU POKEDEX_TEXT + 1
 
 INCLUDE "macros.asm"
+INCLUDE "charmap.asm"
 INCLUDE "hram.asm"
 
 
--- a/yellow.asm
+++ /dev/null
@@ -1,4 +1,0 @@
-_YELLOW EQU 1
-_OPTION_BEACH_HOUSE EQU 1
-_OPTION_LOWCOST_SAFARI EQU 1
-INCLUDE "charmap.asm"
--- a/yellow/audio.asm
+++ /dev/null
@@ -1,2 +1,0 @@
-INCLUDE "yellow.asm"
-INCLUDE "audio.asm"
--- a/yellow/main.asm
+++ /dev/null
@@ -1,2 +1,0 @@
-INCLUDE "yellow.asm"
-INCLUDE "main.asm"
--- a/yellow/text.asm
+++ /dev/null
@@ -1,2 +1,0 @@
-INCLUDE "yellow.asm"
-INCLUDE "text.asm"
--- a/yellow/wram.asm
+++ /dev/null
@@ -1,2 +1,0 @@
-INCLUDE "yellow.asm"
-INCLUDE "wram.asm"