diff options
| author | Derek Hensley <hensley.derek58@gmail.com> | 2024-10-15 04:41:48 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-15 22:41:48 +1100 |
| commit | f946162a892712ccdc31cb319e425146e450972c (patch) | |
| tree | 4c9f92c240c3f3a6aac95896da35a7b08529391b /Makefile | |
| parent | 15ddcac8a431506f5e34bea717dab80432ed5590 (diff) | |
Extract assets to extracted (#1708)
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 74 |
1 files changed, 51 insertions, 23 deletions
@@ -113,7 +113,7 @@ NM := $(MIPS_BINUTILS_PREFIX)nm OBJCOPY := $(MIPS_BINUTILS_PREFIX)objcopy OBJDUMP := $(MIPS_BINUTILS_PREFIX)objdump -IINC := -Iinclude -Iinclude/libc -Isrc -I$(BUILD_DIR) -I. +IINC := -Iinclude -Iinclude/libc -Isrc -I$(BUILD_DIR) -I. -I$(EXTRACTED_DIR) ifeq ($(KEEP_MDEBUG),0) RM_MDEBUG = $(OBJCOPY) --remove-section .mdebug $@ @@ -286,20 +286,34 @@ SEQUENCE_DEP_FILES := $(foreach f,$(SEQUENCE_O_FILES),$(f:.o=.d)) SEQUENCE_TABLE := include/tables/sequence_table.h -## Assets binaries (PNGs, JPGs, etc) -ASSET_BIN_DIRS := $(shell find assets/* -type d -not -path "assets/xml*" -not -path "assets/audio*" -not -path "assets/c/*" -not -name "c" -not -path "assets/text") -# Prevents building C files that will be #include'd -ASSET_BIN_DIRS_C_FILES := $(shell find assets/* -type d -not -path "assets/xml*" -not -path "assets/code*" -not -path "assets/overlays*") - - -ASSET_FILES_BIN := $(foreach dir,$(ASSET_BIN_DIRS),$(wildcard $(dir)/*.bin)) -ASSET_FILES_OUT := $(foreach f,$(ASSET_FILES_BIN:.bin=.bin.inc.c),$(BUILD_DIR)/$f) - -TEXTURE_FILES_PNG := $(foreach dir,$(ASSET_BIN_DIRS),$(wildcard $(dir)/*.png)) -TEXTURE_FILES_JPG := $(foreach dir,$(ASSET_BIN_DIRS),$(wildcard $(dir)/*.jpg)) -TEXTURE_FILES_OUT := $(foreach f,$(TEXTURE_FILES_PNG:.png=.inc.c),$(BUILD_DIR)/$f) \ - $(foreach f,$(TEXTURE_FILES_JPG:.jpg=.jpg.inc.c),$(BUILD_DIR)/$f) \ +# create extracted directory +$(shell mkdir -p $(EXTRACTED_DIR)) +ifneq ($(wildcard $(EXTRACTED_DIR)/assets),) + ASSET_BIN_DIRS_EXTRACTED := $(shell find $(EXTRACTED_DIR)/assets -type d) +else + ASSET_BIN_DIRS_EXTRACTED := +endif +ASSET_BIN_DIRS_COMMITTED := $(shell find assets -type d -not -path "assets/xml*" -not -path "assets/audio*" -not -path assets/text) +ASSET_BIN_DIRS := $(ASSET_BIN_DIRS_EXTRACTED) $(ASSET_BIN_DIRS_COMMITTED) + +ASSET_FILES_BIN_EXTRACTED := $(foreach dir,$(ASSET_BIN_DIRS_EXTRACTED),$(wildcard $(dir)/*.bin)) +ASSET_FILES_BIN_COMMITTED := $(foreach dir,$(ASSET_BIN_DIRS_COMMITTED),$(wildcard $(dir)/*.bin)) +ASSET_FILES_OUT := $(foreach f,$(ASSET_FILES_BIN_EXTRACTED:.bin=.bin.inc.c),$(f:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%)) \ + $(foreach f,$(ASSET_FILES_BIN_COMMITTED:.bin=.bin.inc.c),$(BUILD_DIR)/$f) \ + $(foreach f,$(wildcard assets/text/*.c),$(BUILD_DIR)/$(f:.c=.o)) + +TEXTURE_FILES_PNG_EXTRACTED := $(foreach dir,$(ASSET_BIN_DIRS_EXTRACTED),$(wildcard $(dir)/*.png)) +TEXTURE_FILES_PNG_COMMITTED := $(foreach dir,$(ASSET_BIN_DIRS_COMMITTED),$(wildcard $(dir)/*.png)) +TEXTURE_FILES_JPG_EXTRACTED := $(foreach dir,$(ASSET_BIN_DIRS_EXTRACTED),$(wildcard $(dir)/*.jpg)) +TEXTURE_FILES_JPG_COMMITTED := $(foreach dir,$(ASSET_BIN_DIRS_COMMITTED),$(wildcard $(dir)/*.jpg)) +TEXTURE_FILES_OUT := $(foreach f,$(TEXTURE_FILES_PNG_EXTRACTED:.png=.inc.c),$(f:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%)) \ + $(foreach f,$(TEXTURE_FILES_PNG_COMMITTED:.png=.inc.c),$(BUILD_DIR)/$f) \ + $(foreach f,$(TEXTURE_FILES_JPG_EXTRACTED:.jpg=.jpg.inc.c),$(f:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%)) \ + $(foreach f,$(TEXTURE_FILES_JPG_COMMITTED:.jpg=.jpg.inc.c),$(BUILD_DIR)/$f) + +ASSET_C_FILES_EXTRACTED := $(filter-out %.inc.c,$(foreach dir,$(ASSET_BIN_DIRS_EXTRACTED),$(wildcard $(dir)/*.c))) +ASSET_C_FILES_COMMITTED := $(filter-out %.inc.c,$(foreach dir,$(ASSET_BIN_DIRS_COMMITTED),$(wildcard $(dir)/*.c))) C_FILES := $(foreach dir,$(SRC_DIRS) $(ASSET_BIN_DIRS_C_FILES),$(wildcard $(dir)/*.c)) S_FILES := $(shell grep -F "\$$(BUILD_DIR)/asm" spec | sed 's/.*$$(BUILD_DIR)\/// ; s/\.o\".*/.s/') \ $(shell grep -F "\$$(BUILD_DIR)/data" spec | sed 's/.*$$(BUILD_DIR)\/// ; s/\.o\".*/.s/') @@ -308,6 +322,8 @@ BASEROM_FILES := $(shell grep -F "\$$(BUILD_DIR)/baserom" spec | sed 's/.*$$(BU ARCHIVES_O := $(shell grep -F ".yar.o" spec | sed 's/.*include "// ; s/.*$$(BUILD_DIR)\/// ; s/\.o\".*/.o/') O_FILES := $(foreach f,$(S_FILES:.s=.o),$(BUILD_DIR)/$f) \ $(foreach f,$(C_FILES:.c=.o),$(BUILD_DIR)/$f) \ + $(foreach f,$(ASSET_C_FILES_EXTRACTED:.c=.o),$(f:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%)) \ + $(foreach f,$(ASSET_C_FILES_COMMITTED:.c=.o),$(BUILD_DIR)/$f) \ $(foreach f,$(BASEROM_FILES),$(BUILD_DIR)/$f.o) \ $(foreach f,$(ARCHIVES_O),$(BUILD_DIR)/$f) @@ -325,7 +341,7 @@ LD_FINAL_FILES := $(foreach f,$(shell find linker_scripts/final/*.ld),$(BUILD_DI DEP_FILES := $(O_FILES:.o=.asmproc.d) $(OVL_RELOC_FILES:.o=.d) # Other directories that need to be created in the build directory -OTHER_DIRS := baserom dmadata $(shell find linker_scripts -type d) +OTHER_DIRS := assets/text baserom dmadata $(shell find linker_scripts -type d) # create build directories $(shell mkdir -p $(foreach dir, \ @@ -339,14 +355,16 @@ $(shell mkdir -p $(foreach dir, \ $(SAMPLE_DIRS) \ $(SAMPLEBANK_DIRS) \ $(SOUNDFONT_DIRS) \ - $(SEQUENCE_DIRS), \ + $(SEQUENCE_DIRS) \ + $(ASSET_BIN_DIRS_COMMITTED),\ $(BUILD_DIR)/$(dir))) ifneq ($(wildcard $(EXTRACTED_DIR)/assets),) $(shell mkdir -p $(foreach dir, \ $(SAMPLE_EXTRACT_DIRS) \ $(SAMPLEBANK_EXTRACT_DIRS) \ $(SOUNDFONT_EXTRACT_DIRS) \ - $(SEQUENCE_EXTRACT_DIRS), \ + $(SEQUENCE_EXTRACT_DIRS) \ + $(ASSET_BIN_DIRS_EXTRACTED),\ $(dir:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%))) endif @@ -453,10 +471,9 @@ clean: $(RM) -r $(BUILD_DIR) assetclean: - $(RM) -r $(ASSET_BIN_DIRS) + $(RM) -r $(EXTRACTED_DIR)/assets + $(RM) -r $(EXTRACTED_DIR)/text $(RM) -r $(BUILD_DIR)/assets - $(RM) -r assets/text/*.h - $(RM) -r $(EXTRACTED_DIR)/.extracted-assets.json distclean: assetclean clean $(RM) -r asm data extracted @@ -480,8 +497,8 @@ setup-audio: $(AUDIO_EXTRACT) -o $(EXTRACTED_DIR) -v $(VERSION) --read-xml assets: - $(PYTHON) tools/extract_assets.py $(EXTRACTED_DIR)/baserom assets -j$(N_THREADS) -Z Wno-hardcoded-pointer -v $(VERSION) - $(PYTHON) tools/text/msgdis.py $(EXTRACTED_DIR)/baserom assets/text -v $(VERSION) + $(PYTHON) tools/extract_assets.py $(EXTRACTED_DIR)/baserom $(EXTRACTED_DIR)/assets -j$(N_THREADS) -Z Wno-hardcoded-pointer -v $(VERSION) + $(PYTHON) tools/text/msgdis.py $(EXTRACTED_DIR)/baserom $(EXTRACTED_DIR)/text -v $(VERSION) $(AUDIO_EXTRACT) -o $(EXTRACTED_DIR) -v $(VERSION) --read-xml ## Assembly generation @@ -544,6 +561,11 @@ $(BUILD_DIR)/assets/%.o: assets/%.c $(OBJCOPY_BIN) $(RM_MDEBUG) +$(BUILD_DIR)/assets/%.o: $(EXTRACTED_DIR)/assets/%.c + $(CC) -c $(CFLAGS) $(IINC) $(WARNINGS) $(C_DEFINES) $(MIPS_VERSION) $(ENDIAN) $(OPTFLAGS) -o $@ $< + $(OBJCOPY_BIN) + $(RM_MDEBUG) + $(BUILD_DIR)/%.yar.o: $(BUILD_DIR)/%.o $(MAKEYAR) $< $(@:.yar.o=.yar.bin) $(@:.yar.o=.symbols.o) $(OBJCOPY) -I binary -O elf32-big $(@:.yar.o=.yar.bin) $@ @@ -603,12 +625,18 @@ $(BUILD_DIR)/%.o: %.c # Build C files from assets -$(BUILD_DIR)/%.inc.c: %.png +$(BUILD_DIR)/assets/%.inc.c: assets/%.png + $(ZAPD) btex -eh -tt $(subst .,,$(suffix $*)) -i $< -o $@ + +$(BUILD_DIR)/assets/%.inc.c: $(EXTRACTED_DIR)/assets/%.png $(ZAPD) btex -eh -tt $(subst .,,$(suffix $*)) -i $< -o $@ $(BUILD_DIR)/assets/%.bin.inc.c: assets/%.bin $(ZAPD) bblb -eh -i $< -o $@ +$(BUILD_DIR)/assets/%.bin.inc.c: $(EXTRACTED_DIR)/assets/%.bin + $(ZAPD) bblb -eh -i $< -o $@ + $(BUILD_DIR)/assets/%.jpg.inc.c: assets/%.jpg $(ZAPD) bren -eh -i $< -o $@ |
