msxbuild/lib/make/𓃬𓍄𓋹𓀭/mb_flow_proj.mk

323 lines
19 KiB
Makefile
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

MB_PROJ_META_GROUP_ID ?=
$(call mb-make-call,mb-doc-variable,MB_PROJ_META_GROUP_ID,The project group id.)
MB_PROJ_META_ARTIFACT_ID ?=
$(call mb-make-call,mb-doc-variable,MB_PROJ_META_ARTIFACT_ID,The project artifact id.)
MB_PROJ_META_VERSION ?=
$(call mb-make-call,mb-doc-variable,MB_PROJ_META_VERSION,The project version.)
MB_PROJ_META_NAME ?=
$(call mb-make-call,mb-doc-variable,MB_PROJ_META_NAME,The project name.)
MB_PROJ_META_DESCRIPTION ?=
$(call mb-make-call,mb-doc-variable,MB_PROJ_META_DESCRIPTION,The project description.)
MB_PROJ_META_WEBSITE ?=
$(call mb-make-call,mb-doc-variable,MB_PROJ_META_WEBSITE,The project website location.)
MB_PROJ_PHASE_ALL = @clean @init @prepare @process @compile @link @build @test @package @package-qa @package-deploy @all
$(call mb-make-call,mb-doc-variable-rock,MB_PROJ_PHASE_ALL,All the phases of an project with flow steps.)
MB_PROJ_FIRE_MODULE_INIT ?=
$(call mb-make-call,mb-doc-variable-flow,MB_PROJ_FIRE_MODULE_INIT,List of unique module project structure targets.)
MB_PROJ_FIRE_MODULE_RUN ?=
$(call mb-make-call,mb-doc-variable-flow,MB_PROJ_FIRE_MODULE_RUN,List of unique module project modules run targets.)
MB_PROJ_FIRE_ASSERT_SUCCESS ?=
$(call mb-make-call,mb-doc-variable-flow,MB_PROJ_FIRE_ASSERT_SUCCESS,Word count of total asserts successes.)
define mb-proj-grow-assert-success
$(MB_   )$(call mb-make-call,mb-make-check-arg1,$(0),$(1))
$(MB_   )$(call mb-make-call,mb-make-check-value-valid,$(0),$(1),@test @package-qa)
$(MB_   )$(eval MB_PROJ_FIRE_ASSERT_SUCCESS $(MB_MAKE_APPEND) $(1))
endef
$(call mb-make-call,mb-doc-function-deep,mb-proj-grow-assert-success,Grow the success counter of assertions.,<phase-id>)
define mb-proj-grow-deps-phase
$(MB_   )$(call mb-make-call,mb-make-check-arg2,$(0),$(1),$(2))
$(MB_   )$(call mb-make-call,mb-make-check-value-valid,$(0),$(1),$(MB_PROJ_PHASE_ALL))
$(MB_   )$(eval @$(1)-deps:: $(2))
endef
$(call mb-make-call,mb-doc-function-deep,mb-proj-grow-deps-phase,Grow the deps of the selected phase.,<phase> <slave-target>)
define _mb-proj-flow-step-before
$(MB_   )$(if $(filter $(subst @@,@,$@),$(MB_PROJ_PHASE_ALL)),$(call mb-make-call,mb-os-echo-phase,$(MB_I18N_PROJ_STEP_BEFORE) $@))
endef
define _mb-proj-flow-step-done
$(MB_   )$(if $(filter $@,$(MB_PROJ_PHASE_ALL)),$(call mb-make-call,mb-os-echo-phase,$(MB_I18N_PROJ_STEP_AFTER) $@))
$(MB_   )$(if $(value MAKECMDGOALS),$(if $(filter $@,$(MAKECMDGOALS)),$(call mb-make-call,mb-os-echo-report,$(MB_I18N_PROJ_OPENMSX_COUNT) $(words $(MB_OPENMSX_FIRE_PIPE_SMOKE)))))
$(MB_   )$(if $(value MAKECMDGOALS),$(if $(filter $@,$(MAKECMDGOALS)),$(call mb-make-call,mb-os-echo-good,$(MB_I18N_PROJ_STEP_DONE) $@)))
endef
define __mb-flow-proj-setup
.RECIPEPREFIX := $(MB_@RECIPE)
$(3)@@clean: $(2)
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@clean)
$(3)@@clean-deps:: $(2)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@clean-deps)
$(3)@clean: $(3)@@clean $(3)@@clean-deps
$(MB_@RECIPE)$$(if $$(wildcard $(1)),$$(call mb-make-call,mb-os-echo-command,$$(MB_I18N_PROJ_DIR_DELETE) $(1)))
$(MB_@RECIPE)$$(if $$(wildcard $(1)),$$(call mb-make-call,mb-os-dir-delete,$(1)))
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$$(if $(3),module,help),$(3)@clean,Clean's the project build folders.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@clean)
$(3)@@init: $(2)
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@init)
$(3)@@init-deps:: $(2)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@init-deps)
$(3)@init: $(3)@@init $(3)@@init-deps
$(MB_@RECIPE)$$(if $$(wildcard $(1)),,$$(call mb-make-call,mb-os-echo-command,$$(MB_I18N_PROJ_DIR_CREATE) $(1)))
$(MB_@RECIPE)$$(if $$(wildcard $(1)),,$$(call mb-make-call,mb-os-dir-create,$(1)))
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$$(if $(3),module,help),$(3)@init,Create the project output folders.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@init)
$(3)@@prepare: $(3)@init
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@prepare)
$(3)@@prepare-deps::
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@prepare-deps)
$(3)@prepare: $(3)@@prepare $(3)@@prepare-deps
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$$(if $(3),module,help),$(3)@prepare,Prepare sources before processing.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@prepare)
$(3)@@process: $(3)@prepare
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@process)
$(3)@@process-deps::
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@process-deps)
$(3)@process: $(3)@@process $(3)@@process-deps
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$$(if $(3),module,help),$(3)@process,Process sources before compiling.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@process)
$(3)@@compile: $(3)@process
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@compile)
$(3)@@compile-deps::
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@compile-deps)
$(3)@compile: $(3)@@compile $(3)@@compile-deps
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$$(if $(3),module,help),$(3)@compile,Compiles all project sources.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@compile)
$(3)@@link: $(3)@compile
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@link)
$(3)@@link-deps::
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@link-deps)
$(3)@link: $(3)@@link $(3)@@link-deps
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$$(if $(3),module,help),$(3)@link,Link all project intermediate files.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@link)
$(3)@@build: $(3)@link
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@build)
$(3)@@build-deps::
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@build-deps)
$(3)@build: $(3)@@build $(3)@@build-deps
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$$(if $(3),module,help),$(3)@build,Build all project artifacts.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@build)
$(3)@@test: $(3)@build
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@test)
$(3)@@test-deps::
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@test-deps)
$(3)@test: $(3)@@test $(3)@@test-deps
$(MB_@RECIPE)$$(if $(3),,$$(call mb-make-call,mb-os-echo-report,$$(MB_I18N_PROJ_ASSERT_COUNT) @test: $$(words $$(filter @test,$$(MB_PROJ_FIRE_ASSERT_SUCCESS)))))
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$$(if $(3),module,help),$(3)@test,Run all assertion tests.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@test)
$(3)@@package: $(3)@test
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@package)
$(3)@@package-deps::
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@package-deps)
$(3)@package: $(3)@@package $(3)@@package-deps
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$$(if $(3),module,help),$(3)@package,Create all packages of project.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@package)
$(3)@@package-qa: $(3)@package
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@package-qa)
$(3)@@package-qa-deps::
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@package-qa-deps)
$(3)@package-qa: $(3)@@package-qa $(3)@@package-qa-deps
$(MB_@RECIPE)$$(if $(3),,$$(call mb-make-call,mb-os-echo-report,$$(MB_I18N_PROJ_ASSERT_COUNT) @package-qa: $$(words $$(filter @package-qa,$$(MB_PROJ_FIRE_ASSERT_SUCCESS)))))
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$$(if $(3),module,help),$(3)@package-qa,Run all packages QA of project.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@package-qa)
$(3)@@package-deploy: $(3)@package-qa
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@package-deploy)
$(3)@@package-deploy-deps::
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@package-deploy-deps)
$(3)@package-deploy: $(3)@@package-deploy $(3)@@package-deploy-deps
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$$(if $(3),module,help),$(3)@package-deploy,Deploy all the packages.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@package-deploy)
$(3)@@all: $(3)@package-qa
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@all)
$(3)@@all-deps::
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@all-deps)
$(3)@all: $(3)@@all $(3)@@all-deps
$(MB_@RECIPE)$$(if $$(value MAKECMDGOALS),,$$(call mb-make-call,mb-os-echo-report,$$(MB_I18N_PROJ_OPENMSX_COUNT) $$(words $$(MB_OPENMSX_FIRE_PIPE_SMOKE))))
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$$(if $(3),module,help),$(3)@all,Run full build and package QA tests.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@all)
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
define mb-flow-proj-setup
$(MB_   )$(call mb-make-call,mb-make-check-arg1,$(0),$(1))
$(MB_   )$(if $(3),,$(call mb-make-call,mb-make-check-variable,MB_PROJ_META_GROUP_ID))
$(MB_   )$(if $(3),,$(call mb-make-call,mb-make-check-variable,MB_PROJ_META_ARTIFACT_ID))
$(MB_   )$(if $(3),,$(call mb-make-call,mb-make-check-variable,MB_PROJ_META_VERSION))
$(MB_   )$(if $(3),,$(call mb-make-call,mb-make-check-variable,MB_PROJ_META_NAME))
$(MB_   )$(if $(3),,$(call mb-make-call,mb-make-check-variable,MB_PROJ_META_DESCRIPTION))
$(MB_   )$(if $(3),,$(call mb-make-call,mb-make-check-variable,MB_PROJ_META_WEBSITE))
$(MB_   )$(if $(filter $(if $(3),$(3)/@init,@init),$(MB_PROJ_FIRE_MODULE_INIT)),,$(eval $(call mb-make-call,__$(0),$(1),$(2),$(if $(3),$(3)/))))
$(MB_   )$(if $(3),,$(if $(MB_I18N),$(if $(filter off,$(MB_I18N)),,$(call mb-make-call,_$(0)-i18n))))
$(MB_   )$(eval MB_PROJ_FIRE_MODULE_INIT $(MB_MAKE_APPEND) $(if $(3),$(3)/@init,@init))
endef
$(call mb-make-call,mb-doc-function-flow,mb-flow-proj-setup,Inject flow of abstract project build cycle.,<bin-dir> [parent-glue] [bin-mod-dir])
define __mb-flow-proj-setup-i18n
.RECIPEPREFIX := $(MB_@RECIPE)
@$$(MB_I18N_PROJ_PHASEID_CLEAN): @clean
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_CLEAN),$$(MB_I18N_PROJ_PHASEDOC_CLEAN))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_CLEAN))
@$$(MB_I18N_PROJ_PHASEID_INIT): @init
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_INIT),$$(MB_I18N_PROJ_PHASEDOC_INIT))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_INIT))
@$$(MB_I18N_PROJ_PHASEID_PREPARE): @$$(MB_I18N_PROJ_PHASEID_INIT) @prepare
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_PREPARE),$$(MB_I18N_PROJ_PHASEDOC_PREPARE))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_PREPARE))
@$$(MB_I18N_PROJ_PHASEID_PROCESS): @$$(MB_I18N_PROJ_PHASEID_PREPARE) @process
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_PROCESS),$$(MB_I18N_PROJ_PHASEDOC_PROCESS))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_PROCESS))
@$$(MB_I18N_PROJ_PHASEID_COMPILE): @$$(MB_I18N_PROJ_PHASEID_PROCESS) @compile
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_COMPILE),$$(MB_I18N_PROJ_PHASEDOC_COMPILE))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_COMPILE))
@$$(MB_I18N_PROJ_PHASEID_LINK): @$$(MB_I18N_PROJ_PHASEID_COMPILE) @link
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_LINK),$$(MB_I18N_PROJ_PHASEDOC_LINK))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_LINK))
@$$(MB_I18N_PROJ_PHASEID_BUILD): @$$(MB_I18N_PROJ_PHASEID_LINK) @build
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_BUILD),$$(MB_I18N_PROJ_PHASEDOC_BUILD))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_BUILD))
@$$(MB_I18N_PROJ_PHASEID_TEST): @$$(MB_I18N_PROJ_PHASEID_BUILD) @test
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_TEST),$$(MB_I18N_PROJ_PHASEDOC_TEST))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_TEST))
@$$(MB_I18N_PROJ_PHASEID_PACKAGE): @$$(MB_I18N_PROJ_PHASEID_TEST) @package
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_PACKAGE),$$(MB_I18N_PROJ_PHASEDOC_PACKAGE))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_PACKAGE))
@$$(MB_I18N_PROJ_PHASEID_PACKAGE_QA): @$$(MB_I18N_PROJ_PHASEID_PACKAGE) @package-qa
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_PACKAGE_QA),$$(MB_I18N_PROJ_PHASEDOC_PACKAGE_QA))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_PACKAGE_QA))
@$$(MB_I18N_PROJ_PHASEID_PACKAGE_DEPLOY): @$$(MB_I18N_PROJ_PHASEID_PACKAGE_QA) @package-deploy
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_PACKAGE_DEPLOY),$$(MB_I18N_PROJ_PHASEDOC_PACKAGE_DEPLOY))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_PACKAGE_DEPLOY))
@$$(MB_I18N_PROJ_PHASEID_ALL): @$$(MB_I18N_PROJ_PHASEID_PACKAGE_QA) @all
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_ALL),$$(MB_I18N_PROJ_PHASEDOC_ALL))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_ALL))
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
define _mb-flow-proj-setup-i18n
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_CLEAN)
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_INIT)
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_PREPARE)
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_PROCESS)
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_COMPILE)
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_LINK)
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_BUILD)
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_TEST)
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_PACKAGE)
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_PACKAGE_QA)
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_PACKAGE_DEPLOY)
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_ALL)
$(MB_   )$(eval $(call mb-make-call,_$(0)))
endef
define __mb-flow-proj-module-run
.RECIPEPREFIX := $(MB_@RECIPE)
$(1)/@run: $(1)/@build
$(MB_@RECIPE)$$(call mb-make-call,mb-msxpipe-run-gui,$(1),,$(2))
$(MB_   )$$(call mb-make-call,mb-doc-target-run,$(1)/@run,Run manually $(notdir $(1)) with gui$(if $(2), on $(2).,.))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(1)/@run)
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
define mb-flow-proj-module-run
$(MB_   )$(call mb-make-call,mb-make-check-arg1,$(0),$(1))
$(MB_   )$(if $(filter $(1)/@run,$(MB_PROJ_FIRE_MODULE_RUN)),,$(eval $(call mb-make-call,__$(0),$(1),$(2))))
$(MB_   )$(eval MB_PROJ_FIRE_MODULE_RUN +$(MB_MAKE_EQUALS) $(1)/@run)
endef
$(call mb-make-call,mb-doc-function-flow,mb-flow-proj-module-run,Inject flow module @run.,<bin-dir> [machine])
define __mb-flow-proj-prepare-packages
.RECIPEPREFIX := $(MB_@RECIPE)
$(1)/@@prepare-deps:: $(1)/@msxhub/$(2)
$(1)/@msxhub/$(2): @@module-msxhub
$(MB_@RECIPE)$$(if $$(wildcard $(1)$$(if $(3),/$(3))),,$$(call mb-make-call,mb-os-dir-create,$(1)$$(if $(3),/$(3))))
$(MB_@RECIPE)$$(call mb-make-call,mb-msxhub-get-$(2),$(1)$$(if $(3),/$(3)))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(1)/@msxhub/$(2))
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
define mb-flow-proj-prepare-packages
$(MB_   )$(call mb-make-call,mb-make-check-arg2,$(0),$(1),$(2))
$(MB_   )$(foreach _pack,$(2),$(eval $(call mb-make-call,__$(0),$(1),$(_pack),$(3))))
endef
$(call mb-make-call,mb-doc-function-flow,mb-flow-proj-prepare-packages,Inject package fetch flow for module.,<bin-dir> <packages> [dest-dir])