#!/usr/bin/env omake #---------------------------------------------------------------------------- # Project: NintendoWare # File: OMakefile # # Copyright (C)2009-2010 Nintendo Co., Ltd./HAL Laboratory, Inc. All rights reserved. # # These coded instructions, statements, and computer programs contain # proprietary information of Nintendo of America Inc. and/or Nintendo # Company Ltd., and are protected by Federal copyright law. They may # not be disclosed to third parties or copied or duplicated in any form, # in whole or in part, without the prior written consent of Nintendo. # # $Revision:$ #---------------------------------------------------------------------------- RESOURCE_DIR = Common/resources SHADER_DIR = Common/shaders BINARY_CONVERTER = $(NW4C_ROOT)/tools/CreativeStudio/NW4C_CreativeStudioConsole.exe .PHONY: resource GEOMETRY_SHADER_INCLUDES[] = GEOMETRY_SHADER_PATH = $(CTRSDK_ROOT)/resources/shaders public.GfxVertexShaderObject(files) = OFILES = OBJDIR = objects foreach(file, $(files)) OFILE = $(OBJDIR)/$(rootname $(basename $(file))).o $(OFILE): $(file) mkdir -p $(dirname $@) $(VERTEX_SHADER_ASSEMBLER) $(addprefix -I, $(VERTEX_SHADER_INCLUDES)) -O$@ $< -nowarning OFILES += $(OFILE) export OFILES return $(OFILES) public.GfxVertexShader(outdir, name, files) = GEOMERY_FULL_NAME = $(addprefix $(GEOMETRY_SHADER_PATH)/, $(GEOMETRY_SHADER_INCLUDES)) OBJS = $(GfxVertexShaderObject $(files)) OFILE = $(outdir)/$(name).shbin $(OFILE): $(OBJS) $(GEOMERY_FULL_NAME) mkdir -p $(dirname $@) $(VERTEX_SHADER_LINKER) -O$@ $+ return $(OFILE) public.GfxBinaryObject(ofile, files, option) = $(ofile): $(files) $(BINARY_CONVERTER) mkdir -p $(dirname $@) $(BINARY_CONVERTER) $(filter-out %.exe, $^) --verbose -o=$@ $(option) return $(ofile) public.GfxBinaryObjects(outdir, files, option) = OFILES = foreach(file, $(files)) OFILE = suffix_name = $(suffix $(file)) binary_suffix_name = $(addprefix ., $(join b, $(removeprefix ., $(suffix $(file))))) OFILE = $(outdir)/$(replacesuffixes $(suffix_name), $(binary_suffix_name), $(basename $(file))) OFILES += $(GfxBinaryObject $(OFILE), $(file), $(option)) export OFILES return $(OFILES) DEMOS[] = SceneTreeDemo SimpleDemo AnimationDemo AnimationBlendDemo AnimationChangeDemo PartialAnimationDemo ParticleDemo ResourceDemo LowLayerDemo LowLayerAnimationDemo ParticleUpdaterDemo ParticleRecycleDemo ParticleChokeDemo ParticleCtrlEmissionDemo ParticleApplicationDemo MultiInstanceDemo ParticleMultiEmitterDemo ParticleMultiModelDemo MultiAnimationDemo ParticleChangeVtxDemo ProjectionShadowDemo ShadowMapDemo ParticleLowLayerDemo ConstraintDemo DynamicMaterialDemo ParticleScaleDemo if $(defined NW_PRIVATE) DEMOS += ParticleProfile export DEMOS .SUBDIRS: $(DEMOS) DefineDefaultRules()