msxbuild/lib/make/𓃬𓍄𓋹𓀭/mb_flow_proj.mk
Willem Cazander 3560cd7340
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 4s
Added help for orphan modules and renamed manual assert to be equal as
others.
2024-07-18 15:57:00 +02:00

338 lines
20 KiB
Makefile
Raw Permalink 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_GROW_DEPS = @prepare @process @compile @link @build @test @package @package-qa @package-deploy @all
$(call mb-make-call,mb-doc-variable-rock,MB_PROJ_PHASE_GROW_DEPS,All the phases of an project with grow deps 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_GROW_DEPS))
$(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_GROW_DEPS) @clean @init),$(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_GROW_DEPS) @clean @init),$(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: $(3)@@clean
$(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-$(5),$(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: $(3)@@init
$(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-$(5),$(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-$(5),$(3)@prepare,Prepare sources before processing.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@prepare)
$(MB_   )$$(if $(4),$$(call mb-make-call,mb-proj-grow-deps-phase,@prepare,$(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-$(5),$(3)@process,Process sources before compiling.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@process)
$(MB_   )$$(if $(4),$$(call mb-make-call,mb-proj-grow-deps-phase,@process,$(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-$(5),$(3)@compile,Compiles all project sources.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@compile)
$(MB_   )$$(if $(4),$$(call mb-make-call,mb-proj-grow-deps-phase,@compile,$(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-$(5),$(3)@link,Link all project intermediate files.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@link)
$(MB_   )$$(if $(4),$$(call mb-make-call,mb-proj-grow-deps-phase,@link,$(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-$(5),$(3)@build,Build all project artifacts.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@build)
$(MB_   )$$(if $(4),$$(call mb-make-call,mb-proj-grow-deps-phase,@build,$(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-$(5),$(3)@test,Run all assertion tests.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@test)
$(MB_   )$$(if $(4),$$(call mb-make-call,mb-proj-grow-deps-phase,@test,$(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-$(5),$(3)@package,Create all packages of project.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@package)
$(MB_   )$$(if $(4),$$(call mb-make-call,mb-proj-grow-deps-phase,@package,$(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-$(5),$(3)@package-qa,Run all packages QA of project.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@package-qa)
$(MB_   )$$(if $(4),$$(call mb-make-call,mb-proj-grow-deps-phase,@package-qa,$(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-$(5),$(3)@package-deploy,Deploy all the packages.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@package-deploy)
$(MB_   )$$(if $(4),$$(call mb-make-call,mb-proj-grow-deps-phase,@package-deploy,$(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),,$$(if $$(filter $$@,@all),$$(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-$(5),$(3)@all,Run full build and package QA tests.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@all)
$(MB_   )$$(if $(4),$$(call mb-make-call,mb-proj-grow-deps-phase,@all,$(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)/),$(if $(3),$(3)/),$$(if $(3),module,help))))
$(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-orphan
$(MB_   )$(call mb-make-call,mb-make-check-arg1,$(0),$(1))
$(MB_   )$(if $(filter $(if $(3),$(3)/@init,@init),$(MB_PROJ_FIRE_MODULE_INIT)),,$(eval $(call mb-make-call,__mb-flow-proj-setup,$(1),$(2),$(if $(3),$(3)/),,orphan)))
$(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-orphan,Inject flow of abstract orphan project module.,<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)/@msxhub/$(2): $(MB_@GRAPH_CHAIN)
$(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))
$(MB_   )MB_@GRAPH_CHAIN :$(MB_MAKE_EQUALS) $(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_   )$(eval MB_@GRAPH_CHAIN :$(MB_MAKE_EQUALS) $(1)/@@prepare)
$(MB_   )$(foreach _pack,$(2),$(eval $(call mb-make-call,__$(0),$(1),$(_pack),$(3))))
$(MB_   )$(eval $(1)/@@prepare-deps:: $(MB_@GRAPH_CHAIN))
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])