summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile60
1 files changed, 29 insertions, 31 deletions
diff --git a/Makefile b/Makefile
index 3f87a910d..297cbb68b 100644
--- a/Makefile
+++ b/Makefile
@@ -1,3 +1,5 @@
+COMPARE ?= 0
+
AS := tools/binutils/bin/arm-none-eabi-as
CPP := $(CC) -E
LD := tools/binutils/bin/arm-none-eabi-ld
@@ -84,8 +86,6 @@ JSONPROC := tools/jsonproc/jsonproc
# Secondary expansion is required for dependency variables in object rules.
.SECONDEXPANSION:
-.PHONY: rom tools clean compare tidy
-
$(shell mkdir -p $(C_BUILDDIR) $(ASM_BUILDDIR) $(DATA_ASM_BUILDDIR) $(SONG_BUILDDIR))
infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line))))
@@ -113,32 +113,33 @@ SONG_OBJS := $(patsubst $(SONG_SUBDIR)/%.s,$(SONG_BUILDDIR)/%.o,$(SONG_SRCS))
OBJS := $(C_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) $(SONG_OBJS)
OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(OBJS))
+TOOLDIRS := $(filter-out tools/agbcc tools/binutils,$(wildcard tools/*))
+TOOLBASE = $(TOOLDIRS:tools/%=%)
+TOOLS = $(foreach tool,$(TOOLBASE),tools/$(tool)/$(tool)$(EXE))
+
+.PHONY: all rom tools clean-tools mostlyclean clean compare tidy berry_fix $(TOOLDIRS)
+
MAKEFLAGS += --no-print-directory
AUTO_GEN_TARGETS :=
-all: rom
+all: tools rom
rom: $(ROM)
+ifeq ($(COMPARE),1)
+ @$(SHA1) rom.sha1
+endif
-tools:
- @$(MAKE) -C tools/gbagfx
- @$(MAKE) -C tools/scaninc
- @$(MAKE) -C tools/preproc
- @$(MAKE) -C tools/bin2c
- @$(MAKE) -C tools/rsfont
- @$(MAKE) -C tools/aif2pcm
- @$(MAKE) -C tools/ramscrgen
- @$(MAKE) -C tools/mid2agb
- @$(MAKE) -C tools/gbafix
- @$(MAKE) -C tools/mapjson
- @$(MAKE) -C tools/jsonproc
+tools: $(TOOLDIRS)
+
+$(TOOLDIRS):
+ @$(MAKE) -C $@
# For contributors to make sure a change didn't affect the contents of the ROM.
-compare: rom
- @$(SHA1) rom.sha1
+compare:
+ @$(MAKE) COMPARE=1
-clean: tidy
+mostlyclean: tidy
rm -f sound/direct_sound_samples/*.bin
rm -f $(SONG_OBJS)
find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} +
@@ -147,17 +148,11 @@ clean: tidy
find $(DATA_ASM_SUBDIR)/maps \( -iname 'connections.inc' -o -iname 'events.inc' -o -iname 'header.inc' \) -exec rm {} +
rm -f $(AUTO_GEN_TARGETS)
@$(MAKE) clean -C berry_fix
- @$(MAKE) clean -C tools/gbagfx
- @$(MAKE) clean -C tools/scaninc
- @$(MAKE) clean -C tools/preproc
- @$(MAKE) clean -C tools/bin2c
- @$(MAKE) clean -C tools/rsfont
- @$(MAKE) clean -C tools/aif2pcm
- @$(MAKE) clean -C tools/ramscrgen
- @$(MAKE) clean -C tools/mid2agb
- @$(MAKE) clean -C tools/gbafix
- @$(MAKE) clean -C tools/mapjson
- @$(MAKE) clean -C tools/jsonproc
+
+clean-tools:
+ @$(foreach tooldir,$(TOOLDIRS),$(MAKE) clean -C $(tooldir);)
+
+clean: mostlyclean clean-tools
tidy:
rm -f $(ROM) $(ELF) $(MAP)
@@ -224,6 +219,11 @@ else
$(DATA_ASM_BUILDDIR)/%.o: data_dep = $(shell $(SCANINC) -I . $(DATA_ASM_SUBDIR)/$*.s)
endif
+berry_fix:
+ @$(MAKE) -C berry_fix COMPARE=$(COMPARE)
+
+berry_fix/berry_fix.gba: berry_fix
+
$(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s $$(data_dep)
$(PREPROC) $< charmap.txt | $(CPP) -I include -nostdinc -undef -Wno-unicode - | $(AS) $(ASFLAGS) -o $@
@@ -249,5 +249,3 @@ $(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS)
$(ROM): $(ELF)
$(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0x9000000 $< $@
-berry_fix/berry_fix.gba:
- @$(MAKE) -C berry_fix