Restructure files

* Create chraicommands.c
* Move include to src/include
* Use .o files next to each .c file
This commit is contained in:
Ryan Dwyer committed 2019-10-07 17:50:26 +10:00
1 parent 384e0a11f3
commit 8cc9fc069c
646 files changed
+111453 -111470

No files matched your search

+1
View File
@@ -1,3 +1,4 @@
*.o
pd.*.z64
build
extracted
+54 -99
View File
@@ -39,7 +39,10 @@ ifeq ($(RELEASE),final)
RELEASE_CFLAGS := -DBETA=0 -DREL1_0 -DFINAL=1
endif
CFLAGS := $(VERSION_CFLAGS) $(RELEASE_CFLAGS) -Wo,-loopunroll,0 -Wab,-r4300_mul -non_shared -G 0 -Xcpluscomm -woff 819,820,852,821 -signed -I . -I include -mips2
CFLAGS := $(VERSION_CFLAGS) $(RELEASE_CFLAGS) -Wo,-loopunroll,0 -Wab,-r4300_mul -non_shared -G 0 -Xcpluscomm -woff 819,820,852,821 -signed -I src/include -mips2
C_FILES := $(shell find src -name '*.c')
O_FILES := $(patsubst %.c, %.o, $(C_FILES))
default: all
@@ -52,20 +55,12 @@ extract:
################################################################################
# Stage setup files
SETUP_C_FILES := $(wildcard src/setup/*.c)
SETUP_H_FILES := $(wildcard src/include/*.h)
B_SETUP_BIN_FILES := $(patsubst src/setup/%.c, $(B_DIR)/files/setup/U%.bin, $(SETUP_C_FILES))
E_SETUP_BIN_FILES := $(patsubst src/setup/%.c, $(E_DIR)/files/setup/U%.bin, $(SETUP_C_FILES))
B_SETUP_BINZ_FILES := $(patsubst src/setup/%.c, $(B_DIR)/files/U%Z, $(SETUP_C_FILES))
E_SETUP_BINZ_FILES := $(patsubst src/setup/%.c, $(E_DIR)/files/U%Z, $(SETUP_C_FILES))
SETUP_C_FILES := $(wildcard src/files/setup/*.c)
SETUP_BIN_FILES := $(patsubst src/files/setup/%.c, $(B_DIR)/files/setup/U%.bin, $(SETUP_C_FILES))
SETUP_BINZ_FILES := $(patsubst src/files/setup/%.c, $(B_DIR)/files/U%Z, $(SETUP_C_FILES))
stagesetup: $(B_SETUP_BINZ_FILES)
$(B_DIR)/files/setup/%.o: src/setup/%.c $(SETUP_H_FILES)
$(B_DIR)/files/setup/%.elf: src/files/setup/%.o
mkdir -p $(B_DIR)/files/setup
$(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc -c $(CFLAGS) -o $@ -O2 $<
$(B_DIR)/files/setup/%.elf: $(B_DIR)/files/setup/%.o
cp $< build/zero.tmp.o
$(TOOLCHAIN)-ld -T ld/zero.ld -o $@
rm -f build/zero.tmp.o
@@ -76,25 +71,17 @@ $(B_DIR)/files/setup/U%.bin: $(B_DIR)/files/setup/%.elf
$(B_DIR)/files/U%Z: $(B_DIR)/files/setup/U%.bin
tools/rarezip $< > $@
stagesetup: $(SETUP_BIN_FILES)
################################################################################
# Lang files
LANG_C_EJP_FILES := $(wildcard src/lang/*E.c) $(wildcard src/lang/*J.c) $(wildcard src/lang/*P.c)
LANG_C_STR_FILES := $(wildcard src/lang/*_str_*.c)
B_LANG_BIN_FILES := $(patsubst src/lang/%.c, $(B_DIR)/files/lang/L%.bin, $(LANG_C_EJP_FILES)) \
$(patsubst src/lang/%.c, $(B_DIR)/files/lang/L%.bin, $(LANG_C_STR_FILES))
B_LANG_BINZ_FILES := $(patsubst src/lang/%.c, $(B_DIR)/files/L%, $(LANG_C_EJP_FILES)) \
$(patsubst src/lang/%.c, $(B_DIR)/files/L%Z, $(LANG_C_STR_FILES))
E_LANG_BIN_FILES := $(patsubst $(B_DIR), $(E_DIR), $(B_LANG_BIN_FILES))
E_LANG_BINZ_FILES := $(patsubst $(B_DIR), $(E_DIR), $(B_LANG_BINZ_FILES))
LANG_C_FILES := $(wildcard src/files/lang/*.c)
LANG_BIN_FILES := $(patsubst src/files/lang/%.c, $(B_DIR)/files/lang/L%.bin, $(LANG_C_FILES))
LANG_BINZ_FILES := $(patsubst src/files/lang/%.c, $(B_DIR)/files/L%, $(LANG_C_FILES))
lang: $(B_LANG_BINZ_FILES)
$(B_DIR)/files/lang/%.o: src/lang/%.c
$(B_DIR)/files/lang/%.elf: src/files/lang/%.o
mkdir -p $(B_DIR)/files/lang
$(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc -c $(CFLAGS) -o $@ -O2 $<
$(B_DIR)/files/lang/%.elf: $(B_DIR)/files/lang/%.o
cp $< build/zero.tmp.o
$(TOOLCHAIN)-ld -T ld/zero.ld -o $@
rm -f build/zero.tmp.o
@@ -114,17 +101,13 @@ $(B_DIR)/files/L%P: $(B_DIR)/files/lang/L%P.bin
$(B_DIR)/files/L%Z: $(B_DIR)/files/lang/L%.bin
tools/rarezip $< > $@
lang: $(LANG_BIN_FILES)
################################################################################
# Boot
boot: $(B_DIR)/ucode/boot.bin
$(B_DIR)/boot.o: src/boot.c
$(B_DIR)/boot.elf: $(O_FILES)
mkdir -p $(B_DIR)
python tools/asmpreproc/asm-processor.py -O2 $< | $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc -c $(CFLAGS) tools/asmpreproc/include-stdin.c -o $@ -O2
python tools/asmpreproc/asm-processor.py -O2 $< --post-process $@ --assembler "$(TOOLCHAIN)-as -march=vr4300 -mabi=32" --asm-prelude tools/asmpreproc/prelude.s
$(B_DIR)/boot.elf: $(B_DIR)/boot.o $(B_DIR)/library.o
$(TOOLCHAIN)-ld -e 0x00003050 -T ld/boot.ld -o $@
$(B_DIR)/ucode/boot.bin: $(B_DIR)/boot.elf
@@ -133,17 +116,13 @@ $(B_DIR)/ucode/boot.bin: $(B_DIR)/boot.elf
dd if="$@" of="$@.tmp" bs=8272 count=1
mv "$@.tmp" "$@"
boot: $(B_DIR)/ucode/boot.bin
################################################################################
# Library
library: $(B_DIR)/ucode/library.bin
$(B_DIR)/library.o: src/library.c
$(B_DIR)/library.elf: $(O_FILES)
mkdir -p $(B_DIR)
python tools/asmpreproc/asm-processor.py -O2 $< | $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc -c $(CFLAGS) tools/asmpreproc/include-stdin.c -o $@ -O2
python tools/asmpreproc/asm-processor.py -O2 $< --post-process $@ --assembler "$(TOOLCHAIN)-as -march=vr4300 -mabi=32" --asm-prelude tools/asmpreproc/prelude.s
$(B_DIR)/library.elf: $(B_DIR)/library.o $(B_DIR)/setup.o $(B_DIR)/game.o $(B_DIR)/gvars.o
$(TOOLCHAIN)-ld -e 0x00003050 -T ld/library.ld -o $@
$(B_DIR)/ucode/library.bin: $(B_DIR)/library.elf
@@ -152,16 +131,13 @@ $(B_DIR)/ucode/library.bin: $(B_DIR)/library.elf
dd if="$@" of="$@.tmp" bs=356240 count=1
mv "$@.tmp" "$@"
library: $(B_DIR)/ucode/library.bin
################################################################################
# Game setup file
setup: $(B_DIR)/ucode/setup.bin
$(B_DIR)/setup.o: src/setup.c $(SETUP_H_FILES)
$(B_DIR)/setup.elf: $(O_FILES)
mkdir -p $(B_DIR)
$(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc -c $(CFLAGS) -o $@ -O2 $<
$(B_DIR)/setup.elf: $(B_DIR)/setup.o $(B_DIR)/game.o
$(TOOLCHAIN)-ld -e 0x80059fe0 -T ld/setup.ld -o $@
$(B_DIR)/ucode/setup.bin: $(B_DIR)/setup.elf
@@ -170,33 +146,26 @@ $(B_DIR)/ucode/setup.bin: $(B_DIR)/setup.elf
dd if="$@" of="$@.tmp" bs=200256 count=1
mv "$@.tmp" "$@"
setup: $(B_DIR)/ucode/setup.bin
################################################################################
# Rarezip
$(B_DIR)/ucode/rarezip.o: src/rarezip/rarezip.c
mkdir -p $(B_DIR)/ucode
python tools/asmpreproc/asm-processor.py -O2 $< | $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc -c $(CFLAGS) tools/asmpreproc/include-stdin.c -o $@ -O2
python tools/asmpreproc/asm-processor.py -O2 $< --post-process $@ --assembler "$(TOOLCHAIN)-as -march=vr4300 -mabi=32" --asm-prelude tools/asmpreproc/prelude.s
$(B_DIR)/ucode/rarezip.elf: $(B_DIR)/ucode/rarezip.o
cp $< build/rarezip.tmp.o
$(B_DIR)/rarezip.elf: $(O_FILES)
mkdir -p $(B_DIR)
$(TOOLCHAIN)-ld -T ld/rarezip.ld -o $@
rm -f build/rarezip.tmp.o
$(B_DIR)/ucode/rarezip.bin: $(B_DIR)/ucode/rarezip.elf
$(B_DIR)/ucode/rarezip.bin: $(B_DIR)/rarezip.elf
mkdir -p $(B_DIR)/ucode
$(TOOLCHAIN)-objcopy $< $@ -O binary
rarezip: $(B_DIR)/ucode/rarezip.bin
################################################################################
# Main game
game: $(B_DIR)/ucode/game.bin
$(B_DIR)/game.o: src/game/game.c
mkdir -p $(B_DIR)/ucode
python tools/asmpreproc/asm-processor.py -O2 $< | $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc -c $(CFLAGS) tools/asmpreproc/include-stdin.c -o $@ -O2
python tools/asmpreproc/asm-processor.py -O2 $< --post-process $@ --assembler "$(TOOLCHAIN)-as -march=vr4300 -mabi=32" --asm-prelude tools/asmpreproc/prelude.s
$(B_DIR)/game.elf: $(B_DIR)/game.o $(B_DIR)/library.o $(B_DIR)/setup.o $(B_DIR)/gvars.o
$(B_DIR)/game.elf: $(O_FILES)
mkdir -p $(B_DIR)
$(TOOLCHAIN)-ld -T ld/game.ld -o $@
$(B_DIR)/ucode/game.bin: $(B_DIR)/game.elf
@@ -205,61 +174,47 @@ $(B_DIR)/ucode/game.bin: $(B_DIR)/game.elf
dd if="$@" of="$@.tmp" bs=1808864 count=1
mv "$@.tmp" "$@"
game: $(B_DIR)/ucode/game.bin
################################################################################
# gVars
gvars: $(B_DIR)/ucode/gvars.bin
$(B_DIR)/gvars.o: src/gvars.c
mkdir -p $(B_DIR)/ucode
python tools/asmpreproc/asm-processor.py -O2 $< | $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc -c $(CFLAGS) tools/asmpreproc/include-stdin.c -o $@ -O2
python tools/asmpreproc/asm-processor.py -O2 $< --post-process $@ --assembler "$(TOOLCHAIN)-as -march=vr4300 -mabi=32" --asm-prelude tools/asmpreproc/prelude.s
$(B_DIR)/gvars.elf: $(B_DIR)/gvars.o
$(B_DIR)/gvars.elf: $(O_FILES)
mkdir -p $(B_DIR)
$(TOOLCHAIN)-ld -T ld/gvars.ld -o $@
$(B_DIR)/ucode/gvars.bin: $(B_DIR)/gvars.elf
mkdir -p $(B_DIR)/ucode
$(TOOLCHAIN)-objcopy $< $@ -O binary
gvars: $(B_DIR)/ucode/gvars.bin
################################################################################
# Test related
test: $(B_SETUP_BINZ_FILES) $(B_LANG_BINZ_FILES)
@rm -f $(B_DIR)/files/lang/*.{elf,o}
@diff -rq --exclude='*.bin' \
--exclude=chrs \
--exclude=guns \
--exclude=lang \
--exclude=props \
--exclude=setup \
--exclude='A*' \
--exclude='C*' \
--exclude='G*' \
--exclude='P*' \
--exclude=bgdata \
--exclude=ob \
$(E_DIR)/files $(B_DIR)/files
@diff -q $(E_DIR)/ucode/setup.bin $(B_DIR)/ucode/setup.bin
@diff -q $(E_DIR)/ucode/library.bin $(B_DIR)/ucode/library.bin
test: all
@rm -f $(B_DIR)/*.elf
@diff -q $(E_DIR)/files/lang/ $(B_DIR)/files/lang/
@diff -q $(E_DIR)/files/setup/ $(B_DIR)/files/setup/
@diff -q $(E_DIR)/ucode/boot.bin $(B_DIR)/ucode/boot.bin
@diff -q $(E_DIR)/ucode/game.bin $(B_DIR)/ucode/game.bin
testall:
REGION=ntsc RELEASE=final make test
REGION=ntsc RELEASE=1.0 make test
REGION=ntsc RELEASE=beta make test
REGION=pal RELEASE=final make test
REGION=pal RELEASE=beta make test
REGION=jap RELEASE=final make test
@diff -q $(E_DIR)/ucode/library.bin $(B_DIR)/ucode/library.bin
@diff -q $(E_DIR)/ucode/rarezip.bin $(B_DIR)/ucode/rarezip.bin
@diff -q $(E_DIR)/ucode/setup.bin $(B_DIR)/ucode/setup.bin
################################################################################
# Miscellaneous
all: library setup lang stagesetup
%.o: %.c
python tools/asmpreproc/asm-processor.py -O2 $< | $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc -c $(CFLAGS) tools/asmpreproc/include-stdin.c -o $@ -O2
python tools/asmpreproc/asm-processor.py -O2 $< --post-process $@ --assembler "$(TOOLCHAIN)-as -march=vr4300 -mabi=32" --asm-prelude tools/asmpreproc/prelude.s
rom: $(B_SETUP_BINZ_FILES) $(B_DIR)/ucode/setup.bin
all: stagesetup lang boot library setup rarezip game gvars
rom: all
tools/inject pd.$(ROMID).z64
clean:
rm -rf build/*
find src -name '*.o' -delete
+21 -6
View File
@@ -9,18 +9,33 @@ SECTIONS
ziplistSegmentRomStart = 0x4fc40;
.boot 0x00001000 : AT(0) {
build/ntsc-final/boot.o (.text);
build/ntsc-final/boot.o (.data);
src/boot/boot.o (.text);
src/boot/boot.o (.data);
}
.library 0x00003050 : AT(SIZEOF(.boot)) {
build/ntsc-final/library.o (.text);
build/ntsc-final/library.o (.data);
src/library/library.o (.text);
src/library/library.o (.data);
}
.setup 0x80059fe0 : AT(SIZEOF(.boot) + SIZEOF(.library)) {
build/ntsc-final/setup.o (.text);
build/ntsc-final/setup.o (.data);
src/setup/setup.o (.text);
src/setup/setup.o (.data);
}
.game 0x7f000000 : AT(SIZEOF(.boot) + SIZEOF(.library) + SIZEOF(.setup)) {
src/game/game_000000.o (.text);
src/game/chr/chraicommands.o (.text);
src/game/game_0601b0.o (.text);
src/game/game_000000.o (.data);
src/game/chr/chraicommands.o (.data);
src/game/game_0601b0.o (.data);
}
.gvars 0x80099fc0 : {
src/gvars/gvars.o (.text);
src/gvars/gvars.o (.data);
}
/DISCARD/ : {
+13 -8
View File
@@ -4,23 +4,28 @@ OUTPUT_ARCH (mips)
SECTIONS
{
.game 0x0f000000 : AT(0) {
build/ntsc-final/game.o (.text);
build/ntsc-final/game.o (.data);
src/game/game_000000.o (.text);
src/game/chr/chraicommands.o (.text);
src/game/game_0601b0.o (.text);
src/game/game_000000.o (.data);
src/game/chr/chraicommands.o (.data);
src/game/game_0601b0.o (.data);
}
.library 0x00003050 : AT(SIZEOF(.game)) {
build/ntsc-final/library.o (.text);
build/ntsc-final/library.o (.data);
src/library/library.o (.text);
src/library/library.o (.data);
}
.setup 0x80059fe0 : AT(SIZEOF(.game) + SIZEOF(.library)) {
build/ntsc-final/setup.o (.text);
build/ntsc-final/setup.o (.data);
src/setup/setup.o (.text);
src/setup/setup.o (.data);
}
.gvars 0x80099fc0 : AT(SIZEOF(.game) + SIZEOF(.library) + SIZEOF(.setup)) {
build/ntsc-final/gvars.o (.text);
build/ntsc-final/gvars.o (.data);
src/gvars/gvars.o (.text);
src/gvars/gvars.o (.data);
}
/DISCARD/ : {
+2 -2
View File
@@ -4,8 +4,8 @@ OUTPUT_ARCH (mips)
SECTIONS
{
.gvars 0x80099fc0 : AT(0) {
build/ntsc-final/gvars.o (.text);
build/ntsc-final/gvars.o (.data);
src/gvars/gvars.o (.text);
src/gvars/gvars.o (.data);
}
/DISCARD/ : {
+12 -7
View File
@@ -4,22 +4,27 @@ OUTPUT_ARCH (mips)
SECTIONS
{
.library 0x00003050 : AT(0) {
build/ntsc-final/library.o (.text);
build/ntsc-final/library.o (.data);
src/library/library.o (.text);
src/library/library.o (.data);
}
.setup 0x80059fe0 : AT(SIZEOF(.library)) {
build/ntsc-final/setup.o (.data);
src/setup/setup.o (.data);
}
.game 0x7f000000 : AT(SIZEOF(.library) + SIZEOF(.setup)) {
build/ntsc-final/game.o (.text);
build/ntsc-final/game.o (.data);
src/game/game_000000.o (.text);
src/game/chr/chraicommands.o (.text);
src/game/game_0601b0.o (.text);
src/game/game_000000.o (.data);
src/game/chr/chraicommands.o (.data);
src/game/game_0601b0.o (.data);
}
.gvars 0x7f000000 : AT(SIZEOF(.library) + SIZEOF(.setup) + SIZEOF(.game)) {
build/ntsc-final/gvars.o (.text);
build/ntsc-final/gvars.o (.data);
src/gvars/gvars.o (.text);
src/gvars/gvars.o (.data);
}
/DISCARD/ : {
+14 -16
View File
@@ -3,22 +3,20 @@ OUTPUT_ARCH (mips)
SECTIONS
{
.text 0x70200000 : AT(0x0000) {
build/rarezip.tmp.o (.text);
build/rarezip.tmp.o (.data);
}
.text 0x70200000 : AT(0x0000) {
src/rarezip/rarezip.o (.text);
src/rarezip/rarezip.o (.data);
}
/DISCARD/ : {
* (.MIPS.abiflags);
* (.options);
* (.gnu.attributes);
* (.pdr);
* (.mdebug);
* (.gptab.bss);
* (.gptab.data);
* (.reginfo);
}
/DISCARD/ : {
* (.MIPS.abiflags);
* (.options);
* (.gnu.attributes);
* (.pdr);
* (.mdebug);
* (.gptab.bss);
* (.gptab.data);
* (.reginfo);
}
}
-25
View File
@@ -1,25 +0,0 @@
/*OUTPUT_FORMAT ("elf32-bigmips")*/
OUTPUT_ARCH (mips)
SECTIONS
{
.data 0x00003050 : AT(0x3050) {
build/ntsc-final/library.o (.text);
build/ntsc-final/library.o (.data);
}
.data 0x80059fe0 : AT(0x0000) {
build/ntsc-final/setup.o (.data);
}
/DISCARD/ : {
* (.MIPS.abiflags);
* (.options);
* (.gnu.attributes);
* (.pdr);
* (.mdebug);
* (.gptab.bss);
* (.gptab.data);
* (.reginfo);
}
}
+10 -5
View File
@@ -4,17 +4,22 @@ OUTPUT_ARCH (mips)
SECTIONS
{
.setup 0x80059fe0 : AT(0x0000) {
build/ntsc-final/setup.o (.data);
src/setup/setup.o (.data);
}
.game 0x7f000000 : AT(SIZEOF(.setup)) {
build/ntsc-final/game.o (.text);
build/ntsc-final/game.o (.data);
src/game/game_000000.o (.text);
src/game/chr/chraicommands.o (.text);
src/game/game_0601b0.o (.text);
src/game/game_000000.o (.data);
src/game/chr/chraicommands.o (.data);
src/game/game_0601b0.o (.data);
}
.gvars 0x80099fc0 : AT(SIZEOF(.setup) + SIZEOF(.game)) {
build/ntsc-final/gvars.o (.text);
build/ntsc-final/gvars.o (.data);
src/gvars/gvars.o (.text);
src/gvars/gvars.o (.data);
}
/DISCARD/ : {
View File
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loaded 100 of 646 files, more files were not shown because too many files have changed in this diff. Show more