msxbuild/lib/make/mb_autoexec.mk

122 lines
6.5 KiB
Makefile
Raw Normal View History

2020-12-23 17:14:13 +00:00
MB_AUTOEXEC_SHOW_VERSION ?= on
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_AUTOEXEC_SHOW_VERSION,"Print OS version on boot.",$(MB_AUTOEXEC_SHOW_VERSION))
MB_AUTOEXEC_SHOW_PATH ?= on
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_AUTOEXEC_SHOW_PATH,"Print search path on boot.",$(MB_AUTOEXEC_SHOW_PATH))
MB_AUTOEXEC_SHOW_PROLOG ?= on
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_AUTOEXEC_SHOW_PROLOG,"Print msxbuild prolog on boot.",$(MB_AUTOEXEC_SHOW_PROLOG))
MB_AUTOEXEC_SHOW_CONFIG ?= on
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_AUTOEXEC_SHOW_CONFIG,"Print host config on boot.",$(MB_AUTOEXEC_SHOW_CONFIG))
MB_AUTOEXEC_SHOW_FOLDER ?= on
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_AUTOEXEC_SHOW_FOLDER,"Print host folder on boot.",$(MB_AUTOEXEC_SHOW_FOLDER))
MB_AUTOEXEC_SHOW_TARGET ?= on
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_AUTOEXEC_SHOW_TARGET,"Print host target on boot.",$(MB_AUTOEXEC_SHOW_TARGET))
MB_AUTOEXEC_STARTUP_TIMEOUT ?= 60
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_AUTOEXEC_STARTUP_TIMEOUT,"Startup failure timeout of autoexec.",$(MB_AUTOEXEC_STARTUP_TIMEOUT))
MB_AUTOEXEC_STARTUP_EXITCODE ?= 124
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_AUTOEXEC_STARTUP_EXITCODE,"Startup failure exit code of autoexec.",$(MB_AUTOEXEC_STARTUP_EXITCODE))
MB_AUTOEXEC_SAFE_TEST_TIMEOUT ?= 120
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_AUTOEXEC_SAFE_TEST_TIMEOUT,"Safe test execution failure timeout.",$(MB_AUTOEXEC_SAFE_TEST_TIMEOUT))
MB_AUTOEXEC_SAFE_TEST_EXITCODE ?= 1
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_AUTOEXEC_SAFE_TEST_EXITCODE,"Safe test execution failure exit code.",$(MB_AUTOEXEC_SAFE_TEST_EXITCODE))
MB_AUTOEXEC_SAFE_CMD_TIMEOUT ?= 300
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_AUTOEXEC_SAFE_CMD_TIMEOUT,"Safe command execution failure timeout.",$(MB_AUTOEXEC_SAFE_CMD_TIMEOUT))
MB_AUTOEXEC_SAFE_CMD_EXITCODE ?= 1
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_AUTOEXEC_SAFE_CMD_EXITCODE,"Safe command execution failure exit code.",$(MB_AUTOEXEC_SAFE_CMD_EXITCODE))
2020-12-23 17:14:13 +00:00
MB_AUTOEXEC_STARTUP_PROLOG ?= mb::boot MSXBUILD UID $(USER)
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_AUTOEXEC_STARTUP_PROLOG,"Boot prolog user postfix.",$(MB_AUTOEXEC_STARTUP_PROLOG))
2020-12-23 17:14:13 +00:00
define mb_autoexec_append_cmd
echo "$(2)\r" >> $(1)/autoexec.bat
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_cmd,"Appends an command.","<dir> <command>")
2020-12-23 17:14:13 +00:00
define mb_autoexec_append_echo
$(call mb_autoexec_append_cmd,$(1),echo $(subst >,&gt;,$(2)))
2020-12-23 17:14:13 +00:00
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_echo,"Appends an echo message.","<dir> <message>")
2020-12-23 17:14:13 +00:00
define mb_autoexec_append_rem
$(call mb_autoexec_append_cmd,$(1),rem $(2))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_rem,"Appends an script remark.","<dir> <remark>")
define mb_autoexec_append_show_gui
2024-06-30 11:52:33 +00:00
$(call mb_autoexec_append_cmd,$(1),omsxctl headless_show_gui)
2020-12-23 17:14:13 +00:00
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_show_gui,"Appends headless show gui command.","<dir>")
2020-12-23 17:14:13 +00:00
define mb_autoexec_append_stop_fail
$(call mb_autoexec_append_cmd,$(1),omsxctl fail_after 0)
endef
2024-07-02 16:20:46 +00:00
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_stop_fail,"Appends stop automatic failure command.","<dir>")
2020-12-23 17:14:13 +00:00
define mb_autoexec_append_exit
$(if $(filter on,$(MB_FLIGHT_SCREEN)),$(call mb_autoexec_append_save_screenshot,$(1)))
$(call mb_autoexec_append_cmd,$(1),omsxctl headless_exit)
2020-12-23 17:14:13 +00:00
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_exit,"Appends exit emulation command.","<dir>")
define mb_autoexec_append_joyporta_mouse
$(call mb_autoexec_append_cmd,$(1),omsxctl plug joyporta mouse)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_joyporta_mouse,"Appends plug mouse in joyporta command.","<dir>")
define mb_autoexec_append_save_screenshot
2024-06-30 11:52:33 +00:00
$(call mb_autoexec_append_cmd,$(1),omsxctl night_flight_save_screenshot $(2))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_save_screenshot,"Appends save screenshot command.","<dir> [prefix]")
define mb_autoexec_append_save_video
2024-06-30 11:52:33 +00:00
$(call mb_autoexec_append_cmd,$(1),omsxctl night_flight_save_video $(2))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_save_video,"Appends save video command.","<dir> [prefix]")
define mb_autoexec_append_safe_test
$(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_autoexec_append_echo,$(1),mb::safe test $(2))
$(call mb_autoexec_append_cmd,$(1),$(2))
endef
MB_DOC_HELP_FUNCTION += $(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_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_autoexec_append_echo,$(1),mb::safe command $(2))
$(call mb_autoexec_append_cmd,$(1),$(2))
endef
MB_DOC_HELP_FUNCTION += $(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_autoexec_append_cmd,$(1),$(2)mbboot80)
$(call mb_autoexec_append_cmd,$(1),$(2)omsxctl boot_exec_color_vdp)
$(if $(filter on,$(MB_FLIGHT_VIDEO)),$(call mb_autoexec_append_save_video,$(1)))
$(call mb_autoexec_append_cmd,$(1),$(2)omsxctl fail_after $(MB_AUTOEXEC_STARTUP_TIMEOUT) seconds err_exec $(MB_AUTOEXEC_STARTUP_EXITCODE))
endef
2020-12-23 17:14:13 +00:00
define mb_autoexec_write_default
2024-06-29 22:12:21 +00:00
@echo === Writing autoexec.bat for $@
2024-06-27 17:09:38 +00:00
@echo -n "" > $(1)/autoexec.bat
$(if $(wildcard $(1)/utils),$(call _mb_autoexec_write_preboot,$(1),utils\),$(call _mb_autoexec_write_preboot,$(1)))
$(if $(filter on,$(MB_AUTOEXEC_SHOW_VERSION)),$(call mb_autoexec_append_cmd,$(1),ver))
$(if $(wildcard $(1)/utils),$(call mb_autoexec_append_cmd,$(1),PATH + A:\UTILS))
$(if $(filter on,$(MB_AUTOEXEC_SHOW_PATH)),$(call mb_autoexec_append_cmd,$(1),PATH))
$(if $(filter on,$(MB_AUTOEXEC_SHOW_PROLOG)),$(call mb_autoexec_append_echo,$(1),$(MB_AUTOEXEC_STARTUP_PROLOG)))
$(if $(filter on,$(MB_AUTOEXEC_SHOW_CONFIG)),$(call mb_autoexec_append_cmd,$(1),omsxctl boot_exec_config_info))
$(if $(filter on,$(MB_AUTOEXEC_SHOW_FOLDER)),$(call mb_autoexec_append_echo,$(1),mb::path $(1)))
$(if $(filter on,$(MB_AUTOEXEC_SHOW_TARGET)),$(call mb_autoexec_append_echo,$(1),mb::pipe $@))
2020-12-23 17:14:13 +00:00
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_write_default,"Write a default autoexec.bat file.","<dir>")
2020-12-23 17:14:13 +00:00