mirror of
https://github.com/zeldaret/oot
synced 2026-08-04 09:09:22 -04:00
da4a1f661c
* [rsp] Introduce microcode build process, disassemble and build both rspboot versions * Suggested changes * Check-in tool for generating armips.cpp from upstream sources, regen armips.cpp against a newer commit * License armips_gen.py, add notice that armips.cpp is automatically generated * Qualify comment with X105 * Clarify the assumed purpose of rspboot releasing SP_SEMAPHORE
117 lines
3.8 KiB
Makefile
117 lines
3.8 KiB
Makefile
PROGRAMS := bin2c mkdmadata mkldscript mkspecrules preprocess_pragmas vtxdis
|
|
|
|
UNAME_S := $(shell uname -s)
|
|
ifeq ($(UNAME_S),Linux)
|
|
DETECTED_OS=linux
|
|
else ifeq ($(UNAME_S),Darwin)
|
|
DETECTED_OS=macos
|
|
else
|
|
$(error Unsupported OS: $(UNAME_S))
|
|
endif
|
|
|
|
IDO_RECOMP_VERSION := v1.2
|
|
IDO_RECOMP_5_3_DIR := ido_recomp/$(DETECTED_OS)/5.3
|
|
IDO_RECOMP_7_1_DIR := ido_recomp/$(DETECTED_OS)/7.1
|
|
|
|
EGCS_BINUTILS_VERSION := 0.6
|
|
EGCS_GCC_VERSION := 0.7
|
|
EGCS_DIR := egcs/$(DETECTED_OS)
|
|
|
|
WARNFLAGS := -Wall -Wextra -pedantic
|
|
OPTFLAGS := -O2 -g
|
|
LDFLAGS :=
|
|
|
|
ifeq ($(shell command -v clang >/dev/null 2>&1; echo $$?),0)
|
|
CC := clang
|
|
CXX := clang++
|
|
else
|
|
CC := gcc
|
|
CXX := g++
|
|
endif
|
|
|
|
LLD ?= 0
|
|
|
|
ifeq ($(shell command -v ld.lld >/dev/null 2>&1; echo $$?),0)
|
|
LLD := 1
|
|
endif
|
|
|
|
ifneq ($(LLD),0)
|
|
LDFLAGS += -fuse-ld=lld
|
|
endif
|
|
|
|
.PHONY: all clean distclean
|
|
|
|
all: $(PROGRAMS) armips $(IDO_RECOMP_5_3_DIR) $(IDO_RECOMP_7_1_DIR) $(EGCS_DIR)
|
|
$(MAKE) -C fado
|
|
$(MAKE) -C audio
|
|
$(MAKE) -C com-plugin
|
|
$(MAKE) -C assets
|
|
|
|
clean:
|
|
$(RM) $(PROGRAMS) $(addsuffix .exe,$(PROGRAMS))
|
|
$(RM) -r compiler_archives/archives
|
|
$(RM) -r ido_recomp egcs
|
|
$(MAKE) -C fado clean
|
|
$(MAKE) -C audio clean
|
|
$(MAKE) -C com-plugin clean
|
|
$(MAKE) -C assets clean
|
|
|
|
distclean: clean
|
|
$(MAKE) -C audio distclean
|
|
$(MAKE) -C assets distclean
|
|
$(RM) armips
|
|
|
|
armips: armips.cpp
|
|
$(CXX) $(WARNFLAGS) -std=c++17 $(OPTFLAGS) -s -fno-rtti -pipe -Wno-unused-parameter -Wno-sign-compare $< -o $@
|
|
|
|
bin2c_SOURCES := bin2c.c
|
|
mkdmadata_SOURCES := mkdmadata.c spec.c util.c
|
|
mkldscript_SOURCES := mkldscript.c spec.c util.c
|
|
mkspecrules_SOURCES := mkspecrules.c spec.c util.c
|
|
preprocess_pragmas_SOURCES := preprocess_pragmas.c
|
|
vtxdis_SOURCES := vtxdis.c
|
|
|
|
define COMPILE
|
|
$(1): $($1_SOURCES)
|
|
$(CC) $(WARNFLAGS) -std=gnu99 $(OPTFLAGS) $$^ $(LDFLAGS) -o $$@
|
|
endef
|
|
|
|
$(foreach p,$(PROGRAMS),$(eval $(call COMPILE,$(p))))
|
|
|
|
compiler_archives/archives/ido-5.3-recomp-$(DETECTED_OS).tar.gz:
|
|
mkdir -p $(@D)
|
|
curl -sL https://github.com/decompals/ido-static-recomp/releases/download/$(IDO_RECOMP_VERSION)/ido-5.3-recomp-$(DETECTED_OS).tar.gz -o $@.unverified
|
|
sha256sum -c compiler_archives/signatures/ido-5.3-recomp-$(DETECTED_OS).tar.gz.sha256
|
|
mv $@.unverified $@
|
|
|
|
$(IDO_RECOMP_5_3_DIR): compiler_archives/archives/ido-5.3-recomp-$(DETECTED_OS).tar.gz
|
|
mkdir -p $@
|
|
tar xzf $< -C $@
|
|
|
|
compiler_archives/archives/ido-7.1-recomp-$(DETECTED_OS).tar.gz:
|
|
mkdir -p $(@D)
|
|
curl -sL https://github.com/decompals/ido-static-recomp/releases/download/$(IDO_RECOMP_VERSION)/ido-7.1-recomp-$(DETECTED_OS).tar.gz -o $@.unverified
|
|
sha256sum -c compiler_archives/signatures/ido-7.1-recomp-$(DETECTED_OS).tar.gz.sha256
|
|
mv $@.unverified $@
|
|
|
|
$(IDO_RECOMP_7_1_DIR): compiler_archives/archives/ido-7.1-recomp-$(DETECTED_OS).tar.gz
|
|
mkdir -p $@
|
|
tar xzf $< -C $@
|
|
|
|
compiler_archives/archives/mips-binutils-egcs-2.9.5-$(DETECTED_OS).tar.gz:
|
|
mkdir -p $(@D)
|
|
curl -sL https://github.com/decompals/mips-binutils-egcs-2.9.5/releases/download/$(EGCS_BINUTILS_VERSION)/mips-binutils-egcs-2.9.5-$(DETECTED_OS).tar.gz -o $@.unverified
|
|
sha256sum -c compiler_archives/signatures/mips-binutils-egcs-2.9.5-$(DETECTED_OS).tar.gz.sha256
|
|
mv $@.unverified $@
|
|
|
|
compiler_archives/archives/mips-gcc-egcs-2.91.66-$(DETECTED_OS).tar.gz:
|
|
mkdir -p $(@D)
|
|
curl -sL https://github.com/decompals/mips-gcc-egcs-2.91.66/releases/download/$(EGCS_GCC_VERSION)/mips-gcc-egcs-2.91.66-$(DETECTED_OS).tar.gz -o $@.unverified
|
|
sha256sum -c compiler_archives/signatures/mips-gcc-egcs-2.91.66-$(DETECTED_OS).tar.gz.sha256
|
|
mv $@.unverified $@
|
|
|
|
$(EGCS_DIR): compiler_archives/archives/mips-binutils-egcs-2.9.5-$(DETECTED_OS).tar.gz compiler_archives/archives/mips-gcc-egcs-2.91.66-$(DETECTED_OS).tar.gz
|
|
mkdir -p $@
|
|
tar xzf compiler_archives/archives/mips-binutils-egcs-2.9.5-$(DETECTED_OS).tar.gz -C $@
|
|
tar xzf compiler_archives/archives/mips-gcc-egcs-2.91.66-$(DETECTED_OS).tar.gz -C $@
|