1#---------------------------------------------------------------------------- 2# Project: Horizon 3# File: CTR.commondefs.om 4# 5# Copyright (C)2009-2011 Nintendo Co., Ltd. All rights reserved. 6# 7# These coded instructions, statements, and computer programs contain 8# proprietary information of Nintendo of America Inc. and/or Nintendo 9# Company Ltd., and are protected by Federal copyright law. They may 10# not be disclosed to third parties or copied or duplicated in any form, 11# in whole or in part, without the prior written consent of Nintendo. 12# 13# $Rev: 47349 $ 14#---------------------------------------------------------------------------- 15 16#---------------------------------------------------------------------------- 17# Global constant definition 18#---------------------------------------------------------------------------- 19 20# Application type setting 21 22global.APPTYPE_CARD = CARD 23global.APPTYPE_NAND = NAND 24global.APPTYPE_SD = SD 25global.APPTYPE_IMPORT = IMPORT 26global.APPTYPE_BOTH = BOTH 27global.APPTYPE_LIST = LIST 28global.APPTYPE_PATCH = PATCH 29 30global.CTR_APPTYPE = $(APPTYPE_CARD) 31 32 33 34# Extension settings 35 36global.EXT_CCI = .cci 37global.EXT_CXI = .cxi 38global.EXT_CIA = .cia 39global.EXT_CFA = .cfa 40global.EXT_BANNER = .bnr 41global.EXT_ICON = .icn 42global.EXT_CCL = .ccl 43global.EXT_CCL_E = .e.bin 44global.EXT_CCL_R = .r.bin 45private.EXT_EDIT = .edit 46private.EXT_RO = .cro 47private.EXT_RLT = .cro.rlt 48private.EXT_RR = .crr 49private.EXT_RS = .crs 50private.EXT_XRL = .xrl 51private.EXT_UAE = .uae 52private.EXT_FIL = .fil 53private.EXT_ELF2 = .axg 54 55 56# Tool path setting 57 58global.MAKEROM = $(ROOT_COMMANDS)$(DIRSEP)ctr_makerom32.exe 59global.MAKECIA = $(ROOT_COMMANDS)$(DIRSEP)ctr_makecia32.exe 60global.MAKEBANNER = $(ROOT_COMMANDS)$(DIRSEP)ctr_makebanner32.exe 61global.MAKECIAARCHIVE = $(ROOT_COMMANDS)$(DIRSEP)ctr_makeciaarchive32.exe 62private.MAKECRO = $(makePath $(ROOT_COMMANDS) ctr_makecro32.exe) 63private.MAKECRR = $(makePath $(ROOT_COMMANDS) ctr_makecrr32.exe) 64private.FROMELF = $(makePath $(RVCT_BINDIR) fromelf.exe) 65global.MAKEMETADATACONTENT = $(ROOT_COMMANDS)$(DIRSEP)ctr_makeMetaDataContent32.exe 66 67 68global.MAKEROMFLAGS = 69global.MAKECIAFLAGS = 70 71 72global.ROM_SPEC_FILE = $(makePath $(ROOT_RESOURCES) specfiles Application.rsf) 73 74global.BUILD_APPLICATION = false 75global.BUILD_KERNEL = false 76 77global.DEFAULT_FILTER = CTR-TS*MPCore* 78 79private.ORIGINAL_Elf = $(Elf) 80private.ORIGINAL_ExecutableElf = $(ExecutableElf) 81 82public.ELF_FLAGS_HOOK = $(EMPTY) 83 84# SYMBOL/INDEX/OFFSET 85public.MODULE_EXPORT_TYPE = SYMBOL 86 87# DEFAULT/RSO/REL/PLUGIN/LIBRARY 88public.MODULE_BUILD_TYPE = DEFAULT 89public.MODULE_ENABLE_OFFSET = true 90public.MODULE_CUSTOM_XRL = $(EMPTY) 91public.MODULE_ADD_DEBUG_INFO = true 92 93 94if $(not $(defined TRACE_PRODUCTCODE)) 95 global.TRACE_PRODUCTCODE = 96 export 97 98 99 100 101 102include $(makePlatformDefsPath commondefs.func) 103include $(makePlatformDefsPath commondefs.gl) 104 105#Load test rules 106if $(test -f $(makePlatformDefsPath commondefs.test)) 107 include $(makePlatformDefsPath commondefs.test) 108 export 109 110 111 112global.PROGRAM_BUILDER_MAP = $(Map) 113 114PROGRAM_BUILDER_MAP = $(PROGRAM_BUILDER_MAP.add $(APPTYPE_CARD),$(ProgramCard)) 115PROGRAM_BUILDER_MAP = $(PROGRAM_BUILDER_MAP.add $(APPTYPE_LIST),$(ProgramList)) 116PROGRAM_BUILDER_MAP = $(PROGRAM_BUILDER_MAP.add $(APPTYPE_NAND),$(ProgramImport)) 117PROGRAM_BUILDER_MAP = $(PROGRAM_BUILDER_MAP.add $(APPTYPE_SD),$(ProgramImport)) 118PROGRAM_BUILDER_MAP = $(PROGRAM_BUILDER_MAP.add $(APPTYPE_IMPORT),$(ProgramImport)) 119PROGRAM_BUILDER_MAP = $(PROGRAM_BUILDER_MAP.add $(APPTYPE_PATCH),$(ProgramPatch)) 120 121 122public.HORIZON_ADDITIONAL_RULES += 123 fun() 124 export DEFAULT_TARGETS 125 SHADER_BINARY = $(EMPTY) 126 export SHADER_BINARY 127 128 # The full path of the vertex shader object file generated from .vsh is stored. 129 if $(not $(defined SHADER_OBJECTS)) 130 SHADER_OBJECTS = 131 export SHADER_OBJECTS 132 export SHADER_OBJECTS 133 134 # The path to the built vertex shader object file is stored as a relative path from resources/shaders. 135 if $(not $(defined SHADER_OBJECTS_PREBUILT)) 136 SHADER_OBJECTS_PREBUILT = 137 export SHADER_OBJECTS_PREBUILT 138 export SHADER_OBJECTS_PREBUILT 139 140 # The vertex shader source file (.vsh) is stored 141 if $(defined SHADER_SOURCES) 142 # Assemble the specified source file with SHADER_SOURCES in OMakefile, and get the full path to the .obj file 143 # 144 SHADER_OBJECTS = $(VertexShaderObjects $(SHADER_SOURCES), $(SHADER_ASFLAGS)) $(SHADER_OBJECTS) 145 146 # If the shader binary name is not specified, use the default 147 if $(not $(defined TARGET_SHADER)) 148 TARGET_SHADER = shader 149 export 150 151 # Check whether the shader binary name was explicitly made a blank 152 if $(TARGET_SHADER) 153 # Link the object generated with OMakefile to a built object 154 # Also copy the binary to under ROMFS_ROOT as necessary 155 SHADER_BINARY = $(VertexShaderBinary $(TARGET_SHADER), $(SHADER_OBJECTS), $(SHADER_OBJECTS_PREBUILT), $(SHADER_LDFLAGS)) 156 DEFAULT_TARGETS += $(SHADER_BINARY) 157 else 158 # If explicitly made blank, it is not linked 159 DEFAULT_TARGETS += $(SHADER_OBJECTS) 160 161 if $(defined CTR_BANNER_SPEC) 162 foreach(TARGET, $(BUILDER.getTargets $(SUPPORTED_TARGETS))) 163 DEFAULT_TARGETS += $(Banner $(TARGET), $(CTR_BANNER_SPEC)) 164 165 166public.HORIZON_ADDITIONAL_RULES += 167 fun() 168 export DEFAULT_TARGETS 169 export ExecutableElf 170 export Elf 171 172 ExecutableElf = $(ExecutableElfUsingRo) 173 Elf = $(ElfUsingRo) 174 175 if $(defined TARGET_MODULE) 176 foreach(TARGET, $(BUILDER.getTargets $(SUPPORTED_TARGETS))) 177 private.list2nd = 178 if $(IsModuleListValid) 179 value $(if $(defined MODULE_LIST),$`(CollectXrl2nd $(TARGET), $`(MODULE_LIST))) $(if $(defined MODULE_LIST_XRL),$`(MODULE_LIST_XRL)) 180 else 181 value $(EMPTY) 182 private.list4th = 183 if $(IsModuleListValid) 184 value $(if $(defined MODULE_LIST),$`(CollectXrl4th $(TARGET), $`(MODULE_LIST))) $(if $(defined MODULE_LIST_XRL),$`(MODULE_LIST_XRL)) 185 else 186 value $(EMPTY) 187 private.flags = $(GetExportTypeOption $(MODULE_EXPORT_TYPE)) 188 DEFAULT_TARGETS += $(BuildRo $(TARGET), $(TARGET_MODULE), $(SOURCES) $(OBJECTS), $(list2nd), $(list4th), $(flags)) 189 190 if $(defined TARGET_PROGRAM) 191 foreach(TARGET, $(BUILDER.getTargets $(SUPPORTED_TARGETS))) 192 if $(IsModuleListDefined) 193 private.axf = $(file $(TARGET.getImageDirectory false)/$(TARGET_PROGRAM).axf) 194 private.xrl3rd = $(file $(TARGET.getImageDirectory false)/$(TARGET_PROGRAM).3.xrl) 195 private.list4th = 196 if $(IsModuleListValid) 197 value $(if $(defined MODULE_LIST),$`(CollectXrl4th $(TARGET), $`(MODULE_LIST))) $(if $(defined MODULE_LIST_XRL),$`(MODULE_LIST_XRL)) 198 else 199 value $(EMPTY) 200 if $(IsModuleListValid) 201 DEFAULT_TARGETS += $(BuildRr $(TARGET), $(TARGET_PROGRAM), $(MODULE_LIST), $(MODULE_ADD_DEBUG_INFO)) 202 DEFAULT_TARGETS += $(BuildRs $(TARGET), $(TARGET_PROGRAM), $(axf), $(xrl3rd), $(list4th)) 203 204 if $(defined TARGET_CRR) 205 foreach(TARGET, $(BUILDER.getTargets $(SUPPORTED_TARGETS))) 206 DEFAULT_TARGETS += $(BuildRr $(TARGET), $(TARGET_CRR), $(MODULE_LIST), $(MODULE_ADD_DEBUG_INFO)) 207 208