1#! make -f 2#---------------------------------------------------------------------------- 3# Project: TwlSDK 4# File: commondefs 5# 6# Copyright 2007-2008 Nintendo. All rights reserved. 7# 8# These coded instructions, statements, and computer programs contain 9# proprietary information of Nintendo of America Inc. and/or Nintendo 10# Company Ltd., and are protected by Federal copyright law. They may 11# not be disclosed to third parties or copied or duplicated in any form, 12# in whole or in part, without the prior written consent of Nintendo. 13# 14# $Date:: 2009-02-06#$ 15# $Rev: 9980 $ 16# $Author: ooshimay $ 17#---------------------------------------------------------------------------- 18ifndef TWLSDK_TWL_COMMONDEFS_ 19TWLSDK_TWL_COMMONDEFS_ = TRUE 20 21# 22# SDK Major Version 23# 24 25TWLSDK_VERSION_MAJOR ?= 5 26 27# 28# CodeGen Target 29# 30# TWL_PLATFORM = [BB/TEG/TS] 31# TWL_MEMSIZE = [16M/32M] 32# TWL_CODEGEN = [ARM/THUMB] 33# TWL_PROC = [ARM9/ARM7] 34# 35TWL_PLATFORM ?= TS 36TWL_MEMSIZE ?= 16M 37TWL_PROC ?= ARM9 38 39CODEGEN_PROC = $(strip $(TWL_PROC)) 40 41 42# 43# ArchGen Target 44# 45# TWL_ARCHGEN = [LIMITED/HYBRID/ALL] 46# 47DEFAULT_ARCHGEN = HYBRID 48TWL_ARCHGEN ?= $(DEFAULT_ARCHGEN) 49 50ARCHGEN_TYPE = $(if $(filter LIMITED,$(TWL_ARCHGEN)),.LTD,$(if $(filter LIMITED_ferret,$(TWL_ARCHGEN)),.LTD,.HYB)) 51COMP_TYPE = $(if $(filter LIMITED_ferret,$(TWL_ARCHGEN)),.ferret) 52 53# 54# C Compiler type 55# 56# TWL_CCTYPE = [CW] 57# 58 59TWL_CCTYPE ?= CW 60 61 62# 63# Binary build tool switch 64# 65TWL_MAKEROM ?= TRUE 66 67# 68# RomSpeedType for makerom.exe 69# 70# one of [MROM/1TROM/UNDEFINED] 71# 72 73TWL_ROMSPEED ?= UNDEFINED 74 75# 76# SDK build type 77# 78# one of [TWL_DEBUG/TWL_RELEASE/TWL_FINALROM] 79# 80 81# 82# Codec Mode 83# 84# CODEC_MODE = [TWL/NTR] 85# 86DEFAULT_CODEC_MODE = TWL 87MAKEROM_CODEC_MODE ?= $(DEFAULT_CODEC_MODE) 88 89 90ifneq ($(TARGET_DEBUG),) 91TWL_BUILD_TYPE ?= DEBUG 92TWL_BUILD_DIR ?= Debug 93 94else 95ifneq ($(TARGET_FINALROM),) 96TWL_BUILD_TYPE ?= FINALROM 97TWL_BUILD_DIR ?= Rom 98 99else #TWL_RELEASE(default) 100TWL_BUILD_TYPE ?= RELEASE 101TWL_BUILD_DIR ?= Release 102 103endif 104endif 105 106 107#---------------------------------------------------------------------------- 108# TWL-SDK path settings 109# 110 111TWL_INCDIR := $(ROOT)/include 112TWL_TOOLSDIR := $(TOOLSDIR) 113TWL_COMPONENTSDIR := $(COMPONENTSDIR) 114TWL_ADDINS ?= $(ADDINSDIR) 115 116TWL_BUILDARCH ?= $(CODEGEN_PROC)-$(TWL_PLATFORM)$(ARCHGEN_TYPE)$(COMP_TYPE)$(CODEGEN_ARCH) 117TWL_BUILDARCH_ARM9 = ARM9-$(TWL_PLATFORM)$(ARCHGEN_TYPE)$(CODEGEN_ARCH) 118ifeq ($(DEMO_CHECK_BUILD),) 119TWL_BUILDARCH_ARM7 ?= ARM7-$(TWL_PLATFORM)$(ARCHGEN_TYPE)$(CODEGEN_ARCH) 120else 121TWL_BUILDARCH_ARM7 ?= ARM7-$(TWL_PLATFORM)$(ARCHGEN_TYPE)$(CODEGEN_ARCH_ARM7) 122endif 123 124TWL_BUILDTYPE ?= $(TWL_BUILDARCH)/$(TWL_BUILD_DIR) 125TWL_BUILDTYPE_ARM9 = $(TWL_BUILDARCH_ARM9)/$(TWL_BUILD_DIR) 126TWL_BUILDTYPE_ARM7 = $(TWL_BUILDARCH_ARM7)/$(TWL_BUILD_DIR) 127 128TWL_LIBARCH = $(CODEGEN_PROC)-$(TWL_PLATFORM) 129TWL_LIBTYPE = $(TWL_LIBARCH)/$(TWL_BUILD_DIR) 130TWL_LIBDIR = $(ROOT)/lib/$(TWL_LIBTYPE) 131TWL_LIBSYSCALLDIR = $(ROOT)/lib/$(TWL_LIBARCH)/etc 132TWL_LIBSUFFIX ?= .TWL$(ARCHGEN_TYPE)$(CODEGEN_ARCH) 133 134 135#---------------------------------------------------------------------------- 136# TWL-SYSTEM path settings 137# 138 139ifdef TWLSYSTEM_ROOT 140TWLSYSTEM_ROOT_ := $(subst $(SPACE),\ ,$(subst \,/,$(TWLSYSTEM_ROOT))) 141-include $(TWLSYSTEM_ROOT_)/build/buildtools/nnslibdefs 142endif 143 144#---------------------------------------------------------------------------- 145# TWL-WIRELESS path settings 146# 147# libraries should be in 148# $(ROOT)/lib/TwlWireless 149# 150# includes should be in 151# $(ROOT)/include/twl_wl/ARM7/*.h 152# 153# access by #include <twl_wl/ARM7/*.h> 154# 155# SDK_VERSION_WL is defined in <twl_wl/ARM7/version_wl.h> 156# 157 158TWLWIRELESS_VERSION ?= 080602 159TWLWIRELESS_PACKAGE ?= TianShan_$(TWLWIRELESS_VERSION) 160TWLWIRELESS_ROOT = $(subst $(SPACE),\ ,$(subst \,/,$(TWLSDK_ROOT)))/add-ins/TwlWireless/$(TWLWIRELESS_PACKAGE) 161TWLWIRELESS_LIBDIR = $(subst $(SPACE),\ ,$(subst \,/,$(TWLSDK_ROOT)))/lib/TwlWireless/$(TWL_LIBTYPE) 162 163#---------------------------------------------------------------------------- 164# Compiler settings 165# 166 167ifneq ($(FORCE_BUILD),) 168 169### module subdir src/ obj/ lib/ include/ 170 171TWL_SPECDIR = $(TWL_INCDIR)/twl/specfiles 172 173ifneq ($(filter TWL,$(TARGET_PLATFORM_LIST)),) 174DEFAULT_LCFILE = $(TWL_SPECDIR)/$(TWL_LIBARCH).lcf 175DEFAULT_LCFILE_TEMPLATE = $(TWL_SPECDIR)/$(TWL_LIBARCH).lcf.template 176DEFAULT_LCFILE_SPEC = $(TWL_SPECDIR)/$(TWL_LIBARCH).lsf 177DEFAULT_ROM_SPEC = $(TWL_SPECDIR)/ROM-$(TWL_PLATFORM).rsf 178endif 179 180SRCDIR ?= $(DEFAULT_SRCDIR) 181INCDIR ?= $(DEFAULT_INCDIR) 182ETCDIR ?= $(DEFAULT_ETCDIR) 183OBJDIR ?= ./obj/$(TWL_BUILDTYPE) 184BINDIR ?= ./bin/$(TWL_BUILDTYPE) 185LIBDIR ?= ./lib/$(TWL_BUILDTYPE) 186 187ifdef MSYSTEM 188DEPENDDIR ?= ./depend.MinGW/$(TWL_BUILDTYPE) 189else 190DEPENDDIR ?= ./depend/$(TWL_BUILDTYPE) 191endif 192 193ifeq ($(CODEGEN_PROC),ARM9) 194LIBSYSCALL_ = $(if $(LIBSYSCALL),$(LIBSYSCALL),$(TWL_LIBSYSCALLDIR)/libsyscall.a) 195LIBSYSCALL_TWL_ = $(if $(LIBSYSCALL_TWL),$(LIBSYSCALL_TWL),$(TWL_LIBSYSCALLDIR)/libsyscall.twl.a) 196else #ifeq ($(CODEGEN_PROC),ARM7) 197LIBSYSCALL_ = $(if $(LIBSYSCALL),$(LIBSYSCALL),$(TWL_LIBSYSCALLDIR)/libsubpsyscall.a) 198LIBSYSCALL_TWL_ = $(if $(LIBSYSCALL_TWL),$(LIBSYSCALL_TWL),$(TWL_LIBSYSCALLDIR)/libsyscall_sp.twl.a) 199endif 200 201### Compiler & Linker settings 202 203-include $(TWL_BUILDTOOLSDIR)/commondefs.cctype.$(TWL_CCTYPE) 204 205ifneq ($(TWL_MAKEROM),) 206LCFILE_TEMPLATE ?= $(DEFAULT_LCFILE_TEMPLATE) 207LCFILE_SPEC ?= $(DEFAULT_LCFILE_SPEC) 208LCFILE_AUTOGEN ?= $(BINDIR)/$(notdir $(LCFILE_SPEC:.lsf=.autogen.lcf)) 209LCFILE ?= $(LCFILE_AUTOGEN) 210DEFAULT_LDRES_TEMPLATE := $(TWL_SPECDIR)/$(basename $(word $(words $(subst /, ,$(LD))),$(subst /, ,$(LD)))).response.template 211LDRES_TEMPLATE ?= $(DEFAULT_LDRES_TEMPLATE) 212LDRES_AUTOGEN ?= $(BINDIR)/$(notdir $(LCFILE_SPEC:.lsf=.autogen.response)) 213LDRES_FILE ?= $(LDRES_AUTOGEN) 214else 215LCFILE ?= $(DEFAULT_LCFILE) 216endif 217 218TARGETS ?= $(addprefix $(BINDIR)/,$(TARGET_BIN) $(TARGET_ELF) $(TARGET_SIGN_BIN)) \ 219 $(addprefix $(OBJDIR)/,$(TARGET_OBJ)) \ 220 $(addprefix $(LIBDIR)/,$(TARGET_LIB)) 221 222TARGET_BIN_BASENAME = $(patsubst %.TWL,%,$(notdir $(basename $(firstword $(TARGET_BIN) $(TARGET_ELF))))) 223TARGET_NAME ?= $(TARGET_BIN_BASENAME) 224 225### Debugger settings 226 227-include $(TWL_BUILDTOOLSDIR)/commondefs.emtype.IS 228 229 230### SDK Library settings 231 232ifeq ($(CODEGEN_PROC),ARM9) 233CRT0_O ?= crt0.FLX.TWL.o 234else # ($(CODEGEN_PROC),ARM7) 235CRT0_O ?= crt0.HYB.TWL.o 236endif 237 238ifeq ($(CODEGEN_PROC),ARM9) 239 240TWL_LIBS ?= \ 241 libcard$(TWL_LIBSUFFIX).a \ 242 libcp$(TWL_LIBSUFFIX).a \ 243 libel$(TWL_LIBSUFFIX).a \ 244 libenv$(TWL_LIBSUFFIX).a \ 245 libext$(TWL_LIBSUFFIX).a \ 246 libfs$(TWL_LIBSUFFIX).a \ 247 libfx$(TWL_LIBSUFFIX).a \ 248 libgx$(TWL_LIBSUFFIX).a \ 249 libmath$(TWL_LIBSUFFIX).a \ 250 libmb$(TWL_LIBSUFFIX).a \ 251 libmi$(TWL_LIBSUFFIX).a \ 252 libnvram$(TWL_LIBSUFFIX).a \ 253 libos$(TWL_LIBSUFFIX).a \ 254 libprc$(TWL_LIBSUFFIX).a \ 255 libpxi$(TWL_LIBSUFFIX).a \ 256 librtc$(TWL_LIBSUFFIX).a \ 257 libscfg$(TWL_LIBSUFFIX).a \ 258 libsnd$(TWL_LIBSUFFIX).a \ 259 libspi$(TWL_LIBSUFFIX).a \ 260 libstd$(TWL_LIBSUFFIX).a \ 261 libwbt$(TWL_LIBSUFFIX).a \ 262 libwfs$(TWL_LIBSUFFIX).a \ 263 libwm$(TWL_LIBSUFFIX).a \ 264 libctrdg$(TWL_LIBSUFFIX).a \ 265 libcrypto$(TWL_LIBSUFFIX).a \ 266 libcht$(TWL_LIBSUFFIX).a \ 267 libssp_jpegEncoder$(TWL_LIBSUFFIX).a \ 268 libssp_jpegDecoder$(TWL_LIBSUFFIX).a \ 269 $(notdir $(LIBSYSCALL_)) \ 270 $(notdir $(LIBSYSCALL_TWL_)) \ 271 $(CRT0_O) 272 273TWL_LIBS_EX ?= librtcex$(TWL_LIBSUFFIX).a \ 274 libcamera$(TWL_LIBSUFFIX).a \ 275 libnwm$(TWL_LIBSUFFIX).a \ 276 libmicex$(TWL_LIBSUFFIX).a \ 277 libfatfs$(TWL_LIBSUFFIX).a \ 278 libsndex$(TWL_LIBSUFFIX).a \ 279 libdsp$(TWL_LIBSUFFIX).a \ 280 libdsp_g711$(TWL_LIBSUFFIX).a \ 281 libdsp_graphics$(TWL_LIBSUFFIX).a \ 282 libaes$(TWL_LIBSUFFIX).a 283 284TWL_LIBS += $(if $(TWL_PROFILE_TYPE),libos.$(TWL_PROFILE_TYPE)$(TWL_LIBSUFFIX).a) 285 286else # ($(CODEGEN_PROC),ARM7) 287 288TWL_LIBS ?= \ 289 libcamera_sp$(TWL_LIBSUFFIX).a \ 290 libcard_sp$(TWL_LIBSUFFIX).a \ 291 libcdc_sp$(TWL_LIBSUFFIX).a \ 292 libel_sp$(TWL_LIBSUFFIX).a \ 293 libexi_sp$(TWL_LIBSUFFIX).a \ 294 libfatfs_sp$(TWL_LIBSUFFIX).a \ 295 libfs_sp$(TWL_LIBSUFFIX).a \ 296 libi2c_sp$(TWL_LIBSUFFIX).a \ 297 libmath_sp$(TWL_LIBSUFFIX).a \ 298 libmi_sp$(TWL_LIBSUFFIX).a \ 299 libnvram_sp$(TWL_LIBSUFFIX).a \ 300 libnwm_sp$(TWL_LIBSUFFIX).a \ 301 libos_sp$(TWL_LIBSUFFIX).a \ 302 libpad_sp$(TWL_LIBSUFFIX).a \ 303 libpm_sp$(TWL_LIBSUFFIX).a \ 304 libpxi_sp$(TWL_LIBSUFFIX).a \ 305 librtc_sp$(TWL_LIBSUFFIX).a \ 306 libscfg_sp$(TWL_LIBSUFFIX).a \ 307 libsnd_sp$(TWL_LIBSUFFIX).a \ 308 libsndex_sp$(TWL_LIBSUFFIX).a \ 309 libspi_sp$(TWL_LIBSUFFIX).a \ 310 libmcu_sp$(TWL_LIBSUFFIX).a \ 311 libstd_sp$(TWL_LIBSUFFIX).a \ 312 libwm_sp$(TWL_LIBSUFFIX).a \ 313 libwvr_sp$(TWL_LIBSUFFIX).a \ 314 libtp_sp$(TWL_LIBSUFFIX).a \ 315 libtpex_sp$(TWL_LIBSUFFIX).a \ 316 libmic_sp$(TWL_LIBSUFFIX).a \ 317 libmicex_sp$(TWL_LIBSUFFIX).a \ 318 libaes_sp$(TWL_LIBSUFFIX).a \ 319 $(notdir $(LIBSYSCALL_)) \ 320 $(notdir $(LIBSYSCALL_TWL_)) \ 321 $(CRT0_O) 322 323TWL_LIBS += $(if $(filter HYBRID,$(TWL_ARCHGEN)),libctrdg_sp$(TWL_LIBSUFFIX).a) 324TWL_LIBS += $(if $(TWL_PROFILE_TYPE),libos_sp.$(TWL_PROFILE_TYPE)$(TWL_LIBSUFFIX).a) 325 326endif 327 328### Global Library settings 329 330SYSTEM_GINCLUDES = $(TWLWIRELESS_INCDIR) \ 331 $(TWL_INCDIR) $(ISDBG_INCDIRS) 332 333DEFAULT_GINCLUDES = $(INCDIR) $(SRCDIR) \ 334 $(NITROSYSTEM_INCDIR) $(SYSTEM_GINCLUDES) 335 336DEFAULT_GLIBRARY_DIRS = $(LIBDIR) $(dir $(LIBSYSCALL_)) $(dir $(LIBSYSCALL_TWL_)) \ 337 $(NITROSYSTEM_LIBDIR) $(TWLWIRELESS_LIBDIR) $(NITROWIRELESS_LIBDIR) \ 338 $(TWL_LIBDIR) $(ISDBG_LIBDIRS) 339 340DEFAULT_GLIBRARIES = $(NITROSYSTEM_LIBS) $(TWL_LIBS) $(TWL_LIBS_EX) $(STUBS_LIBS) $(ISDBG_LIBS) 341 342GINCLUDES ?= $(DEFAULT_GINCLUDES) 343GLIBRARY_DIRS ?= $(DEFAULT_GLIBRARY_DIRS) 344GLIBRARIES ?= $(DEFAULT_GLIBRARIES) 345GLIBRARIES_EX ?= $(TWL_LIBS_EX) 346 347LINCLUDES ?= 348LLIBRARY_DIRS ?= 349LLIBRARIES ?= 350LNEWDIRS ?= 351 352NEWDIRS ?= $(strip $(if $(SRCS),$(OBJDIR) $(DEPENDDIR)) \ 353 $(if $(TARGET_LIB),$(LIBDIR)) \ 354 $(if $(TARGET_BIN)$(TARGET_ELF),$(BINDIR)) \ 355 $(LNEWDIRS)) 356 357GDIRT_CLEAN_DIRS := ./obj ./bin ./lib ./depend 358GDIRT_CLOBBER_DIRS := 359 360endif 361 362 363#---------------------------------------------------------------------------- 364# MY BUILD TOOLS 365# 366 367MAKELCF := $(TWL_TOOLSDIR)/bin/makelcf.TWL.exe 368MAKEBANNER := $(TWL_TOOLSDIR)/bin/makebanner.TWL.exe 369ADDBANNER := $(TWL_TOOLSDIR)/bin/addbanner.exe 370NTEXCONV := $(TWL_TOOLSDIR)/bin/ntexconv.exe 371BANNERCVTR := $(TWL_TOOLSDIR)/bin/bannercvtr.exe 372COMPSTATIC := $(TWL_TOOLSDIR)/bin/compstatic.TWL.exe 373MAKEROM := $(TWL_TOOLSDIR)/bin/makerom.TWL.exe 374EMUCHILD := $(TWL_TOOLSDIR)/bin/emuchild.exe 375ATTACHSIGN := $(TWL_TOOLSDIR)/bin/attachsign.exe 376BIN2OBJ := $(TWL_TOOLSDIR)/bin/bin2obj.exe 377MAKELST := $(TWL_TOOLSDIR)/bin/makelst.exe 378STRIPDEBUG := $(TWL_TOOLSDIR)/bin/stripdebug.exe 379MAKERSF := $(TWL_TOOLSDIR)/bin/makersf.pl 380LOADRUN := $(TWL_TOOLSDIR)/bin/loadrun.TWL.exe 381 382MAKELCF_FLAGS ?= 383MAKEBANNER_FLAGS ?= 384MAKEROM_FLAGS ?= 385COMPSTATIC_FLAGS ?= 386LOADRUN_FLAGS ?= 387DEFAULT_COMP_ARM7 ?= $(if $(filter LIMITED,$(TWL_ARCHGEN)),racoon,$(if $(filter LIMITED_ferret,$(TWL_ARCHGEN)),ferret,mongoose)) 388# boot information set by TWL-IPL (16kB) 389DEFAULT_ADDRESS_STATIC ?= 0x02004000 390DEFAULT_ADDRESS_ITCM ?= 0x01FF8000 391DEFAULT_ADDRESS_DTCM ?= 0x2fe0000 392DEFAULT_COMPSUFFIX ?= _LZ 393DEFAULT_MAKEROM_ARM9 = $(TWL_COMPONENTSDIR)/printserver/$(TWL_BUILDTYPE_ARM9)/printserver.$(TWL_ELF_EXT) 394DEFAULT_MAKEROM_ARM7_BASE = $(TWL_COMPONENTSDIR)/$(DEFAULT_COMP_ARM7)/$(TWL_BUILDTYPE_ARM7)/$(DEFAULT_COMP_ARM7) 395DEFAULT_MAKEROM_ARM7 = $(DEFAULT_MAKEROM_ARM7_BASE).$(TWL_ELF_EXT) 396 397DEFAULT_MAKEROM_ROMROOT := ./files 398DEFAULT_MAKEROM_ROMFILES := 399DEFAULT_MAKEROM_ROMSPEED ?= $(TWL_ROMSPEED) 400DEFAULT_MAKEROM_CERT_PRIV := $(TWL_SPECDIR)/default.der 401 402 403#---------------------------------------------------------------------------- 404# LIST OF JUNKS for "make 405# 406 407GDIRT_CLEAN = a.out core *~ *.bak \\\#*\\\# $(GDIRT_CLEAN_DIRS) 408 409GDIRT_CLOBBER = $(GDIRT_CLOBBER_DIRS) 410 411GDIRT_INSTALLED = $(addprefix $(INSTALL_DIR)/,$(notdir $(INSTALL_TARGETS))) 412 413 414#---------------------------------------------------------------------------- 415# Load add-ins' commondefs 416# 417-include $(TWL_BUILDTOOLSDIR)/commondefs.add-ins.* 418 419 420#---------------------------------------------------------------------------- 421# DEFAULT TARGET 422# 423ifdef TWL_UTEST 424default all: utest 425else 426default all: build 427endif 428 429#---------------------------------------------------------------------------- 430endif # TWLSDK_TWL_COMMONDEFS_ 431#----- End of commondefs ----- 432