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: 36036 $
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
28
29global.CTR_APPTYPE = $(APPTYPE_CARD)
30
31
32
33# Extension settings
34
35global.EXT_CCI          = .cci
36global.EXT_CXI          = .cxi
37global.EXT_CIA          = .cia
38global.EXT_CFA          = .cfa
39global.EXT_BANNER       = .bnr
40global.EXT_ICON         = .icn
41global.EXT_CCL          = .ccl
42global.EXT_CCL_E        = .e.bin
43global.EXT_CCL_R        = .r.bin
44
45
46# Tool path setting
47
48global.MAKEROM          = $(ROOT_COMMANDS)$(DIRSEP)ctr_makerom32.exe
49global.MAKECIA          = $(ROOT_COMMANDS)$(DIRSEP)ctr_makecia32.exe
50global.MAKEBANNER       = $(ROOT_COMMANDS)$(DIRSEP)ctr_makebanner32.exe
51global.MAKECIAARCHIVE   = $(ROOT_COMMANDS)$(DIRSEP)ctr_makeciaarchive32.exe
52
53
54global.MAKEROMFLAGS     =
55global.MAKECIAFLAGS     =
56
57
58global.ROM_SPEC_FILE    = $(makePath $(ROOT_RESOURCES) specfiles Application.rsf)
59
60global.BUILD_APPLICATION    = false
61global.BUILD_KERNEL         = false
62
63global.DEFAULT_FILTER = CTR-TS*MPCore*
64
65
66
67
68
69
70
71include $(makePlatformDefsPath commondefs.func)
72include $(makePlatformDefsPath commondefs.gl)
73
74#Load test rules
75if $(test -f $(makePlatformDefsPath commondefs.test))
76    include $(makePlatformDefsPath commondefs.test)
77    export
78
79
80
81global.PROGRAM_BUILDER_MAP = $(Map)
82
83PROGRAM_BUILDER_MAP = $(PROGRAM_BUILDER_MAP.add $(APPTYPE_CARD),$(ProgramCard))
84PROGRAM_BUILDER_MAP = $(PROGRAM_BUILDER_MAP.add $(APPTYPE_LIST),$(ProgramList))
85PROGRAM_BUILDER_MAP = $(PROGRAM_BUILDER_MAP.add $(APPTYPE_NAND),$(ProgramImport))
86PROGRAM_BUILDER_MAP = $(PROGRAM_BUILDER_MAP.add $(APPTYPE_SD),$(ProgramImport))
87PROGRAM_BUILDER_MAP = $(PROGRAM_BUILDER_MAP.add $(APPTYPE_IMPORT),$(ProgramImport))
88
89
90public.HORIZON_ADDITIONAL_RULES +=
91    fun()
92        export DEFAULT_TARGETS
93        SHADER_BINARY = $(EMPTY)
94        export SHADER_BINARY
95
96        # The full path of the vertex shader object file generated from .vsh is stored.
97        if $(not $(defined SHADER_OBJECTS))
98            SHADER_OBJECTS =
99            export SHADER_OBJECTS
100        export SHADER_OBJECTS
101
102        # The path to the built vertex shader object file is stored as a relative path from resources/shaders.
103        if $(not $(defined SHADER_OBJECTS_PREBUILT))
104            SHADER_OBJECTS_PREBUILT =
105            export SHADER_OBJECTS_PREBUILT
106        export SHADER_OBJECTS_PREBUILT
107
108        # The vertex shader source file (.vsh) is stored
109        if $(defined SHADER_SOURCES)
110            # Assemble the specified source file with SHADER_SOURCES in OMakefile, and get the full path to the .obj file
111            #
112            SHADER_OBJECTS = $(VertexShaderObjects $(SHADER_SOURCES), $(SHADER_ASFLAGS)) $(SHADER_OBJECTS)
113
114            # If the shader binary name is not specified, use the default
115            if $(not $(defined TARGET_SHADER))
116                TARGET_SHADER = shader
117                export
118
119            # Check whether the shader binary name was explicitly made a blank
120            if $(TARGET_SHADER)
121                # Link the object generated with OMakefile to a built object
122                # Also copy the binary to under ROMFS_ROOT as necessary
123                SHADER_BINARY = $(VertexShaderBinary $(TARGET_SHADER), $(SHADER_OBJECTS), $(SHADER_OBJECTS_PREBUILT), $(SHADER_LDFLAGS))
124                DEFAULT_TARGETS += $(SHADER_BINARY)
125            else
126                # If explicitly made blank, it is not linked
127                DEFAULT_TARGETS += $(SHADER_OBJECTS)
128
129        if $(defined CTR_BANNER_SPEC)
130            foreach(TARGET, $(BUILDER.getTargets $(SUPPORTED_TARGETS)))
131                DEFAULT_TARGETS += $(Banner $(TARGET), $(CTR_BANNER_SPEC))
132