Auto setup module flow and packages as targets.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -13s

This commit is contained in:
Willem Cazander 2024-07-14 03:46:29 +02:00
parent f0cccf2bb3
commit c13a26d6b5
28 changed files with 420 additions and 259 deletions

View file

@ -1,12 +1,16 @@
define __mb_flow_assert_grep_binary_x
.RECIPEPREFIX := $(MB_@RECIPE)
$(1)/$(5)-$(2): $(1)/@build
$(1)/@@$(5)-deps:: $(1)/@assert/$(5)/$(2)
$(1)/@assert/$(5)/$(2): $(1)/@build
$(MB_@RECIPE)grep -q -U $(4) $(1)/$(3)
$(MB_@RECIPE)$$(call mb_make_call,mb_os_echo_assert,$$(MB_I18N_ASSERT_SUCCESS) v-$(2))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target,$(1)/$(5)-$(2),"Asserts that $(3) output matches.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(1)/$(5)-$(2))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_proj_grow_deps_phase,$(5),$(1)/$(5)-$(2))
$(MB_@RECIPE)$$(call mb_make_call,mb_os_echo_assert,$$(MB_I18N_ASSERT_SUCCESS) $(1)/@assert/$(2)/$(5))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target,$(1)/@assert/$(5)/$(2),"Asserts that $(3) output matches.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(1)/@assert/$(5)/$(2))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_proj_grow_deps_phase,$(5),$(1)/@assert/$(5)/$(2))
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
define mb_flow_assert_grep_binary_test
@ -20,26 +24,39 @@ $(MB_α•½α•½α•½γ€€γ€€γ€€)$(eval $(call mb_make_call,__mb_flow_assert_grep_binary_
endef
$(call mb_make_call,mb_doc_function_flow,mb_flow_assert_grep_binary_package_qa,"Inject flow of single binary grep assert.","<build-dir> <test-id> <file> <grep-match>")
#$$(call mb_delete,$(1)/$(3).out)
define __mb_assert_flow_bdos_grep
define __mb_flow_assert_msxpipe_grep_x2
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(shell grep -q $(1) $(2) && echo || echo fail)
endef
define __mb_flow_assert_msxpipe_grep_x
.RECIPEPREFIX := $(MB_@RECIPE)
$(1)-test-$(2)/@assert: $(1)/@build
$(MB_@RECIPE)$$(call mb_make_call,mb_os_dir_create,$(1)-test-$(2))
$(MB_@RECIPE)$$(call mb_make_call,mb_os_file_copy,$(1)/$(3).com,$(1)-test-$(2))
$(MB_@RECIPE)$$(call mb_make_call,mb_msxpipe_safe_test,$(1)-test-$(2),$(3) > $(3).out,$(5))
$(MB_@RECIPE)grep -q $(4) $(1)-test-$(2)/$(3).out
$(MB_@RECIPE)$$(call mb_make_call,mb_os_echo_assert,$$(MB_I18N_ASSERT_SUCCESS) $(1)-test-$(2)/@assert)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target,$(1)-test-$(2)/@assert,"Asserts that $(3) output matches.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(1)-test-$(2)/@assert)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_proj_grow_deps_phase,@test,$(1)-test-$(2)/@assert)
$(1)/@@$(5)-deps:: $(1)/@assert/$(5)/$(2)
$(7)/@@init-deps:: $(1)/@build
$(1)/@assert/$(5)/$(2): $(7)/@build
$(MB_@RECIPE)$$(if $$(wildcard $(7)/$(3).out),,$$(call mb_make_call,mb_os_file_delete,$(7)/$(3).out))
$(MB_@RECIPE)$$(call mb_make_call,mb_msxpipe_safe_assert,$(7),$(3) > $(3).out,$(6))
$(MB_@RECIPE)grep -q $(4) $(7)/$(3).out
$(MB_@RECIPE)$$(call mb_make_call,mb_os_echo_assert,$$(MB_I18N_ASSERT_SUCCESS) $(1)/@assert/$(2)/$(5))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target,$(1)/@assert/$(5)/$(2),"Asserts that $(3) output matches.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(1)/@assert/$(5)/$(2))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_proj_grow_deps_phase,$(5),$(1)/@assert/$(5)/$(2))
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
#$(call mb_make_call,mb_flow_clone_deps,$(DIST_QA_MSX1_BIN),$(DIST_BIN),$(DIST_DEPS),$(DIST_QA_MSX1_MACHINE))
define mb_assert_flow_bdos_grep
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_make_check_arg4,mb_assert_flow_bdos_grep,$(1),$(2),$(3),$(4))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(eval $(call mb_make_call,__mb_assert_flow_bdos_grep,$(1),$(2),$(3),$(4),$(5)))
define mb_flow_assert_msxpipe_grep_test
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_make_check_arg5,$(0),$(1),$(2),$(3),$(4),$(5))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(eval $(call mb_make_call,mb_flow_clone_deps,$(1)-assert/@test-$(3),$(1),$(2),$(6),$(7)))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(eval $(call mb_make_call,__mb_flow_assert_msxpipe_grep_x,$(1),$(3),$(4),$(5),@test,$(7),$(1)-assert/@test-$(3)))
endef
$(call mb_make_call,mb_doc_function_flow,mb_assert_flow_bdos_grep,"Inject flow of single grep assert.","<build-dir> <test-id> <cmd-name> <grep-match> [machine]")
$(call mb_make_call,mb_doc_function_flow,mb_flow_assert_msxpipe_grep_test,"Inject flow of single grep assert.","<build-dir> <deps> <test-id> <cmd-name> <grep-match> [packages] [machine]")
define mb_flow_assert_msxpipe_grep_package_qa
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_make_check_arg5,$(0),$(1),$(2),$(3),$(4),$(5))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(eval $(call mb_make_call,mb_flow_clone_deps,$(1)-assert/@package-qa-$(3),$(1),$(2),$(6),$(7)))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(eval $(call mb_make_call,__mb_flow_assert_msxpipe_grep_x,$(1),$(3),$(4),$(5),@package-qa,$(7),$(1)-assert/@package-qa-$(3)))
endef
$(call mb_make_call,mb_doc_function_flow,mb_flow_assert_msxpipe_grep_package_qa,"Inject flow of single grep assert.","<build-dir> <deps> <test-id> <cmd-name> <grep-match> [packages] [machine]")

View file

@ -2,40 +2,20 @@
define __mb_flow_clone_deps
.RECIPEPREFIX := $(MB_@RECIPE)
$(1)/@clean: @@clean
$(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_deep,$(1)/@clean)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(1)/@clean)
$(1): | @init
$(MB_@RECIPE)$$(if $$(wildcard $(1)),,$$(call mb_make_call,mb_os_dir_create,$(1)))
$(MB_@RECIPE)$$(if $(6),$$(call mb_make_call,mb_msxhub_get_$(6)_boot,$(1)))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target_deep,$(1))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(1))
$(1)/@prepare: $(3) | $(1)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target_deep,$(1)/@prepare)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(1)/@prepare)
$(1)/%: $(2)/% $(1)/@prepare
$(MB_@RECIPE)$$(call mb_make_call,mb_os_file_copy,$$<,$$@)
$(1)/@build: $(4)
$(1)/@@process-deps:: $(4)
$(MB_@RECIPE)$$(call mb_make_call,mb_os_echo_remark,$(MB_I18N_FLOW_CLONE_REPORT) $$(words $$^))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target,$(1)/@build,"Builds the $(1) module.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(1)/@build)
$(1)/@run: $(1)/@build
$(MB_@RECIPE)$$(call mb_make_call,mb_msxpipe_run_gui,$(1),,$(5))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target_run,$(1)/@run,"Run $(3).com manually with gui.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(1)/@run)
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
define mb_flow_clone_deps
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_make_check_arg3,$(0),$(1),$(2),$(3))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(eval $(call mb_make_call,__$(0),$(1),$(2),$(3),$(call mb_make_call,mb_proj_module_local_deps,$(1),$(3)),$(4),$(5)))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_flow_proj_setup,$(1),@init,$(1))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_flow_proj_module_run,$(1),$(5))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(if $(4),$(call mb_make_call,mb_flow_proj_prepare_packages,$(1),$(4)))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(eval $(call mb_make_call,__$(0),$(1),$(2),$(3),$(call mb_make_call,mb_make_module_local_deps,$(1),$(3))))
endef
$(call mb_make_call,mb_doc_function_flow,mb_flow_clone_deps,"Inject flow of file copy toolchain module.","<bin-to> <bin-from> <deps> [machine] [os-version]")
$(call mb_make_call,mb_doc_function_flow,mb_flow_clone_deps,"Inject flow of file copy toolchain module.","<bin-to> <bin-from> <deps> [packages] [machine]")

View file

@ -2,47 +2,37 @@
define __mb_flow_m80_bdos_mono
.RECIPEPREFIX := $(MB_@RECIPE)
$(1): | @init
$(MB_@RECIPE)$$(if $$(wildcard $(1)),,$$(call mb_make_call,mb_os_dir_create,$(1)))
$(MB_@RECIPE)$$(if $$(wildcard $(1)/utils),,$$(call mb_make_call,mb_os_dir_create,$(1)/utils))
$(MB_@RECIPE)$$(call mb_make_call,mb_msxhub_get_macro80,$(1)/utils)
$(MB_@RECIPE)$$(call mb_make_call,mb_msxhub_get_z80asmuk,$(1)/utils)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target_deep,$(1))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(1))
$(1)/$(3).mac: $(2)/$(3).mac | $(1)
$(1)/@@process-deps:: $(1)/$(3).mac
$(1)/$(3).mac: $(2)/$(3).mac | $(1)/@prepare
$(MB_@RECIPE)$$(call mb_make_call,mb_conv_unix2dos,$(2)/$(3).mac,$(1)/$(3).mac)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target_deep,$(1)/$(3).mac)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_proj_grow_deps_phase,@process,$(1)/$(3).mac)
$(1)/@@compile-deps:: $(1)/$(3).rel
$(1)/$(3).rel: $(1)/$(3).mac
$(MB_@RECIPE)$$(call mb_make_call,mb_msxpipe_safe_cmd,$(1),m80 $$(MB_MAKE_EQUALS)$(3)/Z)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target_deep,$(1)/$(3).rel)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_proj_grow_deps_phase,@compile,$(1)/$(3).rel)
$(1)/@@link-deps:: $(1)/$(3).hex
$(1)/$(3).hex: $(1)/$(3).rel
$(MB_@RECIPE)$$(call mb_make_call,mb_msxpipe_safe_cmd,$(1),l80 $(3)$$(MB_MAKE_COMMA)$(3)/N/X/Y/E)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target_deep,$(1)/$(3).hex)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_proj_grow_deps_phase,@link,$(1)/$(3).hex)
$(1)/@@build-deps:: $(1)/$(3).com
$(1)/$(3).com: $(1)/$(3).hex
$(MB_@RECIPE)$$(call mb_make_call,mb_msxpipe_safe_cmd,$(1),hextocom $(3))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target_deep,$(1)/$(3).com)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_proj_grow_deps_phase,@build,$(1)/$(3).com)
$(1)/@build: $(1)/$(3).com
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target,$(1)/@build,"Builds the $(1) module.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(1)/@build)
$(1)/@run: $(1)/@build
$(MB_@RECIPE)$$(call mb_make_call,mb_msxpipe_run_gui,$(1))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target_run,$(1)/@run,"Run $(3).com manually with gui.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(1)/@run)
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
define mb_flow_m80_bdos_mono
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_make_check_arg3,$(0),$(1),$(2),$(3))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_flow_proj_setup,$(1),@init,$(1))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_flow_proj_module_run,$(1))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_flow_proj_prepare_packages,$(1),macro80 z80asmuk,utils)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(eval $(call mb_make_call,__$(0),$(1),$(2),$(3)))
endef
$(call mb_make_call,mb_doc_function_flow,mb_flow_m80_bdos_mono,"Inject flow of m80 toolchain bdos mono file module.","<bin-dir> <src-dir> <objname>")

View file

@ -20,24 +20,11 @@ $(call mb_make_call,mb_doc_variable,MB_PROJ_META_WEBSITE,"The project website lo
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.")
define mb_proj_module_path_src
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(1)$(abspath $(subst $(1),,$(dir $(lastword $(MAKEFILE_LIST)))))
endef
$(call mb_make_call,mb_doc_function_deep,mb_proj_module_path_src,"Convert current location folder as src folder.","<path-src>")
define mb_proj_module_path_bin
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(2)$(abspath $(subst $(1),,$(dir $(lastword $(MAKEFILE_LIST)))))
endef
$(call mb_make_call,mb_doc_function_deep,mb_proj_module_path_src,"Convert current location folder as bin folder.","<path-src> <path-bin>")
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.","<mod-bin> <deps>")
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.")
define mb_proj_grow_deps_phase
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_make_check_arg2,$(0),$(1),$(2))
@ -48,161 +35,156 @@ $(call mb_make_call,mb_doc_function_deep,mb_proj_grow_deps_phase_clean,"Grow the
define _mb_proj_flow_step_before
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_os_echo_phase,$(MB_I18N_PROJ_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_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_os_echo_phase,$(MB_I18N_PROJ_STEP_AFTER) $@)
$(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_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_flow_proj_setup
.RECIPEPREFIX := $(MB_@RECIPE)
@@clean: @include
$(3)@@clean: $(2)
$(MB_@RECIPE)$$(call mb_make_call,_mb_proj_flow_step_before)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@@clean)
@@clean-deps:: @include
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@@clean-deps)
@clean: @@clean @@clean-deps
$(MB_@RECIPE)$$(call mb_make_call,_mb_proj_run_clean,$(1))
$(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_help,@clean,"Clean's the project build folders.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@clean)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target$(if $(3),,_help),$(3)@clean,"Clean's the project build folders.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(3)@clean)
@@init: @include
$(3)@@init: $(2)
$(MB_@RECIPE)$$(call mb_make_call,_mb_proj_flow_step_before)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@@init)
@@init-deps:: @include
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@@init-deps)
@init: @@init @@init-deps
$(MB_@RECIPE)$$(call mb_make_call,_mb_proj_run_init,$(1))
$(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_help,@init,"Create the project output folders.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@init)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target$(if $(3),,_help),$(3)@init,"Create the project output folders.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(3)@init)
@@prepare: @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,@@prepare)
@@prepare-deps::
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@@prepare-deps)
@prepare: @@prepare @@prepare-deps
$(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_help,@prepare,"Prepare sources before processing.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@prepare)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target$(if $(3),,_help),$(3)@prepare,"Prepare sources before processing.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(3)@prepare)
@@process: @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,@@process)
@@process-deps::
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@@process-deps)
@process: @@process @@process-deps
$(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_help,@process,"Process sources before compiling.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@process)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target$(if $(3),,_help),$(3)@process,"Process sources before compiling.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(3)@process)
@@compile: @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,@@compile)
@@compile-deps::
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@@compile-deps)
@compile: @@compile @@compile-deps
$(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_help,@compile,"Compiles all project sources.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@compile)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target$(if $(3),,_help),$(3)@compile,"Compiles all project sources.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(3)@compile)
@@link: @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,@@link)
@@link-deps::
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@@link-deps)
@link: @@link @@link-deps
$(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_help,@link,"Link all project intermediate files.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@link)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target$(if $(3),,_help),$(3)@link,"Link all project intermediate files.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(3)@link)
@@build: @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,@@build)
@@build-deps::
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@@build-deps)
@build: @@build @@build-deps
$(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_help,@build,"Build all project artifacts.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@build)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target$(if $(3),,_help),$(3)@build,"Build all project artifacts.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(3)@build)
@@test: @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,@@test)
@@test-deps::
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@@test-deps)
@test: @@test @@test-deps
$(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)$$(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_target_phony,@test)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target$(if $(3),,_help),$(3)@test,"Run all assertion tests.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(3)@test)
@@package: @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,@@package)
@@package-deps::
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@@package-deps)
@package: @@package @@package-deps
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,v@@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_help,@package,"Create all packages of project.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@package)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target$(if $(3),,_help),$(3)@package,"Create all packages of project.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(3)@package)
@@package-qa: @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,@@package-qa)
@@package-qa-deps::
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@@package-qa-deps)
@package-qa: @@package-qa @@package-qa-deps
$(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)$$(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_target_phony,@package-qa)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target$(if $(3),,_help),$(3)@package-qa,"Run all packages QA of project.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(3)@package-qa)
@@package-deploy: @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,@@package-deploy)
@@package-deploy-deps::
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@@package-deploy-deps)
@package-deploy: @@package-deploy @@package-deploy-deps
$(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_help,@package-deploy,"Deploy all the packages.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@package-deploy)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target$(if $(3),,_help),$(3)@package-deploy,"Deploy all the packages.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(3)@package-deploy)
@@all: @package-qa
$(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,@@all)
@@all-deps::
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@@all-deps)
@all: @@all @@all-deps
$(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)$$(call mb_make_call,_mb_proj_flow_step_done)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target_help,@all,"Run full build and package QA tests.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,@all)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target$(if $(3),,_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_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_make_check_variable,MB_PROJ_META_GROUP_ID)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_make_check_variable,MB_PROJ_META_ARTIFACT_ID)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_make_check_variable,MB_PROJ_META_VERSION)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_make_check_variable,MB_PROJ_META_NAME)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_make_check_variable,MB_PROJ_META_DESCRIPTION)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_make_check_variable,MB_PROJ_META_WEBSITE)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(eval $(call mb_make_call,__$(0),$(1)))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(if $(MB_I18N),$(if $(filter off,$(MB_I18N)),,$(call mb_make_call,_$(0)_i18n)))
$(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.","<build-dirs>")
$(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
@ -286,3 +268,40 @@ $(MB_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_make_check_variable,MB_I18N_PROJ_
$(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,$(1)/@run,"Run manually with gui.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target_run,$(1)/@run,"Run manually with gui.")
$(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):
$(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]")

View file

@ -2,39 +2,30 @@
define __mb_flow_sdcc_bdos_mono
.RECIPEPREFIX := $(MB_@RECIPE)
$(1): | @init
$(MB_@RECIPE)$$(if $$(wildcard $(1)),,$$(call mb_make_call,mb_os_dir_create,$(1)))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target_deep,$(1))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(1))
$(1)/$(3).rel: $(2)/$(3).asm | $(1)
$(1)/@@compile-deps:: $(1)/$(3).rel
$(1)/$(3).rel: $(2)/$(3).asm | $(1)/@prepare
$(MB_@RECIPE)$$(call mb_make_call,mb_sdcc_compile_asm,$$<,$$@)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target_deep,$(1)/$(3).rel)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_proj_grow_deps_phase,@compile,$(1)/$(3).rel)
$(1)/@@link-deps:: $(1)/$(3).hex
$(1)/$(3).hex: $(1)/$(3).rel
$(MB_@RECIPE)$$(call mb_make_call,mb_sdcc_link_asm_bdos,$$<,$$@)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target_deep,$(1)/$(3).hex)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_proj_grow_deps_phase,@link,$(1)/$(3).hex)
$(1)/@@build-deps:: $(1)/$(3).com
$(1)/$(3).com: $(1)/$(3).hex
$(MB_@RECIPE)$$(call mb_make_call,mb_sdcc_objcopy,$$<,$$@)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target_deep,$(1)/$(3).com)
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_proj_grow_deps_phase,@build,$(1)/$(3).com)
$(1)/@build: $(1)/$(3).com
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target,$(1)/@build,"Builds the $(1) module.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(1)/@build)
$(1)/@run: $(1)/@build
$(MB_@RECIPE)$$(call mb_make_call,mb_msxpipe_run_gui,$(1))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_doc_target_run,$(1)/@run,"Run $(3).com manually with gui.")
$(MB_α•½α•½α•½γ€€γ€€γ€€)$$(call mb_make_call,mb_make_target_phony,$(1)/@run)
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
define mb_flow_sdcc_bdos_mono
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_make_check_arg3,$(0),$(1),$(2),$(3))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_flow_proj_setup,$(1),@init,$(1))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(call mb_make_call,mb_flow_proj_module_run,$(1))
$(MB_α•½α•½α•½γ€€γ€€γ€€)$(eval $(call mb_make_call,__$(0),$(1),$(2),$(3)))
endef
$(call mb_make_call,mb_doc_function_flow,mb_flow_sdcc_bdos_mono,"Inject flow of sdcc toolchain bdos mono file module.","<bin-dir> <src-dir> <objname>")