mirror of
https://github.com/rvtr/ctr_firmware.git
synced 2025-10-31 07:51:08 -04:00
firmwareビルド環境の設定、fatfsライブラリ追加。 git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_firmware@253 b871894f-2f95-9b40-918c-086798483c85
351 lines
9.5 KiB
Makefile
351 lines
9.5 KiB
Makefile
#! make -f
|
|
#----------------------------------------------------------------------------
|
|
# Project: CtrBrom - commondefs - common definitions for build system
|
|
# File: commondefs
|
|
#
|
|
# Copyright 2008 Nintendo. All rights reserved.
|
|
#
|
|
# These coded instructions, statements, and computer programs contain
|
|
# proprietary information of Nintendo of America Inc. and/or Nintendo
|
|
# Company Ltd., and are protected by Federal copyright law. They may
|
|
# not be disclosed to third parties or copied or duplicated in any form,
|
|
# in whole or in part, without the prior written consent of Nintendo.
|
|
#
|
|
# $Date:: 2009-01-30#$
|
|
# $Rev: 244 $
|
|
# $Author: nakasima $
|
|
#----------------------------------------------------------------------------
|
|
ifndef FIRM_COMMONDEFS_
|
|
FIRM_COMMONDEFS_ = TRUE
|
|
|
|
include $(CTRFIRM_ROOT)/build/buildtools/commondefs.config
|
|
|
|
CTR_NO_STD_PCHDR = TRUE # プリコンパイルヘッダ抑止
|
|
USE_MY_RULE_BIN = TRUE
|
|
|
|
|
|
EMPTY ?=
|
|
SPACE ?= $(EMPTY) $(EMPTY)
|
|
|
|
#
|
|
# SDK Major Version
|
|
#
|
|
|
|
FIRMSDK_VERSION_MAJOR ?= 0
|
|
|
|
# EXO_PLATFORM = [TEG/TS]
|
|
EXO_PLATFORM ?= $(FIRM_PLATFORM)
|
|
|
|
#
|
|
# CodeGen Target
|
|
#
|
|
# FIRM_PLATFORM = [TS/TEG/MG20EMU/NE1EMU]
|
|
# FIRM_MEMSIZE = [64M/128M]
|
|
# FIRM_CODEGEN = [ARM/THUMB]
|
|
# FIRM_PROC = [ARM11/ARM9]
|
|
#
|
|
# FIRM_PROMGEN = [TRUE/FALSE]
|
|
# FIRM_TARGET = [BROM/FIRM/APP]
|
|
# FIRM_MEDIA = [NAND/NOR/GCD/BROM]
|
|
#
|
|
|
|
FIRM_PLATFORM ?= MG20EMU
|
|
FIRM_MEMSIZE ?= 128M
|
|
FIRM_CODEGEN ?= THUMB
|
|
FIRM_PROC ?= ARM11
|
|
FIRM_TARGET ?= BROM
|
|
FIRM_MEDIA ?= BROM
|
|
|
|
# replace TwlSDK
|
|
CTR_PLATFORM = $(FIRM_PLATFORM)
|
|
CTR_MEMSIZE = $(FIRM_MEMSIZE)
|
|
CTR_CODEGEN = $(FIRM_CODEGEN)
|
|
CTR_PROC = $(FIRM_PROC)
|
|
|
|
# replace NitroSDK
|
|
ifndef CODEGEN_PROC
|
|
CODEGEN_PROC := $(FIRM_PROC)
|
|
endif
|
|
|
|
ifeq ($(FIRM_CODEGEN),ALL)
|
|
FIRM_CODEGEN_ALL ?= TRUE
|
|
override FIRM_CODEGEN = ARM
|
|
endif
|
|
|
|
ifeq ($(FIRM_CODEGEN),ARM)
|
|
FIRM_CODEGEN_ARCH =
|
|
else # ($(FIRM_CODEGEN),THUMB)
|
|
FIRM_CODEGEN_ARCH = .thumb
|
|
endif
|
|
|
|
#
|
|
# C Compiler type
|
|
#
|
|
# CTR_CCTYPE = [CW/SNC/RVCT]
|
|
#
|
|
|
|
# replace NitroSDK
|
|
CTR_CCTYPE := RVCT
|
|
|
|
#
|
|
# SDK build type
|
|
#
|
|
# one of [FIRM_DEBUG/FIRM_RELEASE/FIRM_FINALROM]
|
|
#
|
|
|
|
ifdef FIRM_DEBUG
|
|
FIRM_BUILD_TYPE ?= DEBUG
|
|
FIRM_BUILD_DIR ?= Debug
|
|
|
|
else
|
|
ifdef FIRM_FINALROM
|
|
FIRM_BUILD_TYPE ?= FINALROM
|
|
FIRM_BUILD_DIR ?= Rom
|
|
|
|
else # FIRM_RELEASE (default)
|
|
FIRM_BUILD_TYPE ?= RELEASE
|
|
FIRM_BUILD_DIR ?= Release
|
|
|
|
endif
|
|
endif
|
|
|
|
# replace TwlSDK
|
|
CTR_BUILD_TYPE ?= $(FIRM_BUILD_TYPE)
|
|
CTR_BUILD_DIR ?= $(FIRM_BUILD_DIR)
|
|
|
|
|
|
#
|
|
# Debugger Type
|
|
#
|
|
# one of [ARM/KMC]
|
|
#
|
|
|
|
ifneq ($(FIRM_PLATFORM),MG20EMU)
|
|
ifneq ($(FIRM_PLATFORM),NE1EMU)
|
|
FIRM_DEBUGGER ?= ARM
|
|
endif
|
|
endif
|
|
FIRM_DEBUGGER ?= KMC
|
|
|
|
# replace TwlSDK
|
|
CTR_DEBUGGER ?= $(FIRM_DEBUGGER)
|
|
|
|
|
|
#----------------------------------------------------------------------------
|
|
### SDK Library settings
|
|
|
|
ifeq ($(FIRM_TARGET),BROM)
|
|
ifndef FIRM_PROMGEN
|
|
ifeq ($(CODEGEN_PROC),ARM11)
|
|
CRT0_O ?= crt0.o crt0_excp.o crt0_secure.o
|
|
else # CODEGEN_PROC==ARM9
|
|
CRT0_O ?= crt0.o crt0_excp.o crt0_secure_sp.o
|
|
endif # CODEGEN_PROC==ARM9
|
|
endif # FIRM_PROMGEN
|
|
else # FIRM_TARGET
|
|
ifeq ($(FIRM_TARGET),FIRM)
|
|
CRT0_O ?= crt0_firm.o
|
|
else # FIRM_TARGET_APP
|
|
CRT0_O ?= crt0_app.o
|
|
endif # FIRM_TARGET_APP
|
|
endif # FIRM_TARGET_BROM
|
|
|
|
ifneq ($(FIRM_PROMGEN),TRUE)
|
|
ifdef FIRM_DEF_LINK_SCATLD
|
|
CRT0_O += crt0_scat.o
|
|
endif # FIRM_DEF_LINK_SCATLD
|
|
endif # FIRM_PROMGEN
|
|
|
|
#----------------------------------------------------------------------------
|
|
### CTR-commondefs
|
|
#
|
|
include $(CTRSDK_ROOT)/build/buildtools/commondefs
|
|
|
|
#----------------------------------------------------------------------------
|
|
# FIRM-SDK path settings
|
|
#
|
|
BROM_ROOT := $(call eupath,$(CTRBROM_ROOT))
|
|
BROM_INCDIR := $(BROM_ROOT)/include
|
|
|
|
FIRM_ROOT := $(call eupath,$(CTRFIRM_ROOT))
|
|
FIRM_BUILDTOOLSDIR := $(FIRM_ROOT)/build/buildtools
|
|
FIRM_BUILDSETUPDIR := $(FIRM_ROOT)/build/buildsetup
|
|
FIRM_INCDIR := $(FIRM_ROOT)/include
|
|
FIRM_TOOLSDIR := $(FIRM_ROOT)/tools
|
|
FIRM_KEYSDIR := $(FIRM_ROOT)/build/keys
|
|
FIRM_COMPONENTSDIR := $(FIRM_ROOT)/components
|
|
FIRM_ADDINS ?= $(FIRM_ROOT)/add-ins
|
|
|
|
FIRM_CTRSDK_ROOT ?= $(call eupath,$(CTRFIRM_ROOT))
|
|
FIRM_CTRFIRM_ROOT ?= $(call eupath,$(CTRFIRM_ROOT))
|
|
|
|
FIRM_CTRFIRM_INCDIR := $(FIRM_CTRFIRM_ROOT)/include
|
|
FIRM_CTRFIRM_TOOLSDIR := $(FIRM_CTRFIRM_ROOT)/tools
|
|
|
|
FIRM_BUILDARCH ?= $(CODEGEN_PROC)-$(FIRM_PLATFORM)$(FIRM_CODEGEN_ARCH)
|
|
FIRM_BUILDARCH_ARM11 := ARM11-$(FIRM_PLATFORM)$(FIRM_CODEGEN_ARCH)
|
|
FIRM_BUILDARCH_ARM9 := ARM9-$(FIRM_PLATFORM)$(FIRM_CODEGEN_ARCH)
|
|
|
|
FIRM_BUILDTYPE ?= $(FIRM_BUILDARCH)/$(FIRM_BUILD_DIR)
|
|
FIRM_BUILDTYPE_ARM11 := $(FIRM_BUILDARCH_ARM11)/$(FIRM_BUILD_DIR)
|
|
FIRM_BUILDTYPE_ARM9 := $(FIRM_BUILDARCH_ARM9)/$(FIRM_BUILD_DIR)
|
|
|
|
FIRM_LIBARCH := $(CODEGEN_PROC)-$(FIRM_PLATFORM)
|
|
FIRM_LIBTYPE := $(FIRM_LIBARCH)/$(FIRM_BUILD_DIR)
|
|
FIRM_LIBDIR := $(FIRM_ROOT)/lib/$(FIRM_LIBTYPE)
|
|
FIRM_LIBSYSCALLDIR := $(FIRM_ROOT)/lib/$(FIRM_LIBARCH)/etc
|
|
FIRM_LIBSUFFIX := .firm$(FIRM_CODEGEN_ARCH)
|
|
|
|
|
|
FIRM_SPECDIR := $(FIRM_INCDIR)/firm/specfiles
|
|
FIRM_SPECARCH := $(CODEGEN_PROC)
|
|
ifneq ($(FIRM_TARGET),FIRM)
|
|
FIRM_SPECARCH := $(FIRM_SPECARCH)-$(FIRM_TARGET)
|
|
endif
|
|
DEFAULT_FIRM_LCFILE := $(FIRM_SPECDIR)/$(FIRM_SPECARCH).ldscript
|
|
ifndef FIRM_PROMGEN
|
|
DEFAULT_FIRM_LCFILE_TEMPLATE := $(FIRM_SPECDIR)/$(FIRM_SPECARCH)$(LCF_SUFFIX_).ldscript.template
|
|
DEFAULT_FIRM_LCFILE_SPEC := $(FIRM_SPECDIR)/$(FIRM_SPECARCH).lsf
|
|
else # FIRM_PROMGEN
|
|
DEFAULT_FIRM_LCFILE_TEMPLATE := $(FIRM_SPECDIR)/PROM.ldscript.template
|
|
DEFAULT_FIRM_LCFILE_SPEC := $(FIRM_SPECDIR)/PROM.lsf
|
|
endif # FIRM_PROMGEN
|
|
DEFAULT_FIRM_ROM_SPEC := $(FIRM_SPECDIR)/ROM-$(TWL_PLATFORM).rsf
|
|
|
|
FIRM_LCF_MAPHDRS := $(BROM_INCDIR)/brom/hw/$(FIRM_PROC)/mmap_brom.h \
|
|
$(CTR_INCDIR)/ctr/hw/$(FIRM_PROC)/mmap_global.h \
|
|
$(FIRM_CTRFIRM_INCDIR)/firm/hw/$(FIRM_PROC)/mmap_firm.h \
|
|
|
|
ifeq ($(FIRM_PROC),ARM11)
|
|
FIRM_LCF_MAPHDRS += $(FIRM_INCDIR)/firm/hw/$(FIRM_PROC)/mmap_axi_wram.h
|
|
else # FIRM_PROC == ARM9
|
|
FIRM_LCF_MAPHDRS += $(FIRM_INCDIR)/firm/hw/$(FIRM_PROC)/mmap_tcm.h
|
|
endif # FIRM_PROC == ARM9
|
|
|
|
|
|
# replace TwlSDK
|
|
CTR_BUILDARCH ?= $(FIRM_BUILDARCH)
|
|
|
|
|
|
### Compiler & Linker settings
|
|
|
|
FIRM_PROM_SRCDIR ?= $(FIRM_ROOT)/build/libraries/prom
|
|
FIRM_PROM_SRC ?= prom_crt0.c
|
|
ifeq ($(FIRM_PROMGEN),TRUE)
|
|
SRCDIR += $(FIRM_PROM_SRCDIR)
|
|
#SRCS += $(FIRM_PROM_SRC)
|
|
endif
|
|
|
|
# replace NitroSDK
|
|
LCFILE_TEMPLATE = $(DEFAULT_FIRM_LCFILE_TEMPLATE)
|
|
LCFILE_TEMPLATE_RV = $(shell cygpath -m $(DEFAULT_FIRM_LCFILE_TEMPLATE))
|
|
LCFILE_SPEC = $(DEFAULT_FIRM_LCFILE_SPEC)
|
|
LCFILE_AUTOGEN = $(BINDIR)/$(notdir $(LCFILE_SPEC:.lsf=.autogen.ldscript))
|
|
LCFILE = $(LCFILE_AUTOGEN)
|
|
|
|
LDRES_FILE = # $(LDRES_AUTOGEN)
|
|
|
|
LDEPENDS_LCF += $(FIRM_BUILDTOOLSDIR)/commondefs $(FIRM_LCF_MAPHDRS)
|
|
LDEPENDS_RES += $(FIRM_BUILDTOOLSDIR)/commondefs
|
|
|
|
|
|
### SDK Library settings
|
|
|
|
ifeq ($(CODEGEN_PROC),ARM11)
|
|
|
|
FIRM_LIBS_BASE ?= \
|
|
libos \
|
|
libmi \
|
|
libvlink \
|
|
|
|
ifdef FIRM_PROFILE_TYPE
|
|
FIRM_LIBS_BASE += libos.$(FIRM_PROFILE_TYPE)
|
|
endif
|
|
|
|
else # ($(CODEGEN_PROC),ARM9)
|
|
|
|
FIRM_LIBS_BASE ?= \
|
|
libos_sp \
|
|
libmi_sp \
|
|
libvlink_sp \
|
|
|
|
ifdef FIRM_PROFILE_TYPE
|
|
FIRM_LIBS_BASE += libos_sp.$(FIRM_PROFILE_TYPE)
|
|
endif
|
|
|
|
endif
|
|
|
|
FIRM_LIBS ?= $(CRT0_O) $(addsuffix $(FIRM_LIBSUFFIX).a,$(FIRM_LIBS_BASE))
|
|
|
|
FIRM_LDEPENDS_DBG ?= $(CTRFIRM_ROOT)/build/libraries/os/common/os_printf.c \
|
|
|
|
#----------------------------------------------------------------------------
|
|
# MY BUILD TOOLS
|
|
#
|
|
MAKENORFIRM := $(FIRM_CTRFIRM_TOOLSDIR)/bin/makenorfirm.exe
|
|
MAKENANDFIRM := $(FIRM_CTRFIRM_TOOLSDIR)/bin/makenandfirm.exe
|
|
MAKEGCDFIRM := $(FIRM_CTRFIRM_TOOLSDIR)/bin/makegcdfirm.exe
|
|
OPENSSL := $(FIRM_CTRFIRM_TOOLSDIR)/openssl/openssl.exe
|
|
|
|
MAKEFIRM_RSA_PRVKEY ?= $(call eupath,$(FIRM_CTRFIRM_TOOLSDIR))/openssl/rsa_private.der
|
|
MAKEFIRM_RSA_PUBKEY ?= $(call eupath,$(FIRM_CTRFIRM_TOOLSDIR))/openssl/rsa_public.der
|
|
|
|
MAKEFIRM_FLAGS ?=
|
|
|
|
ifneq ($(filter NORFIRM NANDFIRM GCDFIRM,$(FIRM_TARGET)),)
|
|
FIRM_STRIP_AXF := TRUE
|
|
endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
ifeq ($(CTR_PRIVATE),TRUE)
|
|
FIRM_PRIVATE := TRUE
|
|
endif
|
|
|
|
ifeq ($(CTR_WITH_ARM9),TRUE)
|
|
FIRM_WITH_ARM9 := TRUE
|
|
endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
### Global Library resettings
|
|
|
|
GINCLUDES := $(FIRM_INCDIR) $(FIRM_CTRFIRM_INCDIR) $(GINCLUDES) $(BROM_INCDIR)
|
|
GLIBRARY_DIRS := $(FIRM_LIBDIR) $(GLIBRARY_DIRS)
|
|
GLIBRARIES := $(FIRM_LIBS) \
|
|
|
|
# $(filter-out $(addsuffix $(CTR_LIBSUFFIX).a,$(FIRM_LIBS_BASE)),$(GLIBRARIES))
|
|
|
|
|
|
#----------------------------------------------------------------------------
|
|
# CTRFIRM_INSTALL_ROOT
|
|
#
|
|
|
|
ifdef CTRFIRM_INSTALL_ROOT
|
|
CTRFIRM_INSTALL_ROOT_ := $(CTRFIRM_INSTALL_ROOT)
|
|
else
|
|
CTRFIRM_INSTALL_ROOT_ := $(CTRFIRM_ROOT)
|
|
endif
|
|
|
|
FIRM_INSTALL_ROOT := $(subst $(SPACE),\ ,$(subst \,/,$(CTRFIRM_INSTALL_ROOT_)))
|
|
FIRM_INSTALL_INCDIR := $(FIRM_INSTALL_ROOT)/include
|
|
FIRM_INSTALL_TOOLSDIR := $(FIRM_INSTALL_ROOT)/tools
|
|
FIRM_INSTALL_LIBDIR := $(FIRM_INSTALL_ROOT)/lib/$(FIRM_LIBTYPE)
|
|
FIRM_INSTALL_PROMDIR := $(FIRM_INSTALL_TOOLSDIR)/prom/$(FIRM_PLATFORM)$(FIRM_CODEGEN_ARCH)
|
|
FIRM_INSTALL_COMPONENTSDIR := $(FIRM_INSTALL_ROOT)/components
|
|
FIRM_INSTALL_ADDINS := $(FIRM_INSTALL_ROOT)/add-ins
|
|
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Compiler flags
|
|
#
|
|
MACRO_FLAGS += -DFIRM_TARGET_$(FIRM_TARGET) \
|
|
-DFIRM_MEDIA='$(DFIRM_MEDIA)' \
|
|
-DFIRM_ROOT='$(FIRM_ROOT)' \
|
|
-DBROM_TARGET_$(FIRM_TARGET) \
|
|
|
|
|
|
#----------------------------------------------------------------------------
|
|
endif # FIRM_COMMONDEFS_
|
|
#----- End of commondefs -----
|