#! make -f #---------------------------------------------------------------------------- # Project: TwlSDK # File: commondefs # # Copyright 2007-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-02-06#$ # $Rev: 9980 $ # $Author: ooshimay $ #---------------------------------------------------------------------------- ifndef TWLSDK_TWL_COMMONDEFS_ TWLSDK_TWL_COMMONDEFS_ = TRUE # # SDK Major Version # TWLSDK_VERSION_MAJOR ?= 5 # # CodeGen Target # # TWL_PLATFORM = [BB/TEG/TS] # TWL_MEMSIZE = [16M/32M] # TWL_CODEGEN = [ARM/THUMB] # TWL_PROC = [ARM9/ARM7] # TWL_PLATFORM ?= TS TWL_MEMSIZE ?= 16M TWL_PROC ?= ARM9 CODEGEN_PROC = $(strip $(TWL_PROC)) # # ArchGen Target # # TWL_ARCHGEN = [LIMITED/HYBRID/ALL] # DEFAULT_ARCHGEN = HYBRID TWL_ARCHGEN ?= $(DEFAULT_ARCHGEN) ARCHGEN_TYPE = $(if $(filter LIMITED,$(TWL_ARCHGEN)),.LTD,$(if $(filter LIMITED_ferret,$(TWL_ARCHGEN)),.LTD,.HYB)) COMP_TYPE = $(if $(filter LIMITED_ferret,$(TWL_ARCHGEN)),.ferret) # # C Compiler type # # TWL_CCTYPE = [CW] # TWL_CCTYPE ?= CW # # Binary build tool switch # TWL_MAKEROM ?= TRUE # # RomSpeedType for makerom.exe # # one of [MROM/1TROM/UNDEFINED] # TWL_ROMSPEED ?= UNDEFINED # # SDK build type # # one of [TWL_DEBUG/TWL_RELEASE/TWL_FINALROM] # # # Codec Mode # # CODEC_MODE = [TWL/NTR] # DEFAULT_CODEC_MODE = TWL MAKEROM_CODEC_MODE ?= $(DEFAULT_CODEC_MODE) ifneq ($(TARGET_DEBUG),) TWL_BUILD_TYPE ?= DEBUG TWL_BUILD_DIR ?= Debug else ifneq ($(TARGET_FINALROM),) TWL_BUILD_TYPE ?= FINALROM TWL_BUILD_DIR ?= Rom else #TWL_RELEASE(default) TWL_BUILD_TYPE ?= RELEASE TWL_BUILD_DIR ?= Release endif endif #---------------------------------------------------------------------------- # TWL-SDK path settings # TWL_INCDIR := $(ROOT)/include TWL_TOOLSDIR := $(TOOLSDIR) TWL_COMPONENTSDIR := $(COMPONENTSDIR) TWL_ADDINS ?= $(ADDINSDIR) TWL_BUILDARCH ?= $(CODEGEN_PROC)-$(TWL_PLATFORM)$(ARCHGEN_TYPE)$(COMP_TYPE)$(CODEGEN_ARCH) TWL_BUILDARCH_ARM9 = ARM9-$(TWL_PLATFORM)$(ARCHGEN_TYPE)$(CODEGEN_ARCH) ifeq ($(DEMO_CHECK_BUILD),) TWL_BUILDARCH_ARM7 ?= ARM7-$(TWL_PLATFORM)$(ARCHGEN_TYPE)$(CODEGEN_ARCH) else TWL_BUILDARCH_ARM7 ?= ARM7-$(TWL_PLATFORM)$(ARCHGEN_TYPE)$(CODEGEN_ARCH_ARM7) endif TWL_BUILDTYPE ?= $(TWL_BUILDARCH)/$(TWL_BUILD_DIR) TWL_BUILDTYPE_ARM9 = $(TWL_BUILDARCH_ARM9)/$(TWL_BUILD_DIR) TWL_BUILDTYPE_ARM7 = $(TWL_BUILDARCH_ARM7)/$(TWL_BUILD_DIR) TWL_LIBARCH = $(CODEGEN_PROC)-$(TWL_PLATFORM) TWL_LIBTYPE = $(TWL_LIBARCH)/$(TWL_BUILD_DIR) TWL_LIBDIR = $(ROOT)/lib/$(TWL_LIBTYPE) TWL_LIBSYSCALLDIR = $(ROOT)/lib/$(TWL_LIBARCH)/etc TWL_LIBSUFFIX ?= .TWL$(ARCHGEN_TYPE)$(CODEGEN_ARCH) #---------------------------------------------------------------------------- # TWL-SYSTEM path settings # ifdef TWLSYSTEM_ROOT TWLSYSTEM_ROOT_ := $(subst $(SPACE),\ ,$(subst \,/,$(TWLSYSTEM_ROOT))) -include $(TWLSYSTEM_ROOT_)/build/buildtools/nnslibdefs endif #---------------------------------------------------------------------------- # TWL-WIRELESS path settings # # libraries should be in # $(ROOT)/lib/TwlWireless # # includes should be in # $(ROOT)/include/twl_wl/ARM7/*.h # # access by #include # # SDK_VERSION_WL is defined in # TWLWIRELESS_VERSION ?= 080602 TWLWIRELESS_PACKAGE ?= TianShan_$(TWLWIRELESS_VERSION) TWLWIRELESS_ROOT = $(subst $(SPACE),\ ,$(subst \,/,$(TWLSDK_ROOT)))/add-ins/TwlWireless/$(TWLWIRELESS_PACKAGE) TWLWIRELESS_LIBDIR = $(subst $(SPACE),\ ,$(subst \,/,$(TWLSDK_ROOT)))/lib/TwlWireless/$(TWL_LIBTYPE) #---------------------------------------------------------------------------- # Compiler settings # ifneq ($(FORCE_BUILD),) ### module subdir src/ obj/ lib/ include/ TWL_SPECDIR = $(TWL_INCDIR)/twl/specfiles ifneq ($(filter TWL,$(TARGET_PLATFORM_LIST)),) DEFAULT_LCFILE = $(TWL_SPECDIR)/$(TWL_LIBARCH).lcf DEFAULT_LCFILE_TEMPLATE = $(TWL_SPECDIR)/$(TWL_LIBARCH).lcf.template DEFAULT_LCFILE_SPEC = $(TWL_SPECDIR)/$(TWL_LIBARCH).lsf DEFAULT_ROM_SPEC = $(TWL_SPECDIR)/ROM-$(TWL_PLATFORM).rsf endif SRCDIR ?= $(DEFAULT_SRCDIR) INCDIR ?= $(DEFAULT_INCDIR) ETCDIR ?= $(DEFAULT_ETCDIR) OBJDIR ?= ./obj/$(TWL_BUILDTYPE) BINDIR ?= ./bin/$(TWL_BUILDTYPE) LIBDIR ?= ./lib/$(TWL_BUILDTYPE) ifdef MSYSTEM DEPENDDIR ?= ./depend.MinGW/$(TWL_BUILDTYPE) else DEPENDDIR ?= ./depend/$(TWL_BUILDTYPE) endif ifeq ($(CODEGEN_PROC),ARM9) LIBSYSCALL_ = $(if $(LIBSYSCALL),$(LIBSYSCALL),$(TWL_LIBSYSCALLDIR)/libsyscall.a) LIBSYSCALL_TWL_ = $(if $(LIBSYSCALL_TWL),$(LIBSYSCALL_TWL),$(TWL_LIBSYSCALLDIR)/libsyscall.twl.a) else #ifeq ($(CODEGEN_PROC),ARM7) LIBSYSCALL_ = $(if $(LIBSYSCALL),$(LIBSYSCALL),$(TWL_LIBSYSCALLDIR)/libsubpsyscall.a) LIBSYSCALL_TWL_ = $(if $(LIBSYSCALL_TWL),$(LIBSYSCALL_TWL),$(TWL_LIBSYSCALLDIR)/libsyscall_sp.twl.a) endif ### Compiler & Linker settings -include $(TWL_BUILDTOOLSDIR)/commondefs.cctype.$(TWL_CCTYPE) ifneq ($(TWL_MAKEROM),) LCFILE_TEMPLATE ?= $(DEFAULT_LCFILE_TEMPLATE) LCFILE_SPEC ?= $(DEFAULT_LCFILE_SPEC) LCFILE_AUTOGEN ?= $(BINDIR)/$(notdir $(LCFILE_SPEC:.lsf=.autogen.lcf)) LCFILE ?= $(LCFILE_AUTOGEN) DEFAULT_LDRES_TEMPLATE := $(TWL_SPECDIR)/$(basename $(word $(words $(subst /, ,$(LD))),$(subst /, ,$(LD)))).response.template LDRES_TEMPLATE ?= $(DEFAULT_LDRES_TEMPLATE) LDRES_AUTOGEN ?= $(BINDIR)/$(notdir $(LCFILE_SPEC:.lsf=.autogen.response)) LDRES_FILE ?= $(LDRES_AUTOGEN) else LCFILE ?= $(DEFAULT_LCFILE) endif TARGETS ?= $(addprefix $(BINDIR)/,$(TARGET_BIN) $(TARGET_ELF) $(TARGET_SIGN_BIN)) \ $(addprefix $(OBJDIR)/,$(TARGET_OBJ)) \ $(addprefix $(LIBDIR)/,$(TARGET_LIB)) TARGET_BIN_BASENAME = $(patsubst %.TWL,%,$(notdir $(basename $(firstword $(TARGET_BIN) $(TARGET_ELF))))) TARGET_NAME ?= $(TARGET_BIN_BASENAME) ### Debugger settings -include $(TWL_BUILDTOOLSDIR)/commondefs.emtype.IS ### SDK Library settings ifeq ($(CODEGEN_PROC),ARM9) CRT0_O ?= crt0.FLX.TWL.o else # ($(CODEGEN_PROC),ARM7) CRT0_O ?= crt0.HYB.TWL.o endif ifeq ($(CODEGEN_PROC),ARM9) TWL_LIBS ?= \ libcard$(TWL_LIBSUFFIX).a \ libcp$(TWL_LIBSUFFIX).a \ libel$(TWL_LIBSUFFIX).a \ libenv$(TWL_LIBSUFFIX).a \ libext$(TWL_LIBSUFFIX).a \ libfs$(TWL_LIBSUFFIX).a \ libfx$(TWL_LIBSUFFIX).a \ libgx$(TWL_LIBSUFFIX).a \ libmath$(TWL_LIBSUFFIX).a \ libmb$(TWL_LIBSUFFIX).a \ libmi$(TWL_LIBSUFFIX).a \ libnvram$(TWL_LIBSUFFIX).a \ libos$(TWL_LIBSUFFIX).a \ libprc$(TWL_LIBSUFFIX).a \ libpxi$(TWL_LIBSUFFIX).a \ librtc$(TWL_LIBSUFFIX).a \ libscfg$(TWL_LIBSUFFIX).a \ libsnd$(TWL_LIBSUFFIX).a \ libspi$(TWL_LIBSUFFIX).a \ libstd$(TWL_LIBSUFFIX).a \ libwbt$(TWL_LIBSUFFIX).a \ libwfs$(TWL_LIBSUFFIX).a \ libwm$(TWL_LIBSUFFIX).a \ libctrdg$(TWL_LIBSUFFIX).a \ libcrypto$(TWL_LIBSUFFIX).a \ libcht$(TWL_LIBSUFFIX).a \ libssp_jpegEncoder$(TWL_LIBSUFFIX).a \ libssp_jpegDecoder$(TWL_LIBSUFFIX).a \ $(notdir $(LIBSYSCALL_)) \ $(notdir $(LIBSYSCALL_TWL_)) \ $(CRT0_O) TWL_LIBS_EX ?= librtcex$(TWL_LIBSUFFIX).a \ libcamera$(TWL_LIBSUFFIX).a \ libnwm$(TWL_LIBSUFFIX).a \ libmicex$(TWL_LIBSUFFIX).a \ libfatfs$(TWL_LIBSUFFIX).a \ libsndex$(TWL_LIBSUFFIX).a \ libdsp$(TWL_LIBSUFFIX).a \ libdsp_g711$(TWL_LIBSUFFIX).a \ libdsp_graphics$(TWL_LIBSUFFIX).a \ libaes$(TWL_LIBSUFFIX).a TWL_LIBS += $(if $(TWL_PROFILE_TYPE),libos.$(TWL_PROFILE_TYPE)$(TWL_LIBSUFFIX).a) else # ($(CODEGEN_PROC),ARM7) TWL_LIBS ?= \ libcamera_sp$(TWL_LIBSUFFIX).a \ libcard_sp$(TWL_LIBSUFFIX).a \ libcdc_sp$(TWL_LIBSUFFIX).a \ libel_sp$(TWL_LIBSUFFIX).a \ libexi_sp$(TWL_LIBSUFFIX).a \ libfatfs_sp$(TWL_LIBSUFFIX).a \ libfs_sp$(TWL_LIBSUFFIX).a \ libi2c_sp$(TWL_LIBSUFFIX).a \ libmath_sp$(TWL_LIBSUFFIX).a \ libmi_sp$(TWL_LIBSUFFIX).a \ libnvram_sp$(TWL_LIBSUFFIX).a \ libnwm_sp$(TWL_LIBSUFFIX).a \ libos_sp$(TWL_LIBSUFFIX).a \ libpad_sp$(TWL_LIBSUFFIX).a \ libpm_sp$(TWL_LIBSUFFIX).a \ libpxi_sp$(TWL_LIBSUFFIX).a \ librtc_sp$(TWL_LIBSUFFIX).a \ libscfg_sp$(TWL_LIBSUFFIX).a \ libsnd_sp$(TWL_LIBSUFFIX).a \ libsndex_sp$(TWL_LIBSUFFIX).a \ libspi_sp$(TWL_LIBSUFFIX).a \ libmcu_sp$(TWL_LIBSUFFIX).a \ libstd_sp$(TWL_LIBSUFFIX).a \ libwm_sp$(TWL_LIBSUFFIX).a \ libwvr_sp$(TWL_LIBSUFFIX).a \ libtp_sp$(TWL_LIBSUFFIX).a \ libtpex_sp$(TWL_LIBSUFFIX).a \ libmic_sp$(TWL_LIBSUFFIX).a \ libmicex_sp$(TWL_LIBSUFFIX).a \ libaes_sp$(TWL_LIBSUFFIX).a \ $(notdir $(LIBSYSCALL_)) \ $(notdir $(LIBSYSCALL_TWL_)) \ $(CRT0_O) TWL_LIBS += $(if $(filter HYBRID,$(TWL_ARCHGEN)),libctrdg_sp$(TWL_LIBSUFFIX).a) TWL_LIBS += $(if $(TWL_PROFILE_TYPE),libos_sp.$(TWL_PROFILE_TYPE)$(TWL_LIBSUFFIX).a) endif ### Global Library settings SYSTEM_GINCLUDES = $(TWLWIRELESS_INCDIR) \ $(TWL_INCDIR) $(ISDBG_INCDIRS) DEFAULT_GINCLUDES = $(INCDIR) $(SRCDIR) \ $(NITROSYSTEM_INCDIR) $(SYSTEM_GINCLUDES) DEFAULT_GLIBRARY_DIRS = $(LIBDIR) $(dir $(LIBSYSCALL_)) $(dir $(LIBSYSCALL_TWL_)) \ $(NITROSYSTEM_LIBDIR) $(TWLWIRELESS_LIBDIR) $(NITROWIRELESS_LIBDIR) \ $(TWL_LIBDIR) $(ISDBG_LIBDIRS) DEFAULT_GLIBRARIES = $(NITROSYSTEM_LIBS) $(TWL_LIBS) $(TWL_LIBS_EX) $(STUBS_LIBS) $(ISDBG_LIBS) GINCLUDES ?= $(DEFAULT_GINCLUDES) GLIBRARY_DIRS ?= $(DEFAULT_GLIBRARY_DIRS) GLIBRARIES ?= $(DEFAULT_GLIBRARIES) GLIBRARIES_EX ?= $(TWL_LIBS_EX) LINCLUDES ?= LLIBRARY_DIRS ?= LLIBRARIES ?= LNEWDIRS ?= NEWDIRS ?= $(strip $(if $(SRCS),$(OBJDIR) $(DEPENDDIR)) \ $(if $(TARGET_LIB),$(LIBDIR)) \ $(if $(TARGET_BIN)$(TARGET_ELF),$(BINDIR)) \ $(LNEWDIRS)) GDIRT_CLEAN_DIRS := ./obj ./bin ./lib ./depend GDIRT_CLOBBER_DIRS := endif #---------------------------------------------------------------------------- # MY BUILD TOOLS # MAKELCF := $(TWL_TOOLSDIR)/bin/makelcf.TWL.exe MAKEBANNER := $(TWL_TOOLSDIR)/bin/makebanner.TWL.exe ADDBANNER := $(TWL_TOOLSDIR)/bin/addbanner.exe NTEXCONV := $(TWL_TOOLSDIR)/bin/ntexconv.exe BANNERCVTR := $(TWL_TOOLSDIR)/bin/bannercvtr.exe COMPSTATIC := $(TWL_TOOLSDIR)/bin/compstatic.TWL.exe MAKEROM := $(TWL_TOOLSDIR)/bin/makerom.TWL.exe EMUCHILD := $(TWL_TOOLSDIR)/bin/emuchild.exe ATTACHSIGN := $(TWL_TOOLSDIR)/bin/attachsign.exe BIN2OBJ := $(TWL_TOOLSDIR)/bin/bin2obj.exe MAKELST := $(TWL_TOOLSDIR)/bin/makelst.exe STRIPDEBUG := $(TWL_TOOLSDIR)/bin/stripdebug.exe MAKERSF := $(TWL_TOOLSDIR)/bin/makersf.pl LOADRUN := $(TWL_TOOLSDIR)/bin/loadrun.TWL.exe MAKELCF_FLAGS ?= MAKEBANNER_FLAGS ?= MAKEROM_FLAGS ?= COMPSTATIC_FLAGS ?= LOADRUN_FLAGS ?= DEFAULT_COMP_ARM7 ?= $(if $(filter LIMITED,$(TWL_ARCHGEN)),racoon,$(if $(filter LIMITED_ferret,$(TWL_ARCHGEN)),ferret,mongoose)) # boot information set by TWL-IPL (16kB) DEFAULT_ADDRESS_STATIC ?= 0x02004000 DEFAULT_ADDRESS_ITCM ?= 0x01FF8000 DEFAULT_ADDRESS_DTCM ?= 0x2fe0000 DEFAULT_COMPSUFFIX ?= _LZ DEFAULT_MAKEROM_ARM9 = $(TWL_COMPONENTSDIR)/printserver/$(TWL_BUILDTYPE_ARM9)/printserver.$(TWL_ELF_EXT) DEFAULT_MAKEROM_ARM7_BASE = $(TWL_COMPONENTSDIR)/$(DEFAULT_COMP_ARM7)/$(TWL_BUILDTYPE_ARM7)/$(DEFAULT_COMP_ARM7) DEFAULT_MAKEROM_ARM7 = $(DEFAULT_MAKEROM_ARM7_BASE).$(TWL_ELF_EXT) DEFAULT_MAKEROM_ROMROOT := ./files DEFAULT_MAKEROM_ROMFILES := DEFAULT_MAKEROM_ROMSPEED ?= $(TWL_ROMSPEED) DEFAULT_MAKEROM_CERT_PRIV := $(TWL_SPECDIR)/default.der #---------------------------------------------------------------------------- # LIST OF JUNKS for "make # GDIRT_CLEAN = a.out core *~ *.bak \\\#*\\\# $(GDIRT_CLEAN_DIRS) GDIRT_CLOBBER = $(GDIRT_CLOBBER_DIRS) GDIRT_INSTALLED = $(addprefix $(INSTALL_DIR)/,$(notdir $(INSTALL_TARGETS))) #---------------------------------------------------------------------------- # Load add-ins' commondefs # -include $(TWL_BUILDTOOLSDIR)/commondefs.add-ins.* #---------------------------------------------------------------------------- # DEFAULT TARGET # ifdef TWL_UTEST default all: utest else default all: build endif #---------------------------------------------------------------------------- endif # TWLSDK_TWL_COMMONDEFS_ #----- End of commondefs -----