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

@ -8,6 +8,9 @@ $(call mb_make_call,mb_doc_variable_rock,MB_MAKE_SPACE,"Expanded special char; s
MB_MAKE_EQUALS := =
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_EQUALS,"Expanded special char; equals.")
MB_MAKE_APPEND := +$(MB_MAKE_EQUALS)
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_APPEND,"Expanded special char; +equals.")
MB_MAKE_HASH := \#
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_HASH,"Expanded special char; hash.")

View file

@ -13,7 +13,7 @@ MB_MAKE_CALL_DEBUG ?= off
9 :=
define _mb_make_call_debug
$(MB_   )$(if $(filter off,$(MB_MAKE_CALL_DEBUG)),,$(if $(findstring mb_doc_,$(1)),,$(warning DEBUG $(1) $(2) $(3) $(4) $(5) $(6) $(7) $(8) $(9))))
$(MB_   )$(if $(filter off,$(MB_MAKE_CALL_DEBUG)),,$(if $(findstring mb_doc_,$(1)),,$(warning DEBUG $(1) ($(2),$(3),$(4),$(5),$(6),$(7),$(8),$(9)))))
endef
define mb_make_call
$(MB_   )$(call _mb_make_call_debug,$(1),$(2),$(3),$(4),$(5),$(6),$(7),$(8),$(9))$(if $(filter file,$(origin $(1))),$(call $(1),$(2),$(3),$(4),$(5),$(6),$(7),$(8),$(9)),$(error $(1) is not defined))

View file

@ -0,0 +1,18 @@
define mb_make_module_path_src
$(MB_   )$(1)$(abspath $(subst $(1),,$(dir $(lastword $(MAKEFILE_LIST)))))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_module_path_src,"Convert current location folder as src folder.","<path-src>")
define mb_make_module_path_bin
$(MB_   )$(2)$(abspath $(subst $(1),,$(dir $(lastword $(MAKEFILE_LIST)))))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_module_path_src,"Convert current location folder as bin folder.","<path-src> <path-bin>")
define mb_make_module_local_deps
$(MB_   )$(foreach _dep,$(2),$(1)/$(notdir $(_dep)))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_module_deps,"Convert other files to local deps.","<mod-bin> <deps>")

View file

@ -5,6 +5,9 @@ $(call mb_make_call,mb_doc_variable,MB_I18N,"The language code to select the i18
MB_I18N_ASSERT_SUCCESS ?= Assert successfull
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_ASSERT_SUCCESS,"Message for when assertion test is successfull.")
MB_I18N_ASSERT_FAILURE ?= Assert failure
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_ASSERT_FAILURE,"Message for when assertion test is failed.")
MB_I18N_AUTOEXEC_WRITE ?= Write autoexec for
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_AUTOEXEC_WRITE,"Message for when writing a default autoexec.")

View file

@ -1,5 +1,6 @@
MB_I18N_ASSERT_SUCCESS = ASSERTED DONE:
MB_I18N_ASSERT_FAILURE = ASSERTION FAILED:
MB_I18N_AUTOEXEC_WRITE = WRITE BOOSTER:
MB_I18N_CONV_UNIX2DOS = CONV UNIX2DOS:
MB_I18N_CONV_DOS2UNIX = CONV DOS2UNIX:

View file

@ -1,5 +1,6 @@
MB_I18N_ASSERT_SUCCESS = ᑲᔪᓯᓂᖃᑦᑎᐊᕐᓂᖅ
MB_I18N_ASSERT_FAILURE = ᓇᓗᓇᐃᖅᑕᐅᓂᖓ ᑲᔪᓯᙱᓐᓂᖓ
MB_I18N_AUTOEXEC_WRITE = ᑎᑎᕋᑲᐅᑎᒋᓂᖅ ᑲᒫᓗᖕᒥᒃ
MB_I18N_CONV_UNIX2DOS = ᐅᐊᔭᐅᑉ ᐃᓱᐊᓄᐊᕐᓗᒍ
MB_I18N_CONV_DOS2UNIX = ᑐᑭᓕᐊᖓᔪᓐᓃᕐᓗᓂ

View file

@ -1,5 +1,6 @@
MB_I18N_ASSERT_SUCCESS = アサート成功
MB_I18N_ASSERT_FAILURE = アサーションが失敗しました
MB_I18N_AUTOEXEC_WRITE = 自動実行の書き込み
MB_I18N_CONV_UNIX2DOS = ディスクシステムの行末に変換
MB_I18N_CONV_DOS2UNIX = メインフレームラインエンドに変換

View file

@ -26,11 +26,11 @@ $(call mb_make_call,mb_doc_variable,MB_AUTOEXEC_STARTUP_TIMEOUT,"Startup failure
MB_AUTOEXEC_STARTUP_EXITCODE ?= 124
$(call mb_make_call,mb_doc_variable,MB_AUTOEXEC_STARTUP_EXITCODE,"Startup failure exit code of autoexec.")
MB_AUTOEXEC_SAFE_TEST_TIMEOUT ?= 120
$(call mb_make_call,mb_doc_variable,MB_AUTOEXEC_SAFE_TEST_TIMEOUT,"Safe test execution failure timeout.")
MB_AUTOEXEC_SAFE_ASSERT_TIMEOUT ?= 120
$(call mb_make_call,mb_doc_variable,MB_AUTOEXEC_SAFE_ASSERT_TIMEOUT,"Safe assert execution failure timeout.")
MB_AUTOEXEC_SAFE_TEST_EXITCODE ?= 1
$(call mb_make_call,mb_doc_variable,MB_AUTOEXEC_SAFE_TEST_EXITCODE,"Safe test execution failure exit code.")
MB_AUTOEXEC_SAFE_ASSERT_EXITCODE ?= 1
$(call mb_make_call,mb_doc_variable,MB_AUTOEXEC_SAFE_ASSERT_EXITCODE,"Safe assert execution failure exit code.")
MB_AUTOEXEC_SAFE_CMD_TIMEOUT ?= 300
$(call mb_make_call,mb_doc_variable,MB_AUTOEXEC_SAFE_CMD_TIMEOUT,"Safe command execution failure timeout.")
@ -127,12 +127,12 @@ endef
$(call mb_make_call,mb_doc_function,mb_autoexec_append_save_video,"Appends save video command.","<dir> [prefix]")
define mb_autoexec_append_safe_test
$(MB_   )$(call mb_make_call,mb_autoexec_append_cmd,$(1),omsxctl fail_after $(if $(3),$(3),$(MB_AUTOEXEC_SAFE_TEST_TIMEOUT)) seconds err_test $(if $(4),$(4),$(MB_AUTOEXEC_SAFE_TEST_EXITCODE)))
$(MB_   )$(call mb_make_call,mb_autoexec_append_echo,$(1),mb::safe test $(2))
define mb_autoexec_append_safe_assert
$(MB_   )$(call mb_make_call,mb_autoexec_append_cmd,$(1),omsxctl fail_after $(if $(3),$(3),$(MB_AUTOEXEC_SAFE_ASSERT_TIMEOUT)) seconds err_test $(if $(4),$(4),$(MB_AUTOEXEC_SAFE_ASSERT_EXITCODE)))
$(MB_   )$(call mb_make_call,mb_autoexec_append_echo,$(1),mb::safe assert $(2))
$(MB_   )$(call mb_make_call,mb_autoexec_append_cmd,$(1),$(2))
endef
$(call mb_make_call,mb_doc_function,mb_autoexec_append_safe_test,"Appends running a safe test.","<dir> <cmd> [timeout] [exit-code]")
$(call mb_make_call,mb_doc_function,mb_autoexec_append_safe_assert,"Appends running a safe assert.","<dir> <cmd> [timeout] [exit-code]")
define mb_autoexec_append_safe_cmd

View file

@ -5,11 +5,11 @@ $(call mb_make_call,mb_doc_variable,MB_MSXPIPE_COLOR_FG_SAFE_CMD,"Foreground col
MB_MSXPIPE_COLOR_BG_SAFE_CMD ?= 000
$(call mb_make_call,mb_doc_variable,MB_MSXPIPE_COLOR_BG_SAFE_CMD,"Background color of safe command session pipe.")
MB_MSXPIPE_COLOR_FG_SAFE_TEST ?= 421
$(call mb_make_call,mb_doc_variable,MB_MSXPIPE_COLOR_FG_SAFE_TEST,"Foreground color of safe test session pipe.")
MB_MSXPIPE_COLOR_FG_SAFE_ASSERT ?= 421
$(call mb_make_call,mb_doc_variable,MB_MSXPIPE_COLOR_FG_SAFE_ASSERT,"Foreground color of safe assert session pipe.")
MB_MSXPIPE_COLOR_BG_SAFE_TEST ?= 000
$(call mb_make_call,mb_doc_variable,MB_MSXPIPE_COLOR_BG_SAFE_TEST,"Background color of safe test session pipe.")
MB_MSXPIPE_COLOR_BG_SAFE_ASSERT ?= 000
$(call mb_make_call,mb_doc_variable,MB_MSXPIPE_COLOR_BG_SAFE_ASSERT,"Background color of safe assert session pipe.")
MB_MSXPIPE_COLOR_FG_RUN_GUI ?= 141
$(call mb_make_call,mb_doc_variable,MB_MSXPIPE_COLOR_FG_RUN_GUI,"Foreground color of run gui session pipe.")
@ -27,13 +27,13 @@ endef
$(call mb_make_call,mb_doc_function,mb_msxpipe_safe_cmd,"Runs openMSX and safely executes one command.","<dir> <cmd> [machine]")
define mb_msxpipe_safe_test
$(MB_   )$(call mb_make_call,mb_autoexec_write_default,$(1),$(MB_MSXPIPE_COLOR_FG_SAFE_TEST),$(MB_MSXPIPE_COLOR_BG_SAFE_TEST))
$(MB_   )$(call mb_make_call,mb_autoexec_append_safe_test,$(1),$(2))
define mb_msxpipe_safe_assert
$(MB_   )$(call mb_make_call,mb_autoexec_write_default,$(1),$(MB_MSXPIPE_COLOR_FG_SAFE_ASSERT),$(MB_MSXPIPE_COLOR_BG_SAFE_ASSERT))
$(MB_   )$(call mb_make_call,mb_autoexec_append_safe_assert,$(1),$(2))
$(MB_   )$(call mb_make_call,mb_autoexec_append_exit,$(1))
$(MB_   )$(call mb_make_call,mb_openmsx_dosctl,$(1),$(3))
endef
$(call mb_make_call,mb_doc_function,mb_msxpipe_safe_test,"Runs openMSX and safely executes one test.","<dir> <cmd> [machine]")
$(call mb_make_call,mb_doc_function,mb_msxpipe_safe_assert,"Runs openMSX and safely executes one assert.","<dir> <cmd> [machine]")
define _mb_msxpipe_run_gui

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>")

View file

@ -35,6 +35,7 @@ $(eval $(call __mb_include,make/सिस्टमₚᵣₐᵧToੴ/mb_xxx.mk))
$(eval $(call __mb_include,make/सिस्टमₚᵣₐᵧToੴ/mb_doc.mk))
$(eval $(call __mb_include,make/सिस्टमₚᵣₐᵧToੴ/mb_make_call.mk))
$(eval $(call __mb_include,make/सिस्टमₚᵣₐᵧToੴ/mb_make_check.mk))
$(eval $(call __mb_include,make/सिस्टमₚᵣₐᵧToੴ/mb_make_module.mk))
$(eval $(call __mb_include,make/सिस्टमₚᵣₐᵧToੴ/mb_make_xml.mk))
$(eval $(call __mb_include,make/सिस्टमₚᵣₐᵧToੴ/mb_make.mk))
@@include-libs:: $(MB_@INCLUDE_CHAIN)
@ -86,7 +87,7 @@ define mb_setup_default
$(MB_   )$(call mb_make_call,mb_make_check_arg2,$(0),$(1),$(2))
$(MB_   )$(call mb_make_call,mb_flow_doc_help)
$(MB_   )$(call mb_make_call,mb_flow_0module_setup,$(2))
$(MB_   )$(call mb_make_call,mb_flow_proj_setup,$(1))
$(MB_   )$(call mb_make_call,mb_flow_proj_setup,$(1),@include)
$(MB_   )$(call mb_make_call,mb_flight_proj_flow_video,$(1))
endef
$(call mb_make_call,mb_doc_function,mb_setup_default,"Setup default extenstions to configure dynamic project flow.","<bin-dir> <src-dir>")

View file

@ -1,9 +1,9 @@
AHELLO_M80_SRC := $(call mb_make_call,mb_proj_module_path_src,$(PATH_SRC))
AHELLO_M80_BIN := $(call mb_make_call,mb_proj_module_path_bin,$(PATH_SRC),$(PATH_BIN))
AHELLO_M80_SRC := $(call mb_make_call,mb_make_module_path_src,$(PATH_SRC))
AHELLO_M80_BIN := $(call mb_make_call,mb_make_module_path_bin,$(PATH_SRC),$(PATH_BIN))
AHELLO_M80_DEPS := $(AHELLO_M80_BIN)/ahello.com
$(call mb_make_call,mb_flow_m80_bdos_mono,$(AHELLO_M80_BIN),$(AHELLO_M80_SRC),ahello)
$(call mb_make_call,mb_assert_flow_bdos_grep,$(AHELLO_M80_BIN),check-m80,ahello,M80)
$(call mb_make_call,mb_assert_flow_bdos_grep,$(AHELLO_M80_BIN),check-txt,ahello,"o world...")
$(call mb_make_call,mb_flow_assert_msxpipe_grep_test,$(AHELLO_M80_BIN),$(AHELLO_M80_DEPS),check-m80,ahello,M80)
$(call mb_make_call,mb_flow_assert_msxpipe_grep_test,$(AHELLO_M80_BIN),$(AHELLO_M80_DEPS),check-txt,ahello,"o world...")

View file

@ -1,9 +1,9 @@
AHELLO_SDCC_SRC := $(call mb_make_call,mb_proj_module_path_src,$(PATH_SRC))
AHELLO_SDCC_BIN := $(call mb_make_call,mb_proj_module_path_bin,$(PATH_SRC),$(PATH_BIN))
AHELLO_SDCC_SRC := $(call mb_make_call,mb_make_module_path_src,$(PATH_SRC))
AHELLO_SDCC_BIN := $(call mb_make_call,mb_make_module_path_bin,$(PATH_SRC),$(PATH_BIN))
AHELLO_SDCC_DEPS := $(AHELLO_SDCC_BIN)/ahello.com
$(call mb_make_call,mb_flow_sdcc_bdos_mono,$(AHELLO_SDCC_BIN),$(AHELLO_SDCC_SRC),ahello)
$(call mb_make_call,mb_assert_flow_bdos_grep,$(AHELLO_SDCC_BIN),check-sdcc,ahello,SDCC)
$(call mb_make_call,mb_assert_flow_bdos_grep,$(AHELLO_SDCC_BIN),check-hell,ahello,Hell)
$(call mb_make_call,mb_flow_assert_msxpipe_grep_test,$(AHELLO_SDCC_BIN),$(AHELLO_SDCC_DEPS),check-sdcc,ahello,SDCC)
$(call mb_make_call,mb_flow_assert_msxpipe_grep_test,$(AHELLO_SDCC_BIN),$(AHELLO_SDCC_DEPS),check-hell,ahello,Hell)

View file

@ -1,15 +1,15 @@
DIST_QA_DOS1_SRC := $(call mb_make_call,mb_proj_module_path_src,$(PATH_SRC))
DIST_QA_DOS1_BIN := $(call mb_make_call,mb_proj_module_path_bin,$(PATH_SRC),$(PATH_BIN))
DIST_QA_DOS1_SRC := $(call mb_make_call,mb_make_module_path_src,$(PATH_SRC))
DIST_QA_DOS1_BIN := $(call mb_make_call,mb_make_module_path_bin,$(PATH_SRC),$(PATH_BIN))
$(call mb_make_call,mb_flow_clone_deps,$(DIST_QA_DOS1_BIN),$(DIST_BIN),$(DIST_DEPS),,msxdos1)
$(call mb_make_call,mb_flow_clone_deps,$(DIST_QA_DOS1_BIN),$(DIST_BIN),$(DIST_DEPS),msxdos1_boot)
$(DIST_QA_DOS1_BIN)/@assert: $(DIST_QA_DOS1_BIN)/@build
_$(MB_  )$(call mb_make_call,mb_autoexec_write_default,$(DIST_QA_DOS1_BIN))
_$(MB_  )$(call mb_make_call,mb_autoexec_append_safe_test,$(DIST_QA_DOS1_BIN),ahello1)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_safe_test,$(DIST_QA_DOS1_BIN),ahello2)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_safe_assert,$(DIST_QA_DOS1_BIN),ahello1)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_safe_assert,$(DIST_QA_DOS1_BIN),ahello2)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_exit,$(DIST_QA_DOS1_BIN))
_$(MB_  )$(call mb_make_call,mb_openmsx_dosctl,$(DIST_QA_DOS1_BIN))
_$(MB_  )$(call mb_make_call,mb_os_echo_assert,$(MB_I18N_ASSERT_SUCCESS) $(DIST_QA_DOS1_BIN)/@assert)

View file

@ -1,17 +1,17 @@
DIST_QA_DOS2_SRC := $(call mb_make_call,mb_proj_module_path_src,$(PATH_SRC))
DIST_QA_DOS2_BIN := $(call mb_make_call,mb_proj_module_path_bin,$(PATH_SRC),$(PATH_BIN))
DIST_QA_DOS2_SRC := $(call mb_make_call,mb_make_module_path_src,$(PATH_SRC))
DIST_QA_DOS2_BIN := $(call mb_make_call,mb_make_module_path_bin,$(PATH_SRC),$(PATH_BIN))
$(call mb_make_call,mb_flow_clone_deps,$(DIST_QA_DOS2_BIN),$(DIST_BIN),$(DIST_DEPS),,msxdos2)
$(call mb_make_call,mb_flow_clone_deps,$(DIST_QA_DOS2_BIN),$(DIST_BIN),$(DIST_DEPS),msxdos2_boot)
$(DIST_QA_DOS2_BIN)/@assert: $(DIST_QA_DOS2_BIN)/@build
_$(MB_  )$(call mb_make_call,mb_os_file_delete,$(DIST_QA_DOS2_BIN)/ahello1.out)
_$(MB_  )$(call mb_make_call,mb_os_file_delete,$(DIST_QA_DOS2_BIN)/ahello2.out)
_$(MB_  )$(call mb_make_call,mb_autoexec_write_default,$(DIST_QA_DOS2_BIN))
_$(MB_  )$(call mb_make_call,mb_autoexec_append_safe_test,$(DIST_QA_DOS2_BIN),ahello1 > ahello1.out)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_safe_test,$(DIST_QA_DOS2_BIN),ahello2 > ahello2.out)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_safe_assert,$(DIST_QA_DOS2_BIN),ahello1 > ahello1.out)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_safe_assert,$(DIST_QA_DOS2_BIN),ahello2 > ahello2.out)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_exit,$(DIST_QA_DOS2_BIN))
_$(MB_  )$(call mb_make_call,mb_openmsx_dosctl,$(DIST_QA_DOS2_BIN))
_$(MB_  )grep -q "M80: Hello world..." $(DIST_QA_DOS2_BIN)/ahello1.out

View file

@ -1,20 +1,20 @@
DIST_QA_MSX1_SRC := $(call mb_make_call,mb_proj_module_path_src,$(PATH_SRC))
DIST_QA_MSX1_BIN := $(call mb_make_call,mb_proj_module_path_bin,$(PATH_SRC),$(PATH_BIN))
#DIST_QA_MSX1_DEPS := $(call mb_make_call,mb_proj_module_local_deps,$(DIST_QA_MSX1_BIN),$(DIST_DEPS))
DIST_QA_MSX1_SRC := $(call mb_make_call,mb_make_module_path_src,$(PATH_SRC))
DIST_QA_MSX1_BIN := $(call mb_make_call,mb_make_module_path_bin,$(PATH_SRC),$(PATH_BIN))
#DIST_QA_MSX1_DEPS := $(call mb_make_call,mb_make_module_local_deps,$(DIST_QA_MSX1_BIN),$(DIST_DEPS))
DIST_QA_MSX1_MACHINE ?= Canon_V-20
$(call mb_make_call,mb_doc_variable,DIST_QA_MSX1_MACHINE,"The machine to run the msx1 qa module on.")
$(call mb_make_call,mb_flow_clone_deps,$(DIST_QA_MSX1_BIN),$(DIST_BIN),$(DIST_DEPS),$(DIST_QA_MSX1_MACHINE))
$(call mb_make_call,mb_flow_clone_deps,$(DIST_QA_MSX1_BIN),$(DIST_BIN),$(DIST_DEPS),,$(DIST_QA_MSX1_MACHINE))
$(DIST_QA_MSX1_BIN)/@assert: $(DIST_QA_MSX1_BIN)/@build
_$(MB_  )$(call mb_make_call,mb_os_file_delete,$(DIST_QA_MSX1_BIN)/ahello1.out)
_$(MB_  )$(call mb_make_call,mb_os_file_delete,$(DIST_QA_MSX1_BIN)/ahello2.out)
_$(MB_  )$(call mb_make_call,mb_autoexec_write_default,$(DIST_QA_MSX1_BIN),40)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_safe_test,$(DIST_QA_MSX1_BIN),ahello1 > ahello1.out,33)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_safe_test,$(DIST_QA_MSX1_BIN),ahello2 > ahello2.out,66,99)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_safe_assert,$(DIST_QA_MSX1_BIN),ahello1 > ahello1.out,33)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_safe_assert,$(DIST_QA_MSX1_BIN),ahello2 > ahello2.out,66,99)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_exit,$(DIST_QA_MSX1_BIN))
_$(MB_  )$(call mb_make_call,mb_openmsx_dosctl,$(DIST_QA_MSX1_BIN),$(DIST_QA_MSX1_MACHINE))
_$(MB_  )grep -q "M80: Hello world..." $(DIST_QA_MSX1_BIN)/ahello1.out

View file

@ -1,7 +1,7 @@
DIST_QA_MSXHUB_SRC := $(call mb_make_call,mb_proj_module_path_src,$(PATH_SRC))
DIST_QA_MSXHUB_BIN := $(call mb_make_call,mb_proj_module_path_bin,$(PATH_SRC),$(PATH_BIN))
DIST_QA_MSXHUB_DEPS := $(call mb_make_call,mb_proj_module_local_deps,$(DIST_QA_MSXHUB_BIN),$(DIST_DEPS))
DIST_QA_MSXHUB_SRC := $(call mb_make_call,mb_make_module_path_src,$(PATH_SRC))
DIST_QA_MSXHUB_BIN := $(call mb_make_call,mb_make_module_path_bin,$(PATH_SRC),$(PATH_BIN))
DIST_QA_MSXHUB_DEPS := $(call mb_make_call,mb_make_module_local_deps,$(DIST_QA_MSXHUB_BIN),$(DIST_DEPS))
DIST_QA_MSXHUB_MACHINE ?= Boosted_MSX2+_JP
$(call mb_make_call,mb_doc_variable,DIST_QA_MSXHUB_MACHINE,"The machine to run the msxhub module on.")
@ -48,9 +48,9 @@ _$(MB_  )$(call mb_make_call,mb_os_file_delete,$(DIST_QA_MSXHUB_BIN
_$(MB_  )$(call mb_make_call,mb_os_file_delete,$(DIST_QA_MSXHUB_BIN)/ahello2.out)
_$(MB_  )$(call mb_make_call,mb_os_file_delete,$(DIST_QA_MSXHUB_BIN)/utils.out)
_$(MB_  )$(call mb_make_call,mb_autoexec_write_default,$(DIST_QA_MSXHUB_BIN))
_$(MB_  )$(call mb_make_call,mb_autoexec_append_safe_test,$(DIST_QA_MSXHUB_BIN),ahello1 > ahello1.out)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_safe_test,$(DIST_QA_MSXHUB_BIN),ahello2 > ahello2.out)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_safe_test,$(DIST_QA_MSXHUB_BIN),dir utils > utils.out)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_safe_assert,$(DIST_QA_MSXHUB_BIN),ahello1 > ahello1.out)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_safe_assert,$(DIST_QA_MSXHUB_BIN),ahello2 > ahello2.out)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_safe_assert,$(DIST_QA_MSXHUB_BIN),dir utils > utils.out)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_exit,$(DIST_QA_MSXHUB_BIN))
_$(MB_  )$(call mb_make_call,mb_openmsx_dosctl,$(DIST_QA_MSXHUB_BIN),$(DIST_QA_MSXHUB_MACHINE))
_$(MB_  )grep -q "M80: Hello world..." $(DIST_QA_MSXHUB_BIN)/ahello1.out

View file

@ -1,6 +1,6 @@
MAKE_ON_MSX_SRC := $(call mb_make_call,mb_proj_module_path_src,$(PATH_SRC))
MAKE_ON_MSX_BIN := $(call mb_make_call,mb_proj_module_path_bin,$(PATH_SRC),$(PATH_BIN))
MAKE_ON_MSX_SRC := $(call mb_make_call,mb_make_module_path_src,$(PATH_SRC))
MAKE_ON_MSX_BIN := $(call mb_make_call,mb_make_module_path_bin,$(PATH_SRC),$(PATH_BIN))
$(MAKE_ON_MSX_BIN): | @init

View file

@ -0,0 +1,39 @@
GLUEDOS1_SRC := $(call mb_make_call,mb_make_module_path_src,$(PATH_SRC))
GLUEDOS1_BIN := $(call mb_make_call,mb_make_module_path_bin,$(PATH_SRC),$(PATH_BIN))
GLUEDOS1_DIST := lib/emuctl/gluedos1
# Add msxdos1 to override default(nextor) for manual @run target
$(call mb_make_call,mb_flow_proj_prepare_packages,$(GLUEDOS1_BIN),msxdos1_boot)
# Compile binaries
$(call mb_make_call,mb_flow_sdcc_bdos_mono,$(GLUEDOS1_BIN),$(GLUEDOS1_SRC),cls)
$(call mb_make_call,mb_flow_sdcc_bdos_mono,$(GLUEDOS1_BIN),$(GLUEDOS1_SRC),echo)
$(call mb_make_call,mb_flow_sdcc_bdos_mono,$(GLUEDOS1_BIN),$(GLUEDOS1_SRC),set)
$(call mb_make_call,mb_flow_sdcc_bdos_mono,$(GLUEDOS1_BIN),$(GLUEDOS1_SRC),ver)
# (Manual) Test binaries
$(GLUEDOS1_BIN)/@@test-deps:: $(GLUEDOS1_BIN)/@assert/@test/check-simple
$(GLUEDOS1_BIN)/@assert/@test/check-simple: $(GLUEDOS1_BIN)/@build
_$(MB_  )$(call mb_make_call,mb_autoexec_write_default,$(GLUEDOS1_BIN))
_$(MB_  )$(call mb_make_call,mb_autoexec_append_safe_assert,$(GLUEDOS1_BIN),a:cls.com)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_safe_assert,$(GLUEDOS1_BIN),a:echo.com)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_safe_assert,$(GLUEDOS1_BIN),a:set.com)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_safe_assert,$(GLUEDOS1_BIN),a:ver.com)
_$(MB_  )$(call mb_make_call,mb_autoexec_append_exit,$(GLUEDOS1_BIN))
_$(MB_  )$(call mb_make_call,mb_openmsx_dosctl,$(GLUEDOS1_BIN))
_$(MB_  )$(call mb_make_call,mb_os_echo_assert,$(MB_I18N_ASSERT_SUCCESS) $(GLUEDOS1_BIN)/@assert/@test/check-simple)
$(MB_   )$(call mb_make_call,mb_doc_target,$(GLUEDOS1_BIN)/@assert/@test/check-simple,"Assert binaries on msxdos1.")
$(MB_   )$(call mb_make_call,mb_proj_grow_deps_phase,@test,$(GLUEDOS1_BIN)/@assert/@test/check-simple)
$(MB_   )$(call mb_make_call,mb_make_target_phony,$(GLUEDOS1_BIN)/@assert/@test/check-simple)
# Release local
$(GLUEDOS1_BIN)/@release-local: | $(GLUEDOS1_BIN)/@build
_$(MB_  )$(if $(wildcard $(GLUEDOS1_DIST)),,$(call mb_make_call,mb_os_folder_create,$(GLUEDOS1_DIST)))
_$(MB_  )$(call mb_make_call,mb_os_file_copy,$(GLUEDOS1_BIN)/cls.com,$(GLUEDOS1_DIST))
_$(MB_  )$(call mb_make_call,mb_os_file_copy,$(GLUEDOS1_BIN)/echo.com,$(GLUEDOS1_DIST))
_$(MB_  )$(call mb_make_call,mb_os_file_copy,$(GLUEDOS1_BIN)/set.com,$(GLUEDOS1_DIST))
_$(MB_  )$(call mb_make_call,mb_os_file_copy,$(GLUEDOS1_BIN)/ver.com,$(GLUEDOS1_DIST))
$(MB_   )$(call mb_make_call,mb_doc_target,$(GLUEDOS1_BIN)/@release-local,"Updates binary copy in $(GLUEDOS1_DIST) folder.")
$(MB_   )$(call mb_make_call,mb_make_target_phony,$(GLUEDOS1_BIN)/@release-local)

View file

@ -0,0 +1,18 @@
.area _CODE
JP MAIN
.db 0x0D
.db 0x0D,0x0A
.str "TODO: MSX-DOS1 cls command."
.db 0x0D,0x0A
.db 0x1A
; TODO: code
;
; SUPPORT: cls
; - clear the screen
; - exit
MAIN:
RET
.area _DATA

View file

@ -0,0 +1,39 @@
.area _CODE
JP MAIN
.db 0x0D
.db 0x0D,0x0A
.str "TODO: MSX-DOS1 echo command."
.db 0x0D,0x0A
.db 0x1A
; TODO: code
;
; SUPPORT: echo foo
; SUPPORT: echo bar %FOO% bar
; SUPPORT: echo bar %FOO% bar>NUL
; SUPPORT: echo bar %FOO% bar> NUL
; SUPPORT: echo bar %FOO% bar >NUL
; SUPPORT: echo bar %FOO% bar > NUL
; SUPPORT: echo bar %FOO% bar>>NUL
; SUPPORT: echo bar %FOO% bar>> NUL
; SUPPORT: echo bar %FOO% bar >>NUL
; SUPPORT: echo bar %FOO% bar >> NUL
; SUPPORT: echo bar %FOO% bar>%FILE%
; SUPPORT: echo bar %FOO% bar> %FILE%
; SUPPORT: echo bar %FOO% bar >%FILE%
; SUPPORT: echo bar %FOO% bar > %FILE%
; SUPPORT: echo bar %FOO% bar>>%FILE%
; SUPPORT: echo bar %FOO% bar>> %FILE%
; SUPPORT: echo bar %FOO% bar >>%FILE%
; SUPPORT: echo bar %FOO% bar >> %FILE%
; - open command.env
; - read command.env
; - replace env variable of argument line
; - if redirect NUL than no output
; - if redirect is file than write (+OPTIONAL APPEND) to file
; - exit
MAIN:
RET
.area _DATA

View file

@ -0,0 +1,22 @@
.area _CODE
JP MAIN
.db 0x0D
.db 0x0D,0x0A
.str "TODO: MSX-DOS1 set command."
.db 0x0D,0x0A
.db 0x1A
; TODO: code
;
; SUPPORT: set FOO=BAR
; SUPPORT: set BAR=bar %FOO% bar
; - open command.env (auto create)
; - read command.env
; - replace env variable of argument
; - append or replace parsed argument line to env file
; - exit
MAIN:
RET
.area _DATA

View file

@ -0,0 +1,18 @@
.area _CODE
JP MAIN
.db 0x0D
.db 0x0D,0x0A
.str "TODO: MSX-DOS1 ver(sion) command."
.db 0x0D,0x0A
.db 0x1A
; TODO: code
;
; SUPPORT: ver
; - Prints DBOS version
; - exit
MAIN:
RET
.area _DATA

View file

@ -1,10 +1,10 @@
MBBOOT80_SRC := $(call mb_make_call,mb_proj_module_path_src,$(PATH_SRC))
MBBOOT80_BIN := $(call mb_make_call,mb_proj_module_path_bin,$(PATH_SRC),$(PATH_BIN))
MBBOOT80_SRC := $(call mb_make_call,mb_make_module_path_src,$(PATH_SRC))
MBBOOT80_BIN := $(call mb_make_call,mb_make_module_path_bin,$(PATH_SRC),$(PATH_BIN))
MBBOOT80_DEPS := $(call mb_make_call,mb_make_module_local_deps,$(MBBOOT80_BIN),$(patsubst %.asm,%.com,$(shell ls -1 $(MBBOOT80_SRC)/*.asm)))
$(call mb_make_call,mb_flow_sdcc_bdos_mono,$(MBBOOT80_BIN),$(MBBOOT80_SRC),mbboot80)
$(call mb_make_call,mb_assert_flow_bdos_grep,$(MBBOOT80_BIN),check-boot80,mbboot80,"mb::boot mode 80")
$(call mb_make_call,mb_flow_assert_msxpipe_grep_test,$(MBBOOT80_BIN),$(MBBOOT80_DEPS),check-boot80,mbboot80,"mb::boot mode 80")
$(MBBOOT80_BIN)/@release-local: | $(MBBOOT80_BIN)/@build