msxbuild/lib/make/麥加系統擴大/mb_autoexec.mk
Willem Cazander 74432311ed
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -9s
Renamed to remark of sub commands.
2024-07-11 16:05:28 +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.

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_TEST_TIMEOUT ?= 120
$(call mb_make_call,mb_doc_variable,MB_AUTOEXEC_SAFE_TEST_TIMEOUT,"Safe test execution failure timeout.")
MB_AUTOEXEC_SAFE_TEST_EXITCODE ?= 1
$(call mb_make_call,mb_doc_variable,MB_AUTOEXEC_SAFE_TEST_EXITCODE,"Safe test execution failure exit code.")
MB_AUTOEXEC_SAFE_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_test
$(MB__    )$(call mb_make_call,mb_autoexec_append_cmd,$(1),omsxctl fail_after $(if $(3),$(3),$(MB_AUTOEXEC_SAFE_TEST_TIMEOUT)) seconds err_test $(if $(4),$(4),$(MB_AUTOEXEC_SAFE_TEST_EXITCODE)))
$(MB__    )$(call mb_make_call,mb_autoexec_append_echo,$(1),mb::safe test $(2))
$(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
$(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) $@)
$(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 -e "$(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 -e "$(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]")