WIP Tab removal, new debug mode, clean proj deps + add i18n commands.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -6s

This commit is contained in:
Willem Cazander 2024-07-10 14:05:38 +02:00
parent d7dc7b9644
commit a16516d934
29 changed files with 1242 additions and 1040 deletions

170
Makefile
View file

@ -2,134 +2,68 @@
# Module based project makefile for msxbuild.
#
# Configure make to normal empty state
MAKEFLAGS += --no-builtin-rules
MAKEFLAGS += --no-builtin-variables
.SUFFIXES:
.PHONY: Makefile
# Configure make verbose mode
ifdef VERBOSE
ifeq ("$(VERBOSE)", "off")
.SILENT:
endif
endif
ifdef
ifeq ("$(うるさい)", "ユニット")
.SILENT:
endif
endif
ifdef LUIDRUCHTIG
ifeq ("$(LUIDRUCHTIG)", "uit")
.SILENT:
endif
endif
ifdef VERBOSA
ifeq ("$(VERBOSA)", "traje")
.SILENT:
endif
endif
ifdef VERBOSO
ifeq ("$(VERBOSO)", "traje")
.SILENT:
endif
endif
ifdef VERBEUSE
ifeq ("$(VERBEUSE)", "dehors")
.SILENT:
endif
endif
ifdef VERBEUX
ifeq ("$(VERBEUX)", "dehors")
.SILENT:
endif
endif
ifdef шумный
ifeq ("$(шумный)", "вне")
.SILENT:
endif
endif
ifdef
ifeq ("$(吵雜)", "出去")
.SILENT:
endif
endif
ifdef
ifeq ("$(वाचाल)", "बंद")
.SILENT:
endif
endif
ifdef
ifeq ("$(ᕗᕉᑉᕉᔅ)", "ᖃᒥᓪᓗᒍ")
.SILENT:
endif
endif
ifndef VERBOSE
ifndef
ifndef LUIDRUCHTIG
ifndef VERBOSA
ifndef VERBOSO
ifndef VERBEUSE
ifndef VERBEUX
ifndef шумный
ifndef
ifndef
ifndef
.SILENT:
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
# Configure project
-include Makelocal.mk
# Configure make,project,msxbuild
PATH_BIN := bin
PATH_SRC := src
PATH_MSXBUILD ?= .
ifeq ($(.DEFAULT_GOAL),)
.DEFAULT_GOAL := @help
endif
include $(PATH_MSXBUILD)/lib/make/setup-prolog.mk
include $(PATH_MSXBUILD)/lib/make/setup-verbose.mk
include $(PATH_MSXBUILD)/lib/make/setup-debug.mk
-include Makelocal.mk
# Generate project flow
# TODO: Temp redo src mk files
.RECIPEPREFIX :=
include $(PATH_MSXBUILD)/lib/make/msxbuild.mk
$(call mb_make_call,mb_doc_flow_help,MSXBUILD-Example)
$(call mb_make_call,mb_make_flow_0module,$(PATH_SRC))
$(call mb_make_call,mb_proj_flow_setup,$(PATH_BIN))
$(call mb_make_call,mb_flight_proj_flow_video,$(PATH_BIN))
# Add japanese support
# Add japanese support (TODO move)
ifdef LANG_JP
MB_I18N_ASSERT_SUCCESS = "アサート成功"
MB_I18N_AUTOEXEC_WRITE = "自動実行の書き込み"
MB_I18N_CONV_UNIX2DOS = "ディスクシステムの行末に変換"
MB_I18N_CONV_DOS2UNIX = "メインフレームラインエンドに変換"
MB_I18N_MAKE_CHECK_ARG1 = "引数 一 がありません。"
MB_I18N_MAKE_CHECK_ARG2 = "引数 二 がありません。"
MB_I18N_MAKE_CHECK_ARG3 = "引数 三 がありません。"
MB_I18N_MAKE_CHECK_ARG4 = "引数 四 がありません。"
MB_I18N_MAKE_CHECK_ARG5 = "引数 五 がありません。"
MB_I18N_MSXHUB_FILE_FETCH = "コンピューターハブファイルを取得する"
MB_I18N_MSXROM_FILE_FETCH = "読み取り専用メモリファイルを取得する"
MB_I18N_OPENMSX_STARTUP = "オープンメッカシステムを開始"
MB_I18N_OS_ECHO_CRAYON = "©Δ∞ 仙上主天"
MB_I18N_PROJ_STEP_BEFORE = "フェーズ前"
MB_I18N_PROJ_STEP_AFTER = "フェーズ後"
MB_I18N_PROJ_STEP_DONE = "プライムパイターゲットの実行を終了しました"
MB_I18N_PROJ_DIR_CREATE = "フォルダーの作成"
MB_I18N_PROJ_DIR_DELETE = "フォルダーの削除"
MB_I18N_SDCC_COMPILE = "標準マイクロコンパイラ"
MB_I18N_SDCC_ARLIB = "標準マイクロビルドライブラリ"
MB_I18N_SDCC_LINK = "標準マイクロリンクメッカ図書館"
MB_I18N_SDCC_OBJCOPY = "標準マイクロオブジェクトコピー"
$(call mb_make_call,mb_proj_flow_setup_jp)
MB_I18N_ASSERT_SUCCESS = アサート成功
MB_I18N_AUTOEXEC_WRITE = 自動実行の書き込み
MB_I18N_CONV_UNIX2DOS = ディスクシステムの行末に変換
MB_I18N_CONV_DOS2UNIX = メインフレームラインエンドに変換
MB_I18N_MAKE_CHECK_ARG1 = 引数 一 がありません
MB_I18N_MAKE_CHECK_ARG2 = 引数 二 がありません
MB_I18N_MAKE_CHECK_ARG3 = 引数 三 がありません
MB_I18N_MAKE_CHECK_ARG4 = 引数 四 がありません
MB_I18N_MAKE_CHECK_ARG5 = 引数 五 がありません
MB_I18N_MSXHUB_FILE_FETCH = コンピューターハブファイルを取得する
MB_I18N_MSXROM_FILE_FETCH = 読み取り専用メモリファイルを取得する
MB_I18N_OPENMSX_STARTUP = オープンメッカシステムを開始
MB_I18N_OS_ECHO_CRAYON = ©Δ∞ 仙上主天
MB_I18N_PROJ_STEP_BEFORE = フェーズ前
MB_I18N_PROJ_STEP_AFTER = フェーズ後
MB_I18N_PROJ_STEP_DONE = プライムパイターゲットの実行を終了しました
MB_I18N_PROJ_DIR_CREATE = フォルダーの作成
MB_I18N_PROJ_DIR_DELETE = フォルダーの削除
MB_I18N_SDCC_COMPILE = 標準マイクロコンパイラ
MB_I18N_SDCC_ARLIB = 標準マイクロビルドライブラリ
MB_I18N_SDCC_LINK = 標準マイクロリンクメッカ図書館
MB_I18N_SDCC_OBJCOPY = 標準マイクロオブジェクトコピー
MB_I18N_PROJ_PHASEID_CLEAN = クリーン
MB_I18N_PROJ_PHASEDOC_CLEAN = プロジェクトのビルドフォルダーをクリーンアップします。
MB_I18N_PROJ_PHASEID_INIT = 初期化する
MB_I18N_PROJ_PHASEDOC_INIT = モジュール出力フォルダーをセットアップして検証します。
MB_I18N_PROJ_PHASEID_PROCESS = プロセス
MB_I18N_PROJ_PHASEDOC_PROCESS = コンパイル前にソースを処理します。
MB_I18N_PROJ_PHASEID_COMPILE = コンパイル
MB_I18N_PROJ_PHASEDOC_COMPILE = すべてのプロジェクト ソースをコンパイルします。
MB_I18N_PROJ_PHASEID_LINK = リンク
MB_I18N_PROJ_PHASEDOC_LINK = すべてのプロジェクト中間ファイルをリンクします。
MB_I18N_PROJ_PHASEID_BUILD = 建てる
MB_I18N_PROJ_PHASEDOC_BUILD = すべてのプロジェクト成果物をビルドします。
MB_I18N_PROJ_PHASEID_TEST = テスト
MB_I18N_PROJ_PHASEDOC_TEST = すべてのアサーション テストを実行します。
MB_I18N_PROJ_PHASEID_PACKAGE = パッケージ
MB_I18N_PROJ_PHASEDOC_PACKAGE = プロジェクトのパッケージを作成します。
MB_I18N_PROJ_PHASEID_PACKAGE_QA = パッケージの品質保証
MB_I18N_PROJ_PHASEDOC_PACKAGE_QA = すべてのパッケージを実行します。プロジェクトの品質保証。
MB_I18N_PROJ_PHASEID_PACKAGE_DEPLOY = パッケージのデプロイ
MB_I18N_PROJ_PHASEDOC_PACKAGE_DEPLOY = パッケージをデプロイします。
$(call mb_make_call,mb_proj_flow_setup_i18n)
endif

View file

@ -1,33 +1,41 @@
define __mb_assert_flow_grep_binary
.RECIPEPREFIX := $(MB__RECIPE)
$(1)/@assert-$(2): $(1)/@build
grep -q -U $(4) $(1)/$(3)
$$(call mb_make_call,mb_os_echo_assert,$$(MB_I18N_ASSERT_SUCCESS) @assert-$(2))
$$(call mb_make_call,mb_doc_target,$(1)/@assert-$(2),"Asserts that $(3) output matches.")
$$(call mb_make_call,mb_proj_grow_deps_phase_test,$(1)/@assert-$(2))
.PHONY: $(1)/@assert-$(2)
$(MB__RECIPE)grep -q -U $(4) $(1)/$(3)
$(MB__RECIPE)$$(call mb_make_call,mb_os_echo_assert,$$(MB_I18N_ASSERT_SUCCESS) @assert-$(2))
$(MB__    )$$(call mb_make_call,mb_doc_target,$(1)/@assert-$(2),"Asserts that $(3) output matches.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,$(1)/@assert-$(2))
$(MB__    )$$(call mb_make_call,mb_proj_grow_deps_phase_test,$(1)/@assert-$(2))
.RECIPEPREFIX := $(MB__RECIPEPREFIX)
endef
define mb_assert_flow_grep_binary
$(call mb_make_call,mb_make_check_arg4,mb_assert_flow_grep_binary,$(1),$(2),$(3),$(4))
$(eval $(call mb_make_call,__mb_assert_flow_grep_binary,$(1),$(2),$(3),$(4)))
$(MB__    )$(call mb_make_call,mb_make_check_arg4,mb_assert_flow_grep_binary,$(1),$(2),$(3),$(4))
$(MB__    )$(eval $(call mb_make_call,__mb_assert_flow_grep_binary,$(1),$(2),$(3),$(4)))
endef
$(call mb_make_call,mb_doc_function_flow,mb_assert_flow_grep_binary,"Prints 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
.RECIPEPREFIX := $(MB__RECIPE)
MB__TARGET := $(1)-test-$(2)/@assert
$(1)-test-$(2)/@assert: $(1)/@build
$$(call mb_make_call,mb_os_dir_create,$(1)-test-$(2))
$$(call mb_make_call,mb_os_file_copy,$(1)/$(3).com,$(1)-test-$(2))
$$(call mb_make_call,mb_msxpipe_safe_test,$(1)-test-$(2),$(3) > $(3).out)
grep -q $(4) $(1)-test-$(2)/$(3).out
$$(call mb_make_call,mb_os_echo_assert,$$(MB_I18N_ASSERT_SUCCESS) $(1)-test-$(2)/@assert)
$$(call mb_make_call,mb_doc_target,$(1)-test-$(2)/@assert,"Asserts that $(3) output matches.")
$$(call mb_make_call,mb_proj_grow_deps_phase_test,$(1)-test-$(2)/@assert)
.PHONY: $(1)-test-$(2)/@assert
$(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)
$(MB__RECIPE)grep -q $(4) $(1)-test-$(2)/$(3).out
$(MB__RECIPE)$$(call mb_make_call,mb_os_echo_assert,$$(MB_I18N_ASSERT_SUCCESS) FOO $(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_flag_phony,$(1)-test-$(2)/@assert)
$(MB__    )$$(call mb_make_call,mb_proj_grow_deps_phase_test,$(1)-test-$(2)/@assert)
.RECIPEPREFIX := $(MB__RECIPEPREFIX)
endef
define mb_assert_flow_bdos_grep
$(call mb_make_call,mb_make_check_arg4,mb_assert_flow_bdos_grep,$(1),$(2),$(3),$(4))
$(eval $(call mb_make_call,__mb_assert_flow_bdos_grep,$(1),$(2),$(3),$(4)))
$(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)))
endef
$(call mb_make_call,mb_doc_function_flow,mb_assert_flow_bdos_grep,"Prints flow of single grep assert.","<build-dir> <test-id> <cmd-name> <grep-match>")

View file

@ -67,114 +67,114 @@ $(call mb_make_call,mb_doc_variable,MB_AUTOEXEC_PROMPT_SPACE,"When on adds an wh
define mb_autoexec_append_cmd
echo "$(2)\r" >> $(1)/autoexec.bat
$(MB__    )echo -e "$(2)\r" >> $(1)/autoexec.bat
endef
$(call mb_make_call,mb_doc_function,mb_autoexec_append_cmd,"Appends an command.","<dir> <command>")
define mb_autoexec_append_echo
$(call mb_make_call,mb_autoexec_append_cmd,$(1),echo $(subst >,&gt;,$(2)))
$(MB__    )$(call mb_make_call,mb_autoexec_append_cmd,$(1),echo $(subst >,&gt;,$(2)))
endef
$(call mb_make_call,mb_doc_function,mb_autoexec_append_echo,"Appends an echo message.","<dir> <message>")
define mb_autoexec_append_rem
$(call mb_make_call,mb_autoexec_append_cmd,$(1),rem $(2))
$(MB__    )$(call mb_make_call,mb_autoexec_append_cmd,$(1),rem $(2))
endef
$(call mb_make_call,mb_doc_function,mb_autoexec_append_rem,"Appends an script remark.","<dir> <remark>")
define mb_autoexec_append_show_gui
$(call mb_make_call,mb_autoexec_append_cmd,$(1),omsxctl headless_show_gui)
$(MB__    )$(call mb_make_call,mb_autoexec_append_cmd,$(1),omsxctl headless_show_gui)
endef
$(call mb_make_call,mb_doc_function,mb_autoexec_append_show_gui,"Appends headless show gui command.","<dir>")
define mb_autoexec_append_stop_fail
$(call mb_make_call,mb_autoexec_append_cmd,$(1),omsxctl fail_after 0)
$(MB__    )$(call mb_make_call,mb_autoexec_append_cmd,$(1),omsxctl fail_after 0)
endef
$(call mb_make_call,mb_doc_function,mb_autoexec_append_stop_fail,"Appends stop automatic failure command.","<dir>")
define mb_autoexec_append_exit
$(if $(filter on,$(MB_FLIGHT_SCREEN)),$(call mb_make_call,mb_autoexec_append_save_screenshot,$(1)))
$(call mb_make_call,mb_autoexec_append_cmd,$(1),omsxctl headless_exit)
$(MB__    )$(if $(filter on,$(MB_FLIGHT_SCREEN)),$(call mb_make_call,mb_autoexec_append_save_screenshot,$(1)))
$(MB__    )$(call mb_make_call,mb_autoexec_append_cmd,$(1),omsxctl headless_exit)
endef
$(call mb_make_call,mb_doc_function,mb_autoexec_append_exit,"Appends exit emulation command.","<dir>")
define mb_autoexec_append_plug_porta
$(call mb_make_call,mb_autoexec_append_cmd,$(1),omsxctl boot_exec_plug_porta $(2))
$(MB__    )$(call mb_make_call,mb_autoexec_append_cmd,$(1),omsxctl boot_exec_plug_porta $(2))
endef
$(call mb_make_call,mb_doc_function,mb_autoexec_append_plug_porta,"Appends an plug device into joyporta action.","<dir> <plug-dev>")
define mb_autoexec_append_plug_portb
$(call mb_make_call,mb_autoexec_append_cmd,$(1),omsxctl boot_exec_plug_portb $(2))
$(MB__    )$(call mb_make_call,mb_autoexec_append_cmd,$(1),omsxctl boot_exec_plug_portb $(2))
endef
$(call mb_make_call,mb_doc_function,mb_autoexec_append_plug_portb,"Appends an plug device into joyportb action.","<dir> <plug-dev>")
define mb_autoexec_append_save_screenshot
$(call mb_make_call,mb_autoexec_append_cmd,$(1),omsxctl night_flight_save_screenshot $(2))
$(MB__    )$(call mb_make_call,mb_autoexec_append_cmd,$(1),omsxctl night_flight_save_screenshot $(2))
endef
$(call mb_make_call,mb_doc_function,mb_autoexec_append_save_screenshot,"Appends save screenshot command.","<dir> [prefix]")
define mb_autoexec_append_save_video
$(call mb_make_call,mb_autoexec_append_cmd,$(1),omsxctl night_flight_save_video $(2))
$(MB__    )$(call mb_make_call,mb_autoexec_append_cmd,$(1),omsxctl night_flight_save_video $(2))
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
$(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)))
$(call mb_make_call,mb_autoexec_append_echo,$(1),mb::safe test $(2))
$(call mb_make_call,mb_autoexec_append_cmd,$(1),$(2))
$(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))
$(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]")
define mb_autoexec_append_safe_cmd
$(call mb_make_call,mb_autoexec_append_cmd,$(1),omsxctl fail_after $(if $(3),$(3),$(MB_AUTOEXEC_SAFE_CMD_TIMEOUT)) seconds err_cmd $(if $(4),$(4),$(MB_AUTOEXEC_SAFE_CMD_EXITCODE)))
$(call mb_make_call,mb_autoexec_append_echo,$(1),mb::safe command $(2))
$(call mb_make_call,mb_autoexec_append_cmd,$(1),$(2))
$(MB__    )$(call mb_make_call,mb_autoexec_append_cmd,$(1),omsxctl fail_after $(if $(3),$(3),$(MB_AUTOEXEC_SAFE_CMD_TIMEOUT)) seconds err_cmd $(if $(4),$(4),$(MB_AUTOEXEC_SAFE_CMD_EXITCODE)))
$(MB__    )$(call mb_make_call,mb_autoexec_append_echo,$(1),mb::safe command $(2))
$(MB__    )$(call mb_make_call,mb_autoexec_append_cmd,$(1),$(2))
endef
$(call mb_make_call,mb_doc_function,mb_autoexec_append_safe_cmd,"Appends running a safe command.","<dir> <cmd> [timeout] [exit-code]")
define _mb_autoexec_write_preboot
$(call mb_make_call,mb_autoexec_append_cmd,$(1),$(2)mbboot80)
$(call mb_make_call,mb_autoexec_append_cmd,$(1),$(2)omsxctl boot_exec_setcolor $(if $(3),$(3),$(MB_AUTOEXEC_COLOR_FG)) $(if $(4),$(4),$(MB_AUTOEXEC_COLOR_BG)))
$(callmb_make_call, mb_autoexec_append_cmd,$(1),$(2)omsxctl fail_after $(MB_AUTOEXEC_STARTUP_TIMEOUT) seconds err_exec $(MB_AUTOEXEC_STARTUP_EXITCODE))
$(if $(filter on,$(MB_AUTOEXEC_SHOW_INIT)),$(call mb_make_call,mb_autoexec_append_cmd,$(1),$(2)omsxctl boot_exec_show_init))
$(if $(filter on,$(MB_AUTOEXEC_SHOW_VERSION)),$(call mb_make_call,mb_autoexec_append_cmd,$(1),ver))
$(call mb_make_call,mb_autoexec_append_cmd,$(1),PATH + A:\;)
$(if $(wildcard $(1)/utils),$(call mb_make_call,mb_autoexec_append_cmd,$(1),PATH + A:\UTILS))
$(MB__    )$(call mb_make_call,mb_autoexec_append_cmd,$(1),$(2)mbboot80)
$(MB__    )$(call mb_make_call,mb_autoexec_append_cmd,$(1),$(2)omsxctl boot_exec_setcolor $(if $(3),$(3),$(MB_AUTOEXEC_COLOR_FG)) $(if $(4),$(4),$(MB_AUTOEXEC_COLOR_BG)))
$(MB__    )$(call mb_make_call,mb_autoexec_append_cmd,$(1),$(2)omsxctl fail_after $(MB_AUTOEXEC_STARTUP_TIMEOUT) seconds err_exec $(MB_AUTOEXEC_STARTUP_EXITCODE))
$(MB__    )$(if $(filter on,$(MB_AUTOEXEC_SHOW_INIT)),$(call mb_make_call,mb_autoexec_append_cmd,$(1),$(2)omsxctl boot_exec_show_init))
$(MB__    )$(if $(filter on,$(MB_AUTOEXEC_SHOW_VERSION)),$(call mb_make_call,mb_autoexec_append_cmd,$(1),ver))
$(MB__    )$(call mb_make_call,mb_autoexec_append_cmd,$(1),PATH + A:\;)
$(MB__    )$(if $(wildcard $(1)/utils),$(call mb_make_call,mb_autoexec_append_cmd,$(1),PATH + A:\UTILS))
endef
define mb_autoexec_write_default
$(call mb_make_call,mb_os_echo_command,$(MB_I18N_AUTOEXEC_WRITE) $@)
@echo -n "" > $(1)/autoexec.bat
$(if $(wildcard $(1)/utils),$(call mb_make_call,_mb_autoexec_write_preboot,$(1),utils\,$(2),$(3)),$(call mb_make_call,_mb_autoexec_write_preboot,$(1),,$(2),$(3)))
$(if $(filter on,$(MB_AUTOEXEC_SHOW_HOST)),$(call mb_make_call,mb_autoexec_append_cmd,$(1),omsxctl boot_exec_show_host))
$(if $(MB_AUTOEXEC_STARTUP_NOTE),$(call mb_make_call,mb_autoexec_append_echo,$(1),mb::note $(MB_AUTOEXEC_STARTUP_NOTE)))
$(if $(filter on,$(MB_FLIGHT_VIDEO)),$(call mb_make_call,mb_autoexec_append_save_video,$(1)))
echo -n "$(subst $(MB_MAKE_SPACE)set,set,$(foreach var,$(MB_AUTOEXEC_EMBED_VARS),set MSX_$(var)$(MB_MAKE_EQUALS)$($(var))\r\n))" >> $(1)/autoexec.bat
echo -n "$(subst $(MB_MAKE_SPACE)set,set,$(foreach var,$(MB_AUTOEXEC_EMBED_VARS),echo MSX_$(var)$(MB_MAKE_EQUALS)%MSX_$(var)%\r\n))" >> $(1)/autoexec.bat
$(call mb_make_call,mb_autoexec_append_cmd,$(1),set TIME$(MB_MAKE_EQUALS)$(MB_AUTOEXEC_TIME_FORMAT))
$(call mb_make_call,mb_autoexec_append_cmd,$(1),set DATE$(MB_MAKE_EQUALS)$(MB_AUTOEXEC_DATE_FORMAT))
$(if $(filter on,$(MB_AUTOEXEC_SHOW_PATH)),$(call mb_make_call,mb_autoexec_append_cmd,$(1),echo mb::path %PATH%))
$(call mb_make_call,mb_autoexec_append_cmd,$(1),set MB_SNAIL$(MB_MAKE_EQUALS)$(notdir $@))
$(call mb_make_call,mb_autoexec_append_cmd,$(1),set MB_USER$(MB_MAKE_EQUALS)$($(MB_AUTOEXEC_EMBED_USER)))
$(if $(filter on,$(MB_AUTOEXEC_SHOW_USER)),$(call mb_make_call,mb_autoexec_append_echo,$(1),mb::user %MB_USER%))
$(call mb_make_call,mb_autoexec_append_cmd,$(1),set MB_SLIME$(MB_MAKE_EQUALS)$(1))
$(call mb_make_call,mb_autoexec_append_cmd,$(1),set MB_TARGET$(MB_MAKE_EQUALS)$@)
$(if $(filter on,$(MB_AUTOEXEC_SHOW_FOLDER)),$(call mb_make_call,mb_autoexec_append_echo,$(1),mb::bath %MB_SLIME%))
$(if $(filter on,$(MB_AUTOEXEC_SHOW_TARGET)),$(call mb_make_call,mb_autoexec_append_echo,$(1),mb::pipe %MB_TARGET%))
$(if $(filter on,$(MB_AUTOEXEC_PROMPT_SPACE)),$(call mb_make_call,mb_autoexec_append_cmd,$(1),set PROMPT \"$(value MB_AUTOEXEC_PROMPT_FORMAT)$(MB_MAKE_SPACE)\"))
$(if $(filter on,$(MB_AUTOEXEC_PROMPT_SPACE)),,$(call mb_make_call,mb_autoexec_append_cmd,$(1),,set PROMPT \"$(value MB_AUTOEXEC_PROMPT_FORMAT)\"))
$(MB__    )$(call mb_make_call,mb_os_echo_command,$(MB_I18N_AUTOEXEC_WRITE) $@)
$(MB__    )@echo -n "" > $(1)/autoexec.bat
$(MB__    )$(if $(wildcard $(1)/utils),$(call mb_make_call,_mb_autoexec_write_preboot,$(1),utils\,$(2),$(3)),$(call mb_make_call,_mb_autoexec_write_preboot,$(1),,$(2),$(3)))
$(MB__    )$(if $(filter on,$(MB_AUTOEXEC_SHOW_HOST)),$(call mb_make_call,mb_autoexec_append_cmd,$(1),omsxctl boot_exec_show_host))
$(MB__    )$(if $(MB_AUTOEXEC_STARTUP_NOTE),$(call mb_make_call,mb_autoexec_append_echo,$(1),mb::note $(MB_AUTOEXEC_STARTUP_NOTE)))
$(MB__    )$(if $(filter on,$(MB_FLIGHT_VIDEO)),$(call mb_make_call,mb_autoexec_append_save_video,$(1)))
$(MB__    )echo -n "$(subst $(MB_MAKE_SPACE)set,set,$(foreach var,$(MB_AUTOEXEC_EMBED_VARS),set MSX_$(var)$(MB_MAKE_EQUALS)$($(var))\r\n))" >> $(1)/autoexec.bat
$(MB__    )echo -n "$(subst $(MB_MAKE_SPACE)set,set,$(foreach var,$(MB_AUTOEXEC_EMBED_VARS),echo MSX_$(var)$(MB_MAKE_EQUALS)%MSX_$(var)%\r\n))" >> $(1)/autoexec.bat
$(MB__    )$(call mb_make_call,mb_autoexec_append_cmd,$(1),set TIME$(MB_MAKE_EQUALS)$(MB_AUTOEXEC_TIME_FORMAT))
$(MB__    )$(call mb_make_call,mb_autoexec_append_cmd,$(1),set DATE$(MB_MAKE_EQUALS)$(MB_AUTOEXEC_DATE_FORMAT))
$(MB__    )$(if $(filter on,$(MB_AUTOEXEC_SHOW_PATH)),$(call mb_make_call,mb_autoexec_append_cmd,$(1),echo mb::path %PATH%))
$(MB__    )$(call mb_make_call,mb_autoexec_append_cmd,$(1),set MB_SNAIL$(MB_MAKE_EQUALS)$(notdir $@))
$(MB__    )$(call mb_make_call,mb_autoexec_append_cmd,$(1),set MB_USER$(MB_MAKE_EQUALS)$($(MB_AUTOEXEC_EMBED_USER)))
$(MB__    )$(if $(filter on,$(MB_AUTOEXEC_SHOW_USER)),$(call mb_make_call,mb_autoexec_append_echo,$(1),mb::user %MB_USER%))
$(MB__    )$(call mb_make_call,mb_autoexec_append_cmd,$(1),set MB_SLIME$(MB_MAKE_EQUALS)$(1))
$(MB__    )$(call mb_make_call,mb_autoexec_append_cmd,$(1),set MB_TARGET$(MB_MAKE_EQUALS)$@)
$(MB__    )$(if $(filter on,$(MB_AUTOEXEC_SHOW_FOLDER)),$(call mb_make_call,mb_autoexec_append_echo,$(1),mb::bath %MB_SLIME%))
$(MB__    )$(if $(filter on,$(MB_AUTOEXEC_SHOW_TARGET)),$(call mb_make_call,mb_autoexec_append_echo,$(1),mb::pipe %MB_TARGET%))
$(MB__    )$(if $(filter on,$(MB_AUTOEXEC_PROMPT_SPACE)),$(call mb_make_call,mb_autoexec_append_cmd,$(1),set PROMPT \"$(value MB_AUTOEXEC_PROMPT_FORMAT)$(MB_MAKE_SPACE)\"))
$(MB__    )$(if $(filter on,$(MB_AUTOEXEC_PROMPT_SPACE)),,$(call mb_make_call,mb_autoexec_append_cmd,$(1),,set PROMPT \"$(value MB_AUTOEXEC_PROMPT_FORMAT)\"))
endef
$(call mb_make_call,mb_doc_function,mb_autoexec_write_default,"Write a default autoexec.bat file.","<dir> [fg-color] [bg-color]")

View file

@ -1,14 +1,16 @@
define mb_conv_unix2dos
$(call mb_make_call,mb_os_echo_command,$(MB_I18N_CONV_UNIX2DOS) $(2))
unix2dos -q -n $(1) $(2)
$(MB__    )$(call mb_make_call,mb_make_check_arg2,mb_conv_unix2dos,$(1),$(2))
$(MB__    )$(call mb_make_call,mb_os_echo_command,$(MB_I18N_CONV_UNIX2DOS) $(2))
$(MB__    )unix2dos -q -n $(1) $(2)
endef
$(call mb_make_call,mb_doc_function,mb_conv_unix2dos,"Converts an unix file to dos.","<in> <out>")
define mb_conv_dos2unix
$(call mb_make_call,mb_os_echo_command,$(MB_I18N_CONV_DOS2UNIX) $(2))
dos2unix -q -n $(1) $(2)
$(MB__    )$(call mb_make_call,mb_make_check_arg2,mb_conv_dos2unix,$(1),$(2))
$(MB__    )$(call mb_make_call,mb_os_echo_command,$(MB_I18N_CONV_DOS2UNIX) $(2))
$(MB__    )dos2unix -q -n $(1) $(2)
endef
$(call mb_make_call,mb_doc_function,mb_conv_dos2unix,"Converts an dos file to unix.","<in> <out>")

View file

@ -1,38 +1,38 @@
MB_DOC_FIRE_VARIABLE_FLOW ?= ""
MB_DOC_FIRE_VARIABLE_FLOW ?= \\n
#*** Recursive variable: MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_VARIABLE_FLOW,"Flow builder of fire flow variable data.")
MB_DOC_FIRE_VARIABLE ?= ""
MB_DOC_FIRE_VARIABLE ?= \\n
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_VARIABLE,"Flow builder of firemake variable data.")
MB_DOC_FIRE_VARIABLE_DEEP ?= ""
MB_DOC_FIRE_VARIABLE_DEEP ?= \\n
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_VARIABLE_DEEP,"Flow builder of makefire deep variable data.")
MB_DOC_FIRE_VARIABLE_ROCK ?= ""
MB_DOC_FIRE_VARIABLE_ROCK ?= \\n
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_VARIABLE_ROCK,"Flow builder of makefire rock variable data.")
MB_DOC_FIRE_VARIABLE_I18N ?= ""
MB_DOC_FIRE_VARIABLE_I18N ?= \\n
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_VARIABLE_I18N,"Flow builder of makefire i18n variable data.")
MB_DOC_FIRE_FUNCTION ?= ""
MB_DOC_FIRE_FUNCTION ?= \\n
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_FUNCTION,"Flow builder of firemake function data.")
MB_DOC_FIRE_FUNCTION_DEEP ?= ""
MB_DOC_FIRE_FUNCTION_DEEP ?= \\n
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_FUNCTION_DEEP,"Flow builder of firemake deep function data.")
MB_DOC_FIRE_FUNCTION_FLOW ?= ""
MB_DOC_FIRE_FUNCTION_FLOW ?= \\n
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_FUNCTION_FLOW,"Flow builder of firemake flow function data.")
MB_DOC_FIRE_TARGET ?= ""
MB_DOC_FIRE_TARGET ?= \\n
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_TARGET,"Flow builder of firemake target data.")
MB_DOC_FIRE_TARGET_DEEP ?= ""
MB_DOC_FIRE_TARGET_DEEP ?= \\n
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_TARGET_DEEP,"Flow builder of firemake deep target data.")
MB_DOC_FIRE_TARGET_RUN ?= ""
MB_DOC_FIRE_TARGET_RUN ?= \\n
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_TARGET_RUN,"Flow builder of firemake run target data.")
MB_DOC_FIRE_TARGET_HELP ?= ""
MB_DOC_FIRE_TARGET_HELP ?= \\n
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_TARGET_HELP,"Flow builder of firemake help data.")
MB_DOC_XML_ROOT := firemake
@ -57,245 +57,241 @@ MB_DOC_FORMAT ?= txt
MB_DOC_FIRE_VARIABLE_DEEP += $(call mb_make_call,_mb_doc_variable4u_deep,MB_DOC_FORMAT,"Output format of documention$(MB_MAKE_COMMA) only 'txt' or 'xml' is supported.")
define _escape
$(MB__    )$(subst <,"<",$(subst >,">",$(subst \\n,\\\n,$(subst ','"'"',$(1)))))
endef
define _mb_doc_variable_txt
"* "$(2)=$(subst \\n,\\\n,$(subst >,?,$(4)))\\n$(if $(3),\\t$(3)\\n)\\n
$(MB__    )"* "$(2)$(MB_MAKE_EQUALS)$(call mb_make_call,_escape,$(4))\\n$(if $(3),\\t$(3)\\n)\\n
endef
define _mb_doc_variable_xml
\\n\\t$(call mb_make_call,mb_make_xml_open,variable,$(MB_DOC_XML_ATTR_NAME),$(2),$(MB_DOC_XML_ATTR_LEVEL),$(1))\\n\\t\\t$(call mb_make_call,mb_make_xml_tag_value,$(MB_DOC_XML_TAG_VALUE),$(subst >,?,$(4)))\\n\\t\\t$(call mb_make_call,mb_make_xml_tag_value,$(MB_DOC_XML_TAG_DESC),$(3))\\n\\t$(call mb_make_call,mb_make_xml_close,variable)
$(MB__    )\\n\\t$(call mb_make_call,mb_make_xml_open,variable,$(MB_DOC_XML_ATTR_NAME),$(2),$(MB_DOC_XML_ATTR_LEVEL),$(1))\\n\\t\\t$(call mb_make_call,mb_make_xml_tag_value,$(MB_DOC_XML_TAG_VALUE),$(4))\\n\\t\\t$(call mb_make_call,mb_make_xml_tag_value,$(MB_DOC_XML_TAG_DESC),$(3))\\n\\t$(call mb_make_call,mb_make_xml_close,variable)
endef
define _mb_doc_variable4u_deep
$(call mb_make_call,_mb_doc_variable_$(MB_DOC_FORMAT),deep,$(1),$(2),$($(1)))
$(MB__    )$(call mb_make_call,_mb_doc_variable_$(MB_DOC_FORMAT),deep,$(1),$(2),$($(1)))
endef
define _mb_doc_variable4u_rock
$(call mb_make_call,_mb_doc_variable_$(MB_DOC_FORMAT),rock,$(1),$(2),$($(1)))
$(MB__    )$(call mb_make_call,_mb_doc_variable_$(MB_DOC_FORMAT),rock,$(1),$(2),$($(1)))
endef
define _mb_doc_variable4u_flow
$(call mb_make_call,_mb_doc_variable_$(MB_DOC_FORMAT),flow,$(1),$(2),$(words $($(1))))
$(MB__    )$(call mb_make_call,_mb_doc_variable_$(MB_DOC_FORMAT),flow,$(1),$(2),$(words $($(1))))
endef
define _mb_doc_variable4u_i18n
$(call mb_make_call,_mb_doc_variable_$(MB_DOC_FORMAT),i18n,$(1),$(2),$($(1)))
$(MB__    )$(call mb_make_call,_mb_doc_variable_$(MB_DOC_FORMAT),i18n,$(1),$(2),$($(1)))
endef
define mb_doc_variable
$(eval MB_DOC_FIRE_VARIABLE += $$(call mb_make_call,_mb_doc_variable_$$(MB_DOC_FORMAT),build,$(1),$(2),$($(1))))
$(MB__    )$(eval MB_DOC_FIRE_VARIABLE += $$(call mb_make_call,_mb_doc_variable_$$(MB_DOC_FORMAT),build,$(1),$(2),$($(1))))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_variable,"Saves formatted documention of an variable.","<name> [desc]")
define mb_doc_variable_deep
$(eval MB_DOC_FIRE_VARIABLE_DEEP += $$(call mb_make_call,_mb_doc_variable4u_deep,$(1),$(2)))
$(MB__    )$(eval MB_DOC_FIRE_VARIABLE_DEEP += $$(call mb_make_call,_mb_doc_variable4u_deep,$(1),$(2)))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_variable_deep,"Saves formatted documention of an deep variable.","<name> [desc]")
define mb_doc_variable_rock
$(eval MB_DOC_FIRE_VARIABLE_ROCK += $$(call mb_make_call,_mb_doc_variable4u_rock,$(1),$(2)))
$(MB__    )$(eval MB_DOC_FIRE_VARIABLE_ROCK += $$(call mb_make_call,_mb_doc_variable4u_rock,$(1),$(2)))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_variable_rock,"Saves formatted documention of an rock variable.","<name> [desc]")
define mb_doc_variable_flow
$(eval MB_DOC_FIRE_VARIABLE_FLOW += $$(call mb_make_call,_mb_doc_variable4u_flow,$(1),$(2)))
$(MB__    )$(eval MB_DOC_FIRE_VARIABLE_FLOW += $$(call mb_make_call,_mb_doc_variable4u_flow,$(1),$(2)))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_variable_flow,"Saves formatted documention of an flow variable.","<name> [desc]")
define mb_doc_variable_i18n
$(eval MB_DOC_FIRE_VARIABLE_I18N += $$(call mb_make_call,_mb_doc_variable4u_i18n,$(1),$(2)))
$(MB__    )$(eval MB_DOC_FIRE_VARIABLE_I18N += $$(call mb_make_call,_mb_doc_variable4u_i18n,$(1),$(2)))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_variable_i18n,"Saves formatted documention of an i18n variable.","<name> [desc]")
define _mb_doc_function_txt
"* "$(2)$(if $(4), $(4))$(if $(3),\\n\\t$(3)\\n)\\n
$(MB__    )"* "$(2)$(if $(4), $(4))$(if $(3),\\n\\t$(3)\\n)\\n
endef
define _mb_doc_function_xml
\\n\\t$(call mb_make_call,mb_make_xml_open,function,$(MB_DOC_XML_ATTR_NAME),$(2),$(MB_DOC_XML_ATTR_LEVEL),$(1))\\n\\t\\t$(call mb_make_call,mb_make_xml_tag_value,$(MB_DOC_XML_TAG_ARGS),$(4))\\n\\t\\t$(call mb_make_call,mb_make_xml_tag_value,$(MB_DOC_XML_TAG_DESC),$(3))\\n\\t$(call mb_make_call,mb_make_xml_close,function)
$(MB__    )\\n\\t$(call mb_make_call,mb_make_xml_open,function,$(MB_DOC_XML_ATTR_NAME),$(2),$(MB_DOC_XML_ATTR_LEVEL),$(1))\\n\\t\\t$(call mb_make_call,mb_make_xml_tag_value,$(MB_DOC_XML_TAG_ARGS),$(4))\\n\\t\\t$(call mb_make_call,mb_make_xml_tag_value,$(MB_DOC_XML_TAG_DESC),$(3))\\n\\t$(call mb_make_call,mb_make_xml_close,function)
endef
define _mb_doc_function4u_deep
$(call mb_make_call,_mb_doc_function_$(MB_DOC_FORMAT),deep,$(1),$(2),$(3))
$(MB__    )$(call mb_make_call,_mb_doc_function_$(MB_DOC_FORMAT),deep,$(1),$(2),$(3))
endef
define _mb_doc_function4u_flow
$(call mb_make_call,_mb_doc_function_$(MB_DOC_FORMAT),flow,$(1),$(2),$(3))
$(MB__    )$(call mb_make_call,_mb_doc_function_$(MB_DOC_FORMAT),flow,$(1),$(2),$(3))
endef
define mb_doc_function
$(eval MB_DOC_FIRE_FUNCTION += $$(call mb_make_call,_mb_doc_function_$$(MB_DOC_FORMAT),build,$(1),$(2),$(3)))
$(MB__    )$(eval MB_DOC_FIRE_FUNCTION += $$(call mb_make_call,_mb_doc_function_$$(MB_DOC_FORMAT),build,$(1),$(2),$(3)))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_function,"Saves formatted documention of an function.","<name> [desc] [args]")
define mb_doc_function_deep
$(eval MB_DOC_FIRE_FUNCTION_DEEP += $$(call mb_make_call,_mb_doc_function4u_deep,$(1),$(2),$(3)))
$(MB__    )$(eval MB_DOC_FIRE_FUNCTION_DEEP += $$(call mb_make_call,_mb_doc_function4u_deep,$(1),$(2),$(3)))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_function_deep,"Saves formatted documention of an deep function.","<name> [desc] [args]")
define mb_doc_function_flow
$(eval MB_DOC_FIRE_FUNCTION_FLOW += $$(call mb_make_call,_mb_doc_function4u_flow,$(1),$(2),$(3)))
$(MB__    )$(eval MB_DOC_FIRE_FUNCTION_FLOW += $$(call mb_make_call,_mb_doc_function4u_flow,$(1),$(2),$(3)))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_function_flow,"Saves formatted documention of an flow function.","<name> [desc] [args]")
define _mb_doc_target_txt
"* "$(2)$(if $(3),\\n\\t$(3))\\n\\n
$(MB__    )"* "$(2)$(if $(3),\\n\\t$(3))\\n\\n
endef
define _mb_doc_target_xml
\\n\\t$(call mb_make_call,mb_make_xml_open,target,$(MB_DOC_XML_ATTR_NAME),$(2),$(MB_DOC_XML_ATTR_LEVEL),$(1))$(if $3,\\n\\t\\t$(call mb_make_call,mb_make_xml_tag_value,$(MB_DOC_XML_TAG_DESC),$(3))\\n\\t$(call mb_make_call,mb_make_xml_close,target),\\n\\t$(call mb_make_call,mb_make_xml_close,target))
$(MB__    )\\n\\t$(call mb_make_call,mb_make_xml_open,target,$(MB_DOC_XML_ATTR_NAME),$(2),$(MB_DOC_XML_ATTR_LEVEL),$(1))$(if $3,\\n\\t\\t$(call mb_make_call,mb_make_xml_tag_value,$(MB_DOC_XML_TAG_DESC),$(3))\\n\\t$(call mb_make_call,mb_make_xml_close,target),\\n\\t$(call mb_make_call,mb_make_xml_close,target))
endef
define mb_doc_target
$(eval MB_DOC_FIRE_TARGET += $$(call mb_make_call,_mb_doc_target_$$(MB_DOC_FORMAT),build,$(1),$(2)))
$(MB__    )$(eval MB_DOC_FIRE_TARGET += $$(call mb_make_call,_mb_doc_target_$$(MB_DOC_FORMAT),build,$(1),$(2)))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_target,"Saves formatted documention of an target.","<name> [desc]")
define mb_doc_target_deep
$(eval MB_DOC_FIRE_TARGET_DEEP += $$(call mb_make_call,_mb_doc_target_$$(MB_DOC_FORMAT),deep,$(1),$(2)))
$(MB__    )$(eval MB_DOC_FIRE_TARGET_DEEP += $$(call mb_make_call,_mb_doc_target_$$(MB_DOC_FORMAT),deep,$(1),$(2)))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_target_deep,"Saves formatted documention of an deep target.","<name> [desc]")
define mb_doc_target_help
$(eval MB_DOC_FIRE_TARGET_HELP += $$(call mb_make_call,_mb_doc_target_$(MB_DOC_FORMAT),help,$(1),$(2)))
$(MB__    )$(eval MB_DOC_FIRE_TARGET_HELP += $$(call mb_make_call,_mb_doc_target_$(MB_DOC_FORMAT),help,$(1),$(2)))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_target_help,"Saves formatted documention of an help target.","<name> [desc]")
define mb_doc_target_run
$(eval MB_DOC_FIRE_TARGET_RUN += $$(call mb_make_call,_mb_doc_target_$$(MB_DOC_FORMAT),run,$(1),$(2)))
$(MB__    )$(eval MB_DOC_FIRE_TARGET_RUN += $$(call mb_make_call,_mb_doc_target_$$(MB_DOC_FORMAT),run,$(1),$(2)))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_target_run,"Saves formatted documention of an run target.","<name> [desc]")
define __mb_doc_flow_help
@help:
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Welcome to the $$(if $(1),$(1),MSXBUILD) help system.\\n\\nFor detailed fire help use one of the following targets;\\n")
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
@echo $$(MB_DOC_FIRE_TARGET_HELP)
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
.PHONY: @help
.RECIPEPREFIX := $(MB__RECIPE)
@help:
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Welcome to the $$(if $(1),$(1),MSXBUILD) help system.\\n\\nFor detailed fire help use one of the following targets;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_TARGET_HELP)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help)
@help-variable:
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the make fire variables;\\n")
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
@echo $$(MB_DOC_FIRE_VARIABLE)
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$$(call mb_make_call,mb_doc_target_help,@help-variable,"Lists build variables.")
.PHONY: @help-variable
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the make fire variables;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_VARIABLE)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-variable,"Lists build variables.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-variable)
@help-variable-deep:
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the deep make variables;\\n")
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
@echo $$(MB_DOC_FIRE_VARIABLE_DEEP)
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$$(call mb_make_call,mb_doc_target_help,@help-variable-deep,"Lists deep variables.")
.PHONY: @help-variable-deep
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the deep make variables;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_VARIABLE_DEEP)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-variable-deep,"Lists deep variables.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-variable-deep)
@help-variable-rock:
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the rock make variables;\\n")
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
@echo $$(MB_DOC_FIRE_VARIABLE_ROCK)
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$$(call mb_make_call,mb_doc_target_help,@help-variable-rock,"Lists rock variables.")
.PHONY: @help-variable-rock
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the rock make variables;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_VARIABLE_ROCK)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-variable-rock,"Lists rock variables.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-variable-rock)
@help-variable-flow:
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the flow make variables;\\n")
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
@echo $$(MB_DOC_FIRE_VARIABLE_FLOW)
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$$(call mb_make_call,mb_doc_target_help,@help-variable-flow,"Lists flow variables.")
.PHONY: @help-variable-flow
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the flow make variables;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_VARIABLE_FLOW)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-variable-flow,"Lists flow variables.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-variable-flow)
@help-variable-i18n:
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the i18n make variables;\\n")
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
@echo $$(MB_DOC_FIRE_VARIABLE_I18N)
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$$(call mb_make_call,mb_doc_target_help,@help-variable-i18n,"Lists i18n variables.")
.PHONY: @help-variable-i18n
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the i18n make variables;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_VARIABLE_I18N)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-variable-i18n,"Lists i18n variables.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-variable-i18n)
@help-function:
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the make fire functions;\\n")
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
@echo $$(MB_DOC_FIRE_FUNCTION)
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$$(call mb_make_call,mb_doc_target_help,@help-function,"Lists build functions.")
.PHONY: @help-function
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the make fire functions;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_FUNCTION)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-function,"Lists build functions.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-function)
@help-function-deep:
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the deep make functions;\\n")
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
@echo $$(MB_DOC_FIRE_FUNCTION_DEEP)
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$$(call mb_make_call,mb_doc_target_help,@help-function-deep,"Lists deep functions.")
.PHONY: @help-function-deep
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the deep make functions;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_FUNCTION_DEEP)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-function-deep,"Lists deep functions.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-function-deep)
@help-function-flow:
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the flow make functions;\\n")
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
@echo $$(MB_DOC_FIRE_FUNCTION_FLOW)
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$$(call mb_make_call,mb_doc_target_help,@help-function-flow,"Lists flow functions.")
.PHONY: @help-function-flow
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the flow make functions;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_FUNCTION_FLOW)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-function-flow,"Lists flow functions.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-function-flow)
@help-target:
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Build one of the following make fire targets;\\n")
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
@echo $$(MB_DOC_FIRE_TARGET)
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$$(call mb_make_call,mb_doc_target_help,@help-target,"Lists build targets.")
.PHONY: @help-target
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Build one of the following make fire targets;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_TARGET)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-target,"Lists build targets.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-target)
@help-target-deep:
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Build one of the following deep make targets;\\n")
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
@echo $$(MB_DOC_FIRE_TARGET_DEEP)
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$$(call mb_make_call,mb_doc_target_help,@help-target-deep,"Lists deep targets.")
.PHONY: @help-target-deep
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Build one of the following deep make targets;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_TARGET_DEEP)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-target-deep,"Lists deep targets.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-target-deep)
@help-target-run:
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Build one of the following run make targets;\\n")
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
@echo $$(MB_DOC_FIRE_TARGET_RUN)
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$$(call mb_make_call,mb_doc_target_help,@help-target-run,"Lists runnable targets.")
.PHONY: @help-target-run
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Build one of the following run make targets;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_TARGET_RUN)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-target-run,"Lists runnable targets.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-target-run)
@help-all:
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of all fire functions/variables/targets;\\n")
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Variables\\n"))
@echo $$(MB_DOC_FIRE_VARIABLE)
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Variables in the deep\\n"))
@echo $$(MB_DOC_FIRE_VARIABLE_DEEP)
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Variables hard as rock\\n"))
@echo $$(MB_DOC_FIRE_VARIABLE_ROCK)
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Variables defining flow\\n"))
@echo $$(MB_DOC_FIRE_VARIABLE_FLOW)
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Variables for i18n letters\\n"))
@echo $$(MB_DOC_FIRE_VARIABLE_I18N)
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Functions\\n"))
@echo $$(MB_DOC_FIRE_FUNCTION)
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Functions in the deep\\n"))
@echo $$(MB_DOC_FIRE_FUNCTION_DEEP)
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Functions building flow\\n"))
@echo $$(MB_DOC_FIRE_FUNCTION_FLOW)
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Targets\\n"))
@echo $$(MB_DOC_FIRE_TARGET)
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Targets in the deep\\n"))
@echo $$(MB_DOC_FIRE_TARGET_DEEP)
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Targets that run away\\n"))
@echo $$(MB_DOC_FIRE_TARGET_RUN)
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Targets main project help\\n"))
@echo $$(MB_DOC_FIRE_TARGET_HELP)
$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,OK))
$$(call mb_make_call,mb_doc_target_help,@help-all,"Lists all documented information.")
.PHONY: @help-all
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo -e "Documention of all fire functions/variables/targets;\\n")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Variables"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_VARIABLE)
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Variables in the deep"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_VARIABLE_DEEP)
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Variables hard as rock"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_VARIABLE_ROCK)
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Variables defining flow"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_VARIABLE_FLOW)
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Variables for i18n letters"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_VARIABLE_I18N)
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Functions"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_FUNCTION)
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Functions in the deep"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_FUNCTION_DEEP)
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Functions building flow"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_FUNCTION_FLOW)
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Targets"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_TARGET)
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Targets in the deep"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_TARGET_DEEP)
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Targets that run away"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_TARGET_RUN)
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Targets main project help"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_TARGET_HELP)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,OK))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-all,"Lists all documented information.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-all)
@help-firemake:
MB_DOC_FORMAT=xml $$(MAKE) -s @help-all
$$(call mb_make_call,mb_doc_target_help,@help-firemake,"Output all documention in XML for IDE integration.")
.PHONY: @help-firemake
$(MB__RECIPE)MB_DOC_FORMAT$(MB_MAKE_EQUALS)xml $$(MAKE) -s @help-all
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-firemake,"Output all documention in XML for IDE integration.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-firemake)
.RECIPEPREFIX := $(MB__RECIPEPREFIX)
endef
define mb_doc_flow_help
$(if $(1),,$(error $(1) missing))
$(eval $(call mb_make_call,__mb_doc_flow_help,$(1)))
$(MB__    )$(if $(1),,$(error $(1) missing))
$(MB__    )$(eval $(call mb_make_call,__mb_doc_flow_help,$(1)))
$(MB__    )$(if $(.DEFAULT_GOAL),,$(eval .DEFAULT_GOAL :$(MB_MAKE_EQUALS) @help))
endef
MB_DOC_FIRE_FUNCTION_FLOW += $(call mb_make_call,_mb_doc_function4u_flow,mb_doc_flow_help,"Prints flow of fire help target.","[project-name]")

View file

@ -19,54 +19,58 @@ $(call mb_make_call,mb_doc_variable,MB_FLIGHT_VIDEO_NAME,"Video file name of the
define mb_flight_video_merge
$(call mb_make_call,mb_make_check_arg1,mb_flight_video_merge,$(1))
$(call mb_make_call,mb_os_echo_good,Indexing flight videos)
ls -1tr $(1)/*-omsx/videos/*.avi | awk -F "$(1)/" -v s="file '" -v e="'" '{print s$$2e}' > $(1)/$(MB_FLIGHT_VIDEO_NAME).lst
ffmpeg -v quiet -y -f concat -i $(1)/$(MB_FLIGHT_VIDEO_NAME).lst -c copy $(1)/$(MB_FLIGHT_VIDEO_NAME).avi
$(call mb_make_call,mb_os_echo_good,Flight video completed)
$(MB__    )$(call mb_make_call,mb_make_check_arg1,mb_flight_video_merge,$(1))
$(MB__    )$(call mb_make_call,mb_os_echo_good,Indexing flight videos)
$(MB__    )ls -1tr $(1)/*-omsx/videos/*.avi | awk -F "$(1)/" -v s="file '" -v e="'" '{print s$$2e}' > $(1)/$(MB_FLIGHT_VIDEO_NAME).lst
$(MB__    )ffmpeg -v quiet -y -f concat -i $(1)/$(MB_FLIGHT_VIDEO_NAME).lst -c copy $(1)/$(MB_FLIGHT_VIDEO_NAME).avi
$(MB__    )$(call mb_make_call,mb_os_echo_good,Flight video completed)
endef
$(call mb_make_call,mb_doc_function,mb_flight_video_merge,"Merged all flight videos to one.","<dir>")
define __mb_flight_proj_flow_video
.RECIPEPREFIX := $(MB__RECIPE)
@@flight-video-build: @build
$$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb_make_call,mb_flight_video_merge,$(1)))
$(MB__RECIPE)$$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb_make_call,mb_flight_video_merge,$(1)))
@flight-video-build: @clean
$$(call mb_make_call,_mb_proj_flow_step_before)
MB_OPENMSX_HEADLESS=off MB_FLIGHT_VIDEO=on $$(MAKE) -s @@flight-video-build
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@flight-video-build,"Runs @clean and @build with recorder and merges flight videos to one.")
.PHONY: @flight-video-build
$(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_before)
$(MB__RECIPE)MB_OPENMSX_HEADLESS$(MB_MAKE_EQUALS)off MB_FLIGHT_VIDEO$(MB_MAKE_EQUALS)on $$(MAKE) -s @@flight-video-build
$(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_done)
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@flight-video-build,"Runs @clean and @build with recorder and merges flight videos to one.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@flight-video-build)
@@flight-video-test: @test
$$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb_make_call,mb_flight_video_merge,$(1)))
$(MB__RECIPE)$$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb_make_call,mb_flight_video_merge,$(1)))
@flight-video-test: @clean
$$(call mb_make_call,_mb_proj_flow_step_before)
MB_OPENMSX_HEADLESS=off MB_FLIGHT_VIDEO=on $$(MAKE) -s @@flight-video-test
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@flight-video-test,"Runs @clean and @test with recorder and merges flight videos to one.")
.PHONY: @flight-video-test
$(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_before)
$(MB__RECIPE)MB_OPENMSX_HEADLESS$(MB_MAKE_EQUALS)off MB_FLIGHT_VIDEO$(MB_MAKE_EQUALS)on $$(MAKE) -s @@flight-video-test
$(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_done)
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@flight-video-test,"Runs @clean and @test with recorder and merges flight videos to one.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@flight-video-test)
@@flight-video-package-qa: @package-qa
$$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb_make_call,mb_flight_video_merge,$(1)))
$(MB__RECIPE)$$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb_make_call,mb_flight_video_merge,$(1)))
@flight-video-package-qa: @clean
$$(call mb_make_call,_mb_proj_flow_step_before)
MB_OPENMSX_HEADLESS=off MB_FLIGHT_VIDEO=on $$(MAKE) -s @@flight-video-package-qa
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@flight-video-package-qa,"Runs @clean and @package-qa with recorder and merges flight videos to one.")
.PHONY: @flight-video-package-qa
$(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_before)
$(MB__RECIPE)MB_OPENMSX_HEADLESS$(MB_MAKE_EQUALS)ff MB_FLIGHT_VIDEO$(MB_MAKE_EQUALS)on $$(MAKE) -s @@flight-video-package-qa
$(MB__RECIPE)$$(call mb_make_call,_mb_proj_flow_step_done)
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@flight-video-package-qa,"Runs @clean and @package-qa with recorder and merges flight videos to one.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@flight-video-package-qa)
.RECIPEPREFIX := $(MB__RECIPEPREFIX)
endef
define mb_flight_proj_flow_video
$(call mb_make_call,mb_make_check_arg1,mb_flight_proj_flow_video,$(1))
$(eval $(call mb_make_call,__mb_flight_proj_flow_video,$(1)))
$(MB__    )$(call mb_make_call,mb_make_check_arg1,mb_flight_proj_flow_video,$(1))
$(MB__    )$(eval $(call mb_make_call,__mb_flight_proj_flow_video,$(1)))
endef
$(call mb_make_call,mb_doc_function_flow,mb_flight_proj_flow_video,"Prints flow for adding flight video targets in project build cycle.","<path-bin>")

View file

@ -1,67 +1,127 @@
MB_I18N_ASSERT_SUCCESS ?= "Assert successfull"
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_AUTOEXEC_WRITE ?= "Write autoexec for"
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.")
MB_I18N_CONV_UNIX2DOS ?= "Convert to dos-EOL"
MB_I18N_CONV_UNIX2DOS ?= Convert to dos-EOL
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_CONV_UNIX2DOS,"Message for when converting a file to dos.")
MB_I18N_CONV_DOS2UNIX ?= "Convert to nix-EOL"
MB_I18N_CONV_DOS2UNIX ?= Convert to nix-EOL
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_CONV_DOS2UNIX,"Message for when converting a file to unix.")
MB_I18N_MAKE_CHECK_ARG1 ?= "Argument 1 is missing."
MB_I18N_MAKE_CHECK_ARG1 ?= Argument 1 is missing
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_MAKE_CHECK_ARG1,"Error message when argument 1 is missing.")
MB_I18N_MAKE_CHECK_ARG2 ?= "Argument 2 is missing."
MB_I18N_MAKE_CHECK_ARG2 ?= Argument 2 is missing
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_MAKE_CHECK_ARG2,"Error message when argument 2 is missing.")
MB_I18N_MAKE_CHECK_ARG3 ?= "Argument 3 is missing."
MB_I18N_MAKE_CHECK_ARG3 ?= Argument 3 is missing
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_MAKE_CHECK_ARG3,"Error message when argument 3 is missing.")
MB_I18N_MAKE_CHECK_ARG4 ?= "Argument 4 is missing."
MB_I18N_MAKE_CHECK_ARG4 ?= Argument 4 is missing
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_MAKE_CHECK_ARG4,"Error message when argument 4 is missing.")
MB_I18N_MAKE_CHECK_ARG5 ?= "Argument 5 is missing."
MB_I18N_MAKE_CHECK_ARG5 ?= Argument 5 is missing
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_MAKE_CHECK_ARG5,"Error message when argument 5 is missing.")
MB_I18N_MSXHUB_FILE_FETCH ?= "Fetch msxhub file"
MB_I18N_MSXHUB_FILE_FETCH ?= Fetch msxhub file
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_MSXHUB_FILE_FETCH,"Message for when fetching a msxhub file.")
MB_I18N_MSXROM_FILE_FETCH ?= "Fetch msxrom file"
MB_I18N_MSXROM_FILE_FETCH ?= Fetch msxrom file
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_MSXROM_FILE_FETCH,"Message for when fetching a msxrom file.")
MB_I18N_OPENMSX_STARTUP ?= "Start openMSX! for"
MB_I18N_OPENMSX_STARTUP ?= Start openMSX! for
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_OPENMSX_STARTUP,"Message used on startup of openMSX.")
MB_I18N_OS_ECHO_CRAYON ?= "==="
MB_I18N_OS_ECHO_CRAYON ?= ===
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_OS_ECHO_CRAYON,"Crayon marker for result step output echo's.")
MB_I18N_PROJ_STEP_BEFORE ?= "Before --"
MB_I18N_PROJ_STEP_BEFORE ?= Before --
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_STEP_BEFORE,"Prefix for begin phase message.")
MB_I18N_PROJ_STEP_AFTER ?= "After ----"
MB_I18N_PROJ_STEP_AFTER ?= After ----
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_STEP_AFTER,"Prefix for after phase message.")
MB_I18N_PROJ_STEP_DONE ?= "Finished executing prime pi target"
MB_I18N_PROJ_STEP_DONE ?= Finished executing prime pi target
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_STEP_DONE,"Message for requested phase completed.")
MB_I18N_PROJ_DIR_CREATE ?= "Creating folder"
MB_I18N_PROJ_DIR_CREATE ?= Creating folder
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_DIR_CREATE,"Message for creating a folder.")
MB_I18N_PROJ_DIR_DELETE ?= "Removing folder"
MB_I18N_PROJ_DIR_DELETE ?= Removing folder
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_DIR_DELETE,"Message for deleting a folder.")
MB_I18N_SDCC_COMPILE ?= "SDCC Compile super"
MB_I18N_SDCC_COMPILE ?= SDCC Compile super
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_SDCC_COMPILE,"Message for SDCC compiler run.")
MB_I18N_SDCC_ARLIB ?= "SDCC Builder arlib"
MB_I18N_SDCC_ARLIB ?= SDCC Builder arlib
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_SDCC_ARLIB,"Message for SDCC lib archive tool.")
MB_I18N_SDCC_LINK ?= "SDCC Linker MSXlib"
MB_I18N_SDCC_LINK ?= SDCC Linker MSXlib
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_SDCC_LINK,"Message for SDCC linker run.")
MB_I18N_SDCC_OBJCOPY ?= "SDCC sdobjcopy for"
MB_I18N_SDCC_OBJCOPY ?= SDCC sdobjcopy for
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_SDCC_OBJCOPY,"Message for SDCC objcopy run.")
MB_I18N_PROJ_PHASEID_CLEAN ?=
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_PHASEID_CLEAN,"Local command of clean target.")
MB_I18N_PROJ_PHASEDOC_CLEAN ?=
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_PHASEDOC_CLEAN,"Local documentation of clean target.")
MB_I18N_PROJ_PHASEID_INIT ?=
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_PHASEID_INIT,"Local command of init target.")
MB_I18N_PROJ_PHASEDOC_INIT ?=
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_PHASEDOC_INIT,"Local documentation of init target.")
MB_I18N_PROJ_PHASEID_PROCESS ?=
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_PHASEID_PROCESS,"Local command of proces target.")
MB_I18N_PROJ_PHASEDOC_PROCESS ?=
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_PHASEDOC_PROCESS,"Local documentation of process target.")
MB_I18N_PROJ_PHASEID_COMPILE ?=
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_PHASEID_COMPILE,"Local command of compile target.")
MB_I18N_PROJ_PHASEDOC_COMPILE ?=
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_PHASEDOC_COMPILE,"Local documentation of compile target.")
MB_I18N_PROJ_PHASEID_LINK ?=
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_PHASEID_LINK,"Local command of link target.")
MB_I18N_PROJ_PHASEDOC_LINK ?=
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_PHASEDOC_LINK,"Local documentation of link target.")
MB_I18N_PROJ_PHASEID_BUILD ?=
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_PHASEID_BUILD,"Local command of build target.")
MB_I18N_PROJ_PHASEDOC_BUILD ?=
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_PHASEDOC_BUILD,"Local documentation of build target.")
MB_I18N_PROJ_PHASEID_TEST ?=
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_PHASEID_TEST,"Local command of test target.")
MB_I18N_PROJ_PHASEDOC_TEST ?=
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_PHASEDOC_TEST,"Local documentation of test target.")
MB_I18N_PROJ_PHASEID_PACKAGE ?=
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_PHASEID_PACKAGE,"Local command of package target.")
MB_I18N_PROJ_PHASEDOC_PACKAGE ?=
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_PHASEDOC_PACKAGE,"Local documentation of package target.")
MB_I18N_PROJ_PHASEID_PACKAGE_QA ?=
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_PHASEID_PACKAGE_QA,"Local command of package-qa target.")
MB_I18N_PROJ_PHASEDOC_PACKAGE_QA ?=
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_PHASEDOC_PACKAGE_QA,"Local documentation of package-qa target.")
MB_I18N_PROJ_PHASEID_PACKAGE_DEPLOY ?=
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_PHASEID_PACKAGE_DEPLOY,"Local command of package-deploy target.")
MB_I18N_PROJ_PHASEDOC_PACKAGE_DEPLOY ?=
$(call mb_make_call,mb_doc_variable_i18n,MB_I18N_PROJ_PHASEDOC_PACKAGE_DEPLOY,"Local documentation of package-deploy target.")

View file

@ -8,131 +8,104 @@ $(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_BRACKET_RL := "("
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_BRACKET_RL,"Expanded special char; bracket round left.")
MB_MAKE_HASH := \#
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_HASH,"Expanded special char; hash.")
MB_MAKE_BRACKET_RR := ")"
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_BRACKET_RR,"Expanded special char; bracket round right.")
MB_MAKE_COLON := :
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_COLON,"Expanded special char; colon.")
MB_MAKE_BRACKET_SL := "["
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_BRACKET_SL,"Expanded special char; bracket square left.")
MB_MAKE_DOLLAR := $$
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_DOLLAR,"Expanded special char; dollar.")
MB_MAKE_BRACKET_SR := "]"
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_BRACKET_SR,"Expanded special char; bracket square right.")
MB_MAKE_BRACKET_CL := "{"
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_BRACKET_CL,"Expanded special char; bracket curly left.")
define mb_make_flag_phony
.PHONY: $(1)
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_flag_phony,"Marks an target as phony.","<target>")
MB_MAKE_BRACKET_CR := "}"
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_BRACKET_CR,"Expanded special char; bracket curly right.")
MB_MAKE_GT := ">"
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_GT,"Expanded special char; greater than.")
define mb_make_newline
MB_MAKE_LT := "<"
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_LT,"Expanded special char; lesser than.")
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_newline,"Prints a newline character.")
MB_MAKE_CDATA_START := "<![CDATA["
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_CDATA_START,"Expanded special char; XML cdata start.")
MB_MAKE_CDATA_END := "]]>"
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_CDATA_END,"Expanded special char; XML cdata end.")
define mb_make_space2comma
$(MB__    )$(subst $(MB_MAKE_SPACE),$(MB_MAKE_COMMA),$1)
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_space2comma,"Replaces all spaces witth comma's.")
define mb_make_rwildcard
$(foreach d,$(wildcard $1*),$(call mb_make_rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))
$(MB__    )$(foreach d,$(wildcard $1*),$(call mb_make_rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_rwildcard,"Recursive wildcard search.","<dir> <match>")
define mb_make_call
$(if $(filter file,$(origin $(1))),$(call $(1),$(2),$(3),$(4),$(5),$(6),$(7),$(8),$(9)),$(error $(1) is not defined))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_call,"Checked origin call function wrapper.","<function> [args...]")
define mb_make_lowercase
$(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$(1)))))))))))))))))))))))))))
$(MB__    )$(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$(1)))))))))))))))))))))))))))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_lowercase,"Converts ascii string to lowercase.","<string>")
define mb_make_uppercase
$(subst a,A,$(subst b,B,$(subst c,C,$(subst d,D,$(subst e,E,$(subst f,F,$(subst g,G,$(subst h,H,$(subst i,I,$(subst j,J,$(subst k,K,$(subst l,L,$(subst m,M,$(subst n,N,$(subst o,O,$(subst p,P,$(subst q,Q,$(subst r,R,$(subst s,S,$(subst t,T,$(subst u,U,$(subst v,V,$(subst w,W,$(subst x,X,$(subst y,Y,$(subst z,Z,$(1)))))))))))))))))))))))))))
$(MB__    )$(subst a,A,$(subst b,B,$(subst c,C,$(subst d,D,$(subst e,E,$(subst f,F,$(subst g,G,$(subst h,H,$(subst i,I,$(subst j,J,$(subst k,K,$(subst l,L,$(subst m,M,$(subst n,N,$(subst o,O,$(subst p,P,$(subst q,Q,$(subst r,R,$(subst s,S,$(subst t,T,$(subst u,U,$(subst v,V,$(subst w,W,$(subst x,X,$(subst y,Y,$(subst z,Z,$(1)))))))))))))))))))))))))))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_uppercase,"Converts ascii string to uppercase.","<string>")
define mb_make_xml_open
$(MB_MAKE_LT)$(1)$(if $(2), $(2)=\"$(3)\")$(if $(4), $(4)=\"$(5)\")$(MB_MAKE_GT)
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_xml_open,"Print xml open tag.","<tag> [attr1-name] [attr1-value] [attr2-name] [attr2-value]")
define mb_make_xml_close
$(MB_MAKE_LT)/$(1)$(MB_MAKE_GT)
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_xml_close,"Print xml close tag.","<tag>")
define mb_make_xml_value
$(MB_MAKE_CDATA_START)$(subst $(MB_MAKE_CDATA_START),,$(subst $(MB_MAKE_CDATA_END),,$(1)))$(MB_MAKE_CDATA_END)
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_xml_value,"Print xml value in cdata wrapper.","<value>")
define mb_make_xml_tag_value
$(if $(2),$(call mb_make_call,mb_make_xml_open,$(1))$(call mb_make_call,mb_make_xml_value,$(2))$(call mb_make_call,mb_make_xml_close,$(1)))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_xml_tag_value,"Print xml tag with value inside.","<tag> [value]")
define __mb_make_flow_0module
include $$(call mb_make_call,mb_make_rwildcard,$(1),*/0module.mk)
endef
define mb_make_flow_0module
$(call mb_make_call,mb_make_check_arg1,mb_make_flow_0module,$(1))
$(eval $(call mb_make_call,__mb_make_flow_0module,$(1)))
$(MB__    )$(call mb_make_call,mb_make_check_arg1,mb_make_flow_0module,$(1))
$(MB__    )$(eval $(call mb_make_call,__mb_make_flow_0module,$(1)))
endef
$(call mb_make_call,mb_doc_function_flow,mb_make_flow_0module,"Prints flow of recursive 0module.mk include.","<dir>")
define mb_make_check_variable
$(MB__    )$(if $($(1)),,$(error $(1): Is empty))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_check_variable,"Checks that a variable is not empty.","<variable>")
define mb_make_check_arg1
$(if $(2),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG1)))
$(MB__    )$(if $(2),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG1)))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_check_arg1,"Checks that a function has a given argument.","<function> <arg1>")
define mb_make_check_arg2
$(if $(2),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG1)))
$(if $(3),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG2)))
$(MB__    )$(if $(2),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG1))) \
$(MB__    )$(if $(3),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG2)))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_check_arg2,"Checks that a function has the given arguments.","<function> <arg1>")
define mb_make_check_arg3
$(if $(2),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG1)))
$(if $(3),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG2)))
$(if $(4),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG3)))
$(MB__    )$(if $(2),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG1))) \
$(MB__    )$(if $(3),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG2))) \
$(MB__    )$(if $(4),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG3)))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_check_arg3,"Checks that a function has the given arguments.","<function> <arg1>")
define mb_make_check_arg4
$(if $(2),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG1)))
$(if $(3),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG2)))
$(if $(4),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG3)))
$(if $(5),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG4)))
$(MB__    )$(if $(2),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG1))) \
$(MB__    )$(if $(3),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG2))) \
$(MB__    )$(if $(4),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG3))) \
$(MB__    )$(if $(5),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG4)))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_check_arg4,"Checks that a function has the given arguments.","<function> <arg1>")
define mb_make_check_arg5
$(if $(2),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG1)))
$(if $(3),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG2)))
$(if $(4),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG3)))
$(if $(5),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG4)))
$(if $(6),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG5)))
$(MB__    )$(if $(2),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG1))) \
$(MB__    )$(if $(3),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG2))) \
$(MB__    )$(if $(4),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG3))) \
$(MB__    )$(if $(5),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG4))) \
$(MB__    )$(if $(6),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG5)))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_check_arg5,"Checks that a function has the given arguments.","<function> <arg1>")

25
lib/make/mb_make_call.mk Normal file
View file

@ -0,0 +1,25 @@
MB_MAKE_CALL_DEBUG ?= off
# Workaround for --warn-undefined-variables
1 :=
2 :=
3 :=
4 :=
5 :=
6 :=
7 :=
8 :=
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))))
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))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_call,"Checked origin call function wrapper.","<function> [args...]")
# Wait until function is parsed...
$(call mb_make_call,mb_doc_variable_deep,MB_MAKE_CALL_DEBUG,"If on prints debug trace of all make calls.")

43
lib/make/mb_make_xml.mk Normal file
View file

@ -0,0 +1,43 @@
MB_MAKE_XML_LT := <
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_XML_LT,"Expanded special char; lesser than.")
MB_MAKE_XML_GT := >
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_XML_GT,"Expanded special char; greater than.")
MB_MAKE_XML_CDATA_START := <![CDATA[
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_XML_CDATA_START,"Expanded special char; XML cdata start.")
MB_MAKE_XML_CDATA_END := ]]>
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_XML_CDATA_END,"Expanded special char; XML cdata end.")
define _escape_xml_attr
$(MB__    )$(subst <,\u0026lt\u003B,$(subst >,\u003Cgt\u003B,$(subst $(MB_MAKE_XML_CDATA_START),,$(subst $(MB_MAKE_XML_CDATA_END),,$(1)))))
endef
define mb_make_xml_open
$(MB__    )"$(MB_MAKE_XML_LT)"$(1)$(if $(2), $(2)$(MB_MAKE_EQUALS)\"$(call mb_make_call,_escape_xml_value,$(3))\")$(if $(4), $(4)$(MB_MAKE_EQUALS)\"$(call mb_make_call,_escape_xml_attr,$(5))\")"$(MB_MAKE_XML_GT)"
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_xml_open,"Print xml open tag.","<tag> [attr1-name] [attr1-value] [attr2-name] [attr2-value]")
define mb_make_xml_close
$(MB__    )"$(MB_MAKE_XML_LT)"/$(1)"$(MB_MAKE_XML_GT)"
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_xml_close,"Print xml close tag.","<tag>")
define _escape_xml_value
$(MB__    )$(subst <,\u003C,$(subst >,\u003E,$(subst $(MB_MAKE_XML_CDATA_START),,$(subst $(MB_MAKE_XML_CDATA_END),,$(1)))))
endef
define mb_make_xml_value
$(MB__    )"$(MB_MAKE_XML_CDATA_START)"$(call mb_make_call,_escape_xml_value,$(1))"$(MB_MAKE_XML_CDATA_END)"
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_xml_value,"Print xml value in cdata wrapper.","<value>")
define mb_make_xml_tag_value
$(MB__    )$(if $(2),$(call mb_make_call,mb_make_xml_open,$(1))$(call mb_make_call,mb_make_xml_value,$(2))$(call mb_make_call,mb_make_xml_close,$(1)))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_xml_tag_value,"Print xml tag with value inside.","<tag> [value]")

View file

@ -7,16 +7,16 @@ $(call mb_make_call,mb_doc_variable_deep,MB_MSXHUB_CACHE,"Cache storage location
define _mb_msxhub_file_fetch
$(call mb_make_call,mb_os_echo_command,$(MB_I18N_MSXHUB_FILE_FETCH) $(subst $(MB_MSXHUB_API)/,,$(1)))
$(if $(wildcard $(dir $(MB_MSXHUB_CACHE)/$(subst $(MB_MSXHUB_API)/,,$(1)))),,$(call mb_make_call,mb_os_dir_create,$(dir $(MB_MSXHUB_CACHE)/$(subst $(MB_MSXHUB_API)/,,$(1)))))
$(if $(wildcard $(MB_MSXHUB_CACHE)/$(subst $(MB_MSXHUB_API)/,,$(1))),,wget -O $(MB_MSXHUB_CACHE)/$(subst $(MB_MSXHUB_API)/,,$(1)) $(1))
$(MB__    )$(call mb_make_call,mb_os_echo_command,$(MB_I18N_MSXHUB_FILE_FETCH) $(subst $(MB_MSXHUB_API)/,,$(1)))
$(MB__    )$(if $(wildcard $(dir $(MB_MSXHUB_CACHE)/$(subst $(MB_MSXHUB_API)/,,$(1)))),,$(call mb_make_call,mb_os_dir_create,$(dir $(MB_MSXHUB_CACHE)/$(subst $(MB_MSXHUB_API)/,,$(1)))))
$(MB__    )$(if $(wildcard $(MB_MSXHUB_CACHE)/$(subst $(MB_MSXHUB_API)/,,$(1))),,wget -O $(MB_MSXHUB_CACHE)/$(subst $(MB_MSXHUB_API)/,,$(1)) $(1))
endef
# NOTE: with HDD import/export we get duplicate files after openMSX run, so force to lowercase.
define mb_msxhub_file
$(if $(wildcard $(MB_MSXHUB_CACHE)/$(2)),,$(call mb_make_call,_mb_msxhub_file_fetch,$(MB_MSXHUB_API)/$(2)))
$(if $(wildcard $(1)/$(call mb_make_call,mb_make_lowercase,$(notdir $(2)))),,$(call mb_make_call,mb_os_file_copy,$(MB_MSXHUB_CACHE)/$(2),$(1)/$(call mb_make_call,mb_make_lowercase,$(notdir $(2)))))
$(MB__    )$(if $(wildcard $(MB_MSXHUB_CACHE)/$(2)),,$(call mb_make_call,_mb_msxhub_file_fetch,$(MB_MSXHUB_API)/$(2)))
$(MB__    )$(if $(wildcard $(1)/$(call mb_make_call,mb_make_lowercase,$(notdir $(2)))),,$(call mb_make_call,mb_os_file_copy,$(MB_MSXHUB_CACHE)/$(2),$(1)/$(call mb_make_call,mb_make_lowercase,$(notdir $(2)))))
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxhub_file,"Installs msxsub packages from slug into dir.","<dir> <msxhub-slug>")
@ -25,22 +25,22 @@ $(call mb_make_call,mb_doc_function_deep,mb_msxhub_file,"Installs msxsub package
# Operating System (minimal)
#
define mb_msxhub_get_msxdos1_boot
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS1/1.03-2/get/MSXDOS1/MSXDOS.SYS)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS1/1.03-2/get/MSXDOS1/COMMAND.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS1/1.03-2/get/MSXDOS1/MSXDOS.SYS)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS1/1.03-2/get/MSXDOS1/COMMAND.COM)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxhub_get_msxdos1_boot,"Installs msxdos1 boot files into dir.","<dir>")
define mb_msxhub_get_msxdos2_boot
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/MSXDOS2.SYS)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/COMMAND2.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/MSXDOS2.SYS)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/COMMAND2.COM)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxhub_get_msxdos2_boot,"Installs msxdos2 boot files into dir.","<dir>")
define mb_msxhub_get_nextor_boot
$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/NEXTOR.SYS)
$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/COMMAND2.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/NEXTOR.SYS)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/COMMAND2.COM)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxhub_get_nextor_boot,"Installs nextor boot files into dir.","<dir>")
@ -49,31 +49,31 @@ $(call mb_make_call,mb_doc_function_deep,mb_msxhub_get_nextor_boot,"Installs nex
# Native OS utils
#
define mb_msxhub_get_msxdos2_utils
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/CHKDSK.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/DISKCOPY.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/FIXDISK.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/UNDEL.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/XCOPY.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/XDIR.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/KMODE.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/CHKDSK.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/DISKCOPY.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/FIXDISK.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/UNDEL.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/XCOPY.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/XDIR.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/KMODE.COM)
endef
$(call mb_make_call,mb_doc_function,mb_msxhub_get_msxdos2_utils,"Installs msxdos2 util files into dir.","<dir>")
define mb_msxhub_get_nextor_utils
$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/DELALL.COM)
$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/DEVINFO.COM)
$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/DRIVERS.COM)
$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/DRVINFO.COM)
$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/FASTOUT.COM)
$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/LOCK.COM)
$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/MAPDRV.COM)
$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/EMUFILE.COM)
$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/RALLOC.COM)
$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/Z80MODE.COM)
$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/NSYSVER.COM)
$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/NEXBOOT.COM)
$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/CONCLUS.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/DELALL.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/DEVINFO.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/DRIVERS.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/DRVINFO.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/FASTOUT.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/LOCK.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/MAPDRV.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/EMUFILE.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/RALLOC.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/Z80MODE.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/NSYSVER.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/NEXBOOT.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/CONCLUS.COM)
endef
$(call mb_make_call,mb_doc_function,mb_msxhub_get_nextor_utils,"Installs nextor util files into dir.","<dir>")
@ -82,39 +82,39 @@ $(call mb_make_call,mb_doc_function,mb_msxhub_get_nextor_utils,"Installs nextor
# Compilers
#
define mb_msxhub_get_macro80
$(call mb_make_call,mb_msxhub_file,$(1),MACRO80/2.0-1/get/MACRO80/CREF80.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MACRO80/2.0-1/get/MACRO80/L80.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MACRO80/2.0-1/get/MACRO80/LIB80.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MACRO80/2.0-1/get/MACRO80/M80.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MACRO80/2.0-1/get/MACRO80/CREF80.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MACRO80/2.0-1/get/MACRO80/L80.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MACRO80/2.0-1/get/MACRO80/LIB80.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MACRO80/2.0-1/get/MACRO80/M80.COM)
endef
$(call mb_make_call,mb_doc_function,mb_msxhub_get_macro80,"Installs macro80 package into dir.","<dir>")
define mb_msxhub_get_z80asmuk
$(call mb_make_call,mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/BINTOASM.COM)
$(call mb_make_call,mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/DUMP.COM)
$(call mb_make_call,mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/HEXTOCOM.COM)
$(call mb_make_call,mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/PRL.COM)
$(call mb_make_call,mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/PRNTOSYM.COM)
$(call mb_make_call,mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/RSX.COM)
$(call mb_make_call,mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/ZSM.COM)
$(call mb_make_call,mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/ZSMPP.COM)
$(call mb_make_call,mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/HEXTOBIN.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/BINTOASM.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/DUMP.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/HEXTOCOM.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/PRL.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/PRNTOSYM.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/RSX.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/ZSM.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/ZSMPP.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/HEXTOBIN.COM)
endef
$(call mb_make_call,mb_doc_function,mb_msxhub_get_z80asmuk,"Installs z80asmuk package into dir.","<dir>")
define mb_msxhub_get_wbass2
$(call mb_make_call,mb_msxhub_file,$(1),WBASS2/2.0-1/get/WBASS2/zoekram.bin)
$(call mb_make_call,mb_msxhub_file,$(1),WBASS2/2.0-1/get/WBASS2/wbass2.bin)
$(call mb_make_call,mb_msxhub_file,$(1),WBASS2/2.0-1/get/WBASS2/wbass2.bas)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),WBASS2/2.0-1/get/WBASS2/zoekram.bin)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),WBASS2/2.0-1/get/WBASS2/wbass2.bin)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),WBASS2/2.0-1/get/WBASS2/wbass2.bas)
endef
$(call mb_make_call,mb_doc_function,mb_msxhub_get_wbass2,"Installs wbass2 package into dir.","<dir>")
define mb_msxhub_get_konpass
$(call mb_make_call,mb_msxhub_file,$(1),KONPASS/1.3.0-1/get/KONPASS/KONPASS.COM)
$(call mb_make_call,mb_msxhub_file,$(1),KONPASS/1.3.0-1/get/KONPASS/KONPASS.DAT)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),KONPASS/1.3.0-1/get/KONPASS/KONPASS.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),KONPASS/1.3.0-1/get/KONPASS/KONPASS.DAT)
endef
$(call mb_make_call,mb_doc_function,mb_msxhub_get_konpass,"Installs konpass package into dir.","<dir>")
@ -123,42 +123,42 @@ $(call mb_make_call,mb_doc_function,mb_msxhub_get_konpass,"Installs konpass pack
# Compressors
#
define mb_msxhub_get_pmarc
$(call mb_make_call,mb_msxhub_file,$(1),PMARC/2.0-1/get/PMARC/PMARC.COM)
$(call mb_make_call,mb_msxhub_file,$(1),PMARC/2.0-1/get/PMARC/PMCAT.COM)
$(call mb_make_call,mb_msxhub_file,$(1),PMARC/2.0-1/get/PMARC/PMEXE2.COM)
$(call mb_make_call,mb_msxhub_file,$(1),PMARC/2.0-1/get/PMARC/PMEXT.COM)
$(call mb_make_call,mb_msxhub_file,$(1),PMARC/2.0-1/get/PMARC/PMSET.COM)
$(call mb_make_call,mb_msxhub_file,$(1),PMARC/2.0-1/get/PMARC/PMSFX2.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),PMARC/2.0-1/get/PMARC/PMARC.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),PMARC/2.0-1/get/PMARC/PMCAT.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),PMARC/2.0-1/get/PMARC/PMEXE2.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),PMARC/2.0-1/get/PMARC/PMEXT.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),PMARC/2.0-1/get/PMARC/PMSET.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),PMARC/2.0-1/get/PMARC/PMSFX2.COM)
endef
$(call mb_make_call,mb_doc_function,mb_msxhub_get_pmarc,"Installs pmarc package into dir.","<dir>")
define mb_msxhub_get_lhpack
$(call mb_make_call,mb_msxhub_file,$(1),LHPACK/1.00-1/get/LHPACK/lhpack.com)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),LHPACK/1.00-1/get/LHPACK/lhpack.com)
endef
$(call mb_make_call,mb_doc_function,mb_msxhub_get_lhpack,"Installs lhpack package into dir.","<dir>")
define mb_msxhub_get_lhext
$(call mb_make_call,mb_msxhub_file,$(1),LHEXT/1.34-2/get/LHEXT/lhext.com)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),LHEXT/1.34-2/get/LHEXT/lhext.com)
endef
$(call mb_make_call,mb_doc_function,mb_msxhub_get_lhext,"Installs lhext package into dir.","<dir>")
define mb_msxhub_get_gunzip
$(call mb_make_call,mb_msxhub_file,$(1),GUNZIP/1.1-1/get/GUNZIP/gunzip.com)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),GUNZIP/1.1-1/get/GUNZIP/gunzip.com)
endef
$(call mb_make_call,mb_doc_function,mb_msxhub_get_gunzip,"Installs gunzip package into dir.","<dir>")
define mb_msxhub_get_tunzip
$(call mb_make_call,mb_msxhub_file,$(1),TUNZIP/0.91-1/get/TUNZIP/tunzip.com)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),TUNZIP/0.91-1/get/TUNZIP/tunzip.com)
endef
$(call mb_make_call,mb_doc_function,mb_msxhub_get_tunzip,"Installs tunzip package into dir.","<dir>")
define mb_msxhub_get_popcom
$(call mb_make_call,mb_msxhub_file,$(1),POPCOM/1.00-2/get/POPCOM/popcom.com)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),POPCOM/1.00-2/get/POPCOM/popcom.com)
endef
$(call mb_make_call,mb_doc_function,mb_msxhub_get_popcom,"Installs popcom package into dir.","<dir>")
@ -167,71 +167,71 @@ $(call mb_make_call,mb_doc_function,mb_msxhub_get_popcom,"Installs popcom packag
# Tools
#
define mb_msxhub_get_make
$(call mb_make_call,mb_msxhub_file,$(1),MAKE/2.00-1/get/MAKE/MAKE.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MAKE/2.00-1/get/MAKE/MAKE.COM)
endef
$(call mb_make_call,mb_doc_function,mb_msxhub_get_make,"Installs make package into dir.","<dir>")
define mb_msxhub_get_adir
$(call mb_make_call,mb_msxhub_file,$(1),ADIR/1.3-1/get/ADIR/adir.com)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),ADIR/1.3-1/get/ADIR/adir.com)
endef
$(call mb_make_call,mb_doc_function,mb_msxhub_get_adir,"Installs adir package into dir.","<dir>")
define mb_msxhub_get_turbo
$(call mb_make_call,mb_msxhub_file,$(1),TURBO/2.1-1/get/TURBO/turbo.com)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),TURBO/2.1-1/get/TURBO/turbo.com)
endef
$(call mb_make_call,mb_doc_function,mb_msxhub_get_turbo,"Installs turbo package into dir.","<dir>")
define mb_msxhub_get_baskom
$(call mb_make_call,mb_msxhub_file,$(1),BASKOM/1.0-1/get/BASKOM/baskom.com)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),BASKOM/1.0-1/get/BASKOM/baskom.com)
endef
$(call mb_make_call,mb_doc_function,mb_msxhub_get_baskom,"Installs baskom package into dir.","<dir>")
define mb_msxhub_get_binldr
$(call mb_make_call,mb_msxhub_file,$(1),BINLDR/1.0.2-1/get/BINLDR/BINLDR.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),BINLDR/1.0.2-1/get/BINLDR/BINLDR.COM)
endef
$(call mb_make_call,mb_doc_function,mb_msxhub_get_binldr,"Installs binldr package into dir.","<dir>")
define mb_msxhub_get_dmphex
$(call mb_make_call,mb_msxhub_file,$(1),DMPHEX/1.00-1/get/DMPHEX/dmphex.com)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),DMPHEX/1.00-1/get/DMPHEX/dmphex.com)
endef
$(call mb_make_call,mb_doc_function,mb_msxhub_get_dmphex,"Installs dmphex package into dir.","<dir>")
define mb_msxhub_get_zd
$(call mb_make_call,mb_msxhub_file,$(1),ZD/3.30-1/get/ZD/zd.com)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),ZD/3.30-1/get/ZD/zd.com)
endef
$(call mb_make_call,mb_doc_function,mb_msxhub_get_zd,"Installs zd package into dir.","<dir>")
define mb_msxhub_get_msxdos2t
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/ADDAUX.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/BEEP.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/BIO.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/BODY.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/BSAVE.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/CAL.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/CALC.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/DUMP.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/EXPAND.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/GREP.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/HEAD.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/KEY.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/LIST.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/LS.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/MENU.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/MORE.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/PATCH.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/SLEEP.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/TAIL.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/TR.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/UNIQ.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/VIEW.COM)
$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/WC.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/ADDAUX.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/BEEP.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/BIO.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/BODY.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/BSAVE.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/CAL.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/CALC.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/DUMP.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/EXPAND.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/GREP.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/HEAD.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/KEY.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/LIST.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/LS.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/MENU.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/MORE.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/PATCH.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/SLEEP.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/TAIL.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/TR.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/UNIQ.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/VIEW.COM)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/WC.COM)
endef
$(call mb_make_call,mb_doc_function,mb_msxhub_get_msxdos2t,"Installs msxdos2t package into dir.","<dir>")
@ -240,7 +240,7 @@ $(call mb_make_call,mb_doc_function,mb_msxhub_get_msxdos2t,"Installs msxdos2t pa
# Graphics editors
#
define mb_msxhub_get_gfxage
$(call mb_make_call,mb_msxhub_file,$(1),GFXAGE/0.99-1/get/GFXAGE/gfxage.com)
$(MB__    )$(call mb_make_call,mb_msxhub_file,$(1),GFXAGE/0.99-1/get/GFXAGE/gfxage.com)
endef
$(call mb_make_call,mb_doc_function,mb_msxhub_get_gfxage,"Installs gfxage package into dir.","<dir>")

View file

@ -19,43 +19,43 @@ $(call mb_make_call,mb_doc_variable,MB_MSXPIPE_COLOR_BG_RUN_GUI,"Background colo
define mb_msxpipe_safe_cmd
$(call mb_make_call,mb_autoexec_write_default,$(1),$(MB_MSXPIPE_COLOR_FG_SAFE_CMD),$(MB_MSXPIPE_COLOR_BG_SAFE_CMD))
$(call mb_make_call,mb_autoexec_append_safe_cmd,$(1),$(2))
$(call mb_make_call,mb_autoexec_append_exit,$(1))
$(call mb_make_call,mb_openmsx_dosctl,$(1),$(3))
$(MB__    )$(call mb_make_call,mb_autoexec_write_default,$(1),$(MB_MSXPIPE_COLOR_FG_SAFE_CMD),$(MB_MSXPIPE_COLOR_BG_SAFE_CMD))
$(MB__    )$(call mb_make_call,mb_autoexec_append_safe_cmd,$(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_cmd,"Runs openMSX and safely executes one command.","<dir> <cmd> [machine]")
define mb_msxpipe_safe_test
$(call mb_make_call,mb_autoexec_write_default,$(1),$(MB_MSXPIPE_COLOR_FG_SAFE_TEST),$(MB_MSXPIPE_COLOR_BG_SAFE_TEST))
$(call mb_make_call,mb_autoexec_append_safe_test,$(1),$(2))
$(call mb_make_call,mb_autoexec_append_exit,$(1))
$(call mb_make_call,mb_openmsx_dosctl,$(1),$(3))
$(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))
$(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]")
define _mb_msxpipe_run_gui
$(call mb_make_call,mb_autoexec_write_default,$(1),$(MB_MSXPIPE_COLOR_FG_RUN_GUI),$(MB_MSXPIPE_COLOR_BG_RUN_GUI))
$(if $(filter mouse,$(4)),$(call mb_make_call,mb_autoexec_append_plug_porta,$(1),$(4)))
$(call mb_make_call,mb_autoexec_append_stop_fail,$(1))
$(call mb_make_call,mb_autoexec_append_show_gui,$(1))
$(call mb_make_call,mb_autoexec_append_echo,$(1),mb::help Run shutdown to exit)
$(if $(2),$(call mb_make_call,mb_autoexec_append_echo,$(1),mb::auto command $(2)))
$(if $(2),$(call mb_make_call,mb_autoexec_append_cmd,$(1),$(2)))
$(call mb_make_call,mb_openmsx_dosctl,$(1),$(3))
$(MB__    )$(call mb_make_call,mb_autoexec_write_default,$(1),$(MB_MSXPIPE_COLOR_FG_RUN_GUI),$(MB_MSXPIPE_COLOR_BG_RUN_GUI))
$(MB__    )$(if $(filter mouse,$(4)),$(call mb_make_call,mb_autoexec_append_plug_porta,$(1),$(4)))
$(MB__    )$(call mb_make_call,mb_autoexec_append_stop_fail,$(1))
$(MB__    )$(call mb_make_call,mb_autoexec_append_show_gui,$(1))
$(MB__    )$(call mb_make_call,mb_autoexec_append_echo,$(1),mb::help Run shutdown to exit)
$(MB__    )$(if $(2),$(call mb_make_call,mb_autoexec_append_echo,$(1),mb::auto command $(2)))
$(MB__    )$(if $(2),$(call mb_make_call,mb_autoexec_append_cmd,$(1),$(2)))
$(MB__    )$(call mb_make_call,mb_openmsx_dosctl,$(1),$(3))
endef
define mb_msxpipe_run_gui
$(call mb_make_call,_mb_msxpipe_run_gui,$(1),$(2),$(3))
$(MB__    )$(call mb_make_call,_mb_msxpipe_run_gui,$(1),$(2),$(3))
endef
$(call mb_make_call,mb_doc_function,mb_msxpipe_run_gui,"Runs openMSX forever with renderer and optionals.","<dir> [cmd] [machine]")
define mb_msxpipe_run_gui_mouse
$(call mb_make_call,_mb_msxpipe_run_gui,$(1),$(2),$(3),mouse)
$(MB__    )$(call mb_make_call,_mb_msxpipe_run_gui,$(1),$(2),$(3),mouse)
endef
$(call mb_make_call,mb_doc_function,mb_msxpipe_run_gui_mouse,"Runs openMSX forever with renderer and mouse and optionals.","<dir> [cmd] [machine]")

View file

@ -8,181 +8,181 @@ $(call mb_make_call,mb_doc_variable_deep,MB_MSXROM_CACHE,"Cache storage location
define _mb_msxrom_file_fetch
$(call mb_make_call,mb_os_echo_command,$(MB_I18N_MSXROM_FILE_FETCH) $(subst $(MB_MSXROM_API)/,,$(1)))
$(if $(wildcard $(dir $(MB_MSXROM_CACHE)/$(subst $(MB_MSXROM_API)/,,$(1)))),,$(call mb_make_call,mb_os_dir_create,$(dir $(MB_MSXROM_CACHE)/$(subst $(MB_MSXROM_API)/,,$(1)))))
$(if $(wildcard $(MB_MSXROM_CACHE)/$(subst $(MB_MSXROM_API)/,,$(1))),,wget -O $(MB_MSXROM_CACHE)/$(subst $(MB_MSXROM_API)/,,$(1)) $(1))
$(MB__    )$(call mb_make_call,mb_os_echo_command,$(MB_I18N_MSXROM_FILE_FETCH) $(subst $(MB_MSXROM_API)/,,$(1)))
$(MB__    )$(if $(wildcard $(dir $(MB_MSXROM_CACHE)/$(subst $(MB_MSXROM_API)/,,$(1)))),,$(call mb_make_call,mb_os_dir_create,$(dir $(MB_MSXROM_CACHE)/$(subst $(MB_MSXROM_API)/,,$(1)))))
$(MB__    )$(if $(wildcard $(MB_MSXROM_CACHE)/$(subst $(MB_MSXROM_API)/,,$(1))),,wget -O $(MB_MSXROM_CACHE)/$(subst $(MB_MSXROM_API)/,,$(1)) $(1))
endef
define mb_msxrom_file
$(if $(wildcard $(MB_MSXROM_CACHE)/$(2)),,$(call mb_make_call,_mb_msxrom_file_fetch,$(MB_MSXROM_API)/$(2)))
$(if $(wildcard $(1)/$(notdir $(2))),,$(call mb_make_call,mb_os_file_copy,$(MB_MSXROM_CACHE)/$(2),$(1)/$(notdir $(2))))
$(MB__    )$(if $(wildcard $(MB_MSXROM_CACHE)/$(2)),,$(call mb_make_call,_mb_msxrom_file_fetch,$(MB_MSXROM_API)/$(2)))
$(MB__    )$(if $(wildcard $(1)/$(notdir $(2))),,$(call mb_make_call,mb_os_file_copy,$(MB_MSXROM_CACHE)/$(2),$(1)/$(notdir $(2))))
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_file,"Installs msxroms from slug into an subdir.","<dir> <msxrom-slug>")
define mb_msxrom_setup
$(if $(wildcard $(1)-omsx),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx))
$(if $(wildcard $(1)-omsx/share),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx/share))
$(if $(wildcard $(1)-omsx/share/systemroms),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx/share/systemroms))
$(if $(wildcard $(1)-omsx/share/systemroms/machines),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx/share/systemroms/machines))
$(if $(wildcard $(1)-omsx/share/systemroms/extensions),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx/share/systemroms/extensions))
$(MB__    )$(if $(wildcard $(1)-omsx),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx))
$(MB__    )$(if $(wildcard $(1)-omsx/share),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx/share))
$(MB__    )$(if $(wildcard $(1)-omsx/share/systemroms),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx/share/systemroms))
$(MB__    )$(if $(wildcard $(1)-omsx/share/systemroms/machines),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx/share/systemroms/machines))
$(MB__    )$(if $(wildcard $(1)-omsx/share/systemroms/extensions),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx/share/systemroms/extensions))
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_setup,"Creates needed systemrom folders.","<dir>")
define mb_msxrom_extension_ide
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/ide240.dat)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/ide240.dat)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_extension_ide,"Installs sunrise IDE classic rom.","<dir>")
define mb_msxrom_extension_ide_nextor
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/Nextor-2.1.1.SunriseIDE.ROM)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/Nextor-2.1.1.SunriseIDE.ROM)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_extension_ide_nextor,"Installs sunrise IDE nextor rom.","<dir>")
define mb_msxrom_extension_scsi_novaxis
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/novaxis.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/novaxis.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_extension_scsi_novaxis,"Installs Gouda SCSI novaxis rom.","<dir>")
define mb_msxrom_extension_msxdos22
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/msxdos22.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/msxdos22.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_extension_msxdos22,"Installs msxdos 2.20 rom.","<dir>")
define mb_msxrom_extension_rs232
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/rs232.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/rs232.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_extension_rs232,"Installs rs232 rom.","<dir>")
define mb_msxrom_extension_fmpac
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/fmpac.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/fmpac.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_extension_fmpac,"Installs fmpac rom.","<dir>")
define mb_msxrom_extension_fmpac_en
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/fmpac_en.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/fmpac_en.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_extension_fmpac_en,"Installs fmpac english rom.","<dir>")
define mb_msxrom_extension_moonsound
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/yrw801.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/yrw801.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_extension_moonsound,"Installs moonsound rom.","<dir>")
define mb_msxrom_extension_basickun
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,machines/sanyo/phc-70fd2_basickun.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,machines/sanyo/phc-70fd2_basickun.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_extension_basickun,"Installs basickun compiler rom.","<dir>")
define mb_msxrom_machine_Canon_V-20
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/canon/v-20_basic-bios1.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/canon/v-20_basic-bios1.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Canon_V-20,"Installs machine roms.","<dir>")
define mb_msxrom_machine_Mitsubishi_ML-F80
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-f80_basic-bios1.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-f80_basic-bios1.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Mitsubishi_ML-F80,"Installs machine roms.","<dir>")
define mb_msxrom_machine_Mitsubishi_ML-FX1
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-fx1_basic-bios1.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-fx1_basic-bios1.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Mitsubishi_ML-FX1,"Installs machine roms.","<dir>")
define mb_msxrom_machine_Mitsubishi_ML-G3_ES
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-g3_es_basic-bios2.rom)
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-g3_es_disk.rom)
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-g3_es_msx2sub.rom)
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-g3_es_rs232.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-g3_es_basic-bios2.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-g3_es_disk.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-g3_es_msx2sub.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-g3_es_rs232.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Mitsubishi_ML-G3_ES,"Installs machine roms.","<dir>")
define mb_msxrom_machine_Philips_VG_8000
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/vg8000_basic-bios1.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/vg8000_basic-bios1.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Philips_VG_8000,"Installs machine roms.","<dir>")
define mb_msxrom_machine_Philips_VG_8230
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/vg8230_basic-bios2.rom)
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/vg8230_disk.rom)
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/vg8230_msx2sub.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/vg8230_basic-bios2.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/vg8230_disk.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/vg8230_msx2sub.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Philips_VG_8230,"Installs machine roms.","<dir>")
define mb_msxrom_machine_Philips_NMS_8250
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/nms8250_basic-bios2.rom)
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/nms8250_msx2sub.rom)
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/nms8250_disk.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/nms8250_basic-bios2.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/nms8250_msx2sub.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/nms8250_disk.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Philips_NMS_8250,"Installs machine roms.","<dir>")
define mb_msxrom_machine_Toshiba_HX-21
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/toshiba/HX21-IC2.BIN)
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/toshiba/HX21-IC3.BIN)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/toshiba/HX21-IC2.BIN)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/toshiba/HX21-IC3.BIN)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Toshiba_HX-21,"Installs machine roms.","<dir>")
define mb_msxrom_machine_Yamaha_AX200
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/ax200_basic-bios1.rom)
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/ax200_arabic.rom)
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/ax200_music.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/ax200_basic-bios1.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/ax200_arabic.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/ax200_music.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Yamaha_AX200,"Installs machine roms.","<dir>")
define mb_msxrom_machine_Yamaha_YIS-503IIIR
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/yis503iii_basic-bios2.rom)
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/yis503iii_msx2sub.rom)
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/yis503iii_cpm.rom)
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/yis503iii_net_2.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/yis503iii_basic-bios2.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/yis503iii_msx2sub.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/yis503iii_cpm.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/yis503iii_net_2.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Yamaha_YIS-503IIIR,"Installs machine roms.","<dir>")
define mb_msxrom_machine_Panasonic_FS-A1WSX
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_basic-bios2p.rom)
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_disk.rom)
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_firmware.rom)
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_fmbasic.rom)
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_kanjibasic.rom)
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_kanjifont.rom)
$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_msx2psub.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_basic-bios2p.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_disk.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_firmware.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_fmbasic.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_kanjibasic.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_kanjifont.rom)
$(MB__    )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_msx2psub.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Panasonic_FS-A1WSX,"Installs machine roms.","<dir>")
define mb_msxrom_machine_Boosted_MSX2_EN
$(call mb_make_call,mb_msxrom_machine_Philips_NMS_8250,$(1))
$(call mb_make_call,mb_msxrom_extension_fmpac,$(1))
$(call mb_make_call,mb_msxrom_extension_moonsound,$(1))
$(call mb_make_call,mb_msxrom_extension_basickun,$(1))
$(MB__    )$(call mb_make_call,mb_msxrom_machine_Philips_NMS_8250,$(1))
$(MB__    )$(call mb_make_call,mb_msxrom_extension_fmpac,$(1))
$(MB__    )$(call mb_make_call,mb_msxrom_extension_moonsound,$(1))
$(MB__    )$(call mb_make_call,mb_msxrom_extension_basickun,$(1))
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Boosted_MSX2_EN,"Installs machine and extensions roms.","<dir>")
define mb_msxrom_machine_Boosted_MSX2+_JP
$(call mb_make_call,mb_msxrom_machine_Panasonic_FS-A1WSX,$(1))
$(call mb_make_call,mb_msxrom_extension_moonsound,$(1))
$(call mb_make_call,mb_msxrom_extension_basickun,$(1))
$(MB__    )$(call mb_make_call,mb_msxrom_machine_Panasonic_FS-A1WSX,$(1))
$(MB__    )$(call mb_make_call,mb_msxrom_extension_moonsound,$(1))
$(MB__    )$(call mb_make_call,mb_msxrom_extension_basickun,$(1))
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Boosted_MSX2+_JP,"Installs machine and extensions roms.","<dir>")

View file

@ -1,4 +1,7 @@
MB_OPENMSX_PATH ?= /usr/bin
$(call mb_make_call,mb_doc_variable,MB_OPENMSX_PATH,"Path where openMSX binary is located.")
MB_OPENMSX_BOOT_TIMEOUT ?= 25
$(call mb_make_call,mb_doc_variable,MB_OPENMSX_BOOT_TIMEOUT,"Timeout in seconds to guard for boot failures.")
@ -40,75 +43,75 @@ $(call mb_make_call,mb_doc_variable_deep,MB_OPENMSX_STDERR_IGNORE,"Kills logging
define mb_openmsx_setup
$(if $(wildcard $(1)-omsx),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx))
$(if $(wildcard $(1)-omsx/stdio.xml),,$(call mb_make_call,mb_os_file_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/stdio.xml,$(1)-omsx))
$(if $(wildcard $(1)-omsx/share),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx/share))
$(if $(wildcard $(1)-omsx/share/settings.xml),,$(call mb_make_call,mb_os_file_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/share/settings.xml,$(1)-omsx/share))
$(if $(wildcard $(1)-omsx/share/scripts),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx/share/scripts))
$(if $(wildcard $(1)-omsx/share/scripts/boot_exec.tcl),,$(call mb_make_call,mb_os_file_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/share/scripts/boot_exec.tcl,$(1)-omsx/share/scripts))
$(if $(wildcard $(1)-omsx/share/scripts/fail_after.tcl),,$(call mb_make_call,mb_os_file_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/share/scripts/fail_after.tcl,$(1)-omsx/share/scripts))
$(if $(wildcard $(1)-omsx/share/scripts/fire_hdd.tcl),,$(call mb_make_call,mb_os_file_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/share/scripts/fire_hdd.tcl,$(1)-omsx/share/scripts))
$(if $(wildcard $(1)-omsx/share/scripts/headless.tcl),,$(call mb_make_call,mb_os_file_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/share/scripts/headless.tcl,$(1)-omsx/share/scripts))
$(if $(wildcard $(1)-omsx/share/scripts/night_flight.tcl),,$(call mb_make_call,mb_os_file_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/share/scripts/night_flight.tcl,$(1)-omsx/share/scripts))
$(if $(wildcard $(1)-omsx/share/scripts/omsxctl.tcl),,$(call mb_msxhub_file,$(1)-omsx/share/scripts,OMSXCTL/1.0-1/get/OMSXCTL/omsxctl.tcl))
$(if $(wildcard $(1)-omsx/share/extensions),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx/share/extensions))
$(if $(wildcard $(1)-omsx/share/extensions/fire-hdd.xml),,$(call mb_make_call,mb_os_file_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/share/extensions/fire-hdd.xml,$(1)-omsx/share/extensions))
$(call mb_make_call,mb_msxrom_setup,$(1))
$(call mb_make_call,mb_msxrom_extension_ide_nextor,$(1))
$(call mb_make_call,mb_msxrom_machine_$(2),$(1))
$(MB__    )$(if $(wildcard $(1)-omsx),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx))
$(MB__    )$(if $(wildcard $(1)-omsx/stdio.xml),,$(call mb_make_call,mb_os_file_copy,$(MB__BASEPATH_REAL)/lib/openmsx/stdio.xml,$(1)-omsx))
$(MB__    )$(if $(wildcard $(1)-omsx/share),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx/share))
$(MB__    )$(if $(wildcard $(1)-omsx/share/settings.xml),,$(call mb_make_call,mb_os_file_copy,$(MB__BASEPATH_REAL)/lib/openmsx/share/settings.xml,$(1)-omsx/share))
$(MB__    )$(if $(wildcard $(1)-omsx/share/scripts),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx/share/scripts))
$(MB__    )$(if $(wildcard $(1)-omsx/share/scripts/boot_exec.tcl),,$(call mb_make_call,mb_os_file_copy,$(MB__BASEPATH_REAL)/lib/openmsx/share/scripts/boot_exec.tcl,$(1)-omsx/share/scripts))
$(MB__    )$(if $(wildcard $(1)-omsx/share/scripts/fail_after.tcl),,$(call mb_make_call,mb_os_file_copy,$(MB__BASEPATH_REAL)/lib/openmsx/share/scripts/fail_after.tcl,$(1)-omsx/share/scripts))
$(MB__    )$(if $(wildcard $(1)-omsx/share/scripts/fire_hdd.tcl),,$(call mb_make_call,mb_os_file_copy,$(MB__BASEPATH_REAL)/lib/openmsx/share/scripts/fire_hdd.tcl,$(1)-omsx/share/scripts))
$(MB__    )$(if $(wildcard $(1)-omsx/share/scripts/headless.tcl),,$(call mb_make_call,mb_os_file_copy,$(MB__BASEPATH_REAL)/lib/openmsx/share/scripts/headless.tcl,$(1)-omsx/share/scripts))
$(MB__    )$(if $(wildcard $(1)-omsx/share/scripts/night_flight.tcl),,$(call mb_make_call,mb_os_file_copy,$(MB__BASEPATH_REAL)/lib/openmsx/share/scripts/night_flight.tcl,$(1)-omsx/share/scripts))
$(MB__    )$(if $(wildcard $(1)-omsx/share/scripts/omsxctl.tcl),,$(call mb_msxhub_file,$(1)-omsx/share/scripts,OMSXCTL/1.0-1/get/OMSXCTL/omsxctl.tcl))
$(MB__    )$(if $(wildcard $(1)-omsx/share/extensions),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx/share/extensions))
$(MB__    )$(if $(wildcard $(1)-omsx/share/extensions/fire-hdd.xml),,$(call mb_make_call,mb_os_file_copy,$(MB__BASEPATH_REAL)/lib/openmsx/share/extensions/fire-hdd.xml,$(1)-omsx/share/extensions))
$(MB__    )$(call mb_make_call,mb_msxrom_setup,$(1))
$(MB__    )$(call mb_make_call,mb_msxrom_extension_ide_nextor,$(1))
$(MB__    )$(call mb_make_call,mb_msxrom_machine_$(2),$(1))
endef
$(call mb_make_call,mb_doc_function_deep,mb_openmsx_setup,"Setup openMSX local build home folder for machine.","<dir> <machine>")
define _mb_openmsx_run
$(call mb_make_call,mb_os_echo_command,$(MB_I18N_OPENMSX_STARTUP) $@ - $(2))
$(if $(wildcard $(1)-omsx/persistent/fire-hdd/untitled1/sync),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx/persistent/fire-hdd/untitled1/sync))
BOOT_WATCHDOG=$(MB_OPENMSX_BOOT_TIMEOUT) \
FIRE_HDD_PATH="$(1)" \
FIRE_HDD_SIZE=$(MB_OPENMSX_HDD_SIZE) \
FIRE_HDD_IMAGE="$(1)-omsx/persistent/fire-hdd/untitled1/image-hda.dsk" \
FIRE_HDD_PATH_EXPORT="$(1)-omsx/persistent/fire-hdd/untitled1/sync" \
SCALE_FACTOR=$(MB_OPENMSX_SCALE_FACTOR) \
SPEED=$(MB_OPENMSX_SPEED) \
HEADLESS=$(MB_OPENMSX_HEADLESS) \
RENDERER=$(MB_OPENMSX_RENDERER) \
THROTTLE=$(MB_OPENMSX_THROTTLE) \
NF_PREFIX=$(MB_FLIGHT_PREFIX) \
NF_SEPERATOR=$(MB_FLIGHT_SEPERATOR) \
NF_RECORD_FLAG=$(MB_FLIGHT_RECORD_FLAG) \
OPENMSX_HOME="$(1)-omsx" \
$(PATH_OPENMSX)/openmsx \
-machine $(2) \
-ext slotexpander \
-ext fire-hdd \
$(if $(filter ram16k,$(3)),-ext ram16k) \
$(if $(filter ram64k,$(3)),-ext ram64k) \
$(if $(filter ram512k,$(3)),-ext ram512k) \
$(if $(filter ram1mb,$(3)),-ext ram1mb) \
$(if $(filter ram4mb,$(3)),-ext ram2mb) \
$(if $(filter ram4mb,$(3)),-ext ram4mb) \
$(MB_OPENMSX_ARGS) \
-control stdio < $(1)-omsx/stdio.xml \
$(if $(filter on,$(MB_OPENMSX_STDOUT_IGNORE)),$(MB_OS_STDOUT_IGNORE)) \
$(if $(filter on,$(MB_OPENMSX_STDERR_IGNORE)),$(MB_OS_STDERR_IGNORE))
rsync --checksum --recursive "$(1)-omsx/persistent/fire-hdd/untitled1/sync/" "$(1)/"
$(MB__    )$(call mb_make_call,mb_os_echo_command,$(MB_I18N_OPENMSX_STARTUP) $@ - $(2))
$(MB__    )$(if $(wildcard $(1)-omsx/persistent/fire-hdd/untitled1/sync),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx/persistent/fire-hdd/untitled1/sync))
$(MB__    )BOOT_WATCHDOG=$(MB_OPENMSX_BOOT_TIMEOUT) \
$(MB__    )FIRE_HDD_PATH="$(1)" \
$(MB__    )FIRE_HDD_SIZE=$(MB_OPENMSX_HDD_SIZE) \
$(MB__    )FIRE_HDD_IMAGE="$(1)-omsx/persistent/fire-hdd/untitled1/image-hda.dsk" \
$(MB__    )FIRE_HDD_PATH_EXPORT="$(1)-omsx/persistent/fire-hdd/untitled1/sync" \
$(MB__    )SCALE_FACTOR=$(MB_OPENMSX_SCALE_FACTOR) \
$(MB__    )SPEED=$(MB_OPENMSX_SPEED) \
$(MB__    )HEADLESS=$(MB_OPENMSX_HEADLESS) \
$(MB__    )RENDERER=$(MB_OPENMSX_RENDERER) \
$(MB__    )THROTTLE=$(MB_OPENMSX_THROTTLE) \
$(MB__    )NF_PREFIX=$(MB_FLIGHT_PREFIX) \
$(MB__    )NF_SEPERATOR=$(MB_FLIGHT_SEPERATOR) \
$(MB__    )NF_RECORD_FLAG=$(MB_FLIGHT_RECORD_FLAG) \
$(MB__    )OPENMSX_HOME="$(1)-omsx" \
$(MB__    )$(MB_OPENMSX_PATH)/openmsx \
$(MB__        )-machine $(2) \
$(MB__        )-ext slotexpander \
$(MB__        )-ext fire-hdd \
$(MB__        )$(if $(filter ram16k,$(3)),-ext ram16k) \
$(MB__        )$(if $(filter ram64k,$(3)),-ext ram64k) \
$(MB__        )$(if $(filter ram512k,$(3)),-ext ram512k) \
$(MB__        )$(if $(filter ram1mb,$(3)),-ext ram1mb) \
$(MB__        )$(if $(filter ram4mb,$(3)),-ext ram2mb) \
$(MB__        )$(if $(filter ram4mb,$(3)),-ext ram4mb) \
$(MB__        )$(MB_OPENMSX_ARGS) \
$(MB__        )-control stdio < $(1)-omsx/stdio.xml \
$(MB__        )$(if $(filter on,$(MB_OPENMSX_STDOUT_IGNORE)),$(MB_OS_STDOUT_IGNORE)) \
$(MB__        )$(if $(filter on,$(MB_OPENMSX_STDERR_IGNORE)),$(MB_OS_STDERR_IGNORE))
$(MB__    )rsync --checksum --recursive "$(1)-omsx/persistent/fire-hdd/untitled1/sync/" "$(1)/"
endef
define _mb_openmsx_dosctl_bat
$(if $(wildcard $(1)/z80.bat),,$(call mb_make_call,mb_os_file_copy,$(PATH_MSXBUILD_REAL)/lib/emuctl/z80.bat,$(1)))
$(if $(wildcard $(1)/reboot.bat),,$(call mb_make_call,mb_os_file_copy,$(PATH_MSXBUILD_REAL)/lib/emuctl/reboot.bat,$(1)))
$(if $(wildcard $(1)/shutdown.bat),,$(call mb_make_call,mb_os_file_copy,$(PATH_MSXBUILD_REAL)/lib/emuctl/shutdown.bat,$(1)))
$(if $(wildcard $(1)/mbboot80.com),,$(call mb_make_call,mb_os_file_copy,$(PATH_MSXBUILD_REAL)/lib/emuctl/mbboot80.com,$(1)))
$(if $(wildcard $(1)/omsxctl.com),,$(call mb_make_call,mb_msxhub_file,$(1),OMSXCTL/1.0-1/get/OMSXCTL/omsxctl.com))
$(MB__    )$(if $(wildcard $(1)/z80.bat),,$(call mb_make_call,mb_os_file_copy,$(MB__BASEPATH_REAL)/lib/emuctl/z80.bat,$(1)))
$(MB__    )$(if $(wildcard $(1)/reboot.bat),,$(call mb_make_call,mb_os_file_copy,$(MB__BASEPATH_REAL)/lib/emuctl/reboot.bat,$(1)))
$(MB__    )$(if $(wildcard $(1)/shutdown.bat),,$(call mb_make_call,mb_os_file_copy,$(MB__BASEPATH_REAL)/lib/emuctl/shutdown.bat,$(1)))
$(MB__    )$(if $(wildcard $(1)/mbboot80.com),,$(call mb_make_call,mb_os_file_copy,$(MB__BASEPATH_REAL)/lib/emuctl/mbboot80.com,$(1)))
$(MB__    )$(if $(wildcard $(1)/omsxctl.com),,$(call mb_make_call,mb_msxhub_file,$(1),OMSXCTL/1.0-1/get/OMSXCTL/omsxctl.com))
endef
define mb_openmsx_dosctl
$(call mb_make_call,mb_openmsx_setup,$(1),$(if $(2),$(2),$(MB_OPENMSX_MACHINE)))
$(if $(wildcard $(1)/utils),$(call mb_make_call,_mb_openmsx_dosctl_bat,$(1)/utils),$(call mb_make_call,_mb_openmsx_dosctl_bat,$(1)))
$(if $(wildcard $(1)/command.com),,$(if $(wildcard $(1)/command2.com),,$(call mb_make_call,mb_msxhub_get_$(MB_OPENMSX_BOOT_OS)_boot,$(1))))
$(call mb_make_call,_mb_openmsx_run,$(1),$(if $(2),$(2),$(MB_OPENMSX_MACHINE)),$(if $(3),$(3),$(MB_OPENMSX_MACHINE_RAM)))
$(MB__    )$(call mb_make_call,mb_openmsx_setup,$(1),$(if $(2),$(2),$(MB_OPENMSX_MACHINE)))
$(MB__    )$(if $(wildcard $(1)/utils),$(call mb_make_call,_mb_openmsx_dosctl_bat,$(1)/utils),$(call mb_make_call,_mb_openmsx_dosctl_bat,$(1)))
$(MB__    )$(if $(wildcard $(1)/command.com),,$(if $(wildcard $(1)/command2.com),,$(call mb_make_call,mb_msxhub_get_$(MB_OPENMSX_BOOT_OS)_boot,$(1))))
$(MB__    )$(call mb_make_call,_mb_openmsx_run,$(1),$(if $(2),$(2),$(MB_OPENMSX_MACHINE)),$(if $(3),$(3),$(MB_OPENMSX_MACHINE_RAM)))
endef
$(call mb_make_call,mb_doc_function,mb_openmsx_dosctl,"Starts openMSX with dos controller.","<dir> [machine] [mem-ext]")

View file

@ -1,93 +1,110 @@
# OS cmds
ifeq ($(OS),Windows_NT)
MB_OS_RM ?= del /F /Q
MB_OS_RMDIR ?= RMDIR /S /Q
MB_OS_MKDIR ?= mkdir
MB_OS_COPY ?= copy
MB_OS_ECHO ?= echo
MB_OS_STDOUT_IGNORE ?= >NUL
MB_OS_STDERR_IGNORE ?= 2>NUL || true
MB_OS_SEP ?= "\"
MB_OS_CACHE ?= %LOCALAPPDATA%
MB_OS_COLORS ?= -1
else
MB_OS_RM ?= rm -f
MB_OS_RMDIR ?= rm -rf
MB_OS_MKDIR ?= mkdir -p
MB_OS_COPY ?= cp
MB_OS_ECHO ?= /usr/bin/echo
MB_OS_STDOUT_IGNORE ?= >/dev/null
MB_OS_STDERR_IGNORE ?= 2>/dev/null
MB_OS_SEP ?= "/"
MB_OS_CACHE ?= ~/.cache
MB_OS_COLORS ?= $(shell tput colors 2> /dev/null;test $$? -eq 0 || echo "-1")
endif
MB_OS_RM ?= rm -f
$(call mb_make_call,mb_doc_variable_rock,MB_OS_RM,"Native OS delete command.")
MB_OS_RMDIR ?= rm -rf
$(call mb_make_call,mb_doc_variable_rock,MB_OS_RMDIR,"Native OS remove folder command.")
MB_OS_MKDIR ?= mkdir -p
$(call mb_make_call,mb_doc_variable_rock,MB_OS_MKDIR,"Native OS create folder command.")
MB_OS_COPY ?= cp
$(call mb_make_call,mb_doc_variable_rock,MB_OS_COPY,"Native OS copy command.")
$(call mb_make_call,mb_doc_variable_rock,MB_OS_ECHO,"Native OS echo command.")
MB_OS_STDOUT_IGNORE ?= >/dev/null
$(call mb_make_call,mb_doc_variable_rock,MB_OS_STDOUT_IGNORE,"Native OS ignore stdout.")
MB_OS_STDERR_IGNORE ?= 2>/dev/null
$(call mb_make_call,mb_doc_variable_rock,MB_OS_STDERR_IGNORE,"Native OS ignore stderr.")
MB_OS_SEP ?=/
$(call mb_make_call,mb_doc_variable_rock,MB_OS_SEP,"Native OS path seperator.")
MB_OS_CACHE ?= ~/.cache
$(call mb_make_call,mb_doc_variable_rock,MB_OS_CACHE,"Native OS application cache folder.")
MB_OS_COLORS ?= $(shell tput colors 2> /dev/null;test $$? -eq 0 || echo "-1")
$(call mb_make_call,mb_doc_variable_rock,MB_OS_COLORS,"Native OS terminal color count support.")
ifdef OS
ifeq ($(OS),Windows_NT)
$(MB__    )MB_OS_RM ?= del /F /Q
$(MB__    )MB_OS_RMDIR ?= RMDIR /S /Q
$(MB__    )MB_OS_MKDIR ?= mkdir
$(MB__    )MB_OS_COPY ?= copy
$(MB__    )MB_OS_STDOUT_IGNORE ?= >NUL
$(MB__    )MB_OS_STDERR_IGNORE ?= 2>NUL || true
$(MB__    )MB_OS_SEP ?=\
$(MB__    )MB_OS_CACHE ?= %LOCALAPPDATA%
$(MB__    )MB_OS_COLORS ?= -1
endif
endif
define mb_os_dir_delete
$(MB_OS_RMDIR) $(1)
$(MB__    )$(MB_OS_RMDIR) $(1)
endef
$(call mb_make_call,mb_doc_function,mb_os_dir_delete,"Delete the full folder.","<dir>")
define mb_os_dir_create
$(MB_OS_MKDIR) $(1)
$(MB__    )$(MB_OS_MKDIR) $(1)
endef
$(call mb_make_call,mb_doc_function,mb_os_dir_create,"Creates an folder.","<dir>")
define mb_os_file_delete
$(MB_OS_RM) $(1)
$(MB__    )$(MB_OS_RM) $(1)
endef
$(call mb_make_call,mb_doc_function,mb_os_file_delete,"Deletes an file.","<file>")
define mb_os_file_copy
$(MB_OS_COPY) $(1) $(2)
$(MB__    )$(MB_OS_COPY) $(1) $(2)
endef
$(call mb_make_call,mb_doc_function,mb_os_file_copy,"Copy an file.","<in> <out>")
define mb_os_echo_good
$(if $(filter -1,$(MB_OS_COLORS)),@echo $(MB_I18N_OS_ECHO_CRAYON) $(1),$(MB_OS_ECHO) -e "\x1B[32m$(MB_I18N_OS_ECHO_CRAYON)$$1\x1B[39m $(1)")
define mb_os_echo_color
$(MB__    )$(if $(filter -1,$(MB_OS_COLORS)),@echo $(MB_I18N_OS_ECHO_CRAYON) $(2),@echo -e "\x1B[$(1)m$(MB_I18N_OS_ECHO_CRAYON)\x1B[39m $(2)")
endef
$(call mb_make_call,mb_doc_function_deep,mb_os_echo_good,"Echo's an message to stdout with 'green' crayon.","<message>")
$(call mb_make_call,mb_doc_function_deep,mb_os_echo_color,"Echo's an message to stdout with ansi color code.","<color-code> <message>")
define mb_os_echo_fail
$(if $(filter -1,$(MB_OS_COLORS)),@echo $(MB_I18N_OS_ECHO_CRAYON) $(1),$(MB_OS_ECHO) -e "\x1B[31m$(MB_I18N_OS_ECHO_CRAYON)$$1\x1B[39m $(1)")
$(MB__    )$(call mb_make_call,mb_os_echo_color,31,$(1))
endef
$(call mb_make_call,mb_doc_function_deep,mb_os_echo_fail,"Echo's an message to stdout with 'red' crayon.","<message>")
define mb_os_echo_good
$(MB__    )$(call mb_make_call,mb_os_echo_color,32,$(1))
endef
$(call mb_make_call,mb_doc_function_deep,mb_os_echo_good,"Echo's an message to stdout with 'green' crayon.","<message>")
define mb_os_echo_assert
$(MB__    )$(call mb_make_call,mb_os_echo_color,33,$(1))
endef
$(call mb_make_call,mb_doc_function_deep,mb_os_echo_assert,"Echo's an message to stdout with 'yellow' crayon.","<message>")
define mb_os_echo_command
$(if $(filter -1,$(MB_OS_COLORS)),@echo $(MB_I18N_OS_ECHO_CRAYON) $(1),$(MB_OS_ECHO) -e "\x1B[34m$(MB_I18N_OS_ECHO_CRAYON)$$1\x1B[39m $(1)")
$(MB__    )$(call mb_make_call,mb_os_echo_color,34,$(1))
endef
$(call mb_make_call,mb_doc_function_deep,mb_os_echo_command,"Echo's an message to stdout with 'blue' crayon.","<message>")
define mb_os_echo_phase
$(if $(filter -1,$(MB_OS_COLORS)),@echo $(MB_I18N_OS_ECHO_CRAYON) $(1),$(MB_OS_ECHO) -e "\x1B[35m$(MB_I18N_OS_ECHO_CRAYON)$$1\x1B[39m $(1)")
$(MB__    )$(call mb_make_call,mb_os_echo_color,35,$(1))
endef
$(call mb_make_call,mb_doc_function_deep,mb_os_echo_phase,"Echo's an message to stdout with 'magenta' crayon.","<message>")
define mb_os_echo_assert
$(if $(filter -1,$(MB_OS_COLORS)),@echo $(MB_I18N_OS_ECHO_CRAYON) $(1),$(MB_OS_ECHO) -e "\x1B[33m$(MB_I18N_OS_ECHO_CRAYON)$$1\x1B[39m $(1)")
define mb_os_echo_alert
$(MB__    )$(call mb_make_call,mb_os_echo_color,36,$(1))
endef
$(call mb_make_call,mb_doc_function_deep,mb_os_echo_assert,"Echo's an message to stdout with 'yellow' crayon.","<message>")
$(call mb_make_call,mb_doc_function_deep,mb_os_echo_phase,"Echo's an message to stdout with 'cyan' crayon.","<message>")
# Last color: Cyan: \u001b[36m

View file

@ -8,288 +8,283 @@ $(call mb_make_call,mb_doc_variable,MB_PROJ_META_DESCRIPTION,"The project descri
MB_PROJ_META_WEBSITE ?=
$(call mb_make_call,mb_doc_variable,MB_PROJ_META_WEBSITE,"The project website location.")
MB_PROJ_PHASE_PROCESS_DEPS ?=
$(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_PROCESS_DEPS,"The targets to trigger by project @process target.")
MB_PROJ_PHASE_COMPILE_DEPS ?=
$(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_COMPILE_DEPS,"The targets to trigger by project @compile target.")
MB_PROJ_PHASE_LINK_DEPS ?=
$(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_LINK_DEPS,"The targets to trigger by project @link target.")
MB_PROJ_PHASE_BUILD_DEPS ?=
$(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_BUILD_DEPS,"The targets to trigger by project @build target.")
MB_PROJ_PHASE_TEST_DEPS ?=
$(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_TEST_DEPS,"The targets to trigger by project @test target.")
MB_PROJ_PHASE_PACKAGE_DEPS ?=
$(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_PACKAGE_DEPS,"The targets to trigger by project @package target.")
MB_PROJ_PHASE_PACKAGE_QA_DEPS ?=
$(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_PACKAGE_QA_DEPS,"The targets to trigger by project @package-qa target.")
MB_PROJ_PHASE_PACKAGE_DEPLOY_DEPS ?=
$(call mb_make_call,mb_doc_variable_flow,MB_PROJ_PHASE_PACKAGE_QA_DEPLOY,"The targets to trigger by project @package-deploy target.")
define mb_proj_module_path_src
$(1)/$(subst /,,$(subst $(1),,$(dir $(lastword $(MAKEFILE_LIST)))))
$(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.","<path-src>")
define mb_proj_module_path_bin
$(2)/$(subst /,,$(subst $(1),,$(dir $(lastword $(MAKEFILE_LIST)))))
$(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.","<path-src> <path-bin>")
define mb_proj_module_local_deps
$(foreach dep,$(2),$(1)/$(notdir $(dep)))
$(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>")
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..","<slave-target>")
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..","<slave-target>")
define mb_proj_grow_deps_phase_process
$(eval MB_PROJ_PHASE_PROCESS_DEPS += $(1))
$(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..","<slave-target>")
define mb_proj_grow_deps_phase_compile
$(eval MB_PROJ_PHASE_COMPILE_DEPS += $(1))
$(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..","<slave-target>")
define mb_proj_grow_deps_phase_link
$(eval MB_PROJ_PHASE_LINK_DEPS += $(1))
$(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..","<slave-target>")
define mb_proj_grow_deps_phase_build
$(eval MB_PROJ_PHASE_BUILD_DEPS += $(1))
$(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..","<slave-target>")
define mb_proj_grow_deps_phase_test
$(eval MB_PROJ_PHASE_TEST_DEPS += $(1))
$(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..","<slave-target>")
define mb_proj_grow_deps_phase_package
$(eval MB_PROJ_PHASE_PACKAGE_DEPS += $(1))
$(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..","<slave-target>")
define mb_proj_grow_deps_phase_package_qa
$(eval MB_PROJ_PHASE_PACKAGE_QA_DEPS += $(1))
$(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..","<slave-target>")
define mb_proj_grow_deps_phase_package_deploy
$(eval MB_PROJ_PHASE_PACKAGE_DEPLOY_DEPS += $(1))
$(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..","<slave-target>")
define _mb_proj_flow_step_before
$(call mb_make_call,mb_os_echo_phase,$(MB_I18N_PROJ_STEP_BEFORE) $@)
$(MB__    )$(call mb_make_call,mb_os_echo_phase,$(MB_I18N_PROJ_STEP_BEFORE) $@)
endef
define _mb_proj_flow_step_done
$(call mb_make_call,mb_os_echo_phase,$(MB_I18N_PROJ_STEP_AFTER) $@)
$(if $(filter $@,$(MAKECMDGOALS)),$(call mb_make_call,mb_os_echo_good,$(MB_I18N_PROJ_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
$(foreach folder,$(1),$(if $(wildcard $(folder)),$(call mb_make_call,mb_os_echo_command,$(MB_I18N_PROJ_DIR_DELETE) $(folder));))
$(foreach folder,$(1),$(if $(wildcard $(folder)),$(call mb_make_call,mb_os_dir_delete,$(folder))))
$(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
$(foreach folder,$(1),$(if $(wildcard $(folder)),,$(call mb_make_call,mb_os_echo_command,$(MB_I18N_PROJ_DIR_CREATE) $(folder));))
$(foreach folder,$(1),$(if $(wildcard $(folder)),,$(call mb_make_call,mb_os_dir_create,$(folder))))
$(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:
$$(call mb_make_call,_mb_proj_flow_step_before)
.PHONY: @@clean
@clean: @@clean
$$(call mb_make_call,_mb_proj_run_clean,$(1))
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@clean,"Clean's the project build folders.")
.PHONY: @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:
$$(call mb_make_call,_mb_proj_flow_step_before)
.PHONY: @@init
@init: @@init
$$(call mb_make_call,_mb_proj_run_init,$(1))
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@init,"Create the project output folders.")
.PHONY: @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
$$(call mb_make_call,_mb_proj_flow_step_before)
.PHONY: @@process
@process: @@process $$(MB_PROJ_PHASE_PROCESS_DEPS)
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@process,"Process sources before compiling.")
.PHONY: @process
$(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
$$(call mb_make_call,_mb_proj_flow_step_before)
.PHONY: @@compile
@compile: @@compile $$(MB_PROJ_PHASE_COMPILE_DEPS)
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@compile,"Compiles all project sources.")
.PHONY: @compile
$(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
$$(call mb_make_call,_mb_proj_flow_step_before)
.PHONY: @@link
@link: @@link $$(MB_PROJ_PHASE_LINK_DEPS)
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@link,"Link all project intermediate files.")
.PHONY: @link
$(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
$$(call mb_make_call,_mb_proj_flow_step_before)
.PHONY: @@build
@build: @@build $$(MB_PROJ_PHASE_BUILD_DEPS)
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@build,"Build all project artifacts.")
.PHONY: @build
$(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
$$(call mb_make_call,_mb_proj_flow_step_before)
.PHONY: @@test
@test: @@test $$(MB_PROJ_PHASE_TEST_DEPS)
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@test,"Run all assertion tests.")
.PHONY: @test
$(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
$$(call mb_make_call,_mb_proj_flow_step_before)
.PHONY: @@package
@package: @@package $$(MB_PROJ_PHASE_PACKAGE_DEPS)
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@package,"Create all packages of project.")
.PHONY: @package
$(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
$$(call mb_make_call,_mb_proj_flow_step_before)
.PHONY: @@package-qa
@package-qa: @@package-qa $$(MB_PROJ_PHASE_PACKAGE_QA_DEPS)
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@package-qa,"Run all packages QA of project.")
.PHONY: @package-qa
$(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
$$(call mb_make_call,_mb_proj_flow_step_before)
.PHONY: @@package-deploy
$(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)
@package-deploy: @@package-deploy $$(MB_PROJ_PHASE_PACKAGE_DEPLOY_DEPS)
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@package-deploy,"Deploy all the packages.")
.PHONY: @package-deploy
.RECIPEPREFIX := $(MB__RECIPEPREFIX)
endef
define mb_proj_flow_setup
$(call mb_make_call,mb_make_check_arg1,mb_proj_flow_setup,$(1))
$(eval $(call mb_make_call,__mb_proj_flow_setup,$(1)))
$(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.","<build-dirs>")
define __mb_proj_flow_setup_jp
@クリーン: @clean
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@,"プロジェクトのビルドフォルダーをクリーンアップします。")
.PHONY: @クリーン
define __mb_proj_flow_setup_i18n
.RECIPEPREFIX := $(MB__RECIPE)
@初期化する: @init
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@,"モジュール出力フォルダーをセットアップして検証します。")
.PHONY: @@初期化する
@$$(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))
@プロセス: @初期化する @process
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@,"コンパイル前にソースを処理します。")
.PHONY: @プロセス
@$$(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))
@コンパイル: @プロセス @compile
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@,"すべてのプロジェクト ソースをコンパイルします。")
.PHONY: @コンパイル
@$$(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))
@リンク: @コンパイル @link
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@,"すべてのプロジェクト中間ファイルをリンクします。")
.PHONY: @リンク
@$$(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))
@建てる: @リンク @build
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@,"すべてのプロジェクト成果物をビルドします。")
.PHONY: @建てる
@$$(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))
@テスト: @建てる @test
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@,"すべてのアサーション テストを実行します。")
.PHONY: @テスト
@$$(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))
@パッケージ: @テスト @package
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@,"プロジェクトのパッケージを作成します。")
.PHONY: @パッケージ
@$$(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))
@パッケージの品質保証: @パッケージ @package-qa
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@,"すべてのパッケージを実行します。プロジェクトの品質保証。")
.PHONY: @パッケージの品質保証
@$$(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))
@パッケージのデプロイ: @パッケージの品質保証 @package-deploy
$$(call mb_make_call,_mb_proj_flow_step_done)
$$(call mb_make_call,mb_doc_target_help,@,"パッケージをデプロイします。")
.PHONY: @パッケージのデプロイ
@$$(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_jp
$(eval $(call mb_make_call,__mb_proj_flow_setup_jp))
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_jp,"Prints flow for japanese wrapper of project build cycle.")
$(call mb_make_call,mb_doc_function_flow,mb_proj_flow_setup_i18n,"Prints flow for i18n wrapper of project build cycle.")

View file

@ -1,4 +1,7 @@
MB_SDCC_PATH ?= /usr/bin
$(call mb_make_call,mb_doc_variable,MB_SDCC_PATH,"Path where SDCC binaries are located.")
MB_SDCC_FLAG_CPU ?= -mz80
$(call mb_make_call,mb_doc_variable_deep,MB_SDCC_FLAG_CPU,"The SDCC cpu target option.")
@ -21,71 +24,71 @@ $(call mb_make_call,mb_doc_variable_deep,MB_SDCC_AR_FLAGS,"The SDCC module archi
define mb_sdcc_compile_asm
$(call mb_make_call,mb_os_echo_command,$(MB_I18N_SDCC_COMPILE) $(2) - ASM)
$(PATH_SDCC)/sdasz80 $(MB_SDCC_ASZ80_FLAGS) $(2) $(1)
$(MB__    )$(call mb_make_call,mb_os_echo_command,$(MB_I18N_SDCC_COMPILE) $(2) - ASM)
$(MB__    )$(MB_SDCC_PATH)/sdasz80 $(MB_SDCC_ASZ80_FLAGS) $(2) $(1)
endef
$(call mb_make_call,mb_doc_function,mb_sdcc_compile_asm,"Compiles asm source code.","<in> <out>")
define mb_sdcc_arlib_asm
$(call mb_make_call,mb_os_echo_command,$(MB_I18N_SDCC_ARLIB) $(2))
$(PATH_SDCC)/sdar $(MB_SDCC_AR_FLAGS) $(1) $(2)
$(MB__    )$(call mb_make_call,mb_os_echo_command,$(MB_I18N_SDCC_ARLIB) $(2))
$(MB__    )$(MB_SDCC_PATH)/sdar $(MB_SDCC_AR_FLAGS) $(1) $(2)
endef
$(call mb_make_call,mb_doc_function,mb_sdcc_arlib_asm,"Link asm lib module.","<in> <out>")
define mb_sdcc_link_asm
$(call mb_make_call,mb_os_echo_command,$(MB_I18N_SDCC_LINK) $(2) - ASM @ $(3))
$(PATH_SDCC)/sdcc $(MB_SDCC_FLAG_CPU) $(MB_SDCC_CC_FLAGS) --no-std-crt0 --code-loc $(3) -o $(2) $(1)
$(MB__    )$(call mb_make_call,mb_os_echo_command,$(MB_I18N_SDCC_LINK) $(2) - ASM @ $(3))
$(MB__    )$(MB_SDCC_PATH)/sdcc $(MB_SDCC_FLAG_CPU) $(MB_SDCC_CC_FLAGS) --no-std-crt0 --code-loc $(3) -o $(2) $(1)
endef
$(call mb_make_call,mb_doc_function,mb_sdcc_link_asm,"Links asm to custom code location.","<in> <out> <code-loc>")
define mb_sdcc_link_asm_0000
$(call mb_make_call,mb_sdcc_link_asm,$(1),$(2),0x0000)
$(MB__    )$(call mb_make_call,mb_sdcc_link_asm,$(1),$(2),0x0000)
endef
$(call mb_make_call,mb_doc_function,mb_sdcc_link_asm_0000,"Links asm to 0x0000.","<in> <out>")
define mb_sdcc_link_asm_0100
$(call mb_make_call,mb_sdcc_link_asm,$(1),$(2),0x0100)
$(MB__    )$(call mb_make_call,mb_sdcc_link_asm,$(1),$(2),0x0100)
endef
$(call mb_make_call,mb_doc_function,mb_sdcc_link_asm_0100,"Links asm to 0x0100.","<in> <out>")
define mb_sdcc_link_asm_1000
$(call mb_make_call,mb_sdcc_link_asm,$(1),$(2),0x1000)
$(MB__    )$(call mb_make_call,mb_sdcc_link_asm,$(1),$(2),0x1000)
endef
$(call mb_make_call,mb_doc_function,mb_sdcc_link_asm_1000,"Links asm to 0x1000.","<in> <out>")
define mb_sdcc_link_asm_4000
$(call mb_make_call,mb_sdcc_link_asm,$(1),$(2),0x4000)
$(MB__    )$(call mb_make_call,mb_sdcc_link_asm,$(1),$(2),0x4000)
endef
$(call mb_make_call,mb_doc_function,mb_sdcc_link_asm_4000,"Links asm to 0x4000.","<in> <out>")
define mb_sdcc_link_asm_8000
$(call mb_make_call,mb_sdcc_link_asm,$(1),$(2),0x8000)
$(MB__    )$(call mb_make_call,mb_sdcc_link_asm,$(1),$(2),0x8000)
endef
$(call mb_make_call,mb_doc_function,mb_sdcc_link_asm_8000,"Links asm to 0x8000.","<in> <out>")
define mb_sdcc_link_asm_C000
$(call mb_make_call,mb_sdcc_link_asm,$(1),$(2),0xC000)
$(MB__    )$(call mb_make_call,mb_sdcc_link_asm,$(1),$(2),0xC000)
endef
$(call mb_make_call,mb_doc_function,mb_sdcc_link_asm_C000,"Links asm to 0xC000.","<in> <out>")
define mb_sdcc_link_asm_bdos
$(call mb_make_call,mb_sdcc_link_asm_0100,$(1),$(2))
$(MB__    )$(call mb_make_call,mb_sdcc_link_asm_0100,$(1),$(2))
endef
$(call mb_make_call,mb_doc_function,mb_sdcc_link_asm_bdos,"Links asm to BDOS.","<in> <out>")
define mb_sdcc_objcopy
$(call mb_make_call,mb_os_echo_command,$(MB_I18N_SDCC_OBJCOPY) $(2))
$(PATH_SDCC)/sdobjcopy -I ihex --output-target$(MB_MAKE_EQUALS)binary $(1) $(2)
$(MB__    )$(call mb_make_call,mb_os_echo_command,$(MB_I18N_SDCC_OBJCOPY) $(2))
$(MB__    )$(MB_SDCC_PATH)/sdobjcopy -I ihex --output-target$(MB_MAKE_EQUALS)binary $(1) $(2)
endef
$(call mb_make_call,mb_doc_function,mb_sdcc_objcopy,"Converts an hex file to binary.","<in> <out>")

View file

@ -1,92 +1,90 @@
define __mb_tool_m80_flow_bdos_mono
$(1): | @init
$$(call mb_make_call,mb_os_dir_create,$(1))
$$(call mb_make_call,mb_os_dir_create,$(1)/utils)
$$(call mb_make_call,mb_msxhub_get_macro80,$(1)/utils)
$$(call mb_make_call,mb_msxhub_get_z80asmuk,$(1)/utils)
$$(call mb_make_call,mb_doc_target_deep,$(1))
.PHONY: $(1)
.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_flag_phony,$(1))
$(1)/$(3).mac: $(2)/$(3).mac | $(1)
$$(call mb_make_call,mb_conv_unix2dos,$(2)/$(3).mac,$(1)/$(3).mac)
$$(call mb_make_call,mb_doc_target_deep,$(1)/$(3).mac)
$$(call mb_make_call,mb_proj_grow_deps_phase_process,$(1)/$(3).mac)
$(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)/$(3).rel: $(1)/$(3).mac
$$(call mb_make_call,mb_msxpipe_safe_cmd,$(1),m80 $$(MB_MAKE_EQUALS)$(3)/Z)
$$(call mb_make_call,mb_doc_target_deep,$(1)/$(3).rel)
$$(call mb_make_call,mb_proj_grow_deps_phase_compile,$(1)/$(3).rel)
$(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)/$(3).hex: $(1)/$(3).rel
$$(call mb_make_call,mb_msxpipe_safe_cmd,$(1),l80 $(3)$$(MB_MAKE_COMMA)$(3)/N/X/Y/E)
$$(call mb_make_call,mb_doc_target_deep,$(1)/$(3).hex)
$$(call mb_make_call,mb_proj_grow_deps_phase_link,$(1)/$(3).hex)
$(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)/$(3).com: $(1)/$(3).hex
$$(call mb_make_call,mb_msxpipe_safe_cmd,$(1),hextocom $(3))
$$(call mb_make_call,mb_doc_target_deep,$(1)/$(3).com)
$$(call mb_make_call,mb_proj_grow_deps_phase_build,$(1)/$(3).com)
$(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
$$(call mb_make_call,mb_doc_target,$(1)/@build,"Builds the $(1) module.")
.PHONY: $(1)/@build
$(MB__    )$$(call mb_make_call,mb_doc_target,$(1)/@build,"Builds the $(1) module.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,$(1)/@build)
$(1)/@run: $(1)/@build
$$(call mb_make_call,mb_msxpipe_run_gui,$(1))
$$(call mb_make_call,mb_doc_target_run,$(1)/@run,"Run $(3).com manually with gui.")
.PHONY: $(1)/@run
$(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_flag_phony,$(1)/@run)
.RECIPEPREFIX := $(MB__RECIPEPREFIX)
endef
define mb_tool_m80_flow_bdos_mono
$(call mb_make_call,mb_make_check_arg3,mb_tool_m80_flow_bdos_mono,$(1),$(2),$(3))
$(eval $(call mb_make_call,__mb_tool_m80_flow_bdos_mono,$(1),$(2),$(3)))
$(MB__    )$(call mb_make_call,mb_make_check_arg3,mb_tool_m80_flow_bdos_mono,$(1),$(2),$(3))
$(MB__    )$(eval $(call mb_make_call,__mb_tool_m80_flow_bdos_mono,$(1),$(2),$(3)))
endef
$(call mb_make_call,mb_doc_function_flow,mb_tool_m80_flow_bdos_mono,"Prints flow of m80 toolchain bdos mono file module.","<bin-dir> <src-dir> <objname>")
define __mb_tool_sdcc_flow_bdos_mono
$(1): | @init
$$(call mb_make_call,mb_os_dir_create,$(1))
$$(call mb_make_call,mb_doc_target_deep,$(1))
.PHONY: $(1)
.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_flag_phony,$(1))
$(1)/$(3).rel: $(2)/$(3).asm | $(1)
$$(call mb_make_call,mb_sdcc_compile_asm,$$<,$$@)
$$(call mb_make_call,mb_doc_target_deep,$(1)/$(3).rel)
$$(call mb_make_call,mb_proj_grow_deps_phase_compile,$(1)/$(3).rel)
$(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)/$(3).hex: $(1)/$(3).rel
$$(call mb_make_call,mb_sdcc_link_asm_bdos,$$<,$$@)
$$(call mb_make_call,mb_doc_target_deep,$(1)/$(3).hex)
$$(call mb_make_call,mb_proj_grow_deps_phase_link,$(1)/$(3).hex)
$(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)/$(3).com: $(1)/$(3).hex
$$(call mb_make_call,mb_sdcc_objcopy,$$<,$$@)
$$(call mb_make_call,mb_doc_target_deep,$(1)/$(3).com)
$$(call mb_make_call,mb_proj_grow_deps_phase_build,$(1)/$(3).com)
$(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
$$(call mb_make_call,mb_doc_target,$(1)/@build,"Builds the $(1) module.")
.PHONY: $(1)/@build
$(MB__    )$$(call mb_make_call,mb_doc_target,$(1)/@build,"Builds the $(1) module.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,$(1)/@build)
$(1)/@run: $(1)/@build
$$(call mb_make_call,mb_msxpipe_run_gui,$(1))
$$(call mb_make_call,mb_doc_target_run,$(1)/@run,"Run $(3).com manually with gui.")
.PHONY: $(1)/@run
$(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_flag_phony,$(1)/@run)
.RECIPEPREFIX := $(MB__RECIPEPREFIX)
endef
define mb_tool_sdcc_flow_bdos_mono
$(call mb_make_call,mb_make_check_arg3,mb_tool_sdcc_flow_bdos_mono,$(1),$(2),$(3))
$(eval $(call mb_make_call,__mb_tool_sdcc_flow_bdos_mono,$(1),$(2),$(3)))
$(MB__    )$(call mb_make_call,mb_make_check_arg3,mb_tool_sdcc_flow_bdos_mono,$(1),$(2),$(3))
$(MB__    )$(eval $(call mb_make_call,__mb_tool_sdcc_flow_bdos_mono,$(1),$(2),$(3)))
endef
$(call mb_make_call,mb_doc_function_flow,mb_tool_sdcc_flow_bdos_mono,"Prints flow of sdcc toolchain bdos mono file module.","<bin-dir> <src-dir> <objname>")

View file

@ -1,45 +1,40 @@
#
# msxbuild.mk - Makefile helper to use with msx projects.
#
MB__         :=
MB__     :=
MB__RECIPE := ]
MB__RECIPEPREFIX := $(.RECIPEPREFIX)
MB__BASEPATH := $(dir $(lastword $(MAKEFILE_LIST)))../..
MB__BASEPATH_REAL := $(if $(realpath $(MB__BASEPATH)),$(realpath $(MB__BASEPATH)),$(MB__BASEPATH))
include $(MB__BASEPATH)/lib/make/mb_doc.mk
include $(MB__BASEPATH)/lib/make/mb_make_call.mk
include $(MB__BASEPATH)/lib/make/mb_make_xml.mk
include $(MB__BASEPATH)/lib/make/mb_make.mk
include $(MB__BASEPATH)/lib/make/mb_conv.mk
include $(MB__BASEPATH)/lib/make/mb_sdcc.mk
include $(MB__BASEPATH)/lib/make/mb_flight.mk
include $(MB__BASEPATH)/lib/make/mb_msxrom.mk
include $(MB__BASEPATH)/lib/make/mb_msxhub.mk
include $(MB__BASEPATH)/lib/make/mb_msxpipe.mk
include $(MB__BASEPATH)/lib/make/mb_openmsx.mk
include $(MB__BASEPATH)/lib/make/mb_autoexec.mk
include $(MB__BASEPATH)/lib/make/mb_assert.mk
include $(MB__BASEPATH)/lib/make/mb_tool.mk
include $(MB__BASEPATH)/lib/make/mb_proj.mk
include $(MB__BASEPATH)/lib/make/mb_i18n.mk
include $(MB__BASEPATH)/lib/make/mb_os.mk
$(call mb_make_call,mb_doc_variable_rock,MB__RECIPEPREFIX,"Recipe prefix to restore to after flow eval.")
$(call mb_make_call,mb_doc_variable_rock,MB__BASEPATH,"Path where msxbuild lib folder is located.")
$(call mb_make_call,mb_doc_variable_rock,MB__BASEPATH_REAL,"Resolved real path of msxbuild.")
# Setup default tools paths
PATH_SDCC ?= /usr/bin
PATH_OPENMSX ?= /usr/bin
PATH_MSXBUILD ?= $(dir $(lastword $(MAKEFILE_LIST)))../..
PATH_MSXBUILD_REAL := $(if $(realpath $(PATH_MSXBUILD)),$(realpath $(PATH_MSXBUILD)),$(PATH_MSXBUILD))
# Include extra features
include $(PATH_MSXBUILD)/lib/make/mb_doc.mk
include $(PATH_MSXBUILD)/lib/make/mb_make.mk
include $(PATH_MSXBUILD)/lib/make/mb_conv.mk
include $(PATH_MSXBUILD)/lib/make/mb_sdcc.mk
include $(PATH_MSXBUILD)/lib/make/mb_flight.mk
include $(PATH_MSXBUILD)/lib/make/mb_msxrom.mk
include $(PATH_MSXBUILD)/lib/make/mb_msxhub.mk
include $(PATH_MSXBUILD)/lib/make/mb_msxpipe.mk
include $(PATH_MSXBUILD)/lib/make/mb_openmsx.mk
include $(PATH_MSXBUILD)/lib/make/mb_autoexec.mk
include $(PATH_MSXBUILD)/lib/make/mb_assert.mk
include $(PATH_MSXBUILD)/lib/make/mb_tool.mk
include $(PATH_MSXBUILD)/lib/make/mb_proj.mk
include $(PATH_MSXBUILD)/lib/make/mb_i18n.mk
include $(PATH_MSXBUILD)/lib/make/mb_os.mk
# Below mb_doc.mk for white space...
$(call mb_make_call,mb_doc_variable_deep,PATH_SDCC,"Path where SDCC binaries are located.")
$(call mb_make_call,mb_doc_variable_deep,PATH_OPENMSX,"Path where openMSX binary is located.")
$(call mb_make_call,mb_doc_variable_deep,PATH_MSXBUILD,"Path where msxbuild lib folder is located.")
$(call mb_make_call,mb_doc_variable_rock,PATH_MSXBUILD_REAL,"Resolved real path of msxbuild.")
# TODO: move to mb_package.mk
define mb_create_dist
$(call mb_make_call,mb_os_echo_command,Creating distribution archive $(2))
tar -czf $(2) -C $(1) `ls $(1)`
$(MB__    )$(call mb_make_call,mb_os_echo_command,Creating distribution archive $(2))
$(MB__    )tar -czf $(2) -C $(1) `ls $(1)`
endef
$(call mb_make_call,mb_doc_function,mb_create_dist,"Create an distribution archive.","<dir> <artifact>")

49
lib/make/setup-debug.mk Normal file
View file

@ -0,0 +1,49 @@
#
# Configure debug mode
#
ifdef DEBUG
ifneq ("$(DEBUG)", "off")
MB_MAKE_CALL_DEBUG ?= $(DEBUG)
endif
endif
ifdef ONTBEESTEN
ifneq ("$(ONTBEESTEN)", "uit")
MB_MAKE_CALL_DEBUG ?= $(ONTBEESTEN)
endif
endif
ifdef
ifneq ("$(デバッグ)", "ユニット")
MB_MAKE_CALL_DEBUG ?= $(デバッグ)
endif
endif
ifdef DEPURAR
ifneq ("$(DEPURAR)", "traje")
MB_MAKE_CALL_DEBUG ?= $(DEPURAR)
endif
endif
ifdef DÉBOGUER
ifneq ("$(DÉBOGUER)", "dehors")
MB_MAKE_CALL_DEBUG ?= $(DÉBOGUER)
endif
endif
ifdef отлаживать
ifneq ("$(отлаживать)", "вне")
MB_MAKE_CALL_DEBUG ?= $(отлаживать)
endif
endif
ifdef
ifneq ("$(偵錯)", "出去")
MB_MAKE_CALL_DEBUG ?= $(偵錯)
endif
endif
ifdef ि
ifneq ("$(डिबग)", "बंद")
MB_MAKE_CALL_DEBUG ?= $(डिबग)
endif
endif
ifdef
ifneq ("$(ᐃᕿᒡᒐᖅᑐᖅ)", "ᖃᒥᓪᓗᒍ")
MB_MAKE_CALL_DEBUG ?= $(ᐃᕿᒡᒐᖅᑐᖅ)
endif
endif

16
lib/make/setup-prolog.mk Normal file
View file

@ -0,0 +1,16 @@
#
# Mandatory prolog to included as very first line.
#
MAKEFLAGS += --no-builtin-rules
MAKEFLAGS += --no-builtin-variables
MAKEFLAGS += --warn-undefined-variables
.DELETE_ON_ERROR :=
.RECIPEPREFIX := >
.SUFFIXES :=
.PHONY := Makefile
.ONESHELL :=
.SHELLFLAGS := -e -u -o pipefail -c
SHELL := bash
ifeq ($(origin .RECIPEPREFIX), undefined)
$(error This version of make does not support dynamic white space brain fuck mode.)
endif

82
lib/make/setup-verbose.mk Normal file
View file

@ -0,0 +1,82 @@
#
# Configure verbose mode
#
ifdef VERBOSE
ifeq ("$(VERBOSE)", "off")
.SILENT:
endif
endif
ifdef
ifeq ("$(うるさい)", "ユニット")
.SILENT:
endif
endif
ifdef LUIDRUCHTIG
ifeq ("$(LUIDRUCHTIG)", "uit")
.SILENT:
endif
endif
ifdef VERBOSA
ifeq ("$(VERBOSA)", "traje")
.SILENT:
endif
endif
ifdef VERBOSO
ifeq ("$(VERBOSO)", "traje")
.SILENT:
endif
endif
ifdef VERBEUSE
ifeq ("$(VERBEUSE)", "dehors")
.SILENT:
endif
endif
ifdef VERBEUX
ifeq ("$(VERBEUX)", "dehors")
.SILENT:
endif
endif
ifdef шумный
ifeq ("$(шумный)", "вне")
.SILENT:
endif
endif
ifdef
ifeq ("$(吵雜)", "出去")
.SILENT:
endif
endif
ifdef
ifeq ("$(वाचाल)", "बंद")
.SILENT:
endif
endif
ifdef
ifeq ("$(ᕗᕉᑉᕉᔅ)", "ᖃᒥᓪᓗᒍ")
.SILENT:
endif
endif
ifndef VERBOSE
ifndef うるさい
ifndef LUIDRUCHTIG
ifndef VERBOSA
ifndef VERBOSO
ifndef VERBEUSE
ifndef VERBEUX
ifndef шумный
ifndef 吵雜
ifndef वाचाल
ifndef ᕗᕉᑉᕉᔅ
.SILENT:
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif

View file

@ -5,21 +5,21 @@ DIST_QA_DOS1_DEPS := $(call mb_make_call,mb_proj_module_local_deps,$(DIST_QA_
$(DIST_QA_DOS1_BIN): | @init
$(call mb_make_call,mb_os_dir_create,$(DIST_QA_DOS1_BIN))
$(if $(wildcard $(DIST_QA_DOS1_BIN)),,$(call mb_make_call,mb_os_dir_create,$(DIST_QA_DOS1_BIN)))
$(call mb_make_call,mb_msxhub_get_msxdos1_boot,$(DIST_QA_DOS1_BIN))
$(DIST_QA_DOS1_BIN)/%: $(DIST_BIN)/% | $(DIST_QA_DOS1_BIN) $(DIST_DEPS)
$(DIST_QA_DOS1_BIN)/%: $(DIST_BIN)/% $(DIST_DEPS) | $(DIST_QA_DOS1_BIN)
$(call mb_make_call,mb_os_file_copy,$<,$@)
$(DIST_QA_DOS1_BIN)/@run: | $(DIST_QA_DOS1_DEPS)
$(DIST_QA_DOS1_BIN)/@run: $(DIST_QA_DOS1_DEPS)
$(call mb_make_call,mb_msxpipe_run_gui,$(DIST_QA_DOS1_BIN))
$(call mb_make_call,mb_doc_target_run,$(DIST_QA_DOS1_BIN)/@run,"Run binaries on msxdos1 machine.")
.PHONY: $(DIST_QA_DOS1_BIN)/@run
$(call mb_make_call,mb_make_flag_phony,$(DIST_QA_DOS1_BIN)/@run)
$(DIST_QA_DOS1_BIN)/@assert: | $(DIST_QA_DOS1_DEPS)
$(DIST_QA_DOS1_BIN)/@assert: $(DIST_QA_DOS1_DEPS)
$(call mb_make_call,mb_autoexec_write_default,$(DIST_QA_DOS1_BIN))
$(call mb_make_call,mb_autoexec_append_safe_test,$(DIST_QA_DOS1_BIN),ahello1)
$(call mb_make_call,mb_autoexec_append_safe_test,$(DIST_QA_DOS1_BIN),ahello2)
@ -28,5 +28,5 @@ $(DIST_QA_DOS1_BIN)/@assert: | $(DIST_QA_DOS1_DEPS)
$(call mb_make_call,mb_os_echo_assert,$(MB_I18N_ASSERT_SUCCESS) $(DIST_QA_DOS1_BIN)/@assert)
$(call mb_make_call,mb_doc_target,$(DIST_QA_DOS1_BIN)/@assert,"Assert binaries on msxdos1.")
$(call mb_make_call,mb_proj_grow_deps_phase_package_qa,$(DIST_QA_DOS1_BIN)/@assert)
.PHONY: $(DIST_QA_DOS1_BIN)/@assert
$(call mb_make_call,mb_make_flag_phony,$(DIST_QA_DOS1_BIN)/@assert)

View file

@ -5,18 +5,18 @@ DIST_QA_DOS2_DEPS := $(call mb_make_call,mb_proj_module_local_deps,$(DIST_QA_
$(DIST_QA_DOS2_BIN): | @init
$(call mb_make_call,mb_os_dir_create,$(DIST_QA_DOS2_BIN))
$(if $(wildcard $(DIST_QA_DOS2_BIN)),,$(call mb_make_call,mb_os_dir_create,$(DIST_QA_DOS2_BIN)))
$(call mb_make_call,mb_msxhub_get_msxdos2_boot,$(DIST_QA_DOS2_BIN))
$(DIST_QA_DOS2_BIN)/%: $(DIST_BIN)/% | $(DIST_QA_DOS2_BIN) $(DIST_DEPS)
$(DIST_QA_DOS2_BIN)/%: $(DIST_BIN)/% $(DIST_DEPS) | $(DIST_QA_DOS2_BIN)
$(call mb_make_call,mb_os_file_copy,$<,$@)
$(DIST_QA_DOS2_BIN)/@run: | $(DIST_QA_DOS2_DEPS)
$(call mb_make_call,mb_msxpipe_run_gui,$(DIST_QA_DOS2_BIN))
$(call mb_make_call,mb_doc_target_run,$(DIST_QA_DOS2_BIN)/@run,"Run binaries on msxdos2 machine.")
.PHONY: $(DIST_QA_DOS2_BIN)/@run
$(call mb_make_call,mb_make_flag_phony,$(DIST_QA_DOS2_BIN)/@run)
$(DIST_QA_DOS2_BIN)/@assert: | $(DIST_QA_DOS2_DEPS)
@ -32,5 +32,5 @@ $(DIST_QA_DOS2_BIN)/@assert: | $(DIST_QA_DOS2_DEPS)
$(call mb_make_call,mb_os_echo_assert,$(MB_I18N_ASSERT_SUCCESS) $(DIST_QA_DOS2_BIN)/@assert)
$(call mb_make_call,mb_doc_target,$(DIST_QA_DOS2_BIN)/@assert,"Assert binaries on msxdos2.")
$(call mb_make_call,mb_proj_grow_deps_phase_package_qa,$(DIST_QA_DOS2_BIN)/@assert)
.PHONY: $(DIST_QA_DOS2_BIN)/@assert
$(call mb_make_call,mb_make_flag_phony,$(DIST_QA_DOS2_BIN)/@assert)

View file

@ -4,21 +4,21 @@ DIST_QA_MSX1_BIN := $(call mb_make_call,mb_proj_module_path_bin,$(PATH_SRC),
DIST_QA_MSX1_DEPS := $(call mb_make_call,mb_proj_module_local_deps,$(DIST_QA_MSX1_BIN),$(DIST_DEPS))
DIST_QA_MSX1_MACHINE ?= Canon_V-20
MB_DOC_FIRE_VARIABLE += $(call mb_make_call,mb_doc_variable,DIST_QA_MSX1_MACHINE,"The machine to run the $(DIST_QA_MSX1_BIN) module.")
$(call mb_make_call,mb_doc_variable,DIST_QA_MSX1_MACHINE,"The machine to run the msx1 qa module on.")
$(DIST_QA_MSX1_BIN): | @init
$(call mb_make_call,mb_os_dir_create,$(DIST_QA_MSX1_BIN))
$(if $(wildcard $(DIST_QA_MSX1_BIN)),,$(call mb_make_call,mb_os_dir_create,$(DIST_QA_MSX1_BIN)))
$(DIST_QA_MSX1_BIN)/%: $(DIST_BIN)/% | $(DIST_QA_MSX1_BIN) $(DIST_DEPS)
$(DIST_QA_MSX1_BIN)/%: $(DIST_BIN)/% $(DIST_DEPS) | $(DIST_QA_MSX1_BIN)
$(call mb_make_call,mb_os_file_copy,$<,$@)
$(DIST_QA_MSX1_BIN)/@run: | $(DIST_QA_MSX1_DEPS)
$(call mb_make_call,mb_msxpipe_run_gui,$(DIST_QA_MSX1_BIN),,$(DIST_QA_MSX1_MACHINE))
$(call mb_make_call,mb_doc_target_run,$(DIST_QA_MSX1_BIN)/@run,"Run binaries on MSX1 machine.")
.PHONY: $(DIST_QA_MSX1_BIN)/@run
$(call mb_make_call,mb_make_flag_phony,$(DIST_QA_MSX1_BIN)/@run)
$(DIST_QA_MSX1_BIN)/@assert: | $(DIST_QA_MSX1_DEPS)
@ -34,5 +34,5 @@ $(DIST_QA_MSX1_BIN)/@assert: | $(DIST_QA_MSX1_DEPS)
$(call mb_make_call,mb_os_echo_assert,$(MB_I18N_ASSERT_SUCCESS) $(DIST_QA_MSX1_BIN)/@assert)
$(call mb_make_call,mb_doc_target,$(DIST_QA_MSX1_BIN)/@assert,"Assert binaries on MSX1 machine.")
$(call mb_make_call,mb_proj_grow_deps_phase_package_qa,$(DIST_QA_MSX1_BIN)/@assert)
.PHONY: $(DIST_QA_MSX1_BIN)/@assert
$(call mb_make_call,mb_make_flag_phony,$(DIST_QA_MSX1_BIN)/@assert)

View file

@ -4,12 +4,12 @@ DIST_QA_MSXHUB_BIN := $(call mb_make_call,mb_proj_module_path_bin,$(PATH_SRC
DIST_QA_MSXHUB_DEPS := $(call mb_make_call,mb_proj_module_local_deps,$(DIST_QA_MSXHUB_BIN),$(DIST_DEPS))
DIST_QA_MSXHUB_MACHINE ?= Boosted_MSX2+_JP
MB_DOC_FIRE_VARIABLE += $(call mb_make_call,mb_doc_variable,DIST_QA_MSXHUB_MACHINE,"The machine to run the $(DIST_QA_MSXHUB_BIN) module.")
$(call mb_make_call,mb_doc_variable,DIST_QA_MSXHUB_MACHINE,"The machine to run the msxhub module on.")
$(DIST_QA_MSXHUB_BIN): | @init
$(call mb_make_call,mb_os_dir_create,$(DIST_QA_MSXHUB_BIN))
$(call mb_make_call,mb_os_dir_create,$(DIST_QA_MSXHUB_BIN)/utils)
$(if $(wildcard $(DIST_QA_MSXHUB_BIN)),,$(call mb_make_call,mb_os_dir_create,$(DIST_QA_MSXHUB_BIN)))
$(if $(wildcard $(DIST_QA_MSXHUB_BIN)/utils),,$(call mb_make_call,mb_os_dir_create,$(DIST_QA_MSXHUB_BIN)/utils))
$(call mb_make_call,mb_msxhub_get_msxdos2_utils,$(DIST_QA_MSXHUB_BIN)/utils)
$(call mb_make_call,mb_msxhub_get_nextor_utils,$(DIST_QA_MSXHUB_BIN)/utils)
$(call mb_make_call,mb_msxhub_get_macro80,$(DIST_QA_MSXHUB_BIN)/utils)
@ -33,14 +33,14 @@ $(DIST_QA_MSXHUB_BIN): | @init
$(call mb_make_call,mb_msxhub_get_gfxage,$(DIST_QA_MSXHUB_BIN)/utils)
$(DIST_QA_MSXHUB_BIN)/%: $(DIST_BIN)/% | $(DIST_QA_MSXHUB_BIN) $(DIST_DEPS)
$(DIST_QA_MSXHUB_BIN)/%: $(DIST_BIN)/% $(DIST_DEPS) | $(DIST_QA_MSXHUB_BIN)
$(call mb_make_call,mb_os_file_copy,$<,$@)
$(DIST_QA_MSXHUB_BIN)/@run: | $(DIST_QA_MSXHUB_DEPS)
$(call mb_make_call,mb_msxpipe_run_gui,$(DIST_QA_MSXHUB_BIN),,$(DIST_QA_MSXHUB_MACHINE))
$(call mb_make_call,mb_doc_target_run,$(DIST_QA_MSXHUB_BIN)/@run,"Run the dist with all msxhub packages.")
.PHONY: $(DIST_QA_MSXHUB_BIN)/@run
$(call mb_make_call,mb_make_flag_phony,$(DIST_QA_MSXHUB_BIN)/@run)
$(DIST_QA_MSXHUB_BIN)/@assert: | $(DIST_QA_MSXHUB_DEPS)
@ -59,6 +59,6 @@ $(DIST_QA_MSXHUB_BIN)/@assert: | $(DIST_QA_MSXHUB_DEPS)
grep -q "MAKE COM" $(DIST_QA_MSXHUB_BIN)/utils.out
$(call mb_make_call,mb_os_echo_assert,$(MB_I18N_ASSERT_SUCCESS) $(DIST_QA_MSXHUB_BIN)/@assert)
$(call mb_make_call,mb_doc_target,$(DIST_QA_MSXHUB_BIN)/@assert,"Asserts that all dist artifacts execute results.")
$(call mb_make_call,mb_proj_grow_deps_phase_test,$(DIST_QA_MSXHUB_BIN)/@assert)
.PHONY: $(DIST_QA_MSXHUB_BIN)/@assert
$(call mb_make_call,mb_proj_grow_deps_phase_package_qa,$(DIST_QA_MSXHUB_BIN)/@assert)
$(call mb_make_call,mb_make_flag_phony,$(DIST_QA_MSXHUB_BIN)/@assert)

4
src/dist/0module.mk vendored
View file

@ -6,7 +6,7 @@ DIST_OUT := $(PATH_BIN)/$(DIST_MOD).tar.gz
DIST_DEPS := $(DIST_BIN)/readme.txt $(DIST_BIN)/ahello1.com $(DIST_BIN)/ahello2.com
$(DIST_BIN): | @init
$(call mb_make_call,mb_os_dir_create,$(DIST_BIN))
$(if $(wildcard $(DIST_BIN)),,$(call mb_make_call,mb_os_dir_create,$(DIST_BIN)))
$(DIST_BIN)/readme.txt: $(DIST_SRC)/readme.txt | $(DIST_BIN)
$(call mb_make_call,mb_conv_unix2dos,$<,$@)
@ -20,7 +20,7 @@ $(DIST_BIN)/ahello2.com: bin/ahello-sdcc/ahello.com | $(DIST_BIN)
$(DIST_BIN)/@prepare: | $(DIST_DEPS)
$(call mb_make_call,mb_doc_target,$(DIST_BIN)/@prepare,"Prepare folder with binaries for distribution.")
.PHONY: $(DIST_BIN)/@prepare
$(call mb_make_call,mb_make_flag_phony,$(DIST_BIN)/@prepare)
$(DIST_OUT): | $(DIST_BIN)/@prepare
$(call mb_make_call,mb_create_dist,$(DIST_BIN),$@)

View file

@ -4,13 +4,13 @@ MAKE_ON_MSX_BIN := $(call mb_make_call,mb_proj_module_path_bin,$(PATH_SRC),$(P
$(MAKE_ON_MSX_BIN): | @init
$(call mb_make_call,mb_os_dir_create,$(MAKE_ON_MSX_BIN))
$(call mb_make_call,mb_os_dir_create,$(MAKE_ON_MSX_BIN)/utils)
$(if $(wildcard $(MAKE_ON_MSX_BIN)),,$(call mb_make_call,mb_os_dir_create,$(MAKE_ON_MSX_BIN)))
$(if $(wildcard $(MAKE_ON_MSX_BIN)/utils),,$(call mb_make_call,mb_os_dir_create,$(MAKE_ON_MSX_BIN)/utils))
$(call mb_make_call,mb_msxhub_get_make,$(MAKE_ON_MSX_BIN)/utils)
$(call mb_make_call,mb_msxhub_get_macro80,$(MAKE_ON_MSX_BIN)/utils)
$(call mb_make_call,mb_msxhub_get_z80asmuk,$(MAKE_ON_MSX_BIN)/utils)
$(call mb_make_call,mb_doc_target_deep,$(MAKE_ON_MSX_BIN))
.PHONY: $(MAKE_ON_MSX_BIN)
$(call mb_make_call,mb_make_flag_phony,$(MAKE_ON_MSX_BIN))
$(MAKE_ON_MSX_BIN)/nfbsshot.mac: $(MAKE_ON_MSX_SRC)/nfbsshot.mac | $(MAKE_ON_MSX_BIN)
@ -39,19 +39,18 @@ $(call mb_make_call,mb_doc_target_deep,$(MAKE_ON_MSX_BIN)/nfbsshot.bin)
$(MAKE_ON_MSX_BIN)/@build: $(MAKE_ON_MSX_BIN)/nfbsshot.bin
$(call mb_make_call,mb_doc_target,$(MAKE_ON_MSX_BIN)/@build,"Compiles binary with make on msx.")
$(call mb_make_call,mb_proj_grow_deps_phase_build,$(MAKE_ON_MSX_BIN)/@build)
.PHONY: $(MAKE_ON_MSX_BIN)/@build
$(call mb_make_call,mb_make_flag_phony,$(MAKE_ON_MSX_BIN)/@build)
$(MAKE_ON_MSX_BIN)/@run: $(MAKE_ON_MSX_BIN)/@build
$(call mb_make_call,mb_msxpipe_run_gui,$(MAKE_ON_MSX_BIN))
$(call mb_make_call,mb_doc_target_run,$(MAKE_ON_MSX_BIN)/@run,"Run the make build manually.")
.PHONY: $(MAKE_ON_MSX_BIN)/@run
$(call mb_make_call,mb_make_flag_phony,$(MAKE_ON_MSX_BIN)/@run)
$(call mb_make_call,mb_assert_flow_grep_binary,$(MAKE_ON_MSX_BIN),check-bin,nfbsshot.bin,screenshot)
#$(MAKE_ON_MSX_BIN)/@assert-check-bin: $(MAKE_ON_MSX_BIN)/@build
# grep -U "screenshot" $(MAKE_ON_MSX_BIN)/nfbsshot.bin
#MB_DOC_FIRE_TARGET += $(call mb_make_call,mb_doc_target,$(MAKE_ON_MSX_BIN)/@assert-check-bin,"Asserts that binary contains screenshot string.")
#MB_PROJ_PHASE_TEST_DEPS += $(MAKE_ON_MSX_BIN)/@assert-check-bin
#.PHONY: $(MAKE_ON_MSX_BIN)/@assert-check-bin
#$(call mb_make_call,mb_make_flag_phony,$(MAKE_ON_MSX_BIN)/@assert-check-bin)

View file

@ -10,5 +10,5 @@ $(call mb_make_call,mb_assert_flow_bdos_grep,$(MBBOOT80_BIN),check-boot80,mbboot
$(MBBOOT80_BIN)/@release-local: | $(MBBOOT80_BIN)/@build
$(call mb_make_call,mb_os_file_copy,$(MBBOOT80_BIN)/mbboot80.com,lib/emuctl/mbboot80.com)
$(call mb_make_call,mb_doc_target,$(MBBOOT80_BIN)/@release-local,"Updates binary copy in lib/emuctl folder.")
.PHONY: $(MBBOOT80_BIN)/@release-local
$(call mb_make_call,mb_make_flag_phony,$(MBBOOT80_BIN)/@release-local)