forked from RushRE/SonicRushAdventure-Decomp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
121 lines (90 loc) · 3.2 KB
/
Makefile
File metadata and controls
121 lines (90 loc) · 3.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
BUILD_MODE := ARM9
ROOT_DIR :=
MWCCVER := 2.0/sp1p5
PROC := arm946e
PROC_S := arm5te
PROC_LD := v5te
LCF_TEMPLATE := ARM9-TS.lcf.template
LIBS := -Llib -lsyscall -nostdlib
OPTFLAGS := -O4,p
DEBUGFLAGS :=
# don't compare if we're adding extra debug stuff
ifeq ($(DEBUG),1)
OPTFLAGS := -O0
DEBUGFLAGS := -g3
endif
include config.mk
ALL_BUILDDIRS := $(BUILD_DIR)/lib
include common.mk
include filesystem.mk
$(ASM_OBJS): MWASFLAGS += -DPM_ASM
$(BUILD_DIR)/asm/nitrocrypto.o: MWCCVER := 1.2/sp2p3
$(BUILD_DIR)/lib/msl/src/*.o: EXCCFLAGS := -Cpp_exceptions on
# Locate crt0.o
CRT0_OBJ := lib/NitroSDK/src/init/ARM9/crt0.o
$(ASM_OBJS): $(WORK_DIR)/include/config.h
$(C_OBJS): $(WORK_DIR)/include/global.h
ROM := $(BUILD_DIR)/$(buildname).nds
BANNER := $(ROM:%.nds=%.bnr)
BANNER_SPEC := $(buildname)/banner.bsf
ICON_PNG := $(buildname)/icon.png
HEADER_TEMPLATE := $(buildname)/rom_header_template.sbin
.PHONY: arm9 arm9.contest arm7 libsyscall sdk sdk9 sdk7
.PRECIOUS: $(ROM)
MAKEFLAGS += --no-print-directory
all:
$(MAKE) tools
$(MAKE) patch_mwasmarm
$(MAKE) $(ROM)
tidy:
@$(MAKE) -C lib/syscall tidy
@$(MAKE) -C sub tidy
$(RM) -r $(BUILD_DIR)
$(RM) -r $(PROJECT_CLEAN_TARGETS)
$(RM) $(ROM)
clean: tidy clean-filesystem clean-tools
@$(MAKE) -C lib/syscall clean
@$(MAKE) -C sub clean
SBIN_LZ := $(SBIN)_LZ
.PHONY: arm9_lz
sdk9 sdk7: sdk
arm9 files_for_compile: | sdk9
arm7: | sdk7
arm9: $(SBIN) $(ELF)
arm9_lz: $(SBIN_LZ)
arm7: ; @$(MAKE) -C sub
ifeq ($(GAME_VERSION),RUSH2_CONTEST)
ROMSPEC := rom.contest.rsf
else
ROMSPEC := rom.rsf
endif
MAKEROM_FLAGS := $(DEFINES)
$(ALL_OBJS): files_for_compile
$(ELF): files_for_compile libsyscall
libsyscall: files_for_compile
$(MAKE) -C lib/syscall all install INSTALL_PREFIX=$(abspath $(WORK_DIR)/$(BUILD_DIR)) GAME_CODE=$(GAME_CODE)
$(SBIN_LZ): $(BUILD_DIR)/component.files
$(COMPSTATIC) -9 -c -f $<
$(BUILD_DIR)/component.files: arm9 ;
$(HEADER_TEMPLATE): ;
$(ROM): $(ROMSPEC) filesystem arm9_lz arm7 $(BANNER)
$(WINE) $(MAKEROM) $(MAKEROM_FLAGS) -DBUILD_DIR=$(BUILD_DIR) -DNITROFS_FILES="$(NITROFS_FILES:resources/%=%)" -DTITLE_NAME="$(TITLE_NAME)" -DROM_PADDING="$(ROM_PADDING)" -DREMASTER_VERSION="$(REMASTER_VERSION)" -DBNR="$(BANNER)" -DHEADER_TEMPLATE="$(HEADER_TEMPLATE)" $< $@
$(FIXROM) $@ --secure-crc $(SECURE_CRC) --game-code $(GAME_CODE)
ifeq ($(COMPARE),1)
$(SHA1SUM) -c $(buildname)/rom.sha1
endif
$(BANNER): $(BANNER_SPEC) $(ICON_PNG:%.png=%.nbfp) $(ICON_PNG:%.png=%.nbfc)
$(WINE) $(MAKEBNR) $< $@
# TODO: move to NitroSDK makefile
FX_CONST_H := $(WORK_DIR)/lib/include/nitro/fx/fx_const.h
PROJECT_CLEAN_TARGETS += $(FX_CONST_H)
$(FX_CONST_H): $(MKFXCONST) $(TOOLSDIR)/gen_fx_consts/fx_const.csv
$(MKFXCONST) $@
sdk: $(FX_CONST_H)
$(WORK_DIR)/include/global.h: $(FX_CONST_H) ;
# Convenience targets
rush2: ; @$(MAKE) GAME_VERSION=RUSH2 COMPARE=1
clean_rush2: ; @$(MAKE) GAME_VERSION=RUSH2 clean
rush2_contest: ; @$(MAKE) GAME_VERSION=RUSH2_CONTEST
clean_rush2_contest: ; @$(MAKE) GAME_VERSION=RUSH2_CONTEST clean
.PHONY: rush2 clean_rush2 debug_rush2 rush2_contest clean_rush2_contest rush2_child clean_rush2_child