msxbuild/lib/make/天房系統擴展/mb_autoexec.mk
Willem Cazander e07a0e1b09
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 4s
Made orphan cloned project use relative build folders.
2024-07-18 22:06:15 +02:00

181 lines
10 KiB
Makefile
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

MB_AUTOEXEC_SHOW_VERSION ?= off
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_SHOW_VERSION,Print OS version on boot.)
MB_AUTOEXEC_SHOW_PATH ?= on
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_SHOW_PATH,Print search path on boot.)
MB_AUTOEXEC_SHOW_INIT ?= on
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_SHOW_INIT,Print msxbuild init message on boot.)
MB_AUTOEXEC_SHOW_HOST ?= on
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_SHOW_HOST,Print host machine on boot.)
MB_AUTOEXEC_SHOW_USER ?= on
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_SHOW_USER,Print host user on boot.)
MB_AUTOEXEC_SHOW_FOLDER ?= on
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_SHOW_FOLDER,Print host folder on boot.)
MB_AUTOEXEC_SHOW_TARGET ?= on
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_SHOW_TARGET,Print host target on boot.)
MB_AUTOEXEC_STARTUP_TIMEOUT ?= 60
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_STARTUP_TIMEOUT,Startup failure timeout of autoexec.)
MB_AUTOEXEC_STARTUP_EXITCODE ?= 124
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_STARTUP_EXITCODE,Startup failure exit code of autoexec.)
MB_AUTOEXEC_SAFE_ASSERT_TIMEOUT ?= 120
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_SAFE_ASSERT_TIMEOUT,Safe assert execution failure timeout.)
MB_AUTOEXEC_SAFE_ASSERT_EXITCODE ?= 1
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_SAFE_ASSERT_EXITCODE,Safe assert execution failure exit code.)
MB_AUTOEXEC_SAFE_CMD_TIMEOUT ?= 300
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_SAFE_CMD_TIMEOUT,Safe command execution failure timeout.)
MB_AUTOEXEC_SAFE_CMD_EXITCODE ?= 1
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_SAFE_CMD_EXITCODE,Safe command execution failure exit code.)
MB_AUTOEXEC_STARTUP_NOTE ?=
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_STARTUP_NOTE,When set this startup note message is shown.)
MB_AUTOEXEC_COLOR_FG ?= 141
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_COLOR_FG,Default foreground color if none is given.)
MB_AUTOEXEC_COLOR_BG ?= 000
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_COLOR_BG,Default background color if none if given.)
MB_AUTOEXEC_EMBED_VARS ?=
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_EMBED_VARS,List of host env variables to copy to msx as 'MSX_x' variables.)
MB_AUTOEXEC_EMBED_USER ?= USER
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_EMBED_USER,Embedds this host variable to the msx as 'MB_USER' variable.)
MB_AUTOEXEC_TIME_FORMAT ?= 24
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_TIME_FORMAT,The time format the msx will get set to.)
MB_AUTOEXEC_DATE_FORMAT ?= DD/MM/YY
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_DATE_FORMAT,The time format the msx will get set to.)
MB_AUTOEXEC_PROMPT_FORMAT ?= %MB_USER%@%_CWD%*
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_PROMPT_FORMAT,The prompt format for command 2.40 and higher.)
MB_AUTOEXEC_PROMPT_SPACE ?= on
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_PROMPT_SPACE,When on adds an white space after the prompt format.)
define mb-autoexec-append-cmd
$(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
$(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
$(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
$(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
$(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
$(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
$(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
$(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
$(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
$(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-assert
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),omsxctl fail_after $(if $(3),$(3),$(MB_AUTOEXEC_SAFE_ASSERT_TIMEOUT)) seconds err_test $(if $(4),$(4),$(MB_AUTOEXEC_SAFE_ASSERT_EXITCODE)))
$(MB_   )$(call mb-make-call,mb-autoexec-append-echo,$(1),mb::safe assert $(2))
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),$(2))
endef
$(call mb-make-call,mb-doc-function,mb-autoexec-append-safe-assert,Appends running a safe assert.,<dir> <cmd> [timeout] [exit-code])
define mb-autoexec-append-safe-cmd
$(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
$(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
$(MB_   )$(call mb-make-call,mb-os-echo-remark,$(MB_I18N_AUTOEXEC_WRITE) $(1))
$(MB_   )$(call mb-make-call,mb-os-file-empty,$(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 -e "$(subst $(call mb-make-call,mb-make-space-white)set,set,$(foreach var,$(MB_AUTOEXEC_EMBED_VARS),set MSX_$(var)$(MB_MAKE_EQUALS)$($(var))\r\n))" >> $(1)/autoexec.bat
$(MB_   )echo -n -e "$(subst $(call mb-make-call,mb-make-space-white)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)$(call mb-make-call,mb-make-space-white)\"))
$(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])