From 5ce142208ec376c237753473b59ec0d35272e8fd Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 18 Jun 2016 21:30:21 -0400 Subject: Build Sapphire. Note: Sapphire doesn't match yet. --- Makefile | 74 ++++++++++++++++++++++++++++++++++++++---------------------- generated.mk | 2 +- rom.sha1 | 1 + 3 files changed, 49 insertions(+), 28 deletions(-) diff --git a/Makefile b/Makefile index 51aedcc13..de2c12e8a 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,8 @@ CPP := $(DEVKITARM)/bin/arm-none-eabi-cpp CPPFLAGS := -I tools/agbcc/include -iquote include -nostdinc -undef LD := $(DEVKITARM)/bin/arm-none-eabi-ld -LDFLAGS := -T ld_script.txt -T iwram_syms.txt -T ewram_syms.txt +pokeruby_LDFLAGS := -T ld_script_ruby.txt -T iwram_syms.txt -T ewram_syms.txt +pokesapphire_LDFLAGS := -T ld_script_sapphire.txt -T iwram_syms.txt -T ewram_syms.txt OBJCOPY := $(DEVKITARM)/bin/arm-none-eabi-objcopy @@ -30,7 +31,7 @@ PREPROC := tools/preproc/preproc .PRECIOUS: %.1bpp %.4bpp %.8bpp %.gbapal %.lz -.PHONY: all rom clean compare generated +.PHONY: all clean compare ruby sapphire C_SRCS := $(wildcard src/*.c) C_OBJS := $(C_SRCS:%.c=%.o) @@ -41,22 +42,27 @@ ASM_OBJS := asm/crt0.o asm/rom3.o asm/rom4.o asm/rom_8074BAC.o asm/rom5.o \ DATA_ASM_OBJS := data/data1.o data/data2.o data/graphics.o data/sound_data.o OBJS := $(C_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) +pokeruby_OBJS := $(OBJS:.o=_ruby.o) +pokesapphire_OBJS := $(OBJS:.o=_sapphire.o) -ROM := pokeruby.gba +ROM := pokeruby.gba pokesapphire.gba ELF := $(ROM:.gba=.elf) -all: - $(MAKE) generated - $(MAKE) rom - -rom: $(ROM) +all: ruby + @: +both: ruby sapphire + @: +ruby: pokeruby.gba + @: +sapphire: pokesapphire.gba + @: # For contributors to make sure a change didn't affect the contents of the ROM. -compare: all +compare: both @$(SHA1) rom.sha1 clean: - rm -f $(ROM) $(ELF) $(OBJS) $(C_SRCS:%.c=%.i) + rm -f $(ROM) $(ELF) $(OBJS) $(pokeruby_OBJS) $(pokesapphire_OBJS) $(C_SRCS:%.c=%.i) find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' \) -exec rm {} + include castform.mk @@ -73,30 +79,44 @@ include menu.mk %.gbapal: %.pal ; $(GFX) $< $@ %.lz: % ; $(GFX) $< $@ -src/siirtc.o: CFLAGS := -mthumb-interwork +src/siirtc_ruby.o src/siirtc_sapphire.o: CFLAGS := -mthumb-interwork -src/agb_flash.o: CFLAGS := -O -mthumb-interwork -src/agb_flash_1m.o: CFLAGS := -O -mthumb-interwork -src/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork +src/agb_flash_ruby.o src/agb_flag_sapphire.o: CFLAGS := -O -mthumb-interwork +src/agb_flash_1m_ruby.o src/agb_flash_1m_sapphire.o: CFLAGS := -O -mthumb-interwork +src/agb_flash_mx_ruby.o src/agb_flash_mx_sapphire.o: CFLAGS := -O -mthumb-interwork -src/m4a_2.o: CC1 := tools/agbcc/bin/old_agbcc -src/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc +src/m4a_2_ruby.o src/m4a_2_sapphire.o: CC1 := tools/agbcc/bin/old_agbcc +src/m4a_4_ruby.o src/m4a_2_sapphire.o: CC1 := tools/agbcc/bin/old_agbcc -$(C_OBJS): %.o : %.c - @$(CPP) $(CPPFLAGS) $< -o $*.i +src/%_ruby.o: VERSION := -D RUBY +src/%_sapphire.o: VERSION := -D SAPPHIRE +src/text_ruby.o src/text_sapphire.o: $(GENFONTS) src/text.c +src/%_ruby.o src/%_sapphire.o src/%.o: src/%.c + @$(CPP) $(CPPFLAGS) $(VERSION) $< -o $*.i @$(PREPROC) $*.i charmap.txt | $(CC1) $(CFLAGS) -o $*.s @echo -e ".text\n\t.align\t2, 0\n" >> $*.s $(AS) $(ASFLAGS) -o $@ $*.s -%.o : dep = $(shell $(SCANINC) $*.s) +asm/%_ruby.o data/%_ruby.o: VERSION := --defsym RUBY=1 +asm/%_sapphire.o data/%_sapphire.o: VERSION := --defsym SAPPHIRE=1 + +asm/%.o: dep = $(shell $(SCANINC) asm/$*.s) +asm/%_ruby.o asm/%_sapphire.o asm/%.o: asm/%.s $$(dep) + $(AS) $(ASFLAGS) $(VERSION) -o $@ $< + +data/%.o: dep = $(shell $(SCANINC) data/$*.s) +data/%_ruby.o data/%_sapphire.o data/%.o: data/%.s $$(dep) + $(PREPROC) $< charmap.txt | $(AS) $(ASFLAGS) $(VERSION) -o $@ -$(ASM_OBJS): %.o: %.s $$(dep) - $(AS) $(ASFLAGS) -o $@ $< +ld_script_ruby.txt: ld_script.txt + sed "s/\(\(src|asm|data\)\/.*\)\.o/\1_ruby.o/g" ld_script.txt > ld_script_ruby.txt +ld_script_sapphire.txt: ld_script.txt + sed "s/\(\(src|asm|data\)\/.*\)\.o/\1_sapphire.o/g" ld_script.txt > ld_script_sapphire.txt -$(DATA_ASM_OBJS): %.o: %.s $$(dep) - $(PREPROC) $< charmap.txt | $(AS) $(ASFLAGS) -o $@ +pokeruby.elf: ld_script_ruby.txt $(pokeruby_OBJS) + $(LD) $(pokeruby_LDFLAGS) -o $@ $(pokeruby_OBJS) $(LIBGCC) +pokesapphire.elf: ld_script_sapphire.txt $(pokesapphire_OBJS) + $(LD) $(pokesapphire_LDFLAGS) -o $@ $(pokesapphire_OBJS) $(LIBGCC) -# Link objects to produce the ROM. -$(ROM): $(OBJS) - $(LD) $(LDFLAGS) -o $(ELF) $(OBJS) $(LIBGCC) - $(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0x9000000 $(ELF) $(ROM) +%.gba: %.elf + $(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0x9000000 $< $@ diff --git a/generated.mk b/generated.mk index 70d50e8f8..218830b9c 100644 --- a/generated.mk +++ b/generated.mk @@ -12,7 +12,7 @@ include/fonts/default_palette.h LINK_HEADERS := include/link/digit_tiles.h include/link/digit_palette.h -generated: $(GEN_FONT_HEADERS) $(LINK_HEADERS) +GENFONTS := $(GEN_FONT_HEADERS) $(LINK_HEADERS) include/fonts/font0_lat_glyphs.h: graphics/fonts/font0_lat.1bpp $(BIN2C) $< sFont0LatinGlyphs >$@ -static -col 8 -pad 4 diff --git a/rom.sha1 b/rom.sha1 index 61b6a3325..137f7914a 100644 --- a/rom.sha1 +++ b/rom.sha1 @@ -1 +1,2 @@ f28b6ffc97847e94a6c21a63cacf633ee5c8df1e pokeruby.gba +3ccbbd45f8553c36463f13b938e833f652b793e4 pokesapphire.gba -- cgit v1.2.3 From 17a36933e147d058a49cae7b5151cb0154bcd4f9 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 18 Jun 2016 22:02:14 -0400 Subject: Fix ld_script preprocessing. --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index de2c12e8a..04a5da9b2 100644 --- a/Makefile +++ b/Makefile @@ -109,9 +109,9 @@ data/%_ruby.o data/%_sapphire.o data/%.o: data/%.s $$(dep) $(PREPROC) $< charmap.txt | $(AS) $(ASFLAGS) $(VERSION) -o $@ ld_script_ruby.txt: ld_script.txt - sed "s/\(\(src|asm|data\)\/.*\)\.o/\1_ruby.o/g" ld_script.txt > ld_script_ruby.txt + @sed "s/\(\(src\|asm\|data\)\/.*\)\.o/\1_ruby.o/g" $< > $@ ld_script_sapphire.txt: ld_script.txt - sed "s/\(\(src|asm|data\)\/.*\)\.o/\1_sapphire.o/g" ld_script.txt > ld_script_sapphire.txt + @sed "s/\(\(src\|asm\|data\)\/.*\)\.o/\1_sapphire.o/g" $< > $@ pokeruby.elf: ld_script_ruby.txt $(pokeruby_OBJS) $(LD) $(pokeruby_LDFLAGS) -o $@ $(pokeruby_OBJS) $(LIBGCC) -- cgit v1.2.3 From fec4708e80a532238cbc506309673567e95c5933 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 18 Jun 2016 22:06:21 -0400 Subject: Fix a typo in the makefile. --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 04a5da9b2..202ba8b25 100644 --- a/Makefile +++ b/Makefile @@ -81,7 +81,7 @@ include menu.mk src/siirtc_ruby.o src/siirtc_sapphire.o: CFLAGS := -mthumb-interwork -src/agb_flash_ruby.o src/agb_flag_sapphire.o: CFLAGS := -O -mthumb-interwork +src/agb_flash_ruby.o src/agb_flash_sapphire.o: CFLAGS := -O -mthumb-interwork src/agb_flash_1m_ruby.o src/agb_flash_1m_sapphire.o: CFLAGS := -O -mthumb-interwork src/agb_flash_mx_ruby.o src/agb_flash_mx_sapphire.o: CFLAGS := -O -mthumb-interwork -- cgit v1.2.3 From 717026d4399bd24008d7b4432c74b97bba3d2418 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 18 Jun 2016 23:58:40 -0400 Subject: src/link.c also depends on LINK_HEADERS. --- Makefile | 3 ++- generated.mk | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 202ba8b25..ac1e22af6 100644 --- a/Makefile +++ b/Makefile @@ -90,7 +90,8 @@ src/m4a_4_ruby.o src/m4a_2_sapphire.o: CC1 := tools/agbcc/bin/old_agbcc src/%_ruby.o: VERSION := -D RUBY src/%_sapphire.o: VERSION := -D SAPPHIRE -src/text_ruby.o src/text_sapphire.o: $(GENFONTS) src/text.c +src/text_ruby.o src/text_sapphire.o: src/text.c $(GEN_FONTS) +src/link_ruby.o src/link_sapphire.o: src/link.c $(GEN_LINK_HEADERS) src/%_ruby.o src/%_sapphire.o src/%.o: src/%.c @$(CPP) $(CPPFLAGS) $(VERSION) $< -o $*.i @$(PREPROC) $*.i charmap.txt | $(CC1) $(CFLAGS) -o $*.s diff --git a/generated.mk b/generated.mk index 218830b9c..08c4aca24 100644 --- a/generated.mk +++ b/generated.mk @@ -10,9 +10,9 @@ include/fonts/down_arrow_tiles.h \ include/fonts/unknown_palette_81E6692.h \ include/fonts/default_palette.h -LINK_HEADERS := include/link/digit_tiles.h include/link/digit_palette.h +GEN_LINK_HEADERS := include/link/digit_tiles.h include/link/digit_palette.h -GENFONTS := $(GEN_FONT_HEADERS) $(LINK_HEADERS) +GEN_FONTS := $(GEN_FONT_HEADERS) $(GEN_LINK_HEADERS) include/fonts/font0_lat_glyphs.h: graphics/fonts/font0_lat.1bpp $(BIN2C) $< sFont0LatinGlyphs >$@ -static -col 8 -pad 4 -- cgit v1.2.3 From 50cc6d4a76adf0bc361f6fd4fc570a990ae20c50 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sun, 19 Jun 2016 00:01:06 -0400 Subject: Get rid of GEN_FONTS. --- Makefile | 2 +- generated.mk | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/Makefile b/Makefile index ac1e22af6..998905ea9 100644 --- a/Makefile +++ b/Makefile @@ -90,7 +90,7 @@ src/m4a_4_ruby.o src/m4a_2_sapphire.o: CC1 := tools/agbcc/bin/old_agbcc src/%_ruby.o: VERSION := -D RUBY src/%_sapphire.o: VERSION := -D SAPPHIRE -src/text_ruby.o src/text_sapphire.o: src/text.c $(GEN_FONTS) +src/text_ruby.o src/text_sapphire.o: src/text.c $(GEN_FONT_HEADERS) $(GEN_LINK_HEADERS) src/link_ruby.o src/link_sapphire.o: src/link.c $(GEN_LINK_HEADERS) src/%_ruby.o src/%_sapphire.o src/%.o: src/%.c @$(CPP) $(CPPFLAGS) $(VERSION) $< -o $*.i diff --git a/generated.mk b/generated.mk index 08c4aca24..e05b28a9c 100644 --- a/generated.mk +++ b/generated.mk @@ -12,8 +12,6 @@ include/fonts/default_palette.h GEN_LINK_HEADERS := include/link/digit_tiles.h include/link/digit_palette.h -GEN_FONTS := $(GEN_FONT_HEADERS) $(GEN_LINK_HEADERS) - include/fonts/font0_lat_glyphs.h: graphics/fonts/font0_lat.1bpp $(BIN2C) $< sFont0LatinGlyphs >$@ -static -col 8 -pad 4 -- cgit v1.2.3 From 3c38d6b8146141f08031060cccd7adce298c0fab Mon Sep 17 00:00:00 2001 From: yenatch Date: Sun, 19 Jun 2016 00:03:26 -0400 Subject: text.c doesn't depend on GEN_LINK_HEADERS. --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 998905ea9..e4152c658 100644 --- a/Makefile +++ b/Makefile @@ -90,7 +90,7 @@ src/m4a_4_ruby.o src/m4a_2_sapphire.o: CC1 := tools/agbcc/bin/old_agbcc src/%_ruby.o: VERSION := -D RUBY src/%_sapphire.o: VERSION := -D SAPPHIRE -src/text_ruby.o src/text_sapphire.o: src/text.c $(GEN_FONT_HEADERS) $(GEN_LINK_HEADERS) +src/text_ruby.o src/text_sapphire.o: src/text.c $(GEN_FONT_HEADERS) src/link_ruby.o src/link_sapphire.o: src/link.c $(GEN_LINK_HEADERS) src/%_ruby.o src/%_sapphire.o src/%.o: src/%.c @$(CPP) $(CPPFLAGS) $(VERSION) $< -o $*.i -- cgit v1.2.3