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-10-25#$
15# $Rev: 29304 $
16# $Author: hirose_kazuki $
17#----------------------------------------------------------------------------
18
19#----------------------------------------------------------------------------
20# CTR プラットフォームの定義
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                    # libnn_init の nninitSetup から ndm を呼んでいるので
40                    # libnn_ndm が必要。nninitSetup を上書きしている場合は
41                    # 不要になりそうなものだが、常に必要な模様。
42                    value libnn_dbg         \
43                          libnn_fnd         \
44                          libnn_init        \
45                          libnn_ndm         \
46                          libnn_os          \
47                          libnn_nstd        \
48                          libnn_svc         \
49                          libnn_svcDbg      \
50                          libnn_util        \
51                          libnn_err         \
52                          librtport         \
53                          libnn_srv
54            export
55        return $(libs)
56
57    getDefaultLibraries(systemname, processor) =
58        libs = $(getMinimumLibraries $(systemname), $(processor))
59        switch($(systemname))
60        case Process
61            libs +=
62                switch($(processor))
63                case MPCore
64                    value libnn_math        \
65                          libgles2          \
66                          libnn_dsp         \
67                          libnn_fs          \
68                          libnn_gxlow       \
69                          libnn_hid         \
70                          libnn_hidlow      \
71                          libnn_snd         \
72                          libnn_mic         \
73                          libnn_ptm         \
74                          libnn_socket      \
75                          libnn_ac          \
76                          libnn_http        \
77                          libnn_camera      \
78                          libnn_y2r         \
79                          libnn_jpegmp      \
80                          libnn_cfg         \
81                          libnn_ndm         \
82                          libnn_uds         \
83                          libnn_dbm         \
84                          libnn_cec         \
85                          libnn_pl          \
86                          libnn_cx          \
87                          libnn_dlp         \
88                          libnn_font        \
89                          libnn_applet      \
90                          libnn_crypto
91            export
92        return $(libs)
93
94    getHostIoLibraries(systemname, processor) =
95        libs =
96        switch($(systemname))
97        case Process
98            libs +=
99                switch($(processor))
100                case MPCore
101                    value libnn_hio         \
102                          libnn_dev
103            export
104        return $(libs)
105
106    getPreloadProcesses(processor, moduledir) =
107        switch($(processor))
108        case MPCore
109            return $(EMPTY)
110        case ARM946ES
111            return $(EMPTY)
112        case ARM7TDMI
113            return $(EMPTY)
114        return $(EMPTY)
115
116    getMacroFlags(systemname, processor) =
117        flags = -DNN_PROCESSOR_ARM
118        flags +=
119            switch($(processor))
120            case MPCore
121                value -DNN_PROCESSOR_ARM11MPCORE -DNN_PROCESSOR_ARM_V6 -DNN_PROCESSOR_ARM_VFP_V2
122            case ARM946ES
123                value -DNN_PROCESSOR_ARM946ES -DNN_PROCESSOR_ARM_V5
124            case ARM7TDMI
125                value -DNN_PROCESSOR_ARM7TDMI -DNN_PROCESSOR_ARM_V4
126        return $(flags)
127
128    getDefaultRomSpecFile(hardware) =
129        return Application.rsf
130
131    getSystemFlags(systemname) =
132        return $(EMPTY)
133
134#----------------------------------------------------------------------------
135# ハードウェア定義
136#----------------------------------------------------------------------------
137
138#----------------------------------------------------------------------------
139section
140    spec = $(TargetSpecCTR.new $'CTR-TS')
141    spec.hardware     = CTR-TS
142    spec.processors   = MPCore ARM946ES
143    spec.getSystemFlags(systemname) =
144        flags = -DNN_DEBUGGER_KMC_PARTNER
145        switch($(systemname))
146        case Kernel
147            flags += -DFIRM_TARGET_KERNEL -DBROM_TARGET_KERNEL
148            export
149        return $(flags)
150
151    spec.getMacroFlags(systemname, processor) =
152        return $(TargetSpecCTR::getMacroFlags $(systemname), $(processor)) -DNN_HARDWARE_CTR
153
154    TARGET_MANAGER.register($(spec))
155    export
156
157
158
159if $(test -f $(ROOT_OMAKE)/targetdefs.CTR.internal.om)
160    include $(ROOT_OMAKE)/targetdefs.CTR.internal.om
161    export
162