MB_PROJ_META_NAME ?= MSXBUILD MB_DOC_FIRE_VARIABLE += $(call mb_make_call,mb_doc_variable,MB_PROJ_META_NAME,"The project name.") MB_PROJ_META_DESCRIPTION ?= MB_DOC_FIRE_VARIABLE += $(call mb_make_call,mb_doc_variable,MB_PROJ_META_DESCRIPTION,"The project description.") MB_PROJ_META_WEBSITE ?= MB_DOC_FIRE_VARIABLE += $(call mb_make_call,mb_doc_variable,MB_PROJ_META_WEBSITE,"The project website location.") MB_PROJ_STEP_BEFORE_PREFIX ?= "Before -- " MB_DOC_FIRE_VARIABLE_DEEP += $(call mb_make_call,mb_doc_variable_deep,MB_PROJ_STEP_BEFORE_PREFIX,"Prefix for begin phase message.") MB_PROJ_STEP_AFTER_PREFIX ?= "After ---- " MB_DOC_FIRE_VARIABLE_DEEP += $(call mb_make_call,mb_doc_variable_deep,MB_PROJ_STEP_AFTER_PREFIX,"Prefix for af phase message.") MB_PROJ_STEP_DONE_PREFIX ?= "Finished executing prime pi target " MB_DOC_FIRE_VARIABLE_DEEP += $(call mb_make_call,mb_doc_variable_deep,MB_PROJ_STEP_DONE_PREFIX,"Prefix for af phase message.") MB_PROJ_PHASE_PROCESS_DEPS ?= MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_PROCESS_DEPS,"The targets to trigger by project @process target.") MB_PROJ_PHASE_COMPILE_DEPS ?= MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_COMPILE_DEPS,"The targets to trigger by project @compile target.") MB_PROJ_PHASE_LINK_DEPS ?= MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_LINK_DEPS,"The targets to trigger by project @link target.") MB_PROJ_PHASE_BUILD_DEPS ?= MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_BUILD_DEPS,"The targets to trigger by project @build target.") MB_PROJ_PHASE_TEST_DEPS ?= MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_TEST_DEPS,"The targets to trigger by project @test target.") MB_PROJ_PHASE_PACKAGE_DEPS ?= MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_PACKAGE_DEPS,"The targets to trigger by project @package target.") MB_PROJ_PHASE_PACKAGE_QA_DEPS ?= MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_PACKAGE_QA_DEPS,"The targets to trigger by project @package-qa target.") MB_PROJ_PHASE_PACKAGE_DEPLOY_DEPS ?= MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_PACKAGE_QA_DEPLOY,"The targets to trigger by project @package-deploy target.") define mb_proj_module_path_src $(1)/$(subst /,,$(subst $(1),,$(dir $(lastword $(MAKEFILE_LIST))))) endef MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,mb_doc_function_deep,mb_proj_module_path_src,"Convert include location folder as src folder.","") define mb_proj_module_path_bin $(2)/$(subst /,,$(subst $(1),,$(dir $(lastword $(MAKEFILE_LIST))))) endef MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,mb_doc_function_deep,mb_proj_module_path_src,"Convert include location folder as bin folder."," ") define mb_proj_module_local_deps $(foreach dep,$(2),$(1)/$(notdir $(dep))) endef MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,mb_doc_function_deep,mb_proj_module_deps,"Convert other files to local deps."," ") define _mb_proj_flow_step_before $(call mb_make_call,mb_make_echo_phase,$(MB_PROJ_STEP_BEFORE_PREFIX)$@) endef define _mb_proj_flow_step_done $(call mb_make_call,mb_make_echo_phase,$(MB_PROJ_STEP_AFTER_PREFIX)$@) $(if $(filter $@,$(MAKECMDGOALS)),$(call mb_make_call,mb_make_echo_good,$(MB_PROJ_STEP_DONE_PREFIX)$@)) endef define _mb_proj_run_clean $(foreach folder,$(1),$(if $(wildcard $(folder)),$(call mb_make_call,mb_make_echo_command,Removing folder $(folder));)) $(foreach folder,$(1),$(if $(wildcard $(folder)),$(call mb_make_call,mb_clean,$(folder)))) endef define _mb_proj_run_init $(foreach folder,$(1),$(if $(wildcard $(folder)),,$(call mb_make_call,mb_make_echo_command,Creating folder $(folder));)) $(foreach folder,$(1),$(if $(wildcard $(folder)),,$(call mb_make_call,mb_mkdir,$(folder)))) endef define mb_proj_flow_setup @@clean: $$(call mb_make_call,_mb_proj_flow_step_before) .PHONY: @@clean @clean: @@clean $$(call mb_make_call,_mb_proj_run_clean,$(1)) $$(call mb_make_call,_mb_proj_flow_step_done) MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@clean,"Clean's the project build folders.") .PHONY: @clean @@init: $$(call mb_make_call,_mb_proj_flow_step_before) .PHONY: @@init @init: @@init $$(call mb_make_call,_mb_proj_run_init,$(1)) $$(call mb_make_call,_mb_proj_flow_step_done) MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@init,"Create the project output folders.") .PHONY: @init @@process: @init $$(call mb_make_call,_mb_proj_flow_step_before) .PHONY: @@process @process: @@process $$(MB_PROJ_PHASE_PROCESS_DEPS) $$(call mb_make_call,_mb_proj_flow_step_done) MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@process,"Process sources before compiling.") .PHONY: @process @@compile: @process $$(call mb_make_call,_mb_proj_flow_step_before) .PHONY: @@compile @compile: @@compile $$(MB_PROJ_PHASE_COMPILE_DEPS) $$(call mb_make_call,_mb_proj_flow_step_done) MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@compile,"Compiles all project sources.") .PHONY: @compile @@link: @compile $$(call mb_make_call,_mb_proj_flow_step_before) .PHONY: @@link @link: @@link $$(MB_PROJ_PHASE_LINK_DEPS) $$(call mb_make_call,_mb_proj_flow_step_done) MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@link,"Link all project intermediate files.") .PHONY: @link @@build: @link $$(call mb_make_call,_mb_proj_flow_step_before) .PHONY: @@build @build: @@build $$(MB_PROJ_PHASE_BUILD_DEPS) $$(call mb_make_call,_mb_proj_flow_step_done) MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@build,"Build all project artifacts.") .PHONY: @build @@test: @build $$(call mb_make_call,_mb_proj_flow_step_before) .PHONY: @@test @test: @@test $$(MB_PROJ_PHASE_TEST_DEPS) $$(call mb_make_call,_mb_proj_flow_step_done) MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@test,"Run all assertion tests.") .PHONY: @test @@package: @test $$(call mb_make_call,_mb_proj_flow_step_before) .PHONY: @@package @package: @@package $$(MB_PROJ_PHASE_PACKAGE_DEPS) $$(call mb_make_call,_mb_proj_flow_step_done) MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@package,"Create all packages of project.") .PHONY: @package @@package-qa: @package $$(call mb_make_call,_mb_proj_flow_step_before) .PHONY: @@package-qa @package-qa: @@package-qa $$(MB_PROJ_PHASE_PACKAGE_QA_DEPS) $$(call mb_make_call,_mb_proj_flow_step_done) MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@package-qa,"Run all packages QA of project.") .PHONY: @package-qa @@package-deploy: @package-qa $$(call mb_make_call,_mb_proj_flow_step_before) .PHONY: @@package-deploy @package-deploy: @@package-deploy $$(MB_PROJ_PHASE_PACKAGE_DEPLOY_DEPS) $$(call mb_make_call,_mb_proj_flow_step_done) MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@package-deploy,"Deploy all the packages.") .PHONY: @package-deploy endef MB_DOC_FIRE_FUNCTION_FLOW += $(call mb_make_call,mb_doc_function_flow,mb_proj_flow_setup,"Prints flow of abstract project build cycle.","") define mb_proj_flow_setup_jp @クリーン: @clean $$(call mb_make_call,_mb_proj_flow_step_done) MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@クリーン,"プロジェクトのビルドフォルダーをクリーンアップします。") .PHONY: @クリーン @初期化する: @init $$(call mb_make_call,_mb_proj_flow_step_done) MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@初期化する,"モジュール出力フォルダーをセットアップして検証します。") .PHONY: @@初期化する @プロセス: @初期化する @process $$(call mb_make_call,_mb_proj_flow_step_done) MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@プロセス,"コンパイル前にソースを処理します。") .PHONY: @プロセス @コンパイル: @プロセス @compile $$(call mb_make_call,_mb_proj_flow_step_done) MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@コンパイル,"すべてのプロジェクト ソースをコンパイルします。") .PHONY: @コンパイル @リンク: @コンパイル @link $$(call mb_make_call,_mb_proj_flow_step_done) MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@リンク,"すべてのプロジェクト中間ファイルをリンクします。") .PHONY: @リンク @建てる: @リンク @build $$(call mb_make_call,_mb_proj_flow_step_done) MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@建てる,"すべてのプロジェクト成果物をビルドします。") .PHONY: @建てる @テスト: @建てる @test $$(call mb_make_call,_mb_proj_flow_step_done) MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@テスト,"すべてのアサーション テストを実行します。") .PHONY: @テスト @パッケージ: @テスト @package $$(call mb_make_call,_mb_proj_flow_step_done) MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@パッケージ,"プロジェクトのパッケージを作成します。") .PHONY: @パッケージ @パッケージの品質保証: @パッケージ @package-qa $$(call mb_make_call,_mb_proj_flow_step_done) MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@パッケージの品質保証,"すべてのパッケージを実行します。プロジェクトの品質保証。") .PHONY: @パッケージの品質保証 @パッケージのデプロイ: @パッケージの品質保証 @package-deploy $$(call mb_make_call,_mb_proj_flow_step_done) MB_DOC_FIRE_HELP += $$(call mb_make_call,mb_doc_target_help,@パッケージのデプロイ,"パッケージをデプロイします。") .PHONY: @パッケージのデプロイ endef MB_DOC_FIRE_FUNCTION_FLOW += $(call mb_make_call,mb_doc_function_flow,mb_proj_flow_setup_jp,"Prints flow for japanese wrapper of project build cycle.") define mb_proj_flow_flight_video @@test-video: @test $$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb_make_call,mb_flight_video_merge,$(1))) @test-video: @clean $$(call mb_make_call,_mb_proj_flow_step_before) MB_OPENMSX_HEADLESS=off MB_FLIGHT_VIDEO=on $$(MAKE) @@test-video $$(call mb_make_call,_mb_proj_flow_step_done) MB_DOC_FIRE_HELP += $(call mb_make_call,mb_doc_target_help,@test-video,"Runs @test with video recorder and merges flight videos to one.") .PHONY: @test-video @@package-qa-video: @package-qa $$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb_make_call,mb_flight_video_merge,$(1))) @package-qa-video: @clean $$(call mb_make_call,_mb_proj_flow_step_before) MB_OPENMSX_HEADLESS=off MB_FLIGHT_VIDEO=on $$(MAKE) -s @@package-qa-video $$(call mb_make_call,_mb_proj_flow_step_done) MB_DOC_FIRE_HELP += $(call mb_make_call,mb_doc_target_help,@package-qa-video,"Runs @package-qa with video recorder and merges flight videos to one.") .PHONY: @test-video endef MB_DOC_FIRE_FUNCTION_FLOW += $(call mb_make_call,mb_doc_function_flow,mb_proj_flow_flight_video,"Prints flow for adding video targets in project build cycle.","")