summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorJonathan Wase <jonathan@familjenwase.se>2021-12-02 23:38:37 +0100
committerGitHub <noreply@github.com>2021-12-02 23:38:37 +0100
commitbc428f7f65b97cc9035aed1dc1b71c54ff2e6c3d (patch)
treea9ee5b38a79336db38dd126bec4b538a9a541bbd /Makefile
parent5f187a0776487afa64cb0993b1e96bb5ee115efd (diff)
Clean up and improvements to tools (#163)
* moved elf2dol * removed postprocess.py * removed vtables.py * find_unused_asm.py * removed section2cpp.py * removed splitter/* * fixed symbol names due to iconv file rename * fixed problem building RELs caused by #160 * improved performance of a few python tools * added new tool for finding conflict when not OK * added ./tp setup * don't install dol2asm dependecies with requirements.txt * format and check for imports * remove unused tools/difftools.py * fixed ignore to include elf2dol * fix compiler patcher * ok-check now creates the patched compiler at mwcceppc_patched.exe * Add new command to copy the build folder to the expected folder * 'make clean' will now only clean main.dol stuff. (added clean_rels and clean_all) * './tp pull-request' and './tp check' now doesn't include RELs by default. Use '--rels' to include them in the process. * './tp remove-unused-asm --check' added, exitcode 0==no files, 1==exists files Co-authored-by: Julgodis <>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile46
1 files changed, 29 insertions, 17 deletions
diff --git a/Makefile b/Makefile
index c9e91c337d..dd11eceada 100644
--- a/Makefile
+++ b/Makefile
@@ -19,7 +19,8 @@ TARGET_COL := wii
TARGET := dolzel2
-BUILD_DIR := build/$(TARGET)
+BUILD_PATH := build
+BUILD_DIR := $(BUILD_PATH)/$(TARGET)
SRC_DIRS := $(shell find src/ libs/ -type f -name '*.cpp')
ASM_DIRS := $(shell find asm/ -type f -name '*.s')
@@ -33,7 +34,7 @@ ELF := $(DOL:.dol=.elf)
MAP := $(BUILD_DIR)/dolzel2.map
# include list of object files
--include obj_files.mk
+include obj_files.mk
#-------------------------------------------------------------------------------
# Tools
@@ -60,15 +61,15 @@ endif
AS := $(DEVKITPPC)/bin/powerpc-eabi-as
OBJCOPY := $(DEVKITPPC)/bin/powerpc-eabi-objcopy
STRIP := $(DEVKITPPC)/bin/powerpc-eabi-strip
-CC := $(WINE) tools/mwcc_compiler/$(MWCC_VERSION)/mwcceppc.exe
+CC := $(WINE) tools/mwcc_compiler/$(MWCC_VERSION)/mwcceppc_patched.exe
LD := $(WINE) tools/mwcc_compiler/$(MWCC_VERSION)/mwldeppc.exe
-ELF2DOL := tools/elf2dol
+ELF2DOL := $(BUILD_PATH)/elf2dol
PYTHON := python3
+ICONV := iconv
DOXYGEN := doxygen
+MAKEREL := tools/makerel.py
IMAGENAME := gz2e01.iso
-POSTPROC := tools/postprocess.py
-
# Options
INCLUDES := -i include -i include/dolphin/ -i src
@@ -95,44 +96,52 @@ default: all
all: dirs $(DOL)
-ALL_DIRS := build $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(ASM_DIRS))
-
# Make sure build directory exists before compiling anything
dirs:
- $(shell mkdir -p $(ALL_DIRS))
+ @mkdir -p build
+ @mkdir -p $(BUILD_DIR)
$(DOL): $(ELF) | tools
$(ELF2DOL) $< $@ $(SDATA_PDHR) $(SBSS_PDHR) $(TARGET_COL)
$(SHA1SUM) -c $(TARGET).sha1
clean:
+ rm -f -d -r $(BUILD_DIR)/libs
+ rm -f -d -r $(BUILD_DIR)/src
+ rm -f $(ELF)
+ rm -f $(DOL)
+ rm -f $(BUILD_DIR)/*.a
+
+clean_all:
rm -f -d -r build
- $(MAKE) -C tools clean
-tools:
- @$(MAKE) -C tools
+clean_rels:
+ rm -f -d -r $(BUILD_DIR)/rel
+ rm -f $(BUILD_PATH)/*.rel
+
+tools: $(ELF2DOL)
assets:
- @cd game; python3 ../tools/extract_game_assets.py ../$(IMAGENAME)
+ @cd game; $(PYTHON) ../tools/extract_game_assets.py ../$(IMAGENAME)
docs:
$(DOXYGEN) Doxyfile
rels: $(ELF) $(RELS)
@echo generating RELs from .plf
- @python3 tools/makerel.py build --string-table $(BUILD_DIR)/frameworkF.str $(RELS) $(ELF)
+ @$(PYTHON) $(MAKEREL) build --string-table $(BUILD_DIR)/frameworkF.str $(RELS) $(ELF)
$(ELF): $(LIBS) $(O_FILES)
@echo $(O_FILES) > build/o_files
- @python3 tools/lcf.py dol --output $(LDSCRIPT)
+ @$(PYTHON) tools/lcf.py dol --output $(LDSCRIPT)
$(LD) -application $(LDFLAGS) -o $@ -lcf $(LDSCRIPT) @build/o_files $(LIBS)
#
$(BUILD_DIR)/%.o: %.cpp
@mkdir -p $(@D)
@echo building... $<
- @iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
- @$(CC) $(CFLAGS) -c -o $@ $@.iconv.cpp
+ @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
+ @$(CC) $(CFLAGS) -c -o $@ $(basename $@).cpp
# shared cpp files for RELs
$(BUILD_DIR)/rel/%.o: rel/%.cpp
@@ -142,6 +151,9 @@ $(BUILD_DIR)/rel/%.o: rel/%.cpp
# include library and rel makefiles
-include include_link.mk
+# tools
+include tools/elf2dol/Makefile
+
### Debug Print ###
print-% : ; $(info $* is a $(flavor $*) variable set to [$($*)]) @true