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-01-05#$ 15# $Rev: 9777 $ 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_jpegEncoder$(NITRO_LIBSUFFIX).a \ 217 libssp_jpegDecoder$(NITRO_LIBSUFFIX).a \ 218 $(notdir $(LIBSYSCALL_)) \ 219 $(CRT0_O) 220 221NITRO_LIBS += $(if $(NITRO_PROFILE_TYPE),libos.$(NITRO_PROFILE_TYPE)$(NITRO_LIBSUFFIX).a) 222 223else # ($(CODEGEN_PROC),ARM7) 224 225NITRO_LIBS ?= \ 226 libcard_sp$(NITRO_LIBSUFFIX).a \ 227 libexi_sp$(NITRO_LIBSUFFIX).a \ 228 libfs_sp$(NITRO_LIBSUFFIX).a \ 229 libmi_sp$(NITRO_LIBSUFFIX).a \ 230 libmic_sp$(NITRO_LIBSUFFIX).a \ 231 libnvram_sp$(NITRO_LIBSUFFIX).a \ 232 libos_sp$(NITRO_LIBSUFFIX).a \ 233 libpad_sp$(NITRO_LIBSUFFIX).a \ 234 libpm_sp$(NITRO_LIBSUFFIX).a \ 235 libpxi_sp$(NITRO_LIBSUFFIX).a \ 236 librtc_sp$(NITRO_LIBSUFFIX).a \ 237 libsnd_sp$(NITRO_LIBSUFFIX).a \ 238 libspi_sp$(NITRO_LIBSUFFIX).a \ 239 libstd_sp$(NITRO_LIBSUFFIX).a \ 240 libtp_sp$(NITRO_LIBSUFFIX).a \ 241 libwvr_sp$(NITRO_LIBSUFFIX).a \ 242 libctrdg_sp$(NITRO_LIBSUFFIX).a \ 243 libsubpsyscall.a \ 244 $(CRT0_O) 245 246 247NITRO_LIBS += $(if $(NITRO_PROFILE_TYPE),libos_sp.$(NITRO_PROFILE_TYPE)$(NITRO_LIBSUFFIX).a) 248 249endif 250 251### Global Library settings 252 253SYSTEM_GINCLUDES = $(NITROWIRELESS_INCDIR) \ 254 $(NITRO_INCDIR) $(ISDBG_INCDIRS) 255 256DEFAULT_GINCLUDES = $(INCDIR) $(SRCDIR) \ 257 $(NITROSYSTEM_INCDIR) $(SYSTEM_GINCLUDES) 258 259DEFAULT_GLIBRARY_DIRS = $(LIBDIR) $(dir $(LIBSYSCALL_)) \ 260 $(NITROSYSTEM_LIBDIR) $(NITROWIRELESS_LIBDIR) \ 261 $(NITRO_LIBDIR) $(ISDBG_LIBDIRS) 262 263DEFAULT_GLIBRARIES = $(NITROSYSTEM_LIBS) $(NITRO_LIBS) $(STUBS_LIBS) $(ISDBG_LIBS) 264 265GINCLUDES ?= $(DEFAULT_GINCLUDES) 266GLIBRARY_DIRS ?= $(DEFAULT_GLIBRARY_DIRS) 267GLIBRARIES ?= $(DEFAULT_GLIBRARIES) 268 269LINCLUDES ?= 270LLIBRARY_DIRS ?= 271LLIBRARIES ?= 272LNEWDIRS ?= 273 274NEWDIRS ?= $(strip $(if $(SRCS),$(OBJDIR) $(DEPENDDIR)) \ 275 $(if $(TARGET_LIB),$(LIBDIR)) \ 276 $(if $(TARGET_BIN)$(TARGET_ELF),$(BINDIR)) \ 277 $(LNEWDIRS)) 278 279GDIRT_CLEAN_DIRS := ./obj ./bin ./lib ./depend 280GDIRT_CLOBBER_DIRS := 281 282endif 283 284#---------------------------------------------------------------------------- 285# MY BUILD TOOLS 286# 287 288MAKELCF := $(NITRO_TOOLSDIR)/bin/makelcf.exe 289MAKEBANNER := $(NITRO_TOOLSDIR)/bin/makebanner.exe 290ADDBANNER := $(NITRO_TOOLSDIR)/bin/addbanner.exe 291NTEXCONV := $(NITRO_TOOLSDIR)/bin/ntexconv.exe 292COMPSTATIC := $(NITRO_TOOLSDIR)/bin/compstatic.exe 293MAKEROM := $(NITRO_TOOLSDIR)/bin/makerom.exe 294EMUCHILD := $(NITRO_TOOLSDIR)/bin/emuchild.exe 295ATTACHSIGN := $(NITRO_TOOLSDIR)/bin/attachsign.exe 296BIN2OBJ := $(NITRO_TOOLSDIR)/bin/bin2obj.exe 297MAKELST := $(NITRO_TOOLSDIR)/bin/makelst.exe 298STRIPDEBUG := $(NITRO_TOOLSDIR)/bin/stripdebug.exe 299LOADRUN := $(NITRO_TOOLSDIR)/bin/loadrun.exe 300 301MAKELCF_FLAGS ?= 302MAKEBANNER_FLAGS ?= 303MAKEROM_FLAGS ?= 304COMPSTATIC_FLAGS ?= 305LOADRUN_FLAGS ?= 306DEFAULT_COMP_ARM7 ?= mongoose 307DEFAULT_ADDRESS_STATIC ?= 0x02000000 308DEFAULT_ADDRESS_ITCM ?= 0x01FF8000 309DEFAULT_ADDRESS_DTCM ?= 0x027e0000 310DEFAULT_COMPSUFFIX ?= _LZ 311DEFAULT_MAKEROM_ARM9 = $(NITRO_COMPONENTSDIR)/printserver/$(NITRO_BUILDTYPE_ARM9)/main.$(NITRO_ELF_EXT) 312DEFAULT_MAKEROM_ARM7 = $(NITRO_COMPONENTSDIR)/$(DEFAULT_COMP_ARM7)/$(NITRO_BUILDTYPE_ARM7)/$(DEFAULT_COMP_ARM7)_sub.$(NITRO_ELF_EXT) 313 314DEFAULT_MAKEROM_ROMROOT := ./files 315DEFAULT_MAKEROM_ROMFILES := 316DEFAULT_MAKEROM_ROMSPEED ?= $(NITRO_ROMSPEED) 317 318 319#---------------------------------------------------------------------------- 320# LIST OF JUNKS for "make 321# 322 323GDIRT_CLEAN = a.out core *~ *.bak \\\#*\\\# $(GDIRT_CLEAN_DIRS) 324 325GDIRT_CLOBBER = $(GDIRT_CLOBBER_DIRS) 326 327GDIRT_INSTALLED = $(addprefix $(INSTALL_DIR)/,$(notdir $(INSTALL_TARGETS))) 328 329 330#---------------------------------------------------------------------------- 331# Load add-ins' commondefs 332# 333#-include $(NITRO_BUILDTOOLSDIR)/commondefs.add-ins.* 334 335 336#---------------------------------------------------------------------------- 337# DEFAULT TARGET 338# 339ifdef NITRO_UTEST 340default all: utest 341else 342default all: build 343endif 344 345#---------------------------------------------------------------------------- 346endif # TWLSDK_NITRO_COMMONDEFS_ 347#----- End of commondefs ----- 348