#! 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. # # $Log: $ # $NoKeywords: $ #---------------------------------------------------------------------------- ifndef BROMSDK_COMMONDEFS_ BROMSDK_COMMONDEFS_ = TRUE 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 = [TEG/TS] # 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 ?= TEG 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 [ISD/KMC/ARM] # BROM_DEBUGGER ?= KMC # replace TwlSDK CTR_DEBUGGER ?= $(BROM_DEBUGGER) #---------------------------------------------------------------------------- ### 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 := $(BROM_LIBARCH) 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-$(CTR_PLATFORM).rsf BROM_LCF_MAPHDRS := $(BROM_INCDIR)/brom/hw/$(BROM_PROC)/mmap_global.h \ $(BROM_INCDIR)/brom/hw/$(BROM_PROC)/mmap_brom.h \ $(BROM_CTRFIRM_INCDIR)/firm/hw/$(BROM_PROC)/mmap_firm.h \ $(BROM_CTRFIRM_INCDIR)/firm/hw/$(BROM_PROC)/mmap_wram.h \ ifeq ($(BROM_PROC),ARM11) 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 # replace NitroSDK LCFILE_TEMPLATE ?= $(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 ($(BROM_TARGET),BROM) ifndef BROM_PROMGEN ifeq ($(CODEGEN_PROC),ARM11) CRT0_O ?= crt0.o crt0_secure.o else # CODEGEN_PROC==ARM9 CRT0_O ?= crt0.o crt0_secure_sp.o endif # CODEGEN_PROC==ARM9 endif # BROM_PROMGEN else # BROM_TARGET CRT0_O ?= crt0_app.o endif # BROM_TARGET ifdef BROM_DEF_LINK_SCATLD CRT0_O += crt0_scat.o endif # BROM_DEF_LINK_SCATLD ifeq ($(CODEGEN_PROC),ARM11) BROM_LIBS_BASE ?= \ libos \ libmi \ libpxi \ libsyscall \ libswi \ libpad \ libpm \ libgcd \ libnvram \ libacsign \ libromsd \ libprint_hex \ libvlink \ ifdef BROM_PROFILE_TYPE BROM_LIBS_BASE += libos.$(BROM_PROFILE_TYPE) endif else # ($(CODEGEN_PROC),ARM9) BROM_LIBS_BASE ?= \ libos_sp \ libmi_sp \ libpxi_sp \ libswi_sp \ libsyscall_sp \ libpad_sp \ libpm_sp \ libgcd_sp \ libnvram_sp \ libaes_sp \ libacsign_sp \ libromsd_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_PLATFORM_$(BROM_PLATFORM) \ -DBROM_TARGET_$(BROM_TARGET) \ -DBROM_KEYSDIR='$(BROM_KEYSDIR)' \ -DMAKEFIRM_RSA_PUBKEY='$(MAKEFIRM_RSA_PUBKEY)' \ -DBROM_ROOT='$(BROM_ROOT)' \ #---------------------------------------------------------------------------- endif # CTRBROM_COMMONDEFS_ #----- End of commondefs -----