ctr_firmware/trunk/bootrom/build/buildtools/commondefs
nakasima 763d90dc7b PROM用ソースの共通化。
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_firmware@175 b871894f-2f95-9b40-918c-086798483c85
2009-01-15 10:32:04 +00:00

351 lines
9.3 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:: $
# $Rev$
# $Author$
#----------------------------------------------------------------------------
ifndef BROM_COMMONDEFS_
BROM_COMMONDEFS_ = TRUE
include $(CTRBROM_ROOT)/build/buildtools/commondefs.config
CTR_NO_STD_PCHDR = TRUE # プリコンパイルヘッダ抑止
USE_MY_RULE_BIN = TRUE
EMPTY ?=
SPACE ?= $(EMPTY) $(EMPTY)
#
# SDK Major Version
#
BROMSDK_VERSION_MAJOR ?= 0
# EXO_PLATFORM = [TEG/TS]
EXO_PLATFORM ?= $(BROM_PLATFORM)
#
# CodeGen Target
#
# BROM_PLATFORM = [TS/TEG/MG20EMU/NE1EMU]
# BROM_MEMSIZE = [64M/128M]
# BROM_CODEGEN = [ARM/THUMB]
# BROM_PROC = [ARM11/ARM9]
#
# BROM_PROMGEN = [TRUE/FALSE]
# BROM_TARGET = [BROM/NORFIRM/NANDFIRM/GCDFIRM/APP]
#
BROM_PLATFORM ?= MG20EMU
BROM_MEMSIZE ?= 128M
BROM_CODEGEN ?= THUMB
BROM_PROC ?= ARM11
BROM_TARGET ?= BROM
# replace TwlSDK
CTR_PLATFORM = $(BROM_PLATFORM)
CTR_MEMSIZE = $(BROM_MEMSIZE)
CTR_CODEGEN = $(BROM_CODEGEN)
CTR_PROC = $(BROM_PROC)
# replace NitroSDK
ifndef CODEGEN_PROC
CODEGEN_PROC := $(BROM_PROC)
endif
ifeq ($(BROM_CODEGEN),ALL)
BROM_CODEGEN_ALL ?= TRUE
override BROM_CODEGEN = ARM
endif
ifeq ($(BROM_CODEGEN),ARM)
BROM_CODEGEN_ARCH =
else # ($(BROM_CODEGEN),THUMB)
BROM_CODEGEN_ARCH = .thumb
endif
#
# C Compiler type
#
# CTR_CCTYPE = [CW/SNC/RVCT]
#
# replace NitroSDK
CTR_CCTYPE := RVCT
#
# SDK build type
#
# one of [BROM_DEBUG/BROM_RELEASE/BROM_FINALROM]
#
ifdef BROM_DEBUG
BROM_BUILD_TYPE ?= DEBUG
BROM_BUILD_DIR ?= Debug
else
ifdef BROM_FINALROM
BROM_BUILD_TYPE ?= FINALROM
BROM_BUILD_DIR ?= Rom
else # BROM_RELEASE (default)
BROM_BUILD_TYPE ?= RELEASE
BROM_BUILD_DIR ?= Release
endif
endif
# replace TwlSDK
CTR_BUILD_TYPE ?= $(BROM_BUILD_TYPE)
CTR_BUILD_DIR ?= $(BROM_BUILD_DIR)
#
# PMIC Revision
#
BROM_PMIC_REV ?= 100
# replace TwlSDK
CTR_PMIC_REV ?= $(BROM_PMIC_REV)
#
# Debugger Type
#
# one of [ARM/KMC]
#
ifeq ($(BROM_PLATFORM),MG20EMU)
BROM_DEBUGGER ?= KMC
endif
BROM_DEBUGGER ?= ARM
# replace TwlSDK
CTR_DEBUGGER ?= $(BROM_DEBUGGER)
#----------------------------------------------------------------------------
### SDK Library settings
ifeq ($(BROM_TARGET),BROM)
ifndef BROM_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 # BROM_PROMGEN
else # BROM_TARGET
CRT0_O ?= crt0_app.o
endif # BROM_TARGET
ifneq ($(BROM_PROMGEN),TRUE)
ifdef BROM_DEF_LINK_SCATLD
CRT0_O += crt0_scat.o
endif # BROM_DEF_LINK_SCATLD
endif # BROM_PROMGEN
#----------------------------------------------------------------------------
### CTR-commondefs
#
include $(CTRFIRM_ROOT)/build/buildtools/commondefs
#----------------------------------------------------------------------------
# BROM-SDK path settings
#
BROM_ROOT := $(call eupath,$(CTRBROM_ROOT))
BROM_BUILDTOOLSDIR := $(BROM_ROOT)/build/buildtools
BROM_BUILDSETUPDIR := $(BROM_ROOT)/build/buildsetup
BROM_INCDIR := $(BROM_ROOT)/include
BROM_TOOLSDIR := $(BROM_ROOT)/tools
BROM_KEYSDIR := $(BROM_ROOT)/build/keys
BROM_COMPONENTSDIR := $(BROM_ROOT)/components
BROM_ADDINS ?= $(BROM_ROOT)/add-ins
BROM_CTRSDK_ROOT ?= $(call eupath,$(CTRBROM_ROOT))
BROM_CTRFIRM_ROOT ?= $(call eupath,$(CTRFIRM_ROOT))
BROM_CTRFIRM_INCDIR := $(BROM_CTRFIRM_ROOT)/include
BROM_CTRFIRM_TOOLSDIR := $(BROM_CTRFIRM_ROOT)/tools
BROM_BUILDARCH ?= $(CODEGEN_PROC)-$(BROM_PLATFORM)$(BROM_CODEGEN_ARCH)
BROM_BUILDARCH_ARM11 := ARM11-$(BROM_PLATFORM)$(BROM_CODEGEN_ARCH)
BROM_BUILDARCH_ARM9 := ARM9-$(BROM_PLATFORM)$(BROM_CODEGEN_ARCH)
BROM_BUILDTYPE ?= $(BROM_BUILDARCH)/$(BROM_BUILD_DIR)
BROM_BUILDTYPE_ARM11 := $(BROM_BUILDARCH_ARM11)/$(BROM_BUILD_DIR)
BROM_BUILDTYPE_ARM9 := $(BROM_BUILDARCH_ARM9)/$(BROM_BUILD_DIR)
BROM_LIBARCH := $(CODEGEN_PROC)-$(BROM_PLATFORM)
BROM_LIBTYPE := $(BROM_LIBARCH)/$(BROM_BUILD_DIR)
BROM_LIBDIR := $(BROM_ROOT)/lib/$(BROM_LIBTYPE)
BROM_LIBSYSCALLDIR := $(BROM_ROOT)/lib/$(BROM_LIBARCH)/etc
BROM_LIBSUFFIX := .brom$(BROM_CODEGEN_ARCH)
BROM_SPECDIR := $(BROM_INCDIR)/brom/specfiles
BROM_SPECARCH := $(CODEGEN_PROC)
ifneq ($(BROM_TARGET),BROM)
BROM_SPECARCH := $(BROM_SPECARCH)-$(BROM_TARGET)
endif
DEFAULT_BROM_LCFILE := $(BROM_SPECDIR)/$(BROM_SPECARCH).ldscript
ifndef BROM_PROMGEN
DEFAULT_BROM_LCFILE_TEMPLATE := $(BROM_SPECDIR)/$(BROM_SPECARCH)$(LCF_SUFFIX_).ldscript.template
DEFAULT_BROM_LCFILE_SPEC := $(BROM_SPECDIR)/$(BROM_SPECARCH).lsf
else # BROM_PROMGEN
DEFAULT_BROM_LCFILE_TEMPLATE := $(BROM_SPECDIR)/PROM.ldscript.template
DEFAULT_BROM_LCFILE_SPEC := $(BROM_SPECDIR)/PROM.lsf
endif # BROM_PROMGEN
DEFAULT_BROM_ROM_SPEC := $(BROM_SPECDIR)/ROM-$(TWL_PLATFORM).rsf
BROM_LCF_MAPHDRS := $(BROM_INCDIR)/brom/hw/$(BROM_PROC)/mmap_brom.h \
$(BROM_CTRFIRM_INCDIR)/ctr/hw/$(BROM_PROC)/mmap_global.h \
$(BROM_CTRFIRM_INCDIR)/firm/hw/$(BROM_PROC)/mmap_firm.h \
ifeq ($(BROM_PROC),ARM11)
BROM_LCF_MAPHDRS += $(BROM_INCDIR)/brom/hw/$(BROM_PROC)/mmap_axi_wram.h
else # BROM_PROC == ARM9
BROM_LCF_MAPHDRS += $(BROM_INCDIR)/brom/hw/$(BROM_PROC)/mmap_tcm.h
endif # BROM_PROC == ARM9
# replace TwlSDK
CTR_BUILDARCH ?= $(BROM_BUILDARCH)
### Compiler & Linker settings
BROM_PROM_SRCDIR ?= $(BROM_ROOT)/build/libraries/prom
BROM_PROM_SRC ?= prom_crt0.c
ifeq ($(BROM_PROMGEN),TRUE)
SRCDIR += $(BROM_PROM_SRCDIR)
SRCS += $(BROM_PROM_SRC)
endif
# replace NitroSDK
LCFILE_TEMPLATE = $(DEFAULT_BROM_LCFILE_TEMPLATE)
LCFILE_TEMPLATE_RV = $(shell cygpath -m $(DEFAULT_BROM_LCFILE_TEMPLATE))
LCFILE_SPEC = $(DEFAULT_BROM_LCFILE_SPEC)
LCFILE_AUTOGEN = $(BINDIR)/$(notdir $(LCFILE_SPEC:.lsf=.autogen.ldscript))
LCFILE = $(LCFILE_AUTOGEN)
LDRES_FILE = # $(LDRES_AUTOGEN)
LDEPENDS_LCF += $(BROM_BUILDTOOLSDIR)/commondefs $(BROM_LCF_MAPHDRS)
LDEPENDS_RES += $(BROM_BUILDTOOLSDIR)/commondefs
### SDK Library settings
ifeq ($(CODEGEN_PROC),ARM11)
BROM_LIBS_BASE ?= \
libos \
libmi \
libvlink \
ifdef BROM_PROFILE_TYPE
BROM_LIBS_BASE += libos.$(BROM_PROFILE_TYPE)
endif
else # ($(CODEGEN_PROC),ARM9)
BROM_LIBS_BASE ?= \
libos_sp \
libmi_sp \
libvlink_sp \
ifdef BROM_PROFILE_TYPE
BROM_LIBS_BASE += libos_sp.$(BROM_PROFILE_TYPE)
endif
endif
BROM_LIBS ?= $(CRT0_O) $(addsuffix $(BROM_LIBSUFFIX).a,$(BROM_LIBS_BASE))
BROM_LDEPENDS_DBG ?= $(CTRBROM_ROOT)/build/libraries/os/common/os_printf.c \
#----------------------------------------------------------------------------
# MY BUILD TOOLS
#
MAKENORFIRM := $(BROM_CTRFIRM_TOOLSDIR)/bin/makenorfirm.exe
MAKENANDFIRM := $(BROM_CTRFIRM_TOOLSDIR)/bin/makenandfirm.exe
MAKEGCDFIRM := $(BROM_CTRFIRM_TOOLSDIR)/bin/makegcdfirm.exe
OPENSSL := $(BROM_CTRFIRM_TOOLSDIR)/openssl/openssl.exe
MAKEFIRM_RSA_PRVKEY ?= $(call eupath,$(BROM_CTRFIRM_TOOLSDIR))/openssl/rsa_private.der
MAKEFIRM_RSA_PUBKEY ?= $(call eupath,$(BROM_CTRFIRM_TOOLSDIR))/openssl/rsa_public.der
MAKEFIRM_FLAGS ?=
ifneq ($(filter NORFIRM NANDFIRM GCDFIRM,$(FIRM_TARGET)),)
FIRM_STRIP_AXF := TRUE
endif
#----------------------------------------------------------------------------
ifeq ($(CTR_PRIVATE),TRUE)
BROM_PRIVATE := TRUE
endif
ifeq ($(CTR_WITH_ARM9),TRUE)
BROM_WITH_ARM9 := TRUE
endif
#----------------------------------------------------------------------------
### Global Library resettings
GINCLUDES := $(BROM_INCDIR) $(BROM_CTRFIRM_INCDIR) $(GINCLUDES)
GLIBRARY_DIRS := $(BROM_LIBDIR) $(GLIBRARY_DIRS)
GLIBRARIES := $(BROM_LIBS) \
# $(filter-out $(addsuffix $(CTR_LIBSUFFIX).a,$(BROM_LIBS_BASE)),$(GLIBRARIES))
#----------------------------------------------------------------------------
# CTRBROM_INSTALL_ROOT
#
ifdef CTRBROM_INSTALL_ROOT
CTRBROM_INSTALL_ROOT_ := $(CTRBROM_INSTALL_ROOT)
else
CTRBROM_INSTALL_ROOT_ := $(CTRBROM_ROOT)
endif
BROM_INSTALL_ROOT := $(subst $(SPACE),\ ,$(subst \,/,$(CTRBROM_INSTALL_ROOT_)))
BROM_INSTALL_INCDIR := $(BROM_INSTALL_ROOT)/include
BROM_INSTALL_TOOLSDIR := $(BROM_INSTALL_ROOT)/tools
BROM_INSTALL_LIBDIR := $(BROM_INSTALL_ROOT)/lib/$(BROM_LIBTYPE)
BROM_INSTALL_PROMDIR := $(BROM_INSTALL_TOOLSDIR)/prom
BROM_INSTALL_COMPONENTSDIR := $(BROM_INSTALL_ROOT)/components
BROM_INSTALL_ADDINS := $(BROM_INSTALL_ROOT)/add-ins
#----------------------------------------------------------------------------
# Compiler flags
#
MACRO_FLAGS += -DBROM_TARGET_$(BROM_TARGET) \
-DBROM_KEYSDIR='$(BROM_KEYSDIR)' \
-DMAKEFIRM_RSA_PUBKEY='$(MAKEFIRM_RSA_PUBKEY)' \
-DBROM_ROOT='$(BROM_ROOT)' \
#----------------------------------------------------------------------------
endif # BROM_COMMONDEFS_
#----- End of commondefs -----