#! 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 -----