MB_PROJ_META_NAME ?= MSXBUILD $(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.") define mb_proj_module_path_src $(MB__    )$(1)/$(subst /,,$(subst $(1),,$(dir $(lastword $(MAKEFILE_LIST))))) endef $(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 $(MB__    )$(2)/$(subst /,,$(subst $(1),,$(dir $(lastword $(MAKEFILE_LIST))))) endef $(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 $(MB__    )$(foreach dep,$(2),$(1)/$(notdir $(dep))) endef $(call mb_make_call,mb_doc_function_deep,mb_proj_module_deps,"Convert other files to local deps."," ") define mb_proj_grow_deps_phase_clean $(MB__    )$(eval @@clean-deps:: $(1)) endef $(call mb_make_call,mb_doc_function_deep,mb_proj_grow_deps_phase_process,"Grow the deps of the '@process' phase..","") define mb_proj_grow_deps_phase_init $(MB__    )$(eval @@init-deps:: $(1)) endef $(call mb_make_call,mb_doc_function_deep,mb_proj_grow_deps_phase_process,"Grow the deps of the '@process' phase..","") define mb_proj_grow_deps_phase_process $(MB__    )$(eval @@process-deps:: $(1)) endef $(call mb_make_call,mb_doc_function_deep,mb_proj_grow_deps_phase_process,"Grow the deps of the '@process' phase..","") define mb_proj_grow_deps_phase_compile $(MB__    )$(eval @@compile-deps:: $(1)) endef $(call mb_make_call,mb_doc_function_deep,mb_proj_grow_deps_phase_compile,"Grow the deps of the '@compile' phase..","") define mb_proj_grow_deps_phase_link $(MB__    )$(eval @@link-deps:: $(1)) endef $(call mb_make_call,mb_doc_function_deep,mb_proj_grow_deps_phase_link,"Grow the deps of the '@link' phase..","") define mb_proj_grow_deps_phase_build $(MB__    )$(eval @@build-deps:: $(1)) endef $(call mb_make_call,mb_doc_function_deep,mb_proj_grow_deps_phase_build,"Grow the deps of the '@build' phase..","") define mb_proj_grow_deps_phase_test $(MB__    )$(eval @@test-deps:: $(1)) endef $(call mb_make_call,mb_doc_function_deep,mb_proj_grow_deps_phase_test,"Grow the deps of the '@test' phase..","") define mb_proj_grow_deps_phase_package $(MB__    )$(eval @@package-deps:: $(1)) endef $(call mb_make_call,mb_doc_function_deep,mb_proj_grow_deps_phase_package,"Grow the deps of the '@package' phase..","") define mb_proj_grow_deps_phase_package_qa $(MB__    )$(eval @@package-qa-deps:: $(1)) endef $(call mb_make_call,mb_doc_function_deep,mb_proj_grow_deps_phase_package_qa,"Grow the deps of the '@package-qa' phase..","") define mb_proj_grow_deps_phase_package_deploy $(eval @@package-deploy-deps:: $(1)) endef $(call mb_make_call,mb_doc_function_deep,mb_proj_grow_deps_phase_package_deploy,"Grow the deps of the '@package-deploy' phase..","") define _mb_proj_flow_step_before $(MB__    )$(call mb_make_call,mb_os_echo_phase,$(MB_I18N_PROJ_STEP_BEFORE) $@) endef define _mb_proj_flow_step_done $(MB__    )$(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_good,$(MB_I18N_PROJ_STEP_DONE) $@))) endef define _mb_proj_run_clean $(MB__    )$(foreach folder,$(1),$(if $(wildcard $(folder)),$(call mb_make_call,mb_os_echo_command,$(MB_I18N_PROJ_DIR_DELETE) $(folder));)) $(MB__    )$(foreach folder,$(1),$(if $(wildcard $(folder)),$(call mb_make_call,mb_os_dir_delete,$(folder)))) endef define _mb_proj_run_init $(MB__    )$(foreach folder,$(1),$(if $(wildcard $(folder)),,$(call mb_make_call,mb_os_echo_command,$(MB_I18N_PROJ_DIR_CREATE) $(folder));)) $(MB__    )$(foreach folder,$(1),$(if $(wildcard $(folder)),,$(call mb_make_call,mb_os_dir_create,$(folder)))) endef define __mb_proj_flow_setup .RECIPEPREFIX := $(MB__RECIPE) @@clean: $(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_before) $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@@clean) @@clean-deps:: $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@@clean-deps) @clean: @@clean @@clean-deps $(MB__RECIPE)$$(call mb_make_call,_mb_proj_run_clean,$(1)) $(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_done) $(MB__    )$$(call mb_make_call,mb_doc_target_help,@clean,"Clean's the project build folders.") $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@clean) @@init: $(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_before) $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@@init) @@init-deps:: $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@@init-deps) @init: @@init @@init-deps $(MB__RECIPE)$$(call mb_make_call,_mb_proj_run_init,$(1)) $(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_done) $(MB__    )$$(call mb_make_call,mb_doc_target_help,@init,"Create the project output folders.") $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@init) @@process: @init $(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_before) $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@@process) @@process-deps:: $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@@process-deps) @process: @@process @@process-deps $(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_done) $(MB__    )$$(call mb_make_call,mb_doc_target_help,@process,"Process sources before compiling.") $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@process) @@compile: @process $(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_before) $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@@compile) @@compile-deps:: $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@@compile-deps) @compile: @@compile @@compile-deps $(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_done) $(MB__    )$$(call mb_make_call,mb_doc_target_help,@compile,"Compiles all project sources.") $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@compile) @@link: @compile $(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_before) $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@@link) @@link-deps:: $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@@link-deps) @link: @@link @@link-deps $(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_done) $(MB__    )$$(call mb_make_call,mb_doc_target_help,@link,"Link all project intermediate files.") $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@link) @@build: @link $(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_before) $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@@build) @@build-deps:: $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@@build-deps) @build: @@build @@build-deps $(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_done) $(MB__    )$$(call mb_make_call,mb_doc_target_help,@build,"Build all project artifacts.") $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@build) @@test: @build $(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_before) $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@@test) @@test-deps:: $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@@test-deps) @test: @@test @@test-deps $(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_done) $(MB__    )$$(call mb_make_call,mb_doc_target_help,@test,"Run all assertion tests.") $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@test) @@package: @test $(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_before) $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@@package) @@package-deps:: $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@@package-deps) @package: @@package @@package-deps $(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_done) $(MB__    )$$(call mb_make_call,mb_doc_target_help,@package,"Create all packages of project.") $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@package) @@package-qa: @package $(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_before) $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@@package-qa) @@package-qa-deps:: $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@@package-qa-deps) @package-qa: @@package-qa @@package-qa-deps $(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_done) $(MB__    )$$(call mb_make_call,mb_doc_target_help,@package-qa,"Run all packages QA of project.") $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@package-qa) @@package-deploy: @package-qa $(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_before) $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@@package-deploy) @@package-deploy-deps:: $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@@package-deploy-deps) @package-deploy: @@package-deploy @@package-deploy-deps $(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_done) $(MB__    )$$(call mb_make_call,mb_doc_target_help,@package-deploy,"Deploy all the packages.") $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@package-deploy) .RECIPEPREFIX := $(MB__RECIPEPREFIX) endef define mb_proj_flow_setup $(MB__    )$(call mb_make_call,mb_make_check_arg1,mb_proj_flow_setup,$(1)) $(MB__    )$(eval $(call mb_make_call,__mb_proj_flow_setup,$(1))) endef $(call mb_make_call,mb_doc_function_flow,mb_proj_flow_setup,"Prints flow of abstract project build cycle.","") define __mb_proj_flow_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_flag_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_flag_phony,@$$(MB_I18N_PROJ_PHASEID_INIT)) @$$(MB_I18N_PROJ_PHASEID_PROCESS): @$$(MB_I18N_PROJ_PHASEID_INIT) @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_flag_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_flag_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_flag_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_flag_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_flag_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_flag_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_flag_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_flag_phony,@$$(MB_I18N_PROJ_PHASEID_PACKAGE_DEPLOY)) .RECIPEPREFIX := $(MB__RECIPEPREFIX) endef define mb_proj_flow_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_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__    )$(eval $(call mb_make_call,__mb_proj_flow_setup_i18n)) endef $(call mb_make_call,mb_doc_function_flow,mb_proj_flow_setup_i18n,"Prints flow for i18n wrapper of project build cycle.")