mirror of
https://github.com/zeldaret/tp
synced 2026-07-11 15:28:38 -04:00
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 <>
This commit is contained in:
@@ -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
|
||||
$(MAKE) -C tools 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
|
||||
|
||||
tools:
|
||||
@$(MAKE) -C tools
|
||||
clean_all:
|
||||
rm -f -d -r build
|
||||
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user