msxbuild/lib/make/mb_autoexec.mk

85 lines
3.5 KiB
Makefile
Raw Normal View History

2020-12-23 17:14:13 +00:00
MB_AUTOEXEC_VERSION ?= on
2020-12-23 17:14:13 +00:00
MB_AUTOEXEC_STARTUP_TIMEOUT ?= 60
MB_AUTOEXEC_STARTUP_EXITCODE ?= 124
MB_AUTOEXEC_TEST_TIMEOUT ?= 120
MB_AUTOEXEC_TEST_EXITCODE ?= 1
2021-07-06 18:56:16 +00:00
MB_AUTOEXEC_CMD_TIMEOUT ?= 300
MB_AUTOEXEC_CMD_EXITCODE ?= 1
2020-12-23 17:14:13 +00:00
define mb_autoexec_append_cmd
echo "$(2)\r" >> $(1)/autoexec.bat
endef
define mb_autoexec_append_echo
$(call mb_autoexec_append_cmd,$(1),echo $(2))
endef
define mb_autoexec_append_rem
$(call mb_autoexec_append_cmd,$(1),rem $(2))
endef
define mb_autoexec_append_gui_mode
2024-06-28 17:04:15 +00:00
$(call mb_autoexec_append_echo,$(1),Enabling boot GUI mode.)
$(call mb_autoexec_append_cmd,$(1),omsxctl boot_gui_mode)
2020-12-23 17:14:13 +00:00
endef
define mb_autoexec_append_stop_fail
$(call mb_autoexec_append_echo,$(1),Disabling automatic failure.)
$(call mb_autoexec_append_cmd,$(1),omsxctl fail_after 0)
endef
define mb_autoexec_append_exit
$(call mb_autoexec_append_cmd,$(1),omsxctl exit 0)
endef
define mb_autoexec_append_safe_test
$(call mb_autoexec_append_cmd,$(1),omsxctl fail_after $(if $(3),$(3),$(MB_AUTOEXEC_TEST_TIMEOUT)) seconds failed_test $(if $(4),$(4),$(MB_AUTOEXEC_TEST_EXITCODE)))
$(call mb_autoexec_append_echo,$(1),Running test: $(subst >,>,$(2)))
$(call mb_autoexec_append_cmd,$(1),$(2))
endef
define mb_autoexec_append_safe_cmd
$(call mb_autoexec_append_cmd,$(1),omsxctl fail_after $(if $(3),$(3),$(MB_AUTOEXEC_CMD_TIMEOUT)) seconds failed_cmd $(if $(4),$(4),$(MB_AUTOEXEC_CMD_EXITCODE)))
$(call mb_autoexec_append_echo,$(1),Running command: $(subst >,>,$(2)))
$(call mb_autoexec_append_cmd,$(1),$(2))
endef
2020-12-23 17:14:13 +00:00
define mb_autoexec_write_default
2024-06-27 17:09:38 +00:00
@echo === Writing autoexec.bat for $(notdir $(1))
@echo -n "" > $(1)/autoexec.bat
2024-06-28 17:04:15 +00:00
$(call mb_autoexec_append_cmd,$(1),omsxctl setcolor 4 000)
$(call mb_autoexec_append_cmd,$(1),omsxctl setcolor 15 777)
2024-06-27 17:09:38 +00:00
$(if $(filter 40,$(2)),$(call mb_autoexec_append_cmd,$(1),mode 40),$(call mb_autoexec_append_cmd,$(1),mode 80))
$(if $(filter 40,$(2)),$(call mb_autoexec_append_echo,$(1),Enabled mode 40.),$(call mb_autoexec_append_echo,$(1),Enabled mode 80.))
$(call mb_autoexec_append_cmd,$(1),omsxctl fail_after $(MB_AUTOEXEC_STARTUP_TIMEOUT) seconds failed_exec $(MB_AUTOEXEC_STARTUP_EXITCODE))
$(if $(filter on,$(MB_AUTOEXEC_VERSION)),$(call mb_autoexec_append_cmd,$(1),ver))
2024-06-28 17:04:15 +00:00
$(if $(filter on,$(MB_AUTOEXEC_VERSION)),$(call mb_autoexec_append_cmd,$(1),omsxctl machine_info config_name))
$(if $(filter on,$(MB_AUTOEXEC_VERSION)),$(call mb_autoexec_append_cmd,$(1),omsxctl openmsx_info version))
$(call mb_autoexec_append_echo,$(1),Run msxbuild: $(notdir $(1)))
2020-12-23 17:14:13 +00:00
endef
2024-06-27 17:09:38 +00:00
define _mb_autoexec_open_gui
$(call mb_autoexec_write_default,$(1),$(2))
2020-12-23 17:14:13 +00:00
$(call mb_autoexec_append_stop_fail,$(1))
2024-06-21 19:08:09 +00:00
$(call mb_autoexec_append_gui_mode,$(1))
$(call mb_autoexec_append_echo,$(1),Type shutdown to stop emulation.)
2024-06-27 17:09:38 +00:00
$(if $(3),$(call mb_autoexec_append_echo,$(1),Running command '$(3)'))
$(if $(3),$(call mb_autoexec_append_cmd,$(1),$(3)))
2020-12-23 17:14:13 +00:00
endef
2024-06-27 17:09:38 +00:00
define mb_autoexec_open_gui40
$(call _mb_autoexec_open_gui,$(1),40)
endef
define mb_autoexec_open_gui40_cmd
$(call _mb_autoexec_open_gui,$(1),40,$(2))
endef
define mb_autoexec_open_gui80
$(call _mb_autoexec_open_gui,$(1),80)
2020-12-23 17:14:13 +00:00
endef
2024-06-27 17:09:38 +00:00
define mb_autoexec_open_gui80_cmd
$(call _mb_autoexec_open_gui,$(1),80,$(2))
endef
define mb_autoexec_safe_cmd
$(call mb_autoexec_write_default,$(1),$(3))
$(call mb_autoexec_append_safe_cmd,$(1),$(2))
2020-12-23 17:14:13 +00:00
$(call mb_autoexec_append_exit,$(1))
endef
2024-06-27 17:09:38 +00:00
define mb_autoexec_safe_test
$(call mb_autoexec_write_default,$(1),$(3))
$(call mb_autoexec_append_safe_test,$(1),$(2))
2020-12-23 17:14:13 +00:00
$(call mb_autoexec_append_exit,$(1))
endef