1#!/usr/bin/env omake 2#---------------------------------------------------------------------------- 3# Project: NintendoWare 4# File: OMakefile 5# 6# Copyright (C)2009-2010 Nintendo Co., Ltd./HAL Laboratory, Inc. 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# $Revision:$ 15#---------------------------------------------------------------------------- 16 17RESOURCE_DIR = Common/resources 18SHADER_DIR = Common/shaders 19 20BINARY_CONVERTER = $(NW4C_ROOT)/tools/CreativeStudio/NW4C_CreativeStudioConsole.exe 21.PHONY: resource 22 23GEOMETRY_SHADER_INCLUDES[] = 24GEOMETRY_SHADER_PATH = $(CTRSDK_ROOT)/resources/shaders 25 26public.GfxVertexShaderObject(files) = 27 OFILES = 28 OBJDIR = objects 29 foreach(file, $(files)) 30 OFILE = $(OBJDIR)/$(rootname $(basename $(file))).o 31 $(OFILE): $(file) 32 mkdir -p $(dirname $@) 33 $(VERTEX_SHADER_ASSEMBLER) $(addprefix -I, $(VERTEX_SHADER_INCLUDES)) -O$@ $< -nowarning 34 OFILES += $(OFILE) 35 export OFILES 36 return $(OFILES) 37 38public.GfxVertexShader(outdir, name, files) = 39 GEOMERY_FULL_NAME = $(addprefix $(GEOMETRY_SHADER_PATH)/, $(GEOMETRY_SHADER_INCLUDES)) 40 OBJS = $(GfxVertexShaderObject $(files)) 41 OFILE = $(outdir)/$(name).shbin 42 43 $(OFILE): $(OBJS) $(GEOMERY_FULL_NAME) 44 mkdir -p $(dirname $@) 45 $(VERTEX_SHADER_LINKER) -O$@ $+ 46 47 return $(OFILE) 48 49public.GfxBinaryObject(ofile, files, option) = 50 $(ofile): $(files) $(BINARY_CONVERTER) 51 mkdir -p $(dirname $@) 52 $(BINARY_CONVERTER) $(filter-out %.exe, $^) --verbose -o=$@ $(option) 53 return $(ofile) 54 55public.GfxBinaryObjects(outdir, files, option) = 56 OFILES = 57 foreach(file, $(files)) 58 OFILE = 59 suffix_name = $(suffix $(file)) 60 binary_suffix_name = $(addprefix ., $(join b, $(removeprefix ., $(suffix $(file))))) 61 OFILE = $(outdir)/$(replacesuffixes $(suffix_name), $(binary_suffix_name), $(basename $(file))) 62 OFILES += $(GfxBinaryObject $(OFILE), $(file), $(option)) 63 export OFILES 64 65 return $(OFILES) 66 67DEMOS[] = 68 SceneTreeDemo 69 SimpleDemo 70 AnimationDemo 71 AnimationBlendDemo 72 AnimationChangeDemo 73 PartialAnimationDemo 74 ParticleDemo 75 ResourceDemo 76 LowLayerDemo 77 LowLayerAnimationDemo 78 ParticleUpdaterDemo 79 ParticleRecycleDemo 80 ParticleChokeDemo 81 ParticleCtrlEmissionDemo 82 ParticleApplicationDemo 83 MultiInstanceDemo 84 MultiAnimationDemo 85 ParticleChangeVtxDemo 86 ProjectionShadowDemo 87 ShadowMapDemo 88 ParticleLowLayerDemo 89 ConstraintDemo 90 DynamicMaterialDemo 91 ParticleScaleDemo 92 ParticleCombinationNodeDemo 93 ParticleMissileDemo 94 95.SUBDIRS: $(DEMOS) 96 97DefineDefaultRules() 98