Renamed dos packages and new help system.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 5s

This commit is contained in:
Willem Cazander 2024-07-02 03:27:14 +02:00
parent de1dc7695d
commit 65b40a74cb
28 changed files with 495 additions and 247 deletions

View file

@ -11,4 +11,4 @@ jobs:
- name: Check out
uses: actions/checkout@v3
- name: Run asserts
run: make -s -j4 assert-all
run: make -s -j4 bin/@assert-all

View file

@ -1,27 +1,13 @@
#
# Example project makefile for msxbuild.
#
.SUFFIXES:
PATH_BIN := bin
PATH_SRC := src
rwildcard = $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))
MK_MODULES := $(call rwildcard, $(PATH_SRC), */0module.mk)
BUILD_ALL := "Use 'make help' for possible targets."
BUILD_HELP := "Use one of the following build targets;"
.SUFFIXES:
.PHONY: all
all:
@echo $(BUILD_ALL)
BUILD_HELP += \\n\\t* help
.PHONY: help
help:
@echo $(BUILD_HELP)
BUILD_HELP += \\n\\t* clean
.PHONY: clean
clean:
$(call mb_clean,$(PATH_BIN))
$(call mb_doc_show_help@all)
.PHONY: all
include lib/make/msxbuild.mk
include $(MK_MODULES)
include $(call mb_rwildcard, $(PATH_SRC), */0module.mk)

View file

@ -14,6 +14,7 @@ But as always, feel free to extend it for your specific needs or contribute a fi
* Auto magic openMSX extensions and machine rom's setup
* SDCC msx build steps
* Screenshot and/or video output of full build
* Embedded documentation of make options
## Dependencies
@ -73,17 +74,6 @@ When you want to see whats happening do a debug run;
Current set is WIP.
* mb_autoexec_append_cmd `<dir>`
* mb_autoexec_append_echo `<dir> <message>`
* mb_autoexec_append_rem `<dir> <remark>`
* mb_autoexec_append_show_gui `<dir>`
* mb_autoexec_append_stop_fail `<dir>`
* mb_autoexec_append_exit `<dir>`
* mb_autoexec_append_joyporta_mouse `<dir>`
* mb_autoexec_append_save_screenshot `<dir> [prefix]`
* mb_autoexec_append_save_video `<dir> [prefix]`
* mb_autoexec_append_safe_test `<dir> <cmd> [timeout] [exit-code]`
* mb_autoexec_append_safe_cmd `<dir> <cmd> [timeout] [exit-code]`
* mb_autoexec_write_default `<dir> [text-mode]`
* mb_autoexec_show_gui40 `<dir> [cmd]`
* mb_autoexec_show_gui40_mouse `<dir> [cmd]`
@ -91,76 +81,7 @@ Current set is WIP.
* mb_autoexec_show_gui80_mouse `<dir> [cmd]`
* mb_autoexec_safe_cmd `<dir> <cmd> [text-mode]`
* mb_autoexec_safe_test `<dir> <cmd> [text-mode]`
* mb_msxhub_file `<dir> <msxhub-slug>`
* mb_msxhub_get_dos1_boot `<dir>`
* mb_msxhub_get_dos2_boot `<dir>`
* mb_msxhub_get_dos2_utils `<dir>`
* mb_msxhub_get_nextor_boot `<dir>`
* mb_msxhub_get_nextor_utils `<dir>`
* mb_msxhub_get_macro80 `<dir>`
* mb_msxhub_get_z80asmuk `<dir>`
* mb_msxhub_get_wbass2 `<dir>`
* mb_msxhub_get_konpass `<dir>`
* mb_msxhub_get_pmarc `<dir>`
* mb_msxhub_get_lhpack `<dir>`
* mb_msxhub_get_lhext `<dir>`
* mb_msxhub_get_gunzip `<dir>`
* mb_msxhub_get_tunzip `<dir>`
* mb_msxhub_get_popcom `<dir>`
* mb_msxhub_get_make `<dir>`
* mb_msxhub_get_adir `<dir>`
* mb_msxhub_get_turbo `<dir>`
* mb_msxhub_get_baskom `<dir>`
* mb_msxhub_get_binldr `<dir>`
* mb_msxhub_get_dmphex `<dir>`
* mb_msxhub_get_zd `<dir>`
* mb_msxhub_get_msxdos2t `<dir>`
* mb_msxhub_get_gfxage `<dir>`
* mb_msxrom_file `<dir> <msxrom-slug>`
* mb_msxrom_setup `<dir>`
* mb_msxrom_extension_ide `<dir>`
* mb_msxrom_extension_ide_nextor `<dir>`
* mb_msxrom_extension_scsi_novaxis `<dir>`
* mb_msxrom_extension_msxdos22 `<dir>`
* mb_msxrom_extension_rs232 `<dir>`
* mb_msxrom_extension_fmpac `<dir>`
* mb_msxrom_extension_fmpac_en `<dir>`
* mb_msxrom_extension_moonsound `<dir>`
* mb_msxrom_extension_basickun `<dir>`
* mb_msxrom_machine_Canon_V-20 `<dir>`
* mb_msxrom_machine_Mitsubishi_ML-F80 `<dir>`
* mb_msxrom_machine_Mitsubishi_ML-FX1 `<dir>`
* mb_msxrom_machine_Mitsubishi_ML-G3_ES `<dir>`
* mb_msxrom_machine_Philips_VG_8000 `<dir>`
* mb_msxrom_machine_Philips_VG_8230 `<dir>`
* mb_msxrom_machine_Philips_NMS_8250 `<dir>`
* mb_msxrom_machine_Toshiba_HX-21 `<dir>`
* mb_msxrom_machine_Yamaha_AX200 `<dir>`
* mb_msxrom_machine_Yamaha_YIS-503IIIR `<dir>`
* mb_msxrom_machine_Panasonic_FS-A1WSX `<dir>`
* mb_msxrom_machine_Boosted_MSX2_EN `<dir>`
* mb_msxrom_machine_Boosted_MSX2+_JP `<dir>`
* mb_openmsx_setup `<dir> <machine>`
* mb_openmsx_dosctl `<dir> [machine] [mem-argu]`
* mb_sdcc_compile_asm `<in> <out>`
* mb_sdcc_link_asm_lib `<in> <out>`
* mb_sdcc_link_asm `<in> <out> <addr>`
* mb_sdcc_link_asm_0000 `<in> <out>`
* mb_sdcc_link_asm_0100 `<in> <out>`
* mb_sdcc_link_asm_1000 `<in> <out>`
* mb_sdcc_link_asm_4000 `<in> <out>`
* mb_sdcc_link_asm_8000 `<in> <out>`
* mb_sdcc_link_asm_C000 `<in> <out>`
* mb_sdcc_link_asm_bdos `<in> <out>`
* mb_sdcc_hex2bin `<in> <out>`
* mb_clean `<dir>`
* mb_mkdir `<dir>`
* mb_delete `<file>`
* mb_copy `<in> <out>`
* mb_unix2dos `<in> <out>`
* mb_dos2unix `<in> <out>`
* mb_create_dist `<dir> <archive>`
* mb_create_flight_video `<dir>`
## Errata

View file

@ -10,41 +10,63 @@ MB_AUTOEXEC_CMD_EXITCODE ?= 1
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>")
define mb_autoexec_append_echo
$(call mb_autoexec_append_cmd,$(1),echo $(subst >,&gt;,$(2)))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_echo,"Appends an echo message.","<dir> <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.","<dir> <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.","<dir>")
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 comand.","<dir>")
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.","<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
$(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
$(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_TEST_TIMEOUT)) seconds failed_test $(if $(4),$(4),$(MB_AUTOEXEC_TEST_EXITCODE)))
$(call mb_autoexec_append_echo,$(1),Running 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_CMD_TIMEOUT)) seconds failed_cmd $(if $(4),$(4),$(MB_AUTOEXEC_CMD_EXITCODE)))
$(call mb_autoexec_append_echo,$(1),Running 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_default
@echo === Writing autoexec.bat for $@
@echo -n "" > $(1)/autoexec.bat
@ -61,36 +83,5 @@ define mb_autoexec_write_default
$(call mb_autoexec_append_echo,$(1),Run folder $(1))
$(call mb_autoexec_append_echo,$(1),Run target $@)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_write_default,"Write a default autoexec.bat file.","<dir> [text-mode]")
define _mb_autoexec_show_gui
$(call mb_autoexec_write_default,$(1),$(2))
$(call mb_autoexec_append_stop_fail,$(1))
$(call mb_autoexec_append_show_gui,$(1))
$(if $(filter mouse,$(4)),$(call mb_autoexec_append_joyporta_mouse,$(1)))
$(call mb_autoexec_append_echo,$(1),Type shutdown to stop emulation)
$(if $(3),$(call mb_autoexec_append_echo,$(1),Running command: $(3)))
$(if $(3),$(call mb_autoexec_append_cmd,$(1),$(3)))
endef
define mb_autoexec_show_gui40
$(call _mb_autoexec_show_gui,$(1),40,$(2))
endef
define mb_autoexec_show_gui40_mouse
$(call _mb_autoexec_show_gui,$(1),40,$(2),mouse)
endef
define mb_autoexec_show_gui80
$(call _mb_autoexec_show_gui,$(1),80,$(2))
endef
define mb_autoexec_show_gui80_mouse
$(call _mb_autoexec_show_gui,$(1),80,$(2),mouse)
endef
define mb_autoexec_safe_cmd
$(call mb_autoexec_write_default,$(1),$(3))
$(call mb_autoexec_append_safe_cmd,$(1),$(2))
$(call mb_autoexec_append_exit,$(1))
endef
define mb_autoexec_safe_test
$(call mb_autoexec_write_default,$(1),$(3))
$(call mb_autoexec_append_safe_test,$(1),$(2))
$(call mb_autoexec_append_exit,$(1))
endef

107
lib/make/mb_doc.mk Normal file
View file

@ -0,0 +1,107 @@
MB_DOC_HELP_PROJECT ?= ""
MB_DOC_HELP_TARGET ?= ""
MB_DOC_HELP_VARIABLE ?= ""
MB_DOC_HELP_FUNCTION ?= ""
MB_DOC_TXT_BUILD_ALL := "Use 'make help' for possible targets and documention."
MB_DOC_TXT_BUILD_PROJECT := "Welcome to the MSXBUILD help system.\\n\\nFor detailed help use one of the following targets;\\n"
MB_DOC_TXT_BUILD_TARGET := "Build one of the following make targets;\\n"
MB_DOC_TXT_BUILD_VARIABLE := "Documention of the MSXBUILD variables;\\n"
MB_DOC_TXT_BUILD_FUNCTION := "Documention of the MSXBUILD functions;\\n"
MB_DOC_FORMAT ?= txt
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_DOC_FORMAT,"Output format of documention$(MB_CHAR_COMMA) only 'txt' is supported currently.",$(MB_DOC_FORMAT))
define _mb_doc_xml_open
$(MB_CHAR_LT)$(1)$(if $(2), $(2)=\"$(3)\")$(MB_CHAR_GT)
endef
define _mb_doc_xml_close
$(MB_CHAR_LT)/$(1)$(MB_CHAR_GT)
endef
define _mb_doc_xml_tag_value
$(if $(2),$(call _mb_doc_xml_open,$(1))$(MB_CHAR_CDATA_START)$(2)$(MB_CHAR_CDATA_END)$(call _mb_doc_xml_close,$(1)))
endef
define _mb_doc_function_txt
"* "$(1)$(if $(3), $(3))$(if $(2),\\n\\t$(2)\\n)\\n
endef
define _mb_doc_function_xml
\\n\\t$(call _mb_doc_xml_open,function,name,$(1))\\n\\t\\t$(call _mb_doc_xml_tag_value,args,$(3))\\n\\t\\t$(call _mb_doc_xml_tag_value,desc,$(2))\\n\\t$(call _mb_doc_xml_close,function)
endef
define mb_doc_function
$(call _mb_doc_function_$(MB_DOC_FORMAT),$(1),$(2),$(3))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_doc_function,"Prints formatted documention of an function.","<name> [desc] [args]")
define _mb_doc_variable_txt
"* "$(1)=$(subst \\n,\\\n,$(3))\\n$(if $(2),\\t$(2)\\n)\\n
endef
define _mb_doc_variable_xml
\\n\\t$(call _mb_doc_xml_open,variable,name,$(1))\\n\\t\\t$(call _mb_doc_xml_tag_value,value,$(3))\\n\\t\\t$(call _mb_doc_xml_tag_value,desc,$(2))\\n\\t$(call _mb_doc_xml_close,variable)
endef
define mb_doc_variable
$(call _mb_doc_variable_$(MB_DOC_FORMAT),$(1),$(2),$(3))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_doc_variable,"Prints formatted documention of an variable.","<name> [desc] [value]")
# "* "$(1)$(if $(2),\\n\\t$(2))$(if $(3),\\n\\t\\tDEPS: $(3))\\n
define _mb_doc_target_txt
"* "$(1)$(if $(2),\\n\\t$(2))\\n\\n
endef
define _mb_doc_target_xml
\\n\\t$(call _mb_doc_xml_open,target,name,$(1))\\n\\t\\t$(call _mb_doc_xml_tag_value,desc,$(2))\\n\\t$(call _mb_doc_xml_close,target)
endef
define mb_doc_target
$(call _mb_doc_target_$(MB_DOC_FORMAT),$(1),$(2))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_doc_target,"Prints formatted documention of an target.","<name> [desc]")
define _mb_doc_project_txt
"* "$(1)\\n
endef
define _mb_doc_project_xml
\\n$(call _mb_doc_xml_open,project)\\n\\t$(call _mb_doc_xml_tag_value,name,$(1))\\n$(call _mb_doc_xml_close,project)
endef
define mb_doc_project
$(call _mb_doc_project_$(MB_DOC_FORMAT),$(1))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_doc_project,"Prints formatted documention of an project (help).","<name>")
define mb_doc_show_help@all
@echo $(MB_DOC_TXT_BUILD_ALL)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_doc_show_help@all,"Displays text for 'make'")
define mb_doc_show_help@project
@echo $(MB_DOC_TXT_BUILD_PROJECT)
@echo $(MB_DOC_HELP_PROJECT)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_doc_show_help@project,"Displays text for 'make help'")
define mb_doc_show_help@target
$(if $(filter txt,$(MB_DOC_FORMAT)),@echo $(MB_DOC_TXT_BUILD_TARGET))
$(if $(filter xml,$(MB_DOC_FORMAT)),@echo $(call _mb_doc_xml_open,firemake))
@echo $(MB_DOC_HELP_TARGET)
$(if $(filter xml,$(MB_DOC_FORMAT)),@echo $(call _mb_doc_xml_close,firemake))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_doc_show_help@target,"Displays text for 'make help@target'")
define mb_doc_show_help@variable
$(if $(filter txt,$(MB_DOC_FORMAT)),@echo $(MB_DOC_TXT_BUILD_VARIABLE))
$(if $(filter xml,$(MB_DOC_FORMAT)),@echo $(call _mb_doc_xml_open,firemake))
@echo $(MB_DOC_HELP_VARIABLE)
$(if $(filter xml,$(MB_DOC_FORMAT)),@echo $(call _mb_doc_xml_close,firemake))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_doc_show_help@variable,"Displays text for 'make help@variable'")
define mb_doc_show_help@function
$(if $(filter txt,$(MB_DOC_FORMAT)),@echo $(MB_DOC_TXT_BUILD_FUNCTION))
$(if $(filter xml,$(MB_DOC_FORMAT)),@echo $(call _mb_doc_xml_open,firemake))
@echo $(MB_DOC_HELP_FUNCTION)
$(if $(filter xml,$(MB_DOC_FORMAT)),@echo $(call _mb_doc_xml_close,firemake))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_doc_show_help@function,"Displays text for 'make help@function'")

26
lib/make/mb_flight.mk Normal file
View file

@ -0,0 +1,26 @@
MB_FLIGHT_SCREEN ?= off
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_FLIGHT_SCREEN,"Creates screenshots on exit of openMSX.",$(MB_FLIGHT_SCREEN))
MB_FLIGHT_VIDEO ?= off
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_FLIGHT_VIDEO,"Create video of every build pipe session.",$(MB_FLIGHT_VIDEO))
MB_FLIGHT_PREFIX ?= msxbuild
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_FLIGHT_PREFIX,"Prefix for video and screenshot flight files.",$(MB_FLIGHT_PREFIX))
MB_FLIGHT_SEPERATOR ?= -
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_FLIGHT_SEPERATOR,"File and index number seperator for flight files.",$(MB_FLIGHT_SEPERATOR))
MB_FLIGHT_RECORD_FLAG ?= -doublesize
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_FLIGHT_RECORD_FLAG,"Command parameter flag of the video recorder.",$(MB_FLIGHT_RECORD_FLAG))
MB_FLIGHT_VIDEO_NAME ?= flight-video
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_FLIGHT_VIDEO_NAME,"Video file name of the final result merged video.",$(MB_FLIGHT_VIDEO_NAME))
define mb_flight_video_merge
@echo === Indexing flight videos
ls -1tr $(1)/*-omsx/videos/*.avi | awk -F "$(1)/" -v s="file '" -v e="'" '{print s$$2e}' > $(1)/$(MB_FLIGHT_VIDEO_NAME).lst
ffmpeg -v quiet -y -f concat -i $(1)/$(MB_FLIGHT_VIDEO_NAME).lst -c copy $(1)/$(MB_FLIGHT_VIDEO_NAME).avi
@echo === Flight video completed
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_flight_video_merge,"Merged all flight videos to one.","<dir>")

View file

@ -1,6 +1,9 @@
MB_MSXHUB_API ?= https://msxhub.com/api
MB_MSXHUB_CACHE ?= $(MB_CACHE)/msxbuild/msxhub
MB_MSXHUB_API ?= https://msxhub.com/api
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_MSXHUB_API,"Resource identifier for msxhub package rest api.",$(MB_MSXHUB_API))
MB_MSXHUB_CACHE ?= $(MB_CACHE)/msxbuild/msxhub
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_MSXHUB_CACHE,"Cache storage location.",$(MB_MSXHUB_CACHE))
define _mb_msxhub_file_fetch
@echo === Fetch msxhub file
@ -13,27 +16,33 @@ define mb_msxhub_file
$(if $(wildcard $(MB_MSXHUB_CACHE)/$(2)),,$(call _mb_msxhub_file_fetch,$(MB_MSXHUB_API)/$(2)))
$(if $(wildcard $(1)/$(call _mb_lowercase,$(notdir $(2)))),,$(call mb_copy,$(MB_MSXHUB_CACHE)/$(2),$(1)/$(call _mb_lowercase,$(notdir $(2)))))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_file,"Installs msxsub packages from slug into dir.","<dir> <msxhub-slug>")
#
# Operating System (minimal)
#
define mb_msxhub_get_dos1_boot
define mb_msxhub_get_msxdos1_boot
$(call mb_msxhub_file,$(1),MSXDOS1/1.03-2/get/MSXDOS1/MSXDOS.SYS)
$(call mb_msxhub_file,$(1),MSXDOS1/1.03-2/get/MSXDOS1/COMMAND.COM)
endef
define mb_msxhub_get_dos2_boot
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_msxdos1_boot,"Installs msxdos1 boot files into dir.","<dir>")
define mb_msxhub_get_msxdos2_boot
$(call mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/MSXDOS2.SYS)
$(call mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/COMMAND2.COM)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_msxdos2_boot,"Installs msxdos2 boot files into dir.","<dir>")
define mb_msxhub_get_nextor_boot
$(call mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/NEXTOR.SYS)
$(call mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/COMMAND2.COM)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_nextor_boot,"Installs nextor boot files into dir.","<dir>")
#
# Native OS utils
#
define mb_msxhub_get_dos2_utils
define mb_msxhub_get_msxdos2_utils
$(call mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/CHKDSK.COM)
$(call mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/DISKCOPY.COM)
$(call mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/FIXDISK.COM)
@ -42,6 +51,7 @@ define mb_msxhub_get_dos2_utils
$(call mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/XDIR.COM)
$(call mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/KMODE.COM)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_msxdos2_utils,"Installs msxdos2 util files into dir.","<dir>")
define mb_msxhub_get_nextor_utils
$(call mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/DELALL.COM)
$(call mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/DEVINFO.COM)
@ -57,6 +67,7 @@ define mb_msxhub_get_nextor_utils
$(call mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/NEXBOOT.COM)
$(call mb_msxhub_file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/CONCLUS.COM)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_nextor_utils,"Installs nextor util files into dir.","<dir>")
#
# Compilers
@ -67,6 +78,8 @@ define mb_msxhub_get_macro80
$(call mb_msxhub_file,$(1),MACRO80/2.0-1/get/MACRO80/LIB80.COM)
$(call mb_msxhub_file,$(1),MACRO80/2.0-1/get/MACRO80/M80.COM)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_macro80,"Installs macro80 package into dir.","<dir>")
define mb_msxhub_get_z80asmuk
$(call mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/BINTOASM.COM)
$(call mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/DUMP.COM)
@ -78,15 +91,20 @@ define mb_msxhub_get_z80asmuk
$(call mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/ZSMPP.COM)
$(call mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/HEXTOBIN.COM)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_z80asmuk,"Installs z80asmuk package into dir.","<dir>")
define mb_msxhub_get_wbass2
$(call mb_msxhub_file,$(1),WBASS2/2.0-1/get/WBASS2/zoekram.bin)
$(call mb_msxhub_file,$(1),WBASS2/2.0-1/get/WBASS2/wbass2.bin)
$(call mb_msxhub_file,$(1),WBASS2/2.0-1/get/WBASS2/wbass2.bas)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_wbass2,"Installs wbass2 package into dir.","<dir>")
define mb_msxhub_get_konpass
$(call mb_msxhub_file,$(1),KONPASS/1.3.0-1/get/KONPASS/KONPASS.COM)
$(call mb_msxhub_file,$(1),KONPASS/1.3.0-1/get/KONPASS/KONPASS.DAT)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_konpass,"Installs konpass package into dir.","<dir>")
#
# Compressors
@ -99,21 +117,32 @@ define mb_msxhub_get_pmarc
$(call mb_msxhub_file,$(1),PMARC/2.0-1/get/PMARC/PMSET.COM)
$(call mb_msxhub_file,$(1),PMARC/2.0-1/get/PMARC/PMSFX2.COM)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_pmarc,"Installs pmarc package into dir.","<dir>")
define mb_msxhub_get_lhpack
$(call mb_msxhub_file,$(1),LHPACK/1.00-1/get/LHPACK/lhpack.com)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_lhpack,"Installs lhpack package into dir.","<dir>")
define mb_msxhub_get_lhext
$(call mb_msxhub_file,$(1),LHEXT/1.34-2/get/LHEXT/lhext.com)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_lhext,"Installs lhext package into dir.","<dir>")
define mb_msxhub_get_gunzip
$(call mb_msxhub_file,$(1),GUNZIP/1.1-1/get/GUNZIP/gunzip.com)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_gunzip,"Installs gunzip package into dir.","<dir>")
define mb_msxhub_get_tunzip
$(call mb_msxhub_file,$(1),TUNZIP/0.91-1/get/TUNZIP/tunzip.com)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_tunzip,"Installs tunzip package into dir.","<dir>")
define mb_msxhub_get_popcom
$(call mb_msxhub_file,$(1),POPCOM/1.00-2/get/POPCOM/popcom.com)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_popcom,"Installs popcom package into dir.","<dir>")
#
# Tools
@ -121,24 +150,38 @@ endef
define mb_msxhub_get_make
$(call mb_msxhub_file,$(1),MAKE/2.00-1/get/MAKE/MAKE.COM)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_make,"Installs make package into dir.","<dir>")
define mb_msxhub_get_adir
$(call mb_msxhub_file,$(1),ADIR/1.3-1/get/ADIR/adir.com)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_adir,"Installs adir package into dir.","<dir>")
define mb_msxhub_get_turbo
$(call mb_msxhub_file,$(1),TURBO/2.1-1/get/TURBO/turbo.com)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_turbo,"Installs turbo package into dir.","<dir>")
define mb_msxhub_get_baskom
$(call mb_msxhub_file,$(1),BASKOM/1.0-1/get/BASKOM/baskom.com)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_baskom,"Installs baskom package into dir.","<dir>")
define mb_msxhub_get_binldr
$(call mb_msxhub_file,$(1),BINLDR/1.0.2-1/get/BINLDR/BINLDR.COM)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_binldr,"Installs binldr package into dir.","<dir>")
define mb_msxhub_get_dmphex
$(call mb_msxhub_file,$(1),DMPHEX/1.00-1/get/DMPHEX/dmphex.com)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_dmphex,"Installs dmphex package into dir.","<dir>")
define mb_msxhub_get_zd
$(call mb_msxhub_file,$(1),ZD/3.30-1/get/ZD/zd.com)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_zd,"Installs zd package into dir.","<dir>")
define mb_msxhub_get_msxdos2t
$(call mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/ADDAUX.COM)
$(call mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/BEEP.COM)
@ -164,6 +207,7 @@ define mb_msxhub_get_msxdos2t
$(call mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/VIEW.COM)
$(call mb_msxhub_file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/WC.COM)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_msxdos2t,"Installs msxdos2t package into dir.","<dir>")
#
# Graphics editors
@ -171,3 +215,4 @@ endef
define mb_msxhub_get_gfxage
$(call mb_msxhub_file,$(1),GFXAGE/0.99-1/get/GFXAGE/gfxage.com)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_gfxage,"Installs gfxage package into dir.","<dir>")

44
lib/make/mb_msxpipe.mk Normal file
View file

@ -0,0 +1,44 @@
# TODO: rename
define mb_autoexec_safe_cmd
$(call mb_autoexec_write_default,$(1),$(3))
$(call mb_autoexec_append_safe_cmd,$(1),$(2))
$(call mb_autoexec_append_exit,$(1))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_safe_cmd,"Runs openMSX and safely executes a command.","<dir> <cmd> [text-mode]")
define mb_autoexec_safe_test
$(call mb_autoexec_write_default,$(1),$(3))
$(call mb_autoexec_append_safe_test,$(1),$(2))
$(call mb_autoexec_append_exit,$(1))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_safe_test,"Runs openMSX and safely executes a test.","<dir> <cmd> [text-mode]")
define _mb_autoexec_show_gui
$(call mb_autoexec_write_default,$(1),$(2))
$(call mb_autoexec_append_stop_fail,$(1))
$(call mb_autoexec_append_show_gui,$(1))
$(if $(filter mouse,$(4)),$(call mb_autoexec_append_joyporta_mouse,$(1)))
$(call mb_autoexec_append_echo,$(1),Type shutdown to stop emulation)
$(if $(3),$(call mb_autoexec_append_echo,$(1),Running command: $(3)))
$(if $(3),$(call mb_autoexec_append_cmd,$(1),$(3)))
endef
define mb_autoexec_show_gui40
$(call _mb_autoexec_show_gui,$(1),40,$(2))
endef
define mb_autoexec_show_gui40_mouse
$(call _mb_autoexec_show_gui,$(1),40,$(2),mouse)
endef
define mb_autoexec_show_gui80
$(call _mb_autoexec_show_gui,$(1),80,$(2))
endef
define mb_autoexec_show_gui80_mouse
$(call _mb_autoexec_show_gui,$(1),80,$(2),mouse)
endef

View file

@ -1,7 +1,10 @@
# TODO: Convert pi MSX number data, the named pie slices to hyperdrive storage for distribution over red sea
MB_MSXROM_API ?= https://msxrom.distributedrebirth.love/calc-pi/v19.1
MB_MSXROM_CACHE ?= $(MB_CACHE)/msxbuild/msxrom
MB_MSXROM_API ?= https://msxrom.distributedrebirth.love/calc-pi/v19.1
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_MSXROM_API,"Resource identifier for msxrom pi pie named slices data.",$(MB_MSXROM_API))
MB_MSXROM_CACHE ?= $(MB_CACHE)/msxbuild/msxrom
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_MSXROM_CACHE,"Cache storage location.",$(MB_MSXROM_CACHE))
define _mb_msxrom_file_fetch
@echo === Fetch msxrom file
@ -13,6 +16,7 @@ define mb_msxrom_file
$(if $(wildcard $(MB_MSXROM_CACHE)/$(2)),,$(call _mb_msxrom_file_fetch,$(MB_MSXROM_API)/$(2)))
$(if $(wildcard $(1)/$(notdir $(2))),,$(call mb_copy,$(MB_MSXROM_CACHE)/$(2),$(1)/$(notdir $(2))))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_file,"Installs msxroms from slug into an subdir.","<dir> <msxrom-slug>")
define mb_msxrom_setup
$(if $(wildcard $(1)-omsx),,$(call mb_mkdir,$(1)-omsx))
@ -21,54 +25,67 @@ define mb_msxrom_setup
$(if $(wildcard $(1)-omsx/share/systemroms/machines),,$(call mb_mkdir,$(1)-omsx/share/systemroms/machines))
$(if $(wildcard $(1)-omsx/share/systemroms/extensions),,$(call mb_mkdir,$(1)-omsx/share/systemroms/extensions))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_setup,"Creates needed systemrom folders.","<dir>")
define mb_msxrom_extension_ide
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/ide240.dat)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_extension_ide,"Installs sunrise IDE classic rom.","<dir>")
define mb_msxrom_extension_ide_nextor
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/Nextor-2.1.1.SunriseIDE.ROM)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_extension_ide_nextor,"Installs sunrise IDE nextor rom.","<dir>")
define mb_msxrom_extension_scsi_novaxis
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/novaxis.rom)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_extension_scsi_novaxis,"Installs Gouda SCSI novaxis rom.","<dir>")
define mb_msxrom_extension_msxdos22
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/msxdos22.rom)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_extension_msxdos22,"Installs msxdos 2.20 rom.","<dir>")
define mb_msxrom_extension_rs232
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/rs232.rom)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_extension_rs232,"Installs rs232 rom.","<dir>")
define mb_msxrom_extension_fmpac
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/fmpac.rom)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_extension_fmpac,"Installs fmpac rom.","<dir>")
define mb_msxrom_extension_fmpac_en
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/fmpac_en.rom)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_extension_fmpac_en,"Installs fmpac english rom.","<dir>")
define mb_msxrom_extension_moonsound
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/yrw801.rom)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_extension_moonsound,"Installs moonsound rom.","<dir>")
define mb_msxrom_extension_basickun
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,machines/sanyo/phc-70fd2_basickun.rom)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_extension_basickun,"Installs basickun compiler rom.","<dir>")
define mb_msxrom_machine_Canon_V-20
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/canon/v-20_basic-bios1.rom)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_machine_Canon_V-20,"Installs machine roms.","<dir>")
define mb_msxrom_machine_Mitsubishi_ML-F80
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-f80_basic-bios1.rom)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_machine_Mitsubishi_ML-F80,"Installs machine roms.","<dir>")
define mb_msxrom_machine_Mitsubishi_ML-FX1
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-fx1_basic-bios1.rom)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_machine_Mitsubishi_ML-FX1,"Installs machine roms.","<dir>")
define mb_msxrom_machine_Mitsubishi_ML-G3_ES
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-g3_es_basic-bios2.rom)
@ -76,33 +93,39 @@ define mb_msxrom_machine_Mitsubishi_ML-G3_ES
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-g3_es_msx2sub.rom)
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-g3_es_rs232.rom)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_machine_Mitsubishi_ML-G3_ES,"Installs machine roms.","<dir>")
define mb_msxrom_machine_Philips_VG_8000
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/vg8000_basic-bios1.rom)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_machine_Philips_VG_8000,"Installs machine roms.","<dir>")
define mb_msxrom_machine_Philips_VG_8230
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/vg8230_basic-bios2.rom)
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/vg8230_disk.rom)
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/vg8230_msx2sub.rom)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_machine_Philips_VG_8230,"Installs machine roms.","<dir>")
define mb_msxrom_machine_Philips_NMS_8250
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/nms8250_basic-bios2.rom)
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/nms8250_msx2sub.rom)
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/nms8250_disk.rom)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_machine_Philips_NMS_8250,"Installs machine roms.","<dir>")
define mb_msxrom_machine_Toshiba_HX-21
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/toshiba/HX21-IC2.BIN)
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/toshiba/HX21-IC3.BIN)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_machine_Toshiba_HX-21,"Installs machine roms.","<dir>")
define mb_msxrom_machine_Yamaha_AX200
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/ax200_basic-bios1.rom)
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/ax200_arabic.rom)
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/ax200_music.rom)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_machine_Yamaha_AX200,"Installs machine roms.","<dir>")
define mb_msxrom_machine_Yamaha_YIS-503IIIR
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/yis503iii_basic-bios2.rom)
@ -110,6 +133,7 @@ define mb_msxrom_machine_Yamaha_YIS-503IIIR
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/yis503iii_cpm.rom)
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/yis503iii_net_2.rom)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_machine_Yamaha_YIS-503IIIR,"Installs machine roms.","<dir>")
define mb_msxrom_machine_Panasonic_FS-A1WSX
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_basic-bios2p.rom)
@ -120,6 +144,7 @@ define mb_msxrom_machine_Panasonic_FS-A1WSX
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_kanjifont.rom)
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_msx2psub.rom)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_machine_Panasonic_FS-A1WSX,"Installs machine roms.","<dir>")
define mb_msxrom_machine_Boosted_MSX2_EN
$(call mb_msxrom_machine_Philips_NMS_8250,$(1))
@ -127,10 +152,12 @@ define mb_msxrom_machine_Boosted_MSX2_EN
$(call mb_msxrom_extension_moonsound,$(1))
$(call mb_msxrom_extension_basickun,$(1))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_machine_Boosted_MSX2_EN,"Installs machine and extensions roms.","<dir>")
define mb_msxrom_machine_Boosted_MSX2+_JP
$(call mb_msxrom_machine_Panasonic_FS-A1WSX,$(1))
$(call mb_msxrom_extension_moonsound,$(1))
$(call mb_msxrom_extension_basickun,$(1))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxrom_machine_Boosted_MSX2+_JP,"Installs machine and extensions roms.","<dir>")

View file

@ -1,17 +1,41 @@
MB_OPENMSX_BOOT_TIMEOUT ?= 25
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_OPENMSX_BOOT_TIMEOUT,"Timeout in seconds to guard for boot failures.",$(MB_OPENMSX_BOOT_TIMEOUT))
MB_OPENMSX_BOOT_OS ?= nextor
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_OPENMSX_BOOT_OS,"The default OS to run$(MB_CHAR_COMMA) valid values are; nextor$(MB_CHAR_COMMA)msxdos1$(MB_CHAR_COMMA)msxdos2",$(MB_OPENMSX_BOOT_OS))
MB_OPENMSX_MACHINE ?= Philips_NMS_8250
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_OPENMSX_MACHINE,"The default MSX machine to use.",$(MB_OPENMSX_MACHINE))
MB_OPENMSX_MACHINE_RAM ?= ram1mb
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_OPENMSX_MACHINE_RAM,"Extra ram extension for machine allowed: off$(MB_CHAR_COMMA)ram16k$(MB_CHAR_COMMA)ram64k$(MB_CHAR_COMMA)ram512k$(MB_CHAR_COMMA)ram1mb$(MB_CHAR_COMMA)ram2mb$(MB_CHAR_COMMA)ram4mb",$(MB_OPENMSX_MACHINE_RAM))
MB_OPENMSX_SPEED ?= $(if $(findstring turboR,$(MB_OPENMSX_MACHINE)),100,333)
MB_OPENMSX_EXTS ?=
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_OPENMSX_SPEED,"The throttled MSX emulation speed.",$(MB_OPENMSX_SPEED))
MB_OPENMSX_ARGS ?=
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_OPENMSX_ARGS,"Extra arguments to invoke openMSX with.",$(MB_OPENMSX_ARGS))
MB_OPENMSX_HDD_SIZE ?= 4m
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_OPENMSX_HDD_SIZE,"The default fire-hdd disk image size.",$(MB_OPENMSX_HDD_SIZE))
MB_OPENMSX_SCALE_FACTOR ?= 3
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_OPENMSX_SCALE_FACTOR,"The gui scale factor to display the emulation.",$(MB_OPENMSX_SCALE_FACTOR))
MB_OPENMSX_THROTTLE ?= off
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_OPENMSX_THROTTLE,"An on/off flag to control throttling globally.",$(MB_OPENMSX_THROTTLE))
MB_OPENMSX_HEADLESS ?= on
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_OPENMSX_HEADLESS,"Controls if openMSX starts headless.",$(MB_OPENMSX_HEADLESS))
MB_OPENMSX_RENDERER ?= SDLGL-PP
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_OPENMSX_RENDERER,"The gui renderer used to display the window head with.",$(MB_OPENMSX_RENDERER))
MB_OPENMSX_VDP_FG ?= 151
MB_OPENMSX_VDP_BG ?= 000
define mb_openmsx_setup
$(if $(wildcard $(1)-omsx),,$(call mb_mkdir,$(1)-omsx))
$(if $(wildcard $(1)-omsx/stdio.xml),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/stdio.xml,$(1)-omsx))
@ -30,6 +54,7 @@ define mb_openmsx_setup
$(call mb_msxrom_extension_ide_nextor,$(1))
$(call mb_msxrom_machine_$(2),$(1))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_openmsx_setup,"Setup openMSX local build home folder for machine.","<dir> <machine>")
define _mb_openmsx_run
@echo === openMSX Start for $@
@ -52,8 +77,13 @@ define _mb_openmsx_run
-machine $(2) \
-ext slotexpander \
-ext fire-hdd \
$(if $(3),$(3),-ext ram4mb) \
$(MB_OPENMSX_EXTS) \
$(if $(filter ram16k,$(3)),-ext ram16k) \
$(if $(filter ram64k,$(3)),-ext ram64k) \
$(if $(filter ram512k,$(3)),-ext ram512k) \
$(if $(filter ram1mb,$(3)),-ext ram1mb) \
$(if $(filter ram4mb,$(3)),-ext ram2mb) \
$(if $(filter ram4mb,$(3)),-ext ram4mb) \
$(MB_OPENMSX_ARGS) \
-control stdio < $(1)-omsx/stdio.xml
@echo === openMSX Done for $@
endef
@ -69,5 +99,6 @@ define mb_openmsx_dosctl
$(if $(wildcard $(1)/utils),$(call _mb_openmsx_dosctl_bat,$(1)/utils),$(call _mb_openmsx_dosctl_bat,$(1)))
$(if $(wildcard $(1)/omsxctl.com),,$(call mb_msxhub_file,$(1),OMSXCTL/1.0-1/get/OMSXCTL/omsxctl.com))
$(if $(wildcard $(1)/command.com),,$(if $(wildcard $(1)/command2.com),,$(call mb_msxhub_get_$(MB_OPENMSX_BOOT_OS)_boot,$(1))))
$(call _mb_openmsx_run,$(1),$(if $(2),$(2),$(MB_OPENMSX_MACHINE)),$(3))
$(call _mb_openmsx_run,$(1),$(if $(2),$(2),$(MB_OPENMSX_MACHINE)),$(if $(3),$(3),$(MB_OPENMSX_MACHINE_RAM)))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_openmsx_dosctl,"Starts openMSX with dos controller.","<dir> [machine] [mem-ext]")

View file

@ -1,55 +1,80 @@
MB_SDCC_FLAG_CPU ?= -mz80
MB_SDCC_FLAG_LD ?= --nostdinc
MB_SDCC_ASZ80_FLAGS ?= -g -l -c -o
MB_SDCC_CC_FLAGS ?=
MB_SDCC_AR_FLAGS ?= -rc
MB_SDCC_CC_CMD ?= $(PATH_SDCC)/sdcc
MB_SDCC_ASZ80_CMD ?= $(PATH_SDCC)/sdasz80
MB_SDCC_AR_CMD ?= $(PATH_SDCC)/sdar
MB_SDCC_OBJCOPY_CMD ?= $(PATH_SDCC)/sdobjcopy
MB_SDCC_FLAG_CPU ?= -mz80
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_SDCC_FLAG_CPU,"The SDCC cpu target option.",$(MB_SDCC_FLAG_CPU))
MB_SDCC_FLAG_LD ?= --nostdinc
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_SDCC_FLAG_LD,"The SDCC linker option.",$(MB_SDCC_FLAG_LD))
MB_SDCC_ASZ80_FLAGS ?= -g -l -c -o
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_SDCC_ASZ80_FLAGS,"The SDCC z80 asm compiler flags.",$(MB_SDCC_ASZ80_FLAGS))
MB_SDCC_CC_FLAGS ?=
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_SDCC_CC_FLAGS,"The SDCC C compiler flags.",$(MB_SDCC_CC_FLAGS))
MB_SDCC_AR_FLAGS ?= -rc
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_SDCC_AR_FLAGS,"The SDCC module archive flags.",$(MB_SDCC_AR_FLAGS))
# TODO: Add C + mixed support;
#$(MB_SDASM) -I$(MB_LIBASM_SRC)/include
#-l$(LIBASM_LINK)
define mb_sdcc_compile_asm
@echo === SDCC Compile module asm for $(2)
$(MB_SDCC_ASZ80_CMD) $(MB_SDCC_ASZ80_FLAGS) $(2) $(1)
$(PATH_SDCC)/sdasz80 $(MB_SDCC_ASZ80_FLAGS) $(2) $(1)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_sdcc_compile_asm,"Compiles asm source code.","<in> <out>")
define mb_sdcc_link_asm_lib
@echo === SDCC Link module asm lib for $(2)
$(MB_SDCC_AR_CMD) $(MB_SDCC_AR_FLAGS) $(1) $(2)
$(PATH_SDCC)/sdar $(MB_SDCC_AR_FLAGS) $(1) $(2)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_sdcc_link_asm_lib,"Link asm lib module.","<in> <out>")
define mb_sdcc_link_asm
@echo === SDCC Link asm module at $(3) for $(2)
$(MB_SDCC_CC_CMD) $(MB_SDCC_FLAG_CPU) $(MB_SDCC_CC_FLAGS) --no-std-crt0 --code-loc $(3) -o $(2) $(1)
$(PATH_SDCC)/sdcc $(MB_SDCC_FLAG_CPU) $(MB_SDCC_CC_FLAGS) --no-std-crt0 --code-loc $(3) -o $(2) $(1)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_sdcc_link_asm,"Links asm to custom code location.","<in> <out> <code-loc>")
define mb_sdcc_link_asm_0000
$(call mb_sdcc_link_asm,$(1),$(2),0x0000)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_sdcc_link_asm_0000,"Links asm to 0x0000.","<in> <out>")
define mb_sdcc_link_asm_0100
$(call mb_sdcc_link_asm,$(1),$(2),0x0100)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_sdcc_link_asm_0100,"Links asm to 0x0100.","<in> <out>")
define mb_sdcc_link_asm_1000
$(call mb_sdcc_link_asm,$(1),$(2),0x1000)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_sdcc_link_asm_1000,"Links asm to 0x1000.","<in> <out>")
define mb_sdcc_link_asm_4000
$(call mb_sdcc_link_asm,$(1),$(2),0x4000)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_sdcc_link_asm_4000,"Links asm to 0x4000.","<in> <out>")
define mb_sdcc_link_asm_8000
$(call mb_sdcc_link_asm,$(1),$(2),0x8000)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_sdcc_link_asm_8000,"Links asm to 0x8000.","<in> <out>")
define mb_sdcc_link_asm_C000
$(call mb_sdcc_link_asm,$(1),$(2),0xC000)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_sdcc_link_asm_C000,"Links asm to 0xC000.","<in> <out>")
define mb_sdcc_link_asm_bdos
$(call mb_sdcc_link_asm_0100,$(1),$(2))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_sdcc_link_asm_bdos,"Links asm to BDOS.","<in> <out>")
define mb_sdcc_hex2bin
@echo === SDCC hex2bin for $(2)
$(MB_SDCC_OBJCOPY_CMD) -I ihex --output-target=binary $(1) $(2)
$(PATH_SDCC)/sdobjcopy -I ihex --output-target=binary $(1) $(2)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_sdcc_hex2bin,"Converts an hex file to binary.","<in> <out>")

View file

@ -8,13 +8,16 @@ PATH_OPENMSX ?= /usr/bin
PATH_MSXBUILD ?= $(dir $(lastword $(MAKEFILE_LIST)))../..
PATH_MSXBUILD_REAL := $(if $(realpath $(PATH_MSXBUILD)),$(realpath $(PATH_MSXBUILD)),$(PATH_MSXBUILD))
# Fill other defaults
MB_FLIGHT_SCREEN ?= off
MB_FLIGHT_VIDEO ?= off
MB_FLIGHT_PREFIX ?= msxbuild
MB_FLIGHT_SEPERATOR ?= -
MB_FLIGHT_RECORD_FLAG ?= -doublesize
MB_FLIGHT_VIDEO_NAME ?= flight-video
# Include extra features
include $(PATH_MSXBUILD)/lib/make/mb_doc.mk
include $(PATH_MSXBUILD)/lib/make/mb_sdcc.mk
include $(PATH_MSXBUILD)/lib/make/mb_flight.mk
include $(PATH_MSXBUILD)/lib/make/mb_msxrom.mk
include $(PATH_MSXBUILD)/lib/make/mb_msxhub.mk
include $(PATH_MSXBUILD)/lib/make/mb_msxpipe.mk
include $(PATH_MSXBUILD)/lib/make/mb_openmsx.mk
include $(PATH_MSXBUILD)/lib/make/mb_autoexec.mk
# OS cmds
ifeq ($(OS),Windows_NT)
@ -38,8 +41,16 @@ endif
# Remove space after separator
MB_PSEP = $(strip $(MB_SEP))
# Needed for comma in call arguments (like for l80.com)
MB_COMMA:=,
# Special chars call arguments (like for l80.com)
MB_CHAR_COMMA := ","
MB_CHAR_GT := ">"
MB_CHAR_LT := "<"
MB_CHAR_CDATA_START := "<![CDATA["
MB_CHAR_CDATA_END := "]]>"
define mb_rwildcard
$(foreach d,$(wildcard $1*),$(call mb_rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))
endef
# Simple inline ascii lowercase
define _mb_lowercase
@ -50,35 +61,35 @@ define mb_clean
@echo === Cleaning build folder
$(if $(wildcard $(1)),$(MB_RMDIR) $(1))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_clean,"Removed the full folder.","<dir>")
define mb_mkdir
$(MB_MKDIR) $(1)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_mkdir,"Creates an folder.","<dir>")
define mb_delete
$(if $(wildcard $(1)),$(MB_RM) $(1))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_delete,"Deletes an file.","<file>")
define mb_copy
$(MB_COPY) $(1) $(2)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_copy,"Copy an file.","<in> <out>")
define mb_unix2dos
unix2dos -q -n $(1) $(2)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_unix2dos,"Converts an unix file to dos.","<in> <out>")
define mb_dos2unix
dos2unix -q -n $(1) $(2)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_dos2unix,"Converts an dos file to unix.","<in> <out>")
define mb_create_dist
@echo === Creating distribution archive
tar -czf $(2) -C $(1) `ls $(1)`
endef
define mb_create_flight_video
@echo === Indexing flight videos
ls -1tr $(1)/*-omsx/videos/*.avi | awk -F "$(1)/" -v s="file '" -v e="'" '{print s$$2e}' > $(1)/$(MB_FLIGHT_VIDEO_NAME).lst
ffmpeg -v quiet -y -f concat -i $(1)/$(MB_FLIGHT_VIDEO_NAME).lst -c copy $(1)/$(MB_FLIGHT_VIDEO_NAME).avi
@echo === Flight video completed
endef
# Include extra features
include $(PATH_MSXBUILD)/lib/make/mb_sdcc.mk
include $(PATH_MSXBUILD)/lib/make/mb_msxrom.mk
include $(PATH_MSXBUILD)/lib/make/mb_msxhub.mk
include $(PATH_MSXBUILD)/lib/make/mb_openmsx.mk
include $(PATH_MSXBUILD)/lib/make/mb_autoexec.mk
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_create_dist,"Create an distribution archive.","<dir> <artifact>")

19
src/0module.mk Normal file
View file

@ -0,0 +1,19 @@
help:
$(call mb_doc_show_help@project)
.PHONY: help
help@target:
$(call mb_doc_show_help@target)
MB_DOC_HELP_PROJECT += $(call mb_doc_project,help@target)
.PHONY: help@target
help@function:
$(call mb_doc_show_help@function)
MB_DOC_HELP_PROJECT += $(call mb_doc_project,help@function)
.PHONY: help@function
help@variable:
$(call mb_doc_show_help@variable)
MB_DOC_HELP_PROJECT += $(call mb_doc_project,help@variable)
.PHONY: help@variable

3
src/0module/0module.mk Normal file
View file

@ -0,0 +1,3 @@
$(PATH_BIN):
$(call mb_mkdir,$(PATH_BIN))

View file

@ -0,0 +1,15 @@
ASSERT_ALL_DEPS := \
bin/ahello-m80-test/@assert \
bin/ahello-sdcc-test/@assert \
bin/dist-qa-dos1/@assert \
bin/dist-qa-dos2/@assert \
bin/dist-qa-msx1/@assert \
bin/dist-qa-msxhub/@assert \
bin/make-on-msx/@assert
$(PATH_BIN)/@assert-all: | $(ASSERT_ALL_DEPS)
@echo === All assertions completed
$(if $(filter on,$(MB_FLIGHT_VIDEO)),$(call mb_flight_video_merge,$(PATH_BIN)))
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(PATH_BIN)/@assert-all,"Asserts all assertions tests.")
.PHONY: $(PATH_BIN)/@assert-all

View file

@ -0,0 +1,5 @@
$(PATH_BIN)/@clean:
$(call mb_clean,$(PATH_BIN))
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(PATH_BIN)/@clean,"Clean's the build folder.")
.PHONY: $(PATH_BIN)/@clean

View file

@ -0,0 +1,5 @@
$(PATH_BIN)/@prepare: | $(PATH_BIN)
@echo === Prepare $(PATH_BIN)
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(PATH_BIN)/@prepare,"Virtual prepare phase of binary folder.")
.PHONY: $(PATH_BIN)/@prepare

View file

@ -3,22 +3,22 @@ AHELLO_M80_TEST_MOD := ahello-m80-test
AHELLO_M80_TEST_SRC := $(PATH_SRC)/$(AHELLO_M80_TEST_MOD)
AHELLO_M80_TEST_BIN := $(PATH_BIN)/$(AHELLO_M80_TEST_MOD)
$(AHELLO_M80_TEST_BIN):
$(AHELLO_M80_TEST_BIN): | $(PATH_BIN)/@prepare
$(call mb_mkdir,$(AHELLO_M80_TEST_BIN))
$(AHELLO_M80_TEST_BIN)/ahello.com: $(AHELLO_M80_BIN)/ahello.com | $(AHELLO_M80_TEST_BIN)
$(call mb_copy,$<,$@)
BUILD_HELP += \\n\\t* $(AHELLO_M80_TEST_BIN)/@run
.PHONY: $(AHELLO_M80_TEST_BIN)/@run
$(AHELLO_M80_TEST_BIN)/@run: | $(AHELLO_M80_TEST_BIN)/ahello.com
$(call mb_autoexec_show_gui80,$(AHELLO_M80_TEST_BIN))
$(call mb_openmsx_dosctl,$(AHELLO_M80_TEST_BIN))
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(AHELLO_M80_TEST_BIN)/@run,"Run binaries from ahello-m80.")
.PHONY: $(AHELLO_M80_TEST_BIN)/@run
BUILD_HELP += \\n\\t* $(AHELLO_M80_TEST_BIN)/@assert
.PHONY: $(AHELLO_M80_TEST_BIN)/@assert
$(AHELLO_M80_TEST_BIN)/@assert: | $(AHELLO_M80_TEST_BIN)/ahello.com
$(call mb_delete,$(AHELLO_M80_TEST_BIN)/ahello.out)
$(call mb_autoexec_safe_test,$(AHELLO_M80_TEST_BIN),ahello > ahello.out)
$(call mb_openmsx_dosctl,$(AHELLO_M80_TEST_BIN))
grep "M80: Hello world..." $(AHELLO_M80_TEST_BIN)/ahello.out
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(AHELLO_M80_TEST_BIN)/@assert,"Assert binaries from ahello-m80.")
.PHONY: $(AHELLO_M80_TEST_BIN)/@assert

View file

@ -3,7 +3,7 @@ AHELLO_M80_MOD := ahello-m80
AHELLO_M80_SRC := $(PATH_SRC)/$(AHELLO_M80_MOD)
AHELLO_M80_BIN := $(PATH_BIN)/$(AHELLO_M80_MOD)
$(AHELLO_M80_BIN):
$(AHELLO_M80_BIN): | $(PATH_BIN)/@prepare
$(call mb_mkdir,$(AHELLO_M80_BIN))
$(call mb_mkdir,$(AHELLO_M80_BIN)/utils)
$(call mb_msxhub_get_macro80,$(AHELLO_M80_BIN)/utils)
@ -17,16 +17,16 @@ $(AHELLO_M80_BIN)/ahello.rel: $(AHELLO_M80_BIN)/ahello.mac
$(call mb_openmsx_dosctl,$(AHELLO_M80_BIN))
$(AHELLO_M80_BIN)/ahello.hex: $(AHELLO_M80_BIN)/ahello.rel
$(call mb_autoexec_safe_cmd,$(AHELLO_M80_BIN),l80 ahello$(MB_COMMA)ahello/N/X/Y/E)
$(call mb_autoexec_safe_cmd,$(AHELLO_M80_BIN),l80 ahello$(MB_CHAR_COMMA)ahello/N/X/Y/E)
$(call mb_openmsx_dosctl,$(AHELLO_M80_BIN))
BUILD_HELP += \\n\\t* $(AHELLO_M80_BIN)/ahello.com
$(AHELLO_M80_BIN)/ahello.com: | $(AHELLO_M80_BIN)/ahello.hex
$(call mb_autoexec_safe_cmd,$(AHELLO_M80_BIN),hextocom ahello)
$(call mb_openmsx_dosctl,$(AHELLO_M80_BIN))
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(AHELLO_M80_BIN)/ahello.com,"Compiles hello world with macro80.")
BUILD_HELP += \\n\\t* $(AHELLO_M80_BIN)/@run
.PHONY: $(AHELLO_M80_BIN)/@run
$(AHELLO_M80_BIN)/@run: | $(AHELLO_M80_BIN)/ahello.com
$(call mb_autoexec_show_gui80,$(AHELLO_M80_BIN))
$(call mb_openmsx_dosctl,$(AHELLO_M80_BIN))
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(AHELLO_M80_BIN)/@run,"Run the compiled hello world from macro80.")
.PHONY: $(AHELLO_M80_BIN)/@run

View file

@ -3,22 +3,22 @@ AHELLO_SDCC_TEST_MOD := ahello-sdcc-test
AHELLO_SDCC_TEST_SRC := $(PATH_SRC)/$(AHELLO_SDCC_TEST_MOD)
AHELLO_SDCC_TEST_BIN := $(PATH_BIN)/$(AHELLO_SDCC_TEST_MOD)
$(AHELLO_SDCC_TEST_BIN):
$(AHELLO_SDCC_TEST_BIN): | $(PATH_BIN)/@prepare
$(call mb_mkdir,$(AHELLO_SDCC_TEST_BIN))
$(AHELLO_SDCC_TEST_BIN)/ahello.com: $(AHELLO_SDCC_BIN)/ahello.com | $(AHELLO_SDCC_TEST_BIN)
$(call mb_copy,$<,$@)
BUILD_HELP += \\n\\t* $(AHELLO_SDCC_TEST_BIN)/@run
.PHONY: $(AHELLO_SDCC_TEST_BIN)/@run
$(AHELLO_SDCC_TEST_BIN)/@run: | $(AHELLO_SDCC_TEST_BIN)/ahello.com
$(call mb_autoexec_show_gui80,$(AHELLO_SDCC_TEST_BIN))
$(call mb_openmsx_dosctl,$(AHELLO_SDCC_TEST_BIN))
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(AHELLO_SDCC_TEST_BIN)/@run,"Run binaries from ahello-sdcc.")
.PHONY: $(AHELLO_SDCC_TEST_BIN)/@run
BUILD_HELP += \\n\\t* $(AHELLO_SDCC_TEST_BIN)/@assert
.PHONY: $(AHELLO_M80_TEST_BIN)/@assert
$(AHELLO_SDCC_TEST_BIN)/@assert: | $(AHELLO_SDCC_TEST_BIN)/ahello.com
$(call mb_delete,$(AHELLO_SDCC_TEST_BIN)/ahello.out)
$(call mb_autoexec_safe_test,$(AHELLO_SDCC_TEST_BIN),ahello > ahello.out)
$(call mb_openmsx_dosctl,$(AHELLO_SDCC_TEST_BIN))
grep "SDCC: Hello world..." $(AHELLO_SDCC_TEST_BIN)/ahello.out
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(AHELLO_SDCC_TEST_BIN)/@assert,"Assert binaries from ahello-sdcc.")
.PHONY: $(AHELLO_SDCC_TEST_BIN)/@assert

View file

@ -3,7 +3,7 @@ AHELLO_SDCC_MOD := ahello-sdcc
AHELLO_SDCC_SRC := $(PATH_SRC)/$(AHELLO_SDCC_MOD)
AHELLO_SDCC_BIN := $(PATH_BIN)/$(AHELLO_SDCC_MOD)
$(AHELLO_SDCC_BIN):
$(AHELLO_SDCC_BIN): | $(PATH_BIN)/@prepare
$(call mb_mkdir,$(AHELLO_SDCC_BIN))
$(AHELLO_SDCC_BIN)/%.rel: $(AHELLO_SDCC_SRC)/%.asm | $(AHELLO_SDCC_BIN)
@ -12,12 +12,12 @@ $(AHELLO_SDCC_BIN)/%.rel: $(AHELLO_SDCC_SRC)/%.asm | $(AHELLO_SDCC_BIN)
$(AHELLO_SDCC_BIN)/ahello.hex: $(AHELLO_SDCC_BIN)/ahello.rel
$(call mb_sdcc_link_asm_bdos,$<,$@)
BUILD_HELP += \\n\\t* $(AHELLO_SDCC_BIN)/ahello.com
$(AHELLO_SDCC_BIN)/ahello.com: $(AHELLO_SDCC_BIN)/ahello.hex
$(call mb_sdcc_hex2bin,$<,$@)
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(AHELLO_SDCC_BIN)/ahello.com,"Compiles hello world with sdcc.")
BUILD_HELP += \\n\\t* $(AHELLO_SDCC_BIN)/@run
.PHONY: $(AHELLO_SDCC_BIN)/@run
$(AHELLO_SDCC_BIN)/@run: | $(AHELLO_SDCC_BIN)/ahello.com
$(call mb_autoexec_show_gui80,$(AHELLO_SDCC_BIN))
$(call mb_openmsx_dosctl,$(AHELLO_SDCC_BIN))
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(AHELLO_SDCC_BIN)/@run,"Run the compiled hello world from sdcc.")
.PHONY: $(AHELLO_SDCC_BIN)/@run

View file

@ -1,15 +0,0 @@
ASSERT_ALL_DEPS := \
bin/ahello-m80-test/@assert \
bin/ahello-sdcc-test/@assert \
bin/dist-qa-dos1/@assert \
bin/dist-qa-dos2/@assert \
bin/dist-qa-msx1/@assert \
bin/dist-qa-msxhub/@assert \
bin/make-on-msx/@assert
BUILD_HELP += \\n\\t* assert-all \(Run all assertion tests\)
.PHONY: assert-all
assert-all: | $(ASSERT_ALL_DEPS)
@echo === All assertions completed
$(if $(filter on,$(MB_FLIGHT_VIDEO)),$(call mb_create_flight_video,$(PATH_BIN)))

View file

@ -4,25 +4,24 @@ DIST_QA_DOS1_SRC := $(PATH_SRC)/$(DIST_QA_DOS1_MOD)
DIST_QA_DOS1_BIN := $(PATH_BIN)/$(DIST_QA_DOS1_MOD)
DIST_QA_DOS1_DEPS := $(subst dist,$(DIST_QA_DOS1_MOD),$(DIST_DEPS))
$(DIST_QA_DOS1_BIN):
$(DIST_QA_DOS1_BIN): | $(PATH_BIN)/@prepare
$(call mb_mkdir,$(DIST_QA_DOS1_BIN))
$(call mb_msxhub_get_dos1_boot,$(DIST_QA_DOS1_BIN))
$(call mb_msxhub_get_msxdos1_boot,$(DIST_QA_DOS1_BIN))
$(DIST_QA_DOS1_BIN)/%: $(DIST_BIN)/% | $(DIST_QA_DOS1_BIN) $(DIST_DEPS)
$(call mb_copy,$<,$@)
BUILD_HELP += \\n\\t* $(DIST_QA_DOS1_BIN)/@run
.PHONY: $(DIST_QA_DOS1_BIN)/@run
$(DIST_QA_DOS1_BIN)/@run: | $(DIST_QA_DOS1_DEPS)
$(call mb_autoexec_show_gui80,$(DIST_QA_DOS1_BIN))
$(call mb_openmsx_dosctl,$(DIST_QA_DOS1_BIN))
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(DIST_QA_DOS1_BIN)/@run,"Run binaries on msxdos1 machine.")
.PHONY: $(DIST_QA_DOS1_BIN)/@run
BUILD_HELP += \\n\\t* $(DIST_QA_DOS1_BIN)/@assert
.PHONY: $(DIST_QA_DOS1_BIN)/@assert
$(DIST_QA_DOS1_BIN)/@assert: | $(DIST_QA_DOS1_DEPS)
$(call mb_autoexec_write_default,$(DIST_QA_DOS1_BIN))
$(call mb_autoexec_append_safe_test,$(DIST_QA_DOS1_BIN),ahello1)
$(call mb_autoexec_append_safe_test,$(DIST_QA_DOS1_BIN),ahello2)
$(call mb_autoexec_append_exit,$(DIST_QA_DOS1_BIN))
$(call mb_openmsx_dosctl,$(DIST_QA_DOS1_BIN))
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(DIST_QA_DOS1_BIN)/@assert,"Assert binaries on msxdos1.")
.PHONY: $(DIST_QA_DOS1_BIN)/@assert

View file

@ -4,21 +4,19 @@ DIST_QA_DOS2_SRC := $(PATH_SRC)/$(DIST_QA_DOS2_MOD)
DIST_QA_DOS2_BIN := $(PATH_BIN)/$(DIST_QA_DOS2_MOD)
DIST_QA_DOS2_DEPS := $(subst dist,$(DIST_QA_DOS2_MOD),$(DIST_DEPS))
$(DIST_QA_DOS2_BIN):
$(DIST_QA_DOS2_BIN): | $(PATH_BIN)/@prepare
$(call mb_mkdir,$(DIST_QA_DOS2_BIN))
$(call mb_msxhub_get_dos2_boot,$(DIST_QA_DOS2_BIN))
$(call mb_msxhub_get_msxdos2_boot,$(DIST_QA_DOS2_BIN))
$(DIST_QA_DOS2_BIN)/%: $(DIST_BIN)/% | $(DIST_QA_DOS2_BIN) $(DIST_DEPS)
$(call mb_copy,$<,$@)
BUILD_HELP += \\n\\t* $(DIST_QA_DOS2_BIN)/@run
.PHONY: $(DIST_QA_DOS2_BIN)/@run
$(DIST_QA_DOS2_BIN)/@run: | $(DIST_QA_DOS2_DEPS)
$(call mb_autoexec_show_gui80,$(DIST_QA_DOS2_BIN))
$(call mb_openmsx_dosctl,$(DIST_QA_DOS2_BIN))
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(DIST_QA_DOS2_BIN)/@run,"Run binaries on msxdos2 machine.")
.PHONY: $(DIST_QA_DOS2_BIN)/@run
BUILD_HELP += \\n\\t* $(DIST_QA_DOS2_BIN)/@assert
.PHONY: $(DIST_QA_DOS2_BIN)/@assert
$(DIST_QA_DOS2_BIN)/@assert: | $(DIST_QA_DOS2_DEPS)
$(call mb_delete,$(DIST_QA_DOS2_BIN)/ahello1.out)
$(call mb_delete,$(DIST_QA_DOS2_BIN)/ahello2.out)
@ -29,3 +27,5 @@ $(DIST_QA_DOS2_BIN)/@assert: | $(DIST_QA_DOS2_DEPS)
$(call mb_openmsx_dosctl,$(DIST_QA_DOS2_BIN))
grep "M80: Hello world..." $(DIST_QA_DOS2_BIN)/ahello1.out
grep "SDCC: Hello world..." $(DIST_QA_DOS2_BIN)/ahello2.out
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(DIST_QA_DOS2_BIN)/@assert,"Assert binaries on msxdos2.")
.PHONY: $(DIST_QA_DOS2_BIN)/@assert

View file

@ -4,21 +4,20 @@ DIST_QA_MSX1_MOD := dist-qa-msx1
DIST_QA_MSX1_SRC := $(PATH_SRC)/$(DIST_QA_MSX1_MOD)
DIST_QA_MSX1_BIN := $(PATH_BIN)/$(DIST_QA_MSX1_MOD)
DIST_QA_MSX1_DEPS := $(subst dist,$(DIST_QA_MSX1_MOD),$(DIST_DEPS))
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,DIST_QA_MSX1_MACHINE,"The machine to run the $(DIST_QA_MSX1_MOD) module.",$(DIST_QA_MSX1_MACHINE))
$(DIST_QA_MSX1_BIN):
$(DIST_QA_MSX1_BIN): | $(PATH_BIN)/@prepare
$(call mb_mkdir,$(DIST_QA_MSX1_BIN))
$(DIST_QA_MSX1_BIN)/%: $(DIST_BIN)/% | $(DIST_QA_MSX1_BIN) $(DIST_DEPS)
$(call mb_copy,$<,$@)
BUILD_HELP += \\n\\t* $(DIST_QA_MSX1_BIN)/@run
.PHONY: $(DIST_QA_MSX1_BIN)/@run
$(DIST_QA_MSX1_BIN)/@run: | $(DIST_QA_MSX1_DEPS)
$(call mb_autoexec_show_gui40,$(DIST_QA_MSX1_BIN))
$(call mb_openmsx_dosctl,$(DIST_QA_MSX1_BIN),$(DIST_QA_MSX1_MACHINE))
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(DIST_QA_MSX1_BIN)/@run,"Run binaries on MSX1 machine.")
.PHONY: $(DIST_QA_MSX1_BIN)/@run
BUILD_HELP += \\n\\t* $(DIST_QA_MSX1_BIN)/@assert
.PHONY: $(DIST_QA_MSX1_BIN)/@assert
$(DIST_QA_MSX1_BIN)/@assert: | $(DIST_QA_MSX1_DEPS)
$(call mb_delete,$(DIST_QA_MSX1_BIN)/ahello1.out)
$(call mb_delete,$(DIST_QA_MSX1_BIN)/ahello2.out)
@ -29,3 +28,5 @@ $(DIST_QA_MSX1_BIN)/@assert: | $(DIST_QA_MSX1_DEPS)
$(call mb_openmsx_dosctl,$(DIST_QA_MSX1_BIN),$(DIST_QA_MSX1_MACHINE))
grep "M80: Hello world..." $(DIST_QA_MSX1_BIN)/ahello1.out
grep "SDCC: Hello world..." $(DIST_QA_MSX1_BIN)/ahello2.out
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(DIST_QA_MSX1_BIN)/@assert,"Assert binaries on MSX1 machine.")
.PHONY: $(DIST_QA_MSX1_BIN)/@assert

View file

@ -4,11 +4,12 @@ DIST_QA_MSXHUB_MOD := dist-qa-msxhub
DIST_QA_MSXHUB_SRC := $(PATH_SRC)/$(DIST_QA_MSXHUB_MOD)
DIST_QA_MSXHUB_BIN := $(PATH_BIN)/$(DIST_QA_MSXHUB_MOD)
DIST_QA_MSXHUB_DEPS := $(subst dist,$(DIST_QA_MSXHUB_MOD),$(DIST_DEPS))
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,DIST_QA_MSXHUB_MACHINE,"The machine to run the $(DIST_QA_MSXHUB_MOD) module.",$(DIST_QA_MSXHUB_MACHINE))
$(DIST_QA_MSXHUB_BIN):
$(DIST_QA_MSXHUB_BIN): | $(PATH_BIN)/@prepare
$(call mb_mkdir,$(DIST_QA_MSXHUB_BIN))
$(call mb_mkdir,$(DIST_QA_MSXHUB_BIN)/utils)
$(call mb_msxhub_get_dos2_utils,$(DIST_QA_MSXHUB_BIN)/utils)
$(call mb_msxhub_get_msxdos2_utils,$(DIST_QA_MSXHUB_BIN)/utils)
$(call mb_msxhub_get_nextor_utils,$(DIST_QA_MSXHUB_BIN)/utils)
$(call mb_msxhub_get_macro80,$(DIST_QA_MSXHUB_BIN)/utils)
$(call mb_msxhub_get_z80asmuk,$(DIST_QA_MSXHUB_BIN)/utils)
@ -33,14 +34,12 @@ $(DIST_QA_MSXHUB_BIN):
$(DIST_QA_MSXHUB_BIN)/%: $(DIST_BIN)/% | $(DIST_QA_MSXHUB_BIN) $(DIST_DEPS)
$(call mb_copy,$<,$@)
BUILD_HELP += \\n\\t* $(DIST_QA_MSXHUB_BIN)/@run
.PHONY: $(DIST_QA_MSXHUB_BIN)/@run
$(DIST_QA_MSXHUB_BIN)/@run: | $(DIST_QA_MSXHUB_DEPS)
$(call mb_autoexec_show_gui80,$(DIST_QA_MSXHUB_BIN))
$(call mb_openmsx_dosctl,$(DIST_QA_MSXHUB_BIN),$(DIST_QA_MSXHUB_MACHINE))
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(DIST_QA_MSXHUB_BIN)/@run,"Run the dist with all msxhub packages.")
.PHONY: $(DIST_QA_MSXHUB_BIN)/@run
BUILD_HELP += \\n\\t* $(DIST_QA_MSXHUB_BIN)/@assert
.PHONY: $(DIST_QA_MSXHUB_BIN)/@assert
$(DIST_QA_MSXHUB_BIN)/@assert: | $(DIST_QA_MSXHUB_DEPS)
$(call mb_delete,$(DIST_QA_MSXHUB_BIN)/ahello1.out)
$(call mb_delete,$(DIST_QA_MSXHUB_BIN)/ahello2.out)
@ -55,3 +54,5 @@ $(DIST_QA_MSXHUB_BIN)/@assert: | $(DIST_QA_MSXHUB_DEPS)
grep "SDCC: Hello world..." $(DIST_QA_MSXHUB_BIN)/ahello2.out
grep "KONPASS COM" $(DIST_QA_MSXHUB_BIN)/utils.out
grep "MAKE COM" $(DIST_QA_MSXHUB_BIN)/utils.out
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(DIST_QA_MSXHUB_BIN)/@assert,"Asserts that all dist artifacts execute results.")
.PHONY: $(DIST_QA_MSXHUB_BIN)/@assert

8
src/dist/0module.mk vendored
View file

@ -5,7 +5,7 @@ DIST_BIN := $(PATH_BIN)/$(DIST_MOD)
DIST_OUT := $(PATH_BIN)/$(DIST_MOD).tar.gz
DIST_DEPS := $(DIST_BIN)/readme.txt $(DIST_BIN)/ahello1.com $(DIST_BIN)/ahello2.com
$(DIST_BIN):
$(DIST_BIN): | $(PATH_BIN)/@prepare
$(call mb_mkdir,$(DIST_BIN))
$(DIST_BIN)/readme.txt: $(DIST_SRC)/readme.txt | $(DIST_BIN)
@ -17,10 +17,10 @@ $(DIST_BIN)/ahello1.com: bin/ahello-m80/ahello.com | $(DIST_BIN)
$(DIST_BIN)/ahello2.com: bin/ahello-sdcc/ahello.com | $(DIST_BIN)
$(call mb_copy,$<,$@)
BUILD_HELP += \\n\\t* $(DIST_BIN)/@prepare
.PHONY: $(DIST_BIN)/@prepare
$(DIST_BIN)/@prepare: | $(DIST_DEPS)
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(DIST_BIN)/@prepare,"Prepare folder with binaries for distribution.")
.PHONY: $(DIST_BIN)/@prepare
BUILD_HELP += \\n\\t* $(DIST_OUT)
$(DIST_OUT): | $(DIST_BIN)/@prepare
$(call mb_create_dist,$(DIST_BIN),$@)
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(DIST_OUT),"Build archive distribution artifact.")

View file

@ -3,7 +3,7 @@ MAKE_ON_MSX_MOD := make-on-msx
MAKE_ON_MSX_SRC := $(PATH_SRC)/$(MAKE_ON_MSX_MOD)
MAKE_ON_MSX_BIN := $(PATH_BIN)/$(MAKE_ON_MSX_MOD)
$(MAKE_ON_MSX_BIN):
$(MAKE_ON_MSX_BIN): | $(PATH_BIN)/@prepare
$(call mb_mkdir,$(MAKE_ON_MSX_BIN))
$(call mb_mkdir,$(MAKE_ON_MSX_BIN)/utils)
$(call mb_msxhub_get_make,$(MAKE_ON_MSX_BIN)/utils)
@ -19,18 +19,19 @@ $(MAKE_ON_MSX_BIN)/nfbsshot.mf: $(MAKE_ON_MSX_SRC)/nfbsshot.mf | $(MAKE_ON_MSX_B
$(MAKE_ON_MSX_BIN)/build.bat: $(MAKE_ON_MSX_SRC)/build.bat | $(MAKE_ON_MSX_BIN)/nfbsshot.mf
$(call mb_unix2dos,$<,$@)
BUILD_HELP += \\n\\t* $(MAKE_ON_MSX_BIN)/nfbsshot.bin
$(MAKE_ON_MSX_BIN)/nfbsshot.bin: | $(MAKE_ON_MSX_BIN)/build.bat
$(call mb_autoexec_safe_cmd,$(MAKE_ON_MSX_BIN),build shutdown)
$(call mb_openmsx_dosctl,$(MAKE_ON_MSX_BIN))
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(MAKE_ON_MSX_BIN)/nfbsshot.bin,"Compiles binary with make on msx.")
BUILD_HELP += \\n\\t* $(MAKE_ON_MSX_BIN)/@assert
.PHONY: $(MAKE_ON_MSX_BIN)/@assert
$(MAKE_ON_MSX_BIN)/@assert: | $(MAKE_ON_MSX_BIN)/nfbsshot.bin
grep -U "screenshot" $(MAKE_ON_MSX_BIN)/nfbsshot.bin
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(MAKE_ON_MSX_BIN)/@assert,"Asserts that binary contains screenshot string.")
.PHONY: $(MAKE_ON_MSX_BIN)/@assert
BUILD_HELP += \\n\\t* $(MAKE_ON_MSX_BIN)/@run
.PHONY: $(MAKE_ON_MSX_BIN)/@run
$(MAKE_ON_MSX_BIN)/@run: | $(MAKE_ON_MSX_BIN)/build.bat
$(call mb_autoexec_show_gui80,$(MAKE_ON_MSX_BIN))
$(call mb_openmsx_dosctl,$(MAKE_ON_MSX_BIN))
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(MAKE_ON_MSX_BIN)/@run,"Run the make build manually.")
.PHONY: $(MAKE_ON_MSX_BIN)/@run