1#!/usr/bin/env omake
2#----------------------------------------------------------------------------
3# Project: Horizon
4# File:    targetdefs.CTR.om
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:: 2010-12-24#$
15# $Rev: 33136 $
16# $Author: hatamoto_minoru $
17#----------------------------------------------------------------------------
18
19#----------------------------------------------------------------------------
20# CTR platform definition
21#----------------------------------------------------------------------------
22TargetSpecCTR. =
23    extends $(TargetSpec)
24    class TargetSpecCTR
25
26    platform    = CTR
27
28    new(name) =
29        this.name = $(name)
30        return $(this)
31
32    getMinimumLibraries(systemname, processor) =
33        libs =
34        switch($(systemname))
35        case Process
36            libs +=
37                switch($(processor))
38                case MPCore
39                    value libnn_dbg         \
40                          libnn_fnd         \
41                          libnn_init        \
42                          libnn_ndm         \
43                          libnn_os          \
44                          libnn_nstd        \
45                          libnn_svc         \
46                          libnn_svcDbg      \
47                          libnn_util        \
48                          libnn_err         \
49                          librtport         \
50                          libnn_srv
51            export
52        return $(libs)
53
54    getDefaultLibraries(systemname, processor) =
55        libs = $(getMinimumLibraries $(systemname), $(processor))
56        switch($(systemname))
57        case Process
58            libs +=
59                switch($(processor))
60                case MPCore
61                    value libnn_math        \
62                          libgles2          \
63                          libnn_dsp         \
64                          libnn_fs          \
65                          libnn_gxlow       \
66                          libnn_hid         \
67                          libnn_hidlow      \
68                          libnn_snd         \
69                          libnn_mic         \
70                          libnn_ptm         \
71                          libnn_socket      \
72                          libnn_ac          \
73                          libnn_http        \
74                          libnn_camera      \
75                          libnn_y2r         \
76                          libnn_jpegmp      \
77                          libnn_cfg         \
78                          libnn_uds         \
79                          libnn_dbm         \
80                          libnn_cec         \
81                          libnn_pl          \
82                          libnn_cx          \
83                          libnn_dlp         \
84                          libnn_font        \
85                          libnn_applet      \
86                          libnn_crypto
87            export
88        return $(libs)
89
90    getHostIoLibraries(systemname, processor) =
91        libs =
92        switch($(systemname))
93        case Process
94            libs +=
95                switch($(processor))
96                case MPCore
97                    value libnn_hio         \
98                          libnn_dev
99            export
100        return $(libs)
101
102    getPreloadProcesses(processor, moduledir) =
103        switch($(processor))
104        case MPCore
105            return $(EMPTY)
106        case ARM946ES
107            return $(EMPTY)
108        case ARM7TDMI
109            return $(EMPTY)
110        return $(EMPTY)
111
112    getMacroFlags(systemname, processor) =
113        flags = -DNN_PROCESSOR_ARM
114        flags +=
115            switch($(processor))
116            case MPCore
117                value -DNN_PROCESSOR_ARM11MPCORE -DNN_PROCESSOR_ARM_V6 -DNN_PROCESSOR_ARM_VFP_V2
118            case ARM946ES
119                value -DNN_PROCESSOR_ARM946ES -DNN_PROCESSOR_ARM_V5
120            case ARM7TDMI
121                value -DNN_PROCESSOR_ARM7TDMI -DNN_PROCESSOR_ARM_V4
122        return $(flags)
123
124    getDefaultRomSpecFile(hardware) =
125        return Application.rsf
126
127    getSystemFlags(systemname) =
128        return $(EMPTY)
129
130#----------------------------------------------------------------------------
131# Hardware definition
132#----------------------------------------------------------------------------
133
134#----------------------------------------------------------------------------
135section
136    spec = $(TargetSpecCTR.new $'CTR-TS')
137    spec.hardware     = CTR-TS
138    spec.processors   = MPCore ARM946ES
139    spec.getSystemFlags(systemname) =
140        flags = -DNN_DEBUGGER_KMC_PARTNER
141        switch($(systemname))
142        case Kernel
143            flags += -DFIRM_TARGET_KERNEL -DBROM_TARGET_KERNEL
144            export
145        return $(flags)
146
147    spec.getMacroFlags(systemname, processor) =
148        return $(TargetSpecCTR::getMacroFlags $(systemname), $(processor)) -DNN_HARDWARE_CTR
149
150    TARGET_MANAGER.register($(spec))
151    export
152
153
154
155if $(test -f $(ROOT_OMAKE)/targetdefs.CTR.internal.om)
156    include $(ROOT_OMAKE)/targetdefs.CTR.internal.om
157    export
158