fix parallel builds + makefile convenience targets

This commit is contained in:
red031000 2023-07-29 01:29:17 +01:00
parent e7748e1755
commit 8496abf55b
No known key found for this signature in database
GPG Key ID: D27E50C050AE0CE1
10 changed files with 51 additions and 35 deletions

View File

@ -31,7 +31,10 @@ HEADER_TEMPLATE := $(buildname)/rom_header_template.sbin
MAKEFLAGS += --no-print-directory
all: $(ROM)
all:
$(MAKE) tools
$(MAKE) patch_mwasmarm
$(MAKE) $(ROM)
tidy:
@$(MAKE) -C sub tidy
@ -50,16 +53,17 @@ sdk9 sdk7: sdk
main filesystem: | sdk9
sub: | sdk7
main: $(SBIN) $(ELF)
main: $(SBIN) $(ELF)
main_lz: $(SBIN_LZ)
sub: ; @$(MAKE) -C sub
ROMSPEC := rom.rsf
MAKEROM_FLAGS := $(DEFINES)
$(ELF): libsyscall
$(ALL_OBJS): filesystem
$(ELF): filesystem libsyscall
libsyscall:
libsyscall: filesystem
$(MAKE) -C lib/syscall all install INSTALL_PREFIX=$(abspath $(WORK_DIR)/$(BUILD_DIR)) GAME_CODE=$(GAME_CODE)
$(SBIN_LZ): $(BUILD_DIR)/component.files
@ -69,7 +73,7 @@ $(BUILD_DIR)/component.files: main ;
$(HEADER_TEMPLATE): ;
$(ROM): $(ROMSPEC) tools filesystem main_lz sub $(BANNER)
$(ROM): $(ROMSPEC) filesystem main_lz sub $(BANNER)
$(WINE) $(MAKEROM) $(MAKEROM_FLAGS) -DBUILD_DIR=$(BUILD_DIR) -DNITROFS_FILES="$(NITROFS_FILES:files/%=%)" -DTITLE_NAME="$(TITLE_NAME)" -DBNR="$(BANNER)" -DHEADER_TEMPLATE="$(HEADER_TEMPLATE)" $< $@
$(FIXROM) $@ --secure-crc $(SECURE_CRC) --game-code $(GAME_CODE)
ifeq ($(COMPARE),1)
@ -90,9 +94,11 @@ $(WORK_DIR)/include/global.h: $(FX_CONST_H) ;
# Convenience targets
heartgold: ; @$(MAKE) GAME_VERSION=HEARTGOLD
soulsilver: ; @$(MAKE) GAME_VERSION=SOULSILVER
compare-heartgold: ; @$(MAKE) GAME_VERSION=HEARTGOLD COMPARE=1
compare-soulsilver: ; @$(MAKE) GAME_VERSION=SOULSILVER COMPARE=1
compare_heartgold: ; @$(MAKE) GAME_VERSION=HEARTGOLD COMPARE=1
compare_soulsilver: ; @$(MAKE) GAME_VERSION=SOULSILVER COMPARE=1
clean_heartgold: ; @$(MAKE) GAME_VERSION=HEARTGOLD clean
clean_soulsilver: ; @$(MAKE) GAME_VERSION=SOULSILVER clean
compare: compare-heartgold
compare: compare_heartgold
.PHONY: heartgold soulsilver compare compare-heartgold compare-soulsilver
.PHONY: heartgold soulsilver compare compare_heartgold compare_soulsilver clean_heartgold clean_soulsilver

View File

@ -131,13 +131,11 @@ DUMMY := $(shell mkdir -p $(ALL_BUILDDIRS))
.SECONDARY:
.SECONDEXPANSION:
.DELETE_ON_ERROR:
.PHONY: all tidy clean tools clean-tools $(TOOLDIRS)
.PHONY: all tidy clean tools clean-tools patch_mwasmarm $(TOOLDIRS)
.PRECIOUS: $(SBIN)
.NOTPARALLEL:
.PHONY: $(MWAS)
$(MWAS):
$(ASPATCH) -q $@
patch_mwasmarm:
$(ASPATCH) -q $(MWAS)
ifeq ($(NODEP),)
ifneq ($(WINPATH),)
@ -222,7 +220,9 @@ ifeq ($(COMPARE),1)
$(SHA1SUM) --quiet -c $*.sha1
endif
$(ELF): $(LCF) $(RESPONSE) $(ALL_OBJS)
$(ELF): $(ALL_OBJS)
$(MAKE) $(LCF)
$(MAKE) $(RESPONSE)
cd $(BUILD_DIR) && LM_LICENSE_FILE=$(BACK_REL)/$(LM_LICENSE_FILE) $(WINE) $(MWLD) $(MWLDFLAGS) $(LIBS) -o $(BACK_REL)/$(ELF) $(LCF:$(BUILD_DIR)/%=%) @$(RESPONSE:$(BUILD_DIR)/%=%) $(CRT0_OBJ)
# $(NTRMERGE) $*

View File

@ -28,7 +28,7 @@ endif
$(SCRIPT_NARC): $(SCRIPT_BINS) check_scripts
check_scripts:
check_scripts: $(SCRIPT_BINS)
ifeq ($(COMPARE),1)
@$(SHA1SUM) --quiet -c $(PROJECT_ROOT)/scr_seq.sha1
endif

View File

@ -7,11 +7,21 @@ MSGFILE_GMM := $(sort $(wildcard $(MSGDATA_MSG_DIR)/*.gmm) $(TRNAME_GMM))
MSGFILE_BIN := $(patsubst %.gmm,%.bin,$(MSGFILE_GMM))
MSGFILE_H := $(patsubst %.gmm,%.h,$(MSGFILE_GMM))
TRAINER_JSON := files/poketool/trainer/trainers.json
TRNAME_TEMPLATE := files/poketool/trainer/trname.json.txt
FIRST_MSG_H_GEN := $(MSGDATA_DIR)/headers.done
TOUCH_ONCE := $(MSGDATA_DIR)/touch_once.sh
$(TRNAME_GMM):
$(JSONPROC) $(TRAINER_JSON) $(TRNAME_TEMPLATE) $(TRNAME_GMM)
$(SED) -i 's/&/&amp;/g' $(TRNAME_GMM)
$(MSGDATA_MSG_DIR).narc: %.narc: $(MSGFILE_BIN)
# extremely ugly hack to get it actually building
$(MSGDATA_MSG_DIR)/msg_0729.bin: $(TRNAME_GMM)
$(MSGFILE_BIN): MSGENCFLAGS = -e -c charmap.txt --gmm -H $*.h
$(MSGFILE_BIN): %.bin: %.gmm charmap.txt
$(MSGENC) $(MSGENCFLAGS) $< $@
@ -27,7 +37,7 @@ $(MSGFILE_H): %.h: %.bin
$(FIRST_MSG_H_GEN): $(MSGFILE_H)
$(TOUCH_ONCE) $(FIRST_MSG_H_GEN)
FS_CLEAN_TARGETS += $(MSGDATA_MSG_DIR).narc $(MSGFILE_BIN) $(MSGFILE_H) $(FIRST_MSG_H_GEN)
FS_CLEAN_TARGETS += $(MSGDATA_MSG_DIR).narc $(MSGFILE_BIN) $(MSGFILE_H) $(FIRST_MSG_H_GEN) $(TRNAME_GMM)
files/msgdata/msg/msg_0000.bin: MSGENCFLAGS += -k 0xFEE8
files/msgdata/msg/msg_0001.bin: MSGENCFLAGS += -k 0x9140

View File

@ -8,6 +8,6 @@ $(EVO_NARC): %.narc: $(EVO_JSON) $(EVO_TEMPLATE)
$(O2NARC) $*.o $@ -n -p 0x00
$(EVO_NARC): MWCFLAGS += -include global.h
$(EVO_JSON): | $(WORK_DIR)/include/global.h
$(EVO_JSON): | $(WORK_DIR)/include/global.h tools
FS_CLEAN_TARGETS += $(EVO_NARC)

View File

@ -23,24 +23,23 @@ POKEGRA_MALE_FRONT_OBJS := $(patsubst $(POKEGRA_SPRITES_DIR)/%/male/front.png,$(
POKEGRA_NORMAL_PALS := $(patsubst $(POKEGRA_SPRITES_DIR)/%/female/back.png,$(POKEGRA_BUILD_DIR)/%-04.NCLR,$(POKEGRA_FEMALE_BACK_FILES))
POKEGRA_SHINY_PALS := $(patsubst $(POKEGRA_SPRITES_DIR)/%/female/back.png,$(POKEGRA_BUILD_DIR)/%-05.NCLR,$(POKEGRA_FEMALE_BACK_FILES))
$(POKEGRA_BUILD_DIR)/%-00.NCGR:$(POKEGRA_SPRITES_DIR)/%/female/back.png
$(POKEGRA_BUILD_DIR)/%-00.NCGR: $(POKEGRA_SPRITES_DIR)/%/female/back.png
@mkdir -p $(POKEGRA_BUILD_DIR)
$(GFX) $< $@ $(POKEGRA_GFX_FLAGS_SPRITE)
$(POKEGRA_BUILD_DIR)/%-01.NCGR:$(POKEGRA_SPRITES_DIR)/%/male/back.png
$(POKEGRA_BUILD_DIR)/%-01.NCGR: $(POKEGRA_SPRITES_DIR)/%/male/back.png
@mkdir -p $(POKEGRA_BUILD_DIR)
$(GFX) $< $@ $(POKEGRA_GFX_FLAGS_SPRITE)
$(POKEGRA_BUILD_DIR)/%-02.NCGR:$(POKEGRA_SPRITES_DIR)/%/female/front.png
$(POKEGRA_BUILD_DIR)/%-02.NCGR: $(POKEGRA_SPRITES_DIR)/%/female/front.png
@mkdir -p $(POKEGRA_BUILD_DIR)
$(GFX) $< $@ $(POKEGRA_GFX_FLAGS_SPRITE)
$(POKEGRA_BUILD_DIR)/%-03.NCGR:$(POKEGRA_SPRITES_DIR)/%/male/front.png
$(POKEGRA_BUILD_DIR)/%-03.NCGR: $(POKEGRA_SPRITES_DIR)/%/male/front.png
@mkdir -p $(POKEGRA_BUILD_DIR)
$(GFX) $< $@ $(POKEGRA_GFX_FLAGS_SPRITE)
$(POKEGRA_BUILD_DIR)/%-04.NCLR:$(POKEGRA_SPRITES_DIR)/%/male/front.png
$(POKEGRA_BUILD_DIR)/%-04.NCLR: $(POKEGRA_SPRITES_DIR)/%/male/front.png
@mkdir -p $(POKEGRA_BUILD_DIR)
if test -s $<; then \
$(GFX) $< $@ $(POKEGRA_GFX_FLAGS_PAL); \
@ -48,7 +47,7 @@ $(POKEGRA_BUILD_DIR)/%-04.NCLR:$(POKEGRA_SPRITES_DIR)/%/male/front.png
$(GFX) $(patsubst $(POKEGRA_SPRITES_DIR)/%/male/front.png,$(POKEGRA_SPRITES_DIR)/%/female/front.png,$<) $@ $(POKEGRA_GFX_FLAGS_PAL); \
fi
$(POKEGRA_BUILD_DIR)/%-05.NCLR:$(POKEGRA_SPRITES_DIR)/%/male/back.png
$(POKEGRA_BUILD_DIR)/%-05.NCLR: $(POKEGRA_SPRITES_DIR)/%/male/back.png
@mkdir -p $(POKEGRA_BUILD_DIR)
if test -s $<; then \
$(GFX) $< $@ $(POKEGRA_GFX_FLAGS_PAL); \

View File

@ -1,10 +1,8 @@
TRDATA_NARC := files/poketool/trainer/trdata.narc
TRPOKE_NARC := files/poketool/trainer/trpoke.narc
TRNAME_GMM := files/msgdata/msg/msg_0729.gmm
TRAINER_JSON := files/poketool/trainer/trainers.json
TRDATA_TEMPLATE := files/poketool/trainer/trdata.json.txt
TRPOKE_TEMPLATE := files/poketool/trainer/trpoke.json.txt
TRNAME_TEMPLATE := files/poketool/trainer/trname.json.txt
$(TRDATA_NARC): %.narc: $(TRAINER_JSON) $(TRDATA_TEMPLATE)
$(JSONPROC) $^ $*.c
@ -16,11 +14,7 @@ $(TRPOKE_NARC): %.narc: $(TRAINER_JSON) $(TRPOKE_TEMPLATE)
$(WINE) $(MWAS) $(MWASFLAGS) -DPM_ASM -o $*.o $*.s
$(O2NARC) $*.o $@ -n -p 0x00
$(TRNAME_GMM): $(TRAINER_JSON) $(TRNAME_TEMPLATE)
$(JSONPROC) $^ $@
$(SED) -i 's/&/&amp;/g' $@
$(TRDATA_NARC): MWCFLAGS += -include global.h
$(TRAINER_JSON): | $(WORK_DIR)/include/global.h
FS_CLEAN_TARGETS += $(TRNAME_GMM) $(TRDATA_NARC) $(TRPOKE_NARC)
FS_CLEAN_TARGETS += $(TRDATA_NARC) $(TRPOKE_NARC)

View File

@ -481,7 +481,8 @@ $(filter-out $(DIFF_ARCS) $(FS_RULE_OVERRIDES),$(NITROFS_FILES)): ;
include graphics_files_rules.mk
NTR_FILE_EXT := bin NCGR NCLR NCER NSCR NSBMD NSBCA NSBTA
$(NITROFS_FILES):
$(NARC_DEPS):
%.narc: NARC_DEPS = $(foreach ext,$(NTR_FILE_EXT),$(wildcard $*/*.$ext))
%.narc: $(NARC_DEPS)
$(KNARC) -d $* -p $@ -i

View File

@ -15,7 +15,9 @@ LIB := $(BUILD_DIR)/libsyscall.a
INSTALL_PREFIX ?= $(WORK_DIR)/lib/ARM9-TS
INSTALL_LIBDIR := $(INSTALL_PREFIX)/lib
all: $(LIB)
all:
$(MAKE) patch_mwasmarm
$(MAKE) $(LIB)
ASM_SRCS := asm/_secure_$(GAME_CODE).s

View File

@ -19,7 +19,11 @@ tidy:
clean: tidy
all: $(SBIN) $(ELF)
all:
$(MAKE) patch_mwasmarm
$(MAKE) target
target: $(SBIN) $(ELF)
compare: COMPARE := 1
compare: all