1#!/usr/bin/env omake
2#----------------------------------------------------------------------------
3# Project:  NintendoWare
4# File:     OMakefile
5#
6# Copyright (C)2009-2011 Nintendo/HAL Laboratory, Inc.  All rights reserved.
7#
8# These coded instructions, statements, and computer programs contain proprietary
9# information of Nintendo and/or its licensed developers and are protected by
10# national and international copyright laws. They may not be disclosed to third
11# parties or copied or duplicated in any form, in whole or in part, without the
12# prior written consent of Nintendo.
13#
14# The content herein is highly confidential and should be handled accordingly.
15#
16# $Revision: $
17#----------------------------------------------------------------------------
18
19# Gfx�̃R���o�[�^�A�A�[�J�C�o
20BINARY_CONVERTER     = $(NW4C_ROOT)/tools/CreativeStudio/NW4C_CreativeStudioConsole.exe
21
22public.GfxBinaryObject(ofile, files, option) =
23    $(ofile): $(files) $(BINARY_CONVERTER)
24         mkdir -p $(dirname $@)
25         $(BINARY_CONVERTER) $(filter-out %.exe, $^) --verbose -o=$@ $(option)
26    return $(ofile)
27
28# ���C�A�E�g�̃R���o�[�^�A�A�[�J�C�o
29NW4C_LAYOUT_CONVERTER = $(NW4C_ROOT)/tools/LayoutEditor/Converter/NW4C_LayoutConverter.exe
30NW4C_LAYOUT_ARCHIVER  = $(NW4C_ROOT)/tools/LayoutEditor/Converter/NW4C_LayoutArchiver.exe
31
32public.LayoutBinaryConvert(outfile, outdir, sources) =
33    $(outfile): $(sources)
34            rm -rf $(outdir)
35            mkdir -p $(outdir)
36            $(NW4C_LAYOUT_CONVERTER) -g $(sources) $(outdir)
37            $(NW4C_LAYOUT_ARCHIVER) -c $(outfile) -a 128 -f $(outdir) ./blyt ./anim ./timg
38    return $(outfile)
39
40public.LayoutBinaryConvertNonAnim(outfile, outdir, sources) =
41    $(outfile): $(sources)
42            rm -rf $(outdir)
43            mkdir -p $(outdir)
44            $(NW4C_LAYOUT_CONVERTER) -g $(sources) $(outdir)
45            $(NW4C_LAYOUT_ARCHIVER) -c $(outfile) -a 128 -f $(outdir) ./blyt ./timg
46    return $(outfile)
47
48
49# �v���Z�X���T�|�[�g����^�[�Q�b�g���L�q���܂��B
50# �V�X�e�����͕K�� Process �ɂȂ�͂��ł��B
51SUPPORTED_TARGETS   = CTR-*.Process.MPCore.*
52ROMFS_ROOT          = romfiles
53TARGET_PROGRAM      = Nw4cDemo
54
55
56# Gfx���\�[�X�̃R���o�[�g���s���܂��B
57
58# �o�C�i���R���o�[�g�̃I�v�V�������w�肵�܂��B
59MODEL_OPTION = --auto_create_shader=on
60
61# �s�G��
62PIERROT_SET_NAME = ToyPierrot.bcmdl
63PIERROT_SET[] =
64            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyPierrot\ToyPierrot.cmdl
65            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyPierrot\ToyPierrotAnimDance.cskla
66            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyPierrot\ToyPierrotAnimDance.cmata
67            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyPierrot\ToyPierrotAll.ctex
68            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyPierrot\ToyPierrotAllNmap.ctex
69            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyPierrot\ToyPierrotEye.0.ctex
70            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyPierrot\ToyPierrotEye.1.ctex
71            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyPierrot\ToyPierrotEye.2.ctex
72            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyPierrot\ToyPierrotStickRed.ctex
73            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyCommon\ToyRoomCube.ctex
74            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyCommon\ToyAllLut.clts
75
76PIERROT_TARGET = $(GfxBinaryObject $(ROMFS_ROOT)/$(PIERROT_SET_NAME), $(PIERROT_SET), $(MODEL_OPTION))
77
78# �o�b�N�_���T�[�s�G��
79BACK_DANCER_PIERROT_SET_NAME = ToyPierrotBackDancer.bcmdl
80BACK_DANCER_PIERROT_SET[] =
81            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyPierrot\ToyPierrotBackDancer.cmdl
82            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyPierrot\ToyPierrotBackDancerAnimDance.cskla
83            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyPierrot\ToyPierrotAnimDance.cmata
84            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyPierrot\ToyPierrotAllNmap.ctex
85            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyPierrot\ToyPierrotBackDancerAll.ctex
86            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyPierrot\ToyPierrotEye.0.ctex
87            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyPierrot\ToyPierrotEye.1.ctex
88            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyPierrot\ToyPierrotEye.2.ctex
89            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyPierrot\ToyPierrotStickRed.ctex
90            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyCommon\ToyRoomCube.ctex
91            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyCommon\ToyAllLut.clts
92
93BACK_DANCER_PIERROT_TARGET = $(GfxBinaryObject $(ROMFS_ROOT)/$(BACK_DANCER_PIERROT_SET_NAME), $(BACK_DANCER_PIERROT_SET), $(MODEL_OPTION))
94
95# ���{�b�g
96ROBOT_SET_NAME = ToyRobot.bcmdl
97ROBOT_SET[] =
98            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyRobot\ToyRobot.cmdl
99            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyRobot\ToyRobotAnimDance.cskla
100            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyRobot\ToyRobot.cmata
101            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyRobot\ToyRobotAll.ctex
102            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyRobot\ToyRobotGear.ctex
103            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyCommon\ToyRoomCube.ctex
104            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyCommon\ToyAllLut.clts
105
106ROBOT_TARGET = $(GfxBinaryObject $(ROMFS_ROOT)/$(ROBOT_SET_NAME), $(ROBOT_SET), $(MODEL_OPTION))
107
108# �o�b�N�_���T�[���{�b�g
109BACK_DANCER_ROBOT_SET_NAME = ToyRobotBackDancer.bcmdl
110BACK_DANCER_ROBOT_SET[] =
111            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyRobot\ToyRobotBackDancer.cmdl
112            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyRobot\ToyRobotBackDancerAnimDance.cskla
113            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyRobot\ToyRobot.cmata
114            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyRobot\ToyRobotBackDancerAll.ctex
115            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyRobot\ToyRobotGear.ctex
116            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyCommon\ToyRoomCube.ctex
117            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyCommon\ToyAllLut.clts
118
119BACK_DANCER_ROBOT_TARGET = $(GfxBinaryObject $(ROMFS_ROOT)/$(BACK_DANCER_ROBOT_SET_NAME), $(BACK_DANCER_ROBOT_SET), $(MODEL_OPTION))
120
121# �X�e�[�W
122STAGE_SET_NAME = ToyStageMatFix.bcmdl
123STAGE_SET[] =
124            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyStageMatFix.cmdl
125            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyStageMatFix.cskla
126            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyStageMatFix.cmata
127            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyStageCarpet.ctex
128            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyStageConfetti.ctex
129            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyStageCurtain.ctex
130            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyStageParts01.ctex
131            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyStageParts02.ctex
132            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyStageParts03.ctex
133            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyStageRibbon.ctex
134            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyStageWood01.ctex
135            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyStageWood02.ctex
136            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyTentBlock.ctex
137            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyTentSpiralA.ctex
138            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyTentWall.ctex
139            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyTentWave.ctex
140            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyTentWood.ctex
141            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyTentSpiralA.ctex
142            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyCommon\ToyRoomCube.ctex
143            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyCommon\ToyAllLut.clts
144
145STAGE_TARGET = $(GfxBinaryObject $(ROMFS_ROOT)/$(STAGE_SET_NAME), $(STAGE_SET), $(MODEL_OPTION))
146
147# �X�e�[�W�I�u�W�F�N�g
148STAGE_OBJECT_SET_NAME = ToyStageObj.bcmdl
149STAGE_OBJECT_SET[] =
150            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyStageObj.cmdl
151            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyStageObj.cskla
152            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyStageBilliard.ctex
153            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyStageScreen.ctex
154            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyStageRocketMoon.ctex
155            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyStage\ToyStageRocketMoonNmap.ctex
156            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyCommon\ToyRoomCube.ctex
157            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyCommon\ToyAllLut.clts
158
159STAGE_OBJECT_TARGET = $(GfxBinaryObject $(ROMFS_ROOT)/$(STAGE_OBJECT_SET_NAME), $(STAGE_OBJECT_SET), $(MODEL_OPTION))
160
161# �ϋq
162AUDIENCE_SET_NAME = ToyAudience.bcmdl
163AUDIENCE_SET[] =
164            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyAudience\ToyAudience.cmdl
165            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyAudience\ToyAudience.cskla
166            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyAudience\ToyAudienceAll.ctex
167            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyAudience\ToyAudienceMask.ctex
168            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyCommon\ToyAllLut.clts
169
170AUDIENCE_TARGET = $(GfxBinaryObject $(ROMFS_ROOT)/$(AUDIENCE_SET_NAME), $(AUDIENCE_SET), $(MODEL_OPTION))
171
172# �V��
173TOYBG_SET_NAME = ToyBg.bcmdl
174TOYBG_SET[] =
175            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyCommon\ToyBg.cmdl
176            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyCommon\ToyAllLut.clts
177
178TOYBG_TARGET = $(GfxBinaryObject $(ROMFS_ROOT)/$(TOYBG_SET_NAME), $(TOYBG_SET), $(MODEL_OPTION))
179
180# �p�[�e�B�N��
181PARTICLE_SET_NAME = ToyParticle.bcres
182PARTICLE_SET[] =
183            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyParticle\ToyParticle.cres
184
185PARTICLE_TARGET = $(GfxBinaryObject $(ROMFS_ROOT)/$(PARTICLE_SET_NAME), $(PARTICLE_SET), $(MODEL_OPTION))
186
187
188# ���C�g
189LIGHT_SET_NAME = ToyMrnRbtLight.bcenv
190LIGHT_SET[] =
191            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyCommon\ToyMrnRbtLight.cenv
192            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyCommon\ToyAllLut.clts
193
194LIGHT_TARGET = $(GfxBinaryObject $(ROMFS_ROOT)/$(LIGHT_SET_NAME), $(LIGHT_SET), $(MODEL_OPTION))
195
196# �J����
197CAMERA_SET_NAME = ToyCamAni.bccam
198CAMERA_SET[] =
199            $(NW4C_ROOT)/SampleData\Nw4cDemo\ToyCamera\ToyCamAni.ccam
200
201CAMERA_TARGET = $(GfxBinaryObject $(ROMFS_ROOT)/$(CAMERA_SET_NAME), $(CAMERA_SET), $(MODEL_OPTION))
202
203
204# ���C�A�E�g���\�[�X�̃R���o�[�g�A�A�[�J�C�u�����s���܂��B
205
206# ���C��
207LYT_MAIN_ARV = ./romfiles/LayoutMain.arc
208LYT_MAIN_OUT = ./resource/LayoutMain
209LYT_MAIN_SET[] =
210            $(NW4C_ROOT)/SampleData\Nw4cDemo\LayoutDB\LayoutMain\Main.clyt
211            $(NW4C_ROOT)/SampleData\Nw4cDemo\LayoutDB\LayoutMain\Main.clan
212LYT_MAIN_TARGET = $(LayoutBinaryConvert $(LYT_MAIN_ARV), $(LYT_MAIN_OUT), $(LYT_MAIN_SET))
213
214# �X���C�_�[
215LYT_SLIDER_ARV = ./romfiles/LayoutSlider.arc
216LYT_SLIDER_OUT = ./resource/LayoutSlider
217LYT_SLIDER_SET[] =
218            $(NW4C_ROOT)/SampleData\Nw4cDemo\LayoutDB\LayoutSlider\Slider.clyt
219LYT_SLIDER_TARGET = $(LayoutBinaryConvertNonAnim $(LYT_SLIDER_ARV), $(LYT_SLIDER_OUT), $(LYT_SLIDER_SET))
220
221# �s�G���{�^��
222LYT_PIERROT_ARV = ./romfiles/LayoutPierrotButton.arc
223LYT_PIERROT_OUT = ./resource/LayoutPierrotButton
224LYT_PIERROT_SET[] =
225            $(NW4C_ROOT)/SampleData\Nw4cDemo\LayoutDB\LayoutPierrotButton/Button.clyt
226            $(NW4C_ROOT)/SampleData\Nw4cDemo\LayoutDB\LayoutPierrotButton/Button.clan
227LYT_PIERROT_TARGET = $(LayoutBinaryConvert $(LYT_PIERROT_ARV), $(LYT_PIERROT_OUT), $(LYT_PIERROT_SET))
228
229# ���{�b�g�{�^��
230LYT_ROBOT_ARV = ./romfiles/LayoutRobotButton.arc
231LYT_ROBOT_OUT = ./resource/LayoutRobotButton
232LYT_ROBOT_SET[] =
233            $(NW4C_ROOT)/SampleData\Nw4cDemo\LayoutDB\LayoutRobotButton/Button.clyt
234            $(NW4C_ROOT)/SampleData\Nw4cDemo\LayoutDB\LayoutRobotButton/Button.clan
235LYT_ROBOT_TARGET = $(LayoutBinaryConvert $(LYT_ROBOT_ARV), $(LYT_ROBOT_OUT), $(LYT_ROBOT_SET))
236
237# �X�e�[�W�{�^��
238LYT_STAGE_ARV = ./romfiles/LayoutStageButton.arc
239LYT_STAGE_OUT = ./resource/LayoutStageButton
240LYT_STAGE_SET[] =
241            $(NW4C_ROOT)/SampleData\Nw4cDemo\LayoutDB\LayoutStageButton/Button.clyt
242            $(NW4C_ROOT)/SampleData\Nw4cDemo\LayoutDB\LayoutStageButton/Button.clan
243LYT_STAGE_TARGET = $(LayoutBinaryConvert $(LYT_STAGE_ARV), $(LYT_STAGE_OUT), $(LYT_STAGE_SET))
244
245# �ϋq�{�^��
246LYT_AUDIENCE_ARV = ./romfiles/LayoutAudienceButton.arc
247LYT_AUDIENCE_OUT = ./resource/LayoutAudienceButton
248LYT_AUDIENCE_SET[] =
249            $(NW4C_ROOT)/SampleData\Nw4cDemo\LayoutDB\LayoutAudienceButton/Button.clyt
250            $(NW4C_ROOT)/SampleData\Nw4cDemo\LayoutDB\LayoutAudienceButton/Button.clan
251LYT_AUDIENCE_TARGET = $(LayoutBinaryConvert $(LYT_AUDIENCE_ARV), $(LYT_AUDIENCE_OUT), $(LYT_AUDIENCE_SET))
252
253# �p�[�e�B�N���{�^��
254LYT_PARTICLE_ARV = ./romfiles/LayoutParticleButton.arc
255LYT_PARTICLE_OUT = ./resource/LayoutParticleButton
256LYT_PARTICLE_SET[] =
257            $(NW4C_ROOT)/SampleData\Nw4cDemo\LayoutDB\LayoutParticleButton/Button.clyt
258            $(NW4C_ROOT)/SampleData\Nw4cDemo\LayoutDB\LayoutParticleButton/Button.clan
259LYT_PARTICLE_TARGET = $(LayoutBinaryConvert $(LYT_PARTICLE_ARV), $(LYT_PARTICLE_OUT), $(LYT_PARTICLE_SET))
260
261
262ROMFS_DEPENDENCIES = $(PIERROT_TARGET) $(BACK_DANCER_PIERROT_TARGET) $(ROBOT_TARGET) $(BACK_DANCER_ROBOT_TARGET) $(STAGE_TARGET) $(STAGE_OBJECT_TARGET) $(AUDIENCE_TARGET) $(TOYBG_TARGET) $(PARTICLE_TARGET) $(LIGHT_TARGET) $(CAMERA_TARGET) $(LYT_MAIN_TARGET) $(LYT_SLIDER_TARGET) $(LYT_PIERROT_TARGET) $(LYT_ROBOT_TARGET) $(LYT_STAGE_TARGET) $(LYT_AUDIENCE_TARGET) $(LYT_PARTICLE_TARGET)
263
264# �r���h����\�[�X�t�@�C��
265SOURCES[]           =
266                      sources/main.cpp
267                      sources/demo.cpp
268                      sources/GfxCtrl.cpp
269                      sources/LytCtrl.cpp
270                      sources/SmPerf.cpp
271                      sources/SmModel.cpp
272                      sources/SmPrimitive.cpp
273                      sources/SmButton.cpp
274                      sources/SmTouchPanelCamera.cpp
275                      sources/SmCamera.cpp
276                      sources/SmLayout.cpp
277                      sources/SmLytButton.cpp
278                      sources/SmRenderSystem.cpp
279                      sources/SmSceneCtrl.cpp
280                      sources/SmCommandUtility.cpp
281                      sources/SmBase.cpp
282                      sources/SmLytSliderBar.cpp
283                      sources/SmInitialFileParser.cpp
284                      sources/SmParticle.cpp
285
286SHADER_SOURCES[]    =
287                      sources/shader/nw4cDemo.vsh
288
289# �lj����郉�C�u����
290NW_LIBRARIES += libnw_demo
291CCFLAGS += -DNN_SWITCH_ENABLE_HOST_IO
292LIBS += libnn_math libnn_ulcd libnn_gr
293include $(NW4C_ROOT)/build/omake/modulerules
294
295build: $(DEFAULT_TARGETS)
296