1#! make -f 2#---------------------------------------------------------------------------- 3# Project: TwlSDK 4# File: commondefs 5# 6# Copyright 2007-2009 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-11-11#$ 15# $Rev: 11147 $ 16# $Author: okubata_ryoma $ 17#---------------------------------------------------------------------------- 18ifndef TWLSDK_NITRO_COMMONDEFS_ 19TWLSDK_NITRO_COMMONDEFS_ = TRUE 20 21# 22# SDK Major Version 23# 24 25NITROSDK_VERSION_MAJOR ?= 5 26 27# 28# CodeGen Target 29# 30# NITRO_PLATFORM = [TS] 31# NITRO_MEMSIZE = [4M/8M] 32# NITRO_PROC = [ARM9/ARM7] 33# 34 35NITRO_PLATFORM ?= TS 36NITRO_MEMSIZE ?= 4M 37NITRO_PROC ?= ARM9 38 39CODEGEN_PROC = $(strip $(NITRO_PROC)) 40 41 42# 43# C Compiler type 44# 45# NITRO_CCTYPE = [CW] 46# 47 48NITRO_CCTYPE ?= CW 49 50 51# 52# Binary build tool switch 53# 54NITRO_MAKEROM ?= TRUE 55 56# 57# RomSpeedType for makerom.exe 58# 59# one of [MROM/1TROM/UNDEFINED] 60# 61 62NITRO_ROMSPEED ?= UNDEFINED 63 64# 65# SDK build type 66# 67# one of [NITRO_DEBUG/NITRO_RELEASE/NITRO_FINALROM] 68# 69 70ifneq ($(TARGET_DEBUG),) 71NITRO_BUILD_TYPE ?= DEBUG 72NITRO_BUILD_DIR ?= Debug 73 74else 75ifneq ($(TARGET_FINALROM),) 76NITRO_BUILD_TYPE ?= FINALROM 77NITRO_BUILD_DIR ?= Rom 78 79else #NITRO_RELEASE(default) 80NITRO_BUILD_TYPE ?= RELEASE 81NITRO_BUILD_DIR ?= Release 82 83endif 84endif 85 86#---------------------------------------------------------------------------- 87# NITRO-SDK path settings 88# 89 90NITRO_INCDIR := $(ROOT)/include 91NITRO_TOOLSDIR := $(TOOLSDIR) 92NITRO_COMPONENTSDIR := $(COMPONENTSDIR) 93NITRO_ADDINS ?= $(ADDINSDIR) 94 95NITRO_BUILDARCH ?= $(CODEGEN_PROC)-$(NITRO_PLATFORM)$(CODEGEN_ARCH) 96NITRO_BUILDARCH_ARM9 = ARM9-$(NITRO_PLATFORM)$(CODEGEN_ARCH) 97ifeq ($(DEMO_CHECK_BUILD),) 98NITRO_BUILDARCH_ARM7 = ARM7-$(NITRO_PLATFORM)$(ARCHGEN_TYPE)$(CODEGEN_ARCH) 99else 100NITRO_BUILDARCH_ARM7 = ARM7-$(NITRO_PLATFORM)$(ARCHGEN_TYPE)$(CODEGEN_ARCH_ARM7) 101endif 102 103NITRO_BUILDTYPE ?= $(NITRO_BUILDARCH)/$(NITRO_BUILD_DIR) 104NITRO_BUILDTYPE_ARM9 = $(NITRO_BUILDARCH_ARM9)/$(NITRO_BUILD_DIR) 105NITRO_BUILDTYPE_ARM7 = $(NITRO_BUILDARCH_ARM7)/$(NITRO_BUILD_DIR) 106 107NITRO_LIBARCH = $(CODEGEN_PROC)-$(NITRO_PLATFORM) 108NITRO_LIBTYPE = $(NITRO_LIBARCH)/$(NITRO_BUILD_DIR) 109NITRO_LIBDIR = $(ROOT)/lib/$(NITRO_LIBTYPE) 110NITRO_LIBSYSCALLDIR = $(ROOT)/lib/$(NITRO_LIBARCH)/etc 111NITRO_LIBSUFFIX ?= $(CODEGEN_ARCH) 112 113 114#---------------------------------------------------------------------------- 115# TWL-SYSTEM path settings 116# 117 118ifdef TWLSYSTEM_ROOT 119TWLSYSTEM_ROOT_ := $(subst $(SPACE),\ ,$(subst \,/,$(TWLSYSTEM_ROOT))) 120-include $(TWLSYSTEM_ROOT_)/build/buildtools/nnslibdefs 121endif 122 123#---------------------------------------------------------------------------- 124# Compiler settings 125# 126 127ifneq ($(FORCE_BUILD),) 128 129### module subdir src/ obj/ lib/ include/ 130 131LCF_SUFFIX_ = $(if $(NITRO_DIGEST),-C) 132NITRO_SPECDIR = $(NITRO_INCDIR)/nitro/specfiles 133 134ifneq ($(filter NITRO,$(TARGET_PLATFORM_LIST)),) 135DEFAULT_LCFILE = $(NITRO_SPECDIR)/$(NITRO_LIBARCH).lcf 136DEFAULT_LCFILE_TEMPLATE = $(NITRO_SPECDIR)/$(NITRO_LIBARCH)$(LCF_SUFFIX_).lcf.template 137DEFAULT_LCFILE_SPEC = $(NITRO_SPECDIR)/$(NITRO_LIBARCH).lsf 138DEFAULT_ROM_SPEC = $(NITRO_SPECDIR)/ROM-$(NITRO_PLATFORM).rsf 139endif 140 141SRCDIR ?= $(DEFAULT_SRCDIR) 142INCDIR ?= $(DEFAULT_INCDIR) 143ETCDIR ?= $(DEFAULT_ETCDIR) 144OBJDIR ?= ./obj/$(NITRO_BUILDTYPE) 145BINDIR ?= ./bin/$(NITRO_BUILDTYPE) 146LIBDIR ?= ./lib/$(NITRO_BUILDTYPE) 147 148ifdef MSYSTEM 149DEPENDDIR ?= ./depend.MinGW/$(NITRO_BUILDTYPE) 150else 151DEPENDDIR ?= ./depend/$(NITRO_BUILDTYPE) 152endif 153 154LIBSYSCALL_ = $(if $(LIBSYSCALL),$(LIBSYSCALL),$(NITRO_LIBSYSCALLDIR)/libsyscall.a) 155 156### Compiler & Linker settings 157 158-include $(NITRO_BUILDTOOLSDIR)/commondefs.cctype.$(NITRO_CCTYPE) 159 160ifneq ($(NITRO_MAKEROM),) 161LCFILE_TEMPLATE ?= $(DEFAULT_LCFILE_TEMPLATE) 162LCFILE_SPEC ?= $(DEFAULT_LCFILE_SPEC) 163LCFILE_AUTOGEN ?= $(BINDIR)/$(notdir $(LCFILE_SPEC:.lsf=.autogen.lcf)) 164LCFILE ?= $(LCFILE_AUTOGEN) 165DEFAULT_LDRES_TEMPLATE := $(NITRO_SPECDIR)/$(basename $(word $(words $(subst /, ,$(LD))),$(subst /, ,$(LD)))).response.template 166LDRES_TEMPLATE ?= $(DEFAULT_LDRES_TEMPLATE) 167LDRES_AUTOGEN ?= $(BINDIR)/$(notdir $(LCFILE_SPEC:.lsf=.autogen.response)) 168LDRES_FILE ?= $(LDRES_AUTOGEN) 169else 170LCFILE ?= $(DEFAULT_LCFILE) 171endif 172 173TARGETS ?= $(addprefix $(BINDIR)/,$(TARGET_BIN) $(TARGET_ELF) $(TARGET_SIGN_BIN)) \ 174 $(addprefix $(OBJDIR)/,$(TARGET_OBJ)) \ 175 $(addprefix $(LIBDIR)/,$(TARGET_LIB)) 176 177TARGET_BIN_BASENAME = $(notdir $(basename $(firstword $(TARGET_BIN) $(TARGET_ELF)))) 178TARGET_NAME ?= $(TARGET_BIN_BASENAME) 179 180### Debugger settings 181 182-include $(NITRO_BUILDTOOLSDIR)/commondefs.emtype.IS 183 184 185### SDK Library settings 186 187CRT0_O ?= crt0.o 188 189ifeq ($(CODEGEN_PROC),ARM9) 190 191NITRO_LIBS ?= \ 192 libcard$(NITRO_LIBSUFFIX).a \ 193 libcp$(NITRO_LIBSUFFIX).a \ 194 libenv$(NITRO_LIBSUFFIX).a \ 195 libext$(NITRO_LIBSUFFIX).a \ 196 libfs$(NITRO_LIBSUFFIX).a \ 197 libfx$(NITRO_LIBSUFFIX).a \ 198 libgx$(NITRO_LIBSUFFIX).a \ 199 libmath$(NITRO_LIBSUFFIX).a \ 200 libmb$(NITRO_LIBSUFFIX).a \ 201 libmi$(NITRO_LIBSUFFIX).a \ 202 libnvram$(NITRO_LIBSUFFIX).a \ 203 libos$(NITRO_LIBSUFFIX).a \ 204 libprc$(NITRO_LIBSUFFIX).a \ 205 libpxi$(NITRO_LIBSUFFIX).a \ 206 librtc$(NITRO_LIBSUFFIX).a \ 207 libsnd$(NITRO_LIBSUFFIX).a \ 208 libspi$(NITRO_LIBSUFFIX).a \ 209 libstd$(NITRO_LIBSUFFIX).a \ 210 libwbt$(NITRO_LIBSUFFIX).a \ 211 libwfs$(NITRO_LIBSUFFIX).a \ 212 libwm$(NITRO_LIBSUFFIX).a \ 213 libcrypto$(NITRO_LIBSUFFIX).a \ 214 libctrdg$(NITRO_LIBSUFFIX).a \ 215 libcht$(NITRO_LIBSUFFIX).a \ 216 libssp$(NITRO_LIBSUFFIX).a \ 217 libwxc$(NITRO_LIBSUFFIX).a \ 218 $(notdir $(LIBSYSCALL_)) \ 219 $(CRT0_O) 220 221NITRO_LIBS += $(if $(NITRO_PROFILE_TYPE),libos.$(NITRO_PROFILE_TYPE)$(NITRO_LIBSUFFIX).a) 222NITRO_LIBS += $(if $(filter TRUE,$(TWLSDK_IRC_PRIVATE)),libirc$(NITRO_LIBSUFFIX).a) 223 224else # ($(CODEGEN_PROC),ARM7) 225 226NITRO_LIBS ?= \ 227 libcard_sp$(NITRO_LIBSUFFIX).a \ 228 libexi_sp$(NITRO_LIBSUFFIX).a \ 229 libfs_sp$(NITRO_LIBSUFFIX).a \ 230 libmi_sp$(NITRO_LIBSUFFIX).a \ 231 libmic_sp$(NITRO_LIBSUFFIX).a \ 232 libnvram_sp$(NITRO_LIBSUFFIX).a \ 233 libos_sp$(NITRO_LIBSUFFIX).a \ 234 libpad_sp$(NITRO_LIBSUFFIX).a \ 235 libpm_sp$(NITRO_LIBSUFFIX).a \ 236 libpxi_sp$(NITRO_LIBSUFFIX).a \ 237 librtc_sp$(NITRO_LIBSUFFIX).a \ 238 libsnd_sp$(NITRO_LIBSUFFIX).a \ 239 libspi_sp$(NITRO_LIBSUFFIX).a \ 240 libstd_sp$(NITRO_LIBSUFFIX).a \ 241 libtp_sp$(NITRO_LIBSUFFIX).a \ 242 libwvr_sp$(NITRO_LIBSUFFIX).a \ 243 libctrdg_sp$(NITRO_LIBSUFFIX).a \ 244 libsubpsyscall.a \ 245 $(CRT0_O) 246 247 248NITRO_LIBS += $(if $(NITRO_PROFILE_TYPE),libos_sp.$(NITRO_PROFILE_TYPE)$(NITRO_LIBSUFFIX).a) 249 250endif 251 252### Global Library settings 253 254SYSTEM_GINCLUDES = $(NITROWIRELESS_INCDIR) \ 255 $(NITRO_INCDIR) $(ISDBG_INCDIRS) 256 257DEFAULT_GINCLUDES = $(INCDIR) $(SRCDIR) \ 258 $(NITROSYSTEM_INCDIR) $(SYSTEM_GINCLUDES) 259 260DEFAULT_GLIBRARY_DIRS = $(LIBDIR) $(dir $(LIBSYSCALL_)) \ 261 $(NITROSYSTEM_LIBDIR) $(NITROWIRELESS_LIBDIR) \ 262 $(NITRO_LIBDIR) $(ISDBG_LIBDIRS) 263 264DEFAULT_GLIBRARIES = $(NITROSYSTEM_LIBS) $(NITRO_LIBS) $(STUBS_LIBS) $(ISDBG_LIBS) 265 266GINCLUDES ?= $(DEFAULT_GINCLUDES) 267GLIBRARY_DIRS ?= $(DEFAULT_GLIBRARY_DIRS) 268GLIBRARIES ?= $(DEFAULT_GLIBRARIES) 269 270LINCLUDES ?= 271LLIBRARY_DIRS ?= 272LLIBRARIES ?= 273LNEWDIRS ?= 274 275NEWDIRS ?= $(strip $(if $(SRCS),$(OBJDIR) $(DEPENDDIR)) \ 276 $(if $(TARGET_LIB),$(LIBDIR)) \ 277 $(if $(TARGET_BIN)$(TARGET_ELF),$(BINDIR)) \ 278 $(LNEWDIRS)) 279 280GDIRT_CLEAN_DIRS := ./obj ./bin ./lib ./depend 281GDIRT_CLOBBER_DIRS := 282 283endif 284 285#---------------------------------------------------------------------------- 286# MY BUILD TOOLS 287# 288 289MAKELCF := $(NITRO_TOOLSDIR)/bin/makelcf.exe 290MAKEBANNER := $(NITRO_TOOLSDIR)/bin/makebanner.exe 291ADDBANNER := $(NITRO_TOOLSDIR)/bin/addbanner.exe 292NTEXCONV := $(NITRO_TOOLSDIR)/bin/ntexconv.exe 293COMPSTATIC := $(NITRO_TOOLSDIR)/bin/compstatic.exe 294MAKEROM := $(NITRO_TOOLSDIR)/bin/makerom.exe 295EMUCHILD := $(NITRO_TOOLSDIR)/bin/emuchild.exe 296ATTACHSIGN := $(NITRO_TOOLSDIR)/bin/attachsign.exe 297BIN2OBJ := $(NITRO_TOOLSDIR)/bin/bin2obj.exe 298MAKELST := $(NITRO_TOOLSDIR)/bin/makelst.exe 299STRIPDEBUG := $(NITRO_TOOLSDIR)/bin/stripdebug.exe 300LOADRUN := $(NITRO_TOOLSDIR)/bin/loadrun.exe 301 302MAKELCF_FLAGS ?= 303MAKEBANNER_FLAGS ?= 304MAKEROM_FLAGS ?= 305COMPSTATIC_FLAGS ?= 306LOADRUN_FLAGS ?= 307DEFAULT_COMP_ARM7 ?= mongoose 308DEFAULT_ADDRESS_STATIC ?= 0x02000000 309DEFAULT_ADDRESS_ITCM ?= 0x01FF8000 310DEFAULT_ADDRESS_DTCM ?= 0x027e0000 311DEFAULT_COMPSUFFIX ?= _LZ 312DEFAULT_MAKEROM_ARM9 = $(NITRO_COMPONENTSDIR)/printserver/$(NITRO_BUILDTYPE_ARM9)/main.$(NITRO_ELF_EXT) 313DEFAULT_MAKEROM_ARM7 = $(NITRO_COMPONENTSDIR)/$(DEFAULT_COMP_ARM7)/$(NITRO_BUILDTYPE_ARM7)/$(DEFAULT_COMP_ARM7)_sub.$(NITRO_ELF_EXT) 314 315DEFAULT_MAKEROM_ROMROOT := ./files 316DEFAULT_MAKEROM_ROMFILES := 317DEFAULT_MAKEROM_ROMSPEED ?= $(NITRO_ROMSPEED) 318 319 320#---------------------------------------------------------------------------- 321# LIST OF JUNKS for "make 322# 323 324GDIRT_CLEAN = a.out core *~ *.bak \\\#*\\\# $(GDIRT_CLEAN_DIRS) 325 326GDIRT_CLOBBER = $(GDIRT_CLOBBER_DIRS) 327 328GDIRT_INSTALLED = $(addprefix $(INSTALL_DIR)/,$(notdir $(INSTALL_TARGETS))) 329 330 331#---------------------------------------------------------------------------- 332# Load add-ins' commondefs 333# 334#-include $(NITRO_BUILDTOOLSDIR)/commondefs.add-ins.* 335 336 337#---------------------------------------------------------------------------- 338# DEFAULT TARGET 339# 340ifdef NITRO_UTEST 341default all: utest 342else 343default all: build 344endif 345 346#---------------------------------------------------------------------------- 347endif # TWLSDK_NITRO_COMMONDEFS_ 348#----- End of commondefs ----- 349