summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-04-09 08:32:02 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-04-09 08:32:02 -0400
commit86d8f1762df0977e060f740381529e466a2074d3 (patch)
tree972f9dfa137e4ae778353b7a038f898628f8ef9e
parente651e6a7847bb8f1a55506c8f7729176f84fabf9 (diff)
parent562dcc4bcdc14d5b6c0bb2a638410156945cdd41 (diff)
Merge branch 'master' into unk_debug_menu_3
-rw-r--r--Makefile61
-rw-r--r--tools/aif2pcm/Makefile5
-rw-r--r--tools/bin2c/Makefile5
-rw-r--r--tools/gbagfx/Makefile5
-rw-r--r--tools/mid2agb/Makefile5
-rw-r--r--tools/preproc/Makefile5
-rw-r--r--tools/ramscrgen/Makefile5
-rw-r--r--tools/rsfont/Makefile5
-rw-r--r--tools/scaninc/Makefile5
9 files changed, 58 insertions, 43 deletions
diff --git a/Makefile b/Makefile
index e8d8fff9a..87d19422e 100644
--- a/Makefile
+++ b/Makefile
@@ -29,29 +29,17 @@ CPPFLAGS := -I tools/agbcc/include -iquote include -nostdinc -undef -Werror -Wno
ROM := poke$(BUILD_NAME).gba
MAP := $(ROM:%.gba=%.map)
-SUBDIRS := \
- sound \
- sound/songs \
- asm \
- data \
- src \
- src/battle \
- src/battle/anim \
- src/field \
- src/debug \
- src/scene \
- src/pokemon \
- src/engine \
- src/libs
BUILD_DIR := build/$(BUILD_NAME)
-C_SOURCES := $(foreach dir, $(SUBDIRS), $(wildcard $(dir)/*.c))
-ASM_SOURCES := $(foreach dir, $(SUBDIRS), $(wildcard $(dir)/*.s))
+C_SOURCES := $(wildcard src/*.c src/*/*.c src/*/*/*.c)
+ASM_SOURCES := $(wildcard src/*.s src/*/*.s asm/*.s data/*.s sound/*.s sound/*/*.s)
C_OBJECTS := $(addprefix $(BUILD_DIR)/, $(C_SOURCES:%.c=%.o))
ASM_OBJECTS := $(addprefix $(BUILD_DIR)/, $(ASM_SOURCES:%.s=%.o))
ALL_OBJECTS := $(C_OBJECTS) $(ASM_OBJECTS)
+SUBDIRS := $(sort $(dir $(ALL_OBJECTS)))
+
LIBC := tools/agbcc/lib/libc.a
LIBGCC := tools/agbcc/lib/libgcc.a
@@ -75,10 +63,12 @@ ALL_BUILDS := ruby ruby_rev1 ruby_rev1 sapphire sapphire_rev1 sapphire_rev2 ruby
# Available targets
.PHONY: all clean tidy tools $(ALL_BUILDS)
+infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line))))
+
# Build tools when building the rom
# Disable dependency scanning for clean/tidy/tools
ifeq (,$(filter-out all,$(MAKECMDGOALS)))
-$(info $(shell $(MAKE) tools))
+$(call infoshell, $(MAKE) tools)
else
NODEP := 1
endif
@@ -91,6 +81,7 @@ ifeq ($(NODEP),)
$(BUILD_DIR)/data/%.o: ASM_DEP = $(shell $(SCANINC) data/$(*F).s)
endif
+MAKEFLAGS += --no-print-directory
# Secondary expansion is required for dependency variables in object rules.
.SECONDEXPANSION:
# Clear the default suffixes
@@ -101,7 +92,7 @@ endif
.DELETE_ON_ERROR:
# Create build subdirectories
-$(shell mkdir -p $(addprefix $(BUILD_DIR)/, $(SUBDIRS)))
+$(shell mkdir -p $(SUBDIRS))
all: $(ROM)
ifeq ($(COMPARE),1)
@@ -121,13 +112,13 @@ clean: tidy
$(MAKE) clean -C tools/ramscrgen
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/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
tidy:
$(RM) $(ALL_BUILDS:%=poke%{.gba,.elf,.map})
@@ -148,7 +139,7 @@ $(C_OBJECTS): $(BUILD_DIR)/%.o: %.c $$(C_DEP)
$(CPP) $(CPPFLAGS) $< -o $(BUILD_DIR)/$*.i
$(PREPROC) $(BUILD_DIR)/$*.i charmap.txt | $(CC1) $(CC1FLAGS) -o $(BUILD_DIR)/$*.s
@printf ".text\n\t.align\t2, 0\n" >> $(BUILD_DIR)/$*.s
- @$(AS) $(ASFLAGS) -o $@ $(BUILD_DIR)/$*.s
+ @$(AS) $(ASFLAGS) -W -o $@ $(BUILD_DIR)/$*.s
# Only .s files in data need preproc
$(BUILD_DIR)/data/%.o: data/%.s $$(ASM_DEP)
@@ -158,15 +149,15 @@ $(BUILD_DIR)/%.o: %.s $$(ASM_DEP)
$(AS) $(ASFLAGS) $< -o $@
# "friendly" target names for convenience sake
-ruby: ; @$(MAKE) --no-print-directory GAME_VERSION=RUBY
-ruby_rev1: ; @$(MAKE) --no-print-directory GAME_VERSION=RUBY GAME_REVISION=1
-ruby_rev2: ; @$(MAKE) --no-print-directory GAME_VERSION=RUBY GAME_REVISION=2
-sapphire: ; @$(MAKE) --no-print-directory GAME_VERSION=SAPPHIRE
-sapphire_rev1: ; @$(MAKE) --no-print-directory GAME_VERSION=SAPPHIRE GAME_REVISION=1
-sapphire_rev2: ; @$(MAKE) --no-print-directory GAME_VERSION=SAPPHIRE GAME_REVISION=2
-ruby_de: ; @$(MAKE) --no-print-directory GAME_VERSION=RUBY GAME_LANGUAGE=GERMAN
-sapphire_de: ; @$(MAKE) --no-print-directory GAME_VERSION=SAPPHIRE GAME_LANGUAGE=GERMAN
-ruby_de_debug: ; @$(MAKE) --no-print-directory GAME_VERSION=RUBY GAME_LANGUAGE=GERMAN DEBUG=1
+ruby: ; @$(MAKE) GAME_VERSION=RUBY
+ruby_rev1: ; @$(MAKE) GAME_VERSION=RUBY GAME_REVISION=1
+ruby_rev2: ; @$(MAKE) GAME_VERSION=RUBY GAME_REVISION=2
+sapphire: ; @$(MAKE) GAME_VERSION=SAPPHIRE
+sapphire_rev1: ; @$(MAKE) GAME_VERSION=SAPPHIRE GAME_REVISION=1
+sapphire_rev2: ; @$(MAKE) GAME_VERSION=SAPPHIRE GAME_REVISION=2
+ruby_de: ; @$(MAKE) GAME_VERSION=RUBY GAME_LANGUAGE=GERMAN
+sapphire_de: ; @$(MAKE) GAME_VERSION=SAPPHIRE GAME_LANGUAGE=GERMAN
+ruby_de_debug: ; @$(MAKE) GAME_VERSION=RUBY GAME_LANGUAGE=GERMAN DEBUG=1
#### Graphics Rules ####
diff --git a/tools/aif2pcm/Makefile b/tools/aif2pcm/Makefile
index 967930c59..790ed71f2 100644
--- a/tools/aif2pcm/Makefile
+++ b/tools/aif2pcm/Makefile
@@ -6,7 +6,10 @@ LIBS = -lm
SRCS = main.c extended.c
-.PHONY: clean
+.PHONY: all clean
+
+all: aif2pcm
+ @:
aif2pcm: $(SRCS)
$(CC) $(CFLAGS) $(SRCS) -o $@ $(LDFLAGS) $(LIBS)
diff --git a/tools/bin2c/Makefile b/tools/bin2c/Makefile
index 4cc23a25a..dd4e537a2 100644
--- a/tools/bin2c/Makefile
+++ b/tools/bin2c/Makefile
@@ -2,10 +2,13 @@ CC = gcc
CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -s
-.PHONY: clean
+.PHONY: all clean
SRCS = bin2c.c
+all: bin2c
+ @:
+
bin2c: $(SRCS)
$(CC) $(CFLAGS) $(SRCS) -o $@ $(LDFLAGS)
diff --git a/tools/gbagfx/Makefile b/tools/gbagfx/Makefile
index d791dabb5..c10b258de 100644
--- a/tools/gbagfx/Makefile
+++ b/tools/gbagfx/Makefile
@@ -6,7 +6,10 @@ LIBS = -lpng -lz
SRCS = main.c convert_png.c gfx.c jasc_pal.c lz.c rl.c util.c font.c
-.PHONY: clean
+.PHONY: all clean
+
+all: gbagfx
+ @:
gbagfx: $(SRCS) convert_png.h gfx.h global.h jasc_pal.h lz.h rl.h util.h font.h
$(CC) $(CFLAGS) $(SRCS) -o $@ $(LDFLAGS) $(LIBS)
diff --git a/tools/mid2agb/Makefile b/tools/mid2agb/Makefile
index f27f2cad4..4dc2f123f 100644
--- a/tools/mid2agb/Makefile
+++ b/tools/mid2agb/Makefile
@@ -6,7 +6,10 @@ SRCS := agb.cpp error.cpp main.cpp midi.cpp tables.cpp
HEADERS := agb.h error.h main.h midi.h tables.h
-.PHONY: clean
+.PHONY: all clean
+
+all: mid2agb
+ @:
mid2agb: $(SRCS) $(HEADERS)
$(CXX) $(CXXFLAGS) $(SRCS) -o $@ $(LDFLAGS)
diff --git a/tools/preproc/Makefile b/tools/preproc/Makefile
index ec4a5f365..bf1c11b4b 100644
--- a/tools/preproc/Makefile
+++ b/tools/preproc/Makefile
@@ -8,7 +8,10 @@ SRCS := asm_file.cpp c_file.cpp charmap.cpp preproc.cpp string_parser.cpp \
HEADERS := asm_file.h c_file.h char_util.h charmap.h preproc.h string_parser.h \
utf8.h
-.PHONY: clean
+.PHONY: all clean
+
+all: preproc
+ @:
preproc: $(SRCS) $(HEADERS)
$(CXX) $(CXXFLAGS) $(SRCS) -o $@ $(LDFLAGS)
diff --git a/tools/ramscrgen/Makefile b/tools/ramscrgen/Makefile
index cc6d458ba..2e51e4cba 100644
--- a/tools/ramscrgen/Makefile
+++ b/tools/ramscrgen/Makefile
@@ -6,7 +6,10 @@ SRCS := main.cpp sym_file.cpp elf.cpp
HEADERS := ramscrgen.h sym_file.h elf.h char_util.h
-.PHONY: clean
+.PHONY: all clean
+
+all: ramscrgen
+ @:
ramscrgen: $(SRCS) $(HEADERS)
$(CXX) $(CXXFLAGS) $(SRCS) -o $@ $(LDFLAGS)
diff --git a/tools/rsfont/Makefile b/tools/rsfont/Makefile
index a78beca50..041ee0c43 100644
--- a/tools/rsfont/Makefile
+++ b/tools/rsfont/Makefile
@@ -6,7 +6,10 @@ LIBS = -lpng -lz
SRCS = main.c convert_png.c util.c font.c
-.PHONY: clean
+.PHONY: all clean
+
+all: rsfont
+ @:
rsfont: $(SRCS) convert_png.h gfx.h global.h util.h font.h
$(CC) $(CFLAGS) $(SRCS) -o $@ $(LDFLAGS) $(LIBS)
diff --git a/tools/scaninc/Makefile b/tools/scaninc/Makefile
index 3e1c031a8..32c16c31f 100644
--- a/tools/scaninc/Makefile
+++ b/tools/scaninc/Makefile
@@ -6,7 +6,10 @@ SRCS = scaninc.cpp c_file.cpp asm_file.cpp
HEADERS := scaninc.h asm_file.h c_file.h
-.PHONY: clean
+.PHONY: all clean
+
+all: scaninc
+ @:
scaninc: $(SRCS) $(HEADERS)
$(CXX) $(CXXFLAGS) $(SRCS) -o $@ $(LDFLAGS)