#!/usr/bin/env omake #---------------------------------------------------------------------------- # Project: Horizon # File: modulerules.om # # Copyright 2007-2009 Nintendo. 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. # # $Date:: 2010-09-14#$ # $Rev: 25781 $ # $Author: sasaki_yu $ #---------------------------------------------------------------------------- if $(not $(defined DEFAULT_TARGETS)) DEFAULT_TARGETS = export export DEFAULT_TARGETS # .c/.cpp/.asm から生成されたオブジェクトファイルのフルパスが格納される。 # OMakefile にて値をセットする事もできる。 # 追加するオブジェクトファイルも一緒に生成する場合は TARGET を遅延評価させて使う事。 if $(not $(defined OBJECTS)) OBJECTS = export # .vsh から生成された頂点シェーダオブジェクトファイルのフルパスが格納される。 if $(not $(defined SHADER_OBJECTS)) SHADER_OBJECTS = export # ビルド済み頂点シェーダオブジェクトファイルのパスをが resouces/shaders からの相対パスで格納される。 if $(not $(defined SHADER_OBJECTS_PREBUILT)) SHADER_OBJECTS_PREBUILT = export # 頂点シェーダのソースファイル(.vsh) が格納される if $(defined SHADER_SOURCES) # OMakefile の SHADER_SOURCES で指定されたソースファイルをアセンブルして # .obj ファイルのフルパスを得る SHADER_OBJECTS = $(VertexShaderObjects $(SHADER_SOURCES)) $(SHADER_OBJECTS) # シェーダバイナリの名前が指定されていなければデフォルトを採用 if $(not $(defined TARGET_SHADER)) TARGET_SHADER = shader export # シェーダバイナリの名前が明示的に空にされているかをチェック if $(TARGET_SHADER) # OMakefile で生成したオブジェクトとビルド済みオブジェクトをリンクする # また必要に応じて ROMFS_ROOT 以下にバイナリをコピー SHADER_BINARY = $(VertexShaderBinary $(TARGET_SHADER), $(SHADER_OBJECTS), $(SHADER_OBJECTS_PREBUILT)) DEFAULT_TARGETS += $(SHADER_BINARY) export else # 明示的に空にされていれば、リンクは行わない DEFAULT_TARGETS += $(SHADER_OBJECTS) export # ライブラリ名(拡張子除く)の名前が格納される if $(defined TARGET_LIBRARY) foreach(TARGET, $(BUILDER.getLibraryTargets $(SUPPORTED_TARGETS))) target_file = $(StaticLibrary $(TARGET), $(TARGET_LIBRARY), $(SOURCES) $(OBJECTS)) if $(TARGET.isFilterMatched) DEFAULT_TARGETS += $(target_file) export # true なら生成されるオブジェクトをライブラリとして保持する if $(and $(defined INSTALL_OBJECTS), $(INSTALL_OBJECTS)) foreach(TARGET, $(BUILDER.getLibraryTargets $(SUPPORTED_TARGETS))) target_file = $(StaticObject $(TARGET), $(SOURCES)) if $(TARGET.isFilterMatched) DEFAULT_TARGETS += $(target_file) export # プログラム名(拡張子除く)の名前が格納される # ここで指定したプログラム名は elf ファイルや rom ファイルのファイル名に使用される。 if $(defined TARGET_PROGRAM) if $(defined UserRunProcess) foreach(TARGET, $(BUILDER.getTargets $(SUPPORTED_TARGETS))) DEFAULT_TARGETS += $(UserRunProcess $(TARGET), $(TARGET_PROGRAM), $(SOURCES) $(OBJECTS)) export else foreach(TARGET, $(BUILDER.getTargets $(SUPPORTED_TARGETS))) DEFAULT_TARGETS += $(UserProcess $(TARGET), $(TARGET_PROGRAM), $(SOURCES) $(OBJECTS)) export export if $(defined TARGET_TITLE) if $(defined Title) foreach(TARGET, $(BUILDER.getTargets $(SUPPORTED_TARGETS))) DEFAULT_TARGETS += $(Title $(TARGET), $(TARGET_TITLE), $(TITLE_CONTENTS)) export export if $(defined CTR_BANNER_SPEC) if $(defined Banner) foreach(TARGET, $(BUILDER.getTargets $(SUPPORTED_TARGETS))) DEFAULT_TARGETS += $(Banner $(TARGET), $(CTR_BANNER_SPEC)) export export DefineDefaultRules() foreach(x, $(HORIZON_PRIVATE_RULES)) $(x $(EMPTY))