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)) 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)) 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."," ") define mb_autoexec_append_echo $(call mb_autoexec_append_cmd,$(1),echo $(subst >,>,$(2))) endef MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_echo,"Appends an echo message."," ") 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."," ") define mb_autoexec_append_show_gui $(call mb_autoexec_append_cmd,$(1),omsxctl headless_show_gui) endef MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_show_gui,"Appends headless show gui command.","") define mb_autoexec_append_stop_fail $(call mb_autoexec_append_cmd,$(1),omsxctl fail_after 0) endef MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_stop_fail,"Appends stop automatic failure command.","") 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) endef MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_exit,"Appends exit emulation command.","") 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.","") define mb_autoexec_append_save_screenshot $(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."," [prefix]") define mb_autoexec_append_save_video $(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."," [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."," [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."," [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 define mb_autoexec_write_default @echo === Writing autoexec.bat for $@ @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 $@)) endef MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_write_default,"Write a default autoexec.bat file.","")