#!/usr/bin/env omake #---------------------------------------------------------------------------- # Project: Horizon # File: OMakefile # # Copyright (C)2009-2012 Nintendo Co., Ltd. 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. # # $Rev: 46365 $ #---------------------------------------------------------------------------- SUPPORTED_TARGETS = CTR-TEG2.Process.MPCore.* CTR-TS.Process.MPCore.* DEMO_UTILITY_SOURCE_DIR = $(dir Utility) DEMO_SHADER_PROGRAM_SOURCE_DIR = $(dir ShaderProgram) DEMO_RENDER_DATA_SOURCE_DIR = $(dir RenderData) DEMO_RENDER_SOURCE_DIR = $(dir Render) DEMO_BODY_SOURCE_DIR = $(dir Body) DEMO_COMMAND_CACHE_SOURCE_DIR = $(dir CommandCache) SOURCES[] = \ $(DEMO_UTILITY_SOURCE_DIR)/demo_Utility.cpp \ $(DEMO_UTILITY_SOURCE_DIR)/demo_MemoryManager.cpp \ $(DEMO_UTILITY_SOURCE_DIR)/demo_TextureConverter.cpp \ \ $(DEMO_SHADER_PROGRAM_SOURCE_DIR)/demo_ProgramObject.cpp \ $(DEMO_SHADER_PROGRAM_SOURCE_DIR)/demo_ColorFillProgram.cpp \ $(DEMO_SHADER_PROGRAM_SOURCE_DIR)/demo_DecalTextureProgram.cpp \ $(DEMO_SHADER_PROGRAM_SOURCE_DIR)/demo_FontProgram.cpp \ $(DEMO_SHADER_PROGRAM_SOURCE_DIR)/demo_FontData.cpp \ $(DEMO_SHADER_PROGRAM_SOURCE_DIR)/demo_ShaderManager.cpp \ \ $(DEMO_RENDER_DATA_SOURCE_DIR)/demo_RenderData.cpp \ $(DEMO_RENDER_DATA_SOURCE_DIR)/demo_TrianglesRenderData.cpp \ $(DEMO_RENDER_DATA_SOURCE_DIR)/demo_TextsRenderData.cpp \ \ $(DEMO_RENDER_SOURCE_DIR)/demo_CommandList.cpp \ $(DEMO_RENDER_SOURCE_DIR)/demo_FrameBuffer.cpp \ $(DEMO_RENDER_SOURCE_DIR)/demo_DisplayBuffers.cpp \ $(DEMO_RENDER_SOURCE_DIR)/demo_GraphicsDrawing.cpp \ \ $(DEMO_RENDER_SOURCE_DIR)/demo_RenderSystem.cpp \ \ $(DEMO_BODY_SOURCE_DIR)/demo_Body.cpp \ $(DEMO_BODY_SOURCE_DIR)/demo_Cube.cpp \ $(DEMO_BODY_SOURCE_DIR)/demo_Sphere.cpp \ $(DEMO_BODY_SOURCE_DIR)/demo_Cylinder.cpp \ $(DEMO_BODY_SOURCE_DIR)/demo_Particle.cpp \ \ $(DEMO_RENDER_SOURCE_DIR)/demo_RenderSystemDrawing.cpp \ $(DEMO_RENDER_SOURCE_DIR)/demo_RenderSystemExt.cpp \ $(DEMO_RENDER_SOURCE_DIR)/demo_Light.cpp \ \ $(DEMO_COMMAND_CACHE_SOURCE_DIR)/demo_CommandCache.cpp TARGET_LIBRARY = lib_demo #################################################################################################### # # Shader binary rules # #################################################################################################### VERTEX_SHADER_ASSEMBLER = $(ROOT_COMMANDS)$(DIRSEP)ctr_VertexShaderAssembler32.exe VERTEX_SHADER_LINKER = $(ROOT_COMMANDS)$(DIRSEP)ctr_VertexShaderLinker32.exe VERTEX_SHADER_DIR = $(dir shaders) VERTEX_SHADER_ASSEMBLER_FLAGS = VERTEX_SHADER_LINKER_FLAGS = -M VERTEX_SHADER_OBJ_EXT = .obj VERTEX_SHADER_BIN_EXT = .shbin BASIC_VERTEX_SHADER_FILES = \ $(VERTEX_SHADER_DIR)/ColorFillVShader.vsh \ $(VERTEX_SHADER_DIR)/FontVShader.vsh \ $(VERTEX_SHADER_DIR)/DecalTextureVShader.vsh BASIC_SHADER_BINARY_NAME = BasicVShader public.ObjectFromVShader(config, files, shader_binary_name) = SH_OBJ_FILES = obj_dir_parent = $(config.getObjectDirectory) foreach(file, $(files)) BASENAME = $(removesuffix $(basename $(file))) # *.obj SH_OBJ_FILE = $(obj_dir_parent)/$(BASENAME)$(VERTEX_SHADER_OBJ_EXT) if $(not $(defined SYMBOL_PREFIX)) SYMBOL_PREFIX = $(uppercase $(removesuffix $(basename $(file)))) export # *.vsh -> *.obj $(SH_OBJ_FILE): $(file) $(BIN2OBJ) $(obj_dir_parent) $(VERTEX_SHADER_ASSEMBLER) $(file) $(VERTEX_SHADER_ASSEMBLER_FLAGS) -O$(SH_OBJ_FILE) | grep -v '^.*finished - 0 error, 0 warning' SH_OBJ_FILES += $(SH_OBJ_FILE) export SH_OBJ_FILES # *.bin SH_BIN_FILE = $(obj_dir_parent)/$(shader_binary_name)$(VERTEX_SHADER_BIN_EXT) # *.obj -> *.bin $(SH_BIN_FILE): $(SH_OBJ_FILES) $(obj_dir_parent) $(VERTEX_SHADER_LINKER) $(SH_OBJ_FILES) $(VERTEX_SHADER_LINKER_FLAGS) -O$(SH_BIN_FILE) | grep -v '^.*finished - 0 error, 0 warning' # *.o OFILE = $(obj_dir_parent)/$(shader_binary_name)$(EXT_OBJ) # *.bin -> *.o BIN2OBJ_FLAGS = -b $(shader_binary_name)_SHADER_BEGIN -e $(shader_binary_name)_SHADER_END $(OFILE) : $(SH_BIN_FILE) $(obj_dir_parent) $(BIN2OBJ) $(BIN2OBJ_FLAGS) $(SH_BIN_FILE) $(OFILE) return $(OFILE) OBJECTS = $`(ObjectFromVShader $(TARGET), $(BASIC_VERTEX_SHADER_FILES), $(BASIC_SHADER_BINARY_NAME)) #################################################################################################### include $(ROOT_OMAKE)/modulerules build: $(DEFAULT_TARGETS)