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-09-13#$
15# $Rev: 25674 $
16# $Author: kakemizu_hironori $
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                          librtport         \
52                          libnn_srv
53            export
54        return $(libs)
55
56    getDefaultLibraries(systemname, processor) =
57        libs = $(getMinimumLibraries $(systemname), $(processor))
58        switch($(systemname))
59        case Process
60            libs +=
61                switch($(processor))
62                case MPCore
63                    value libnn_math        \
64                          libgles2          \
65                          libnn_dsp         \
66                          libnn_fs          \
67                          libnn_gxlow       \
68                          libnn_hid         \
69                          libnn_hidlow      \
70                          libnn_snd         \
71                          libnn_mic         \
72                          libnn_ptm         \
73                          libnn_socket      \
74                          libnn_ac          \
75                          libnn_http        \
76                          libnn_camera      \
77                          libnn_y2r         \
78                          libnn_jpegmp      \
79                          libnn_cfg         \
80                          libnn_ndm         \
81                          libnn_uds         \
82                          libnn_dbm         \
83                          libnn_cec         \
84                          libnn_pl          \
85                          libnn_cx          \
86                          libnn_dlp         \
87                          libnn_font        \
88                          libnn_applet
89            export
90        return $(libs)
91
92    getHostIoLibraries(systemname, processor) =
93        libs =
94        switch($(systemname))
95        case Process
96            libs +=
97                switch($(processor))
98                case MPCore
99                    value libnn_hio         \
100                          libnn_dev
101            export
102        return $(libs)
103
104    getPreloadProcesses(processor, moduledir) =
105        switch($(processor))
106        case MPCore
107            return $(EMPTY)
108        case ARM946ES
109            return $(EMPTY)
110        case ARM7TDMI
111            return $(EMPTY)
112        return $(EMPTY)
113
114    getMacroFlags(systemname, processor) =
115        flags = -DNN_PROCESSOR_ARM
116        flags +=
117            switch($(processor))
118            case MPCore
119                value -DNN_PROCESSOR_ARM11MPCORE -DNN_PROCESSOR_ARM_V6 -DNN_PROCESSOR_ARM_VFP_V2
120            case ARM946ES
121                value -DNN_PROCESSOR_ARM946ES -DNN_PROCESSOR_ARM_V5
122            case ARM7TDMI
123                value -DNN_PROCESSOR_ARM7TDMI -DNN_PROCESSOR_ARM_V4
124        return $(flags)
125
126    getDefaultRomSpecFile(hardware) =
127        return Application.rsf
128
129    getSystemFlags(systemname) =
130        return $(EMPTY)
131
132#----------------------------------------------------------------------------
133# ハードウェア定義
134#----------------------------------------------------------------------------
135
136#----------------------------------------------------------------------------
137section
138    spec = $(TargetSpecCTR.new $'CTR-TS')
139    spec.hardware     = CTR-TS
140    spec.processors   = MPCore ARM946ES
141    spec.getSystemFlags(systemname) =
142        flags = -DNN_DEBUGGER_KMC_PARTNER
143        switch($(systemname))
144        case Kernel
145            flags += -DFIRM_TARGET_KERNEL -DBROM_TARGET_KERNEL
146            export
147        return $(flags)
148
149    spec.getMacroFlags(systemname, processor) =
150        return $(TargetSpecCTR::getMacroFlags $(systemname), $(processor)) -DNN_HARDWARE_CTR
151
152    TARGET_MANAGER.register($(spec))
153    export
154
155
156
157if $(test -f $(ROOT_OMAKE)/targetdefs.CTR.internal.om)
158    include $(ROOT_OMAKE)/targetdefs.CTR.internal.om
159    export
160