diff --git a/.forgejo/workflows/run-test-asserts.yaml b/.forgejo/workflows/run-test-asserts.yaml index 6059373..ef54a6a 100644 --- a/.forgejo/workflows/run-test-asserts.yaml +++ b/.forgejo/workflows/run-test-asserts.yaml @@ -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 diff --git a/Makefile b/Makefile index 0e82e2b..0b7f60b 100644 --- a/Makefile +++ b/Makefile @@ -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) diff --git a/README.md b/README.md index 97ec431..437141e 100644 --- a/README.md +++ b/README.md @@ -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 `` -* mb_autoexec_append_echo ` ` -* mb_autoexec_append_rem ` ` -* mb_autoexec_append_show_gui `` -* mb_autoexec_append_stop_fail `` -* mb_autoexec_append_exit `` -* mb_autoexec_append_joyporta_mouse `` -* mb_autoexec_append_save_screenshot ` [prefix]` -* mb_autoexec_append_save_video ` [prefix]` -* mb_autoexec_append_safe_test ` [timeout] [exit-code]` -* mb_autoexec_append_safe_cmd ` [timeout] [exit-code]` * mb_autoexec_write_default ` [text-mode]` * mb_autoexec_show_gui40 ` [cmd]` * mb_autoexec_show_gui40_mouse ` [cmd]` @@ -91,76 +81,7 @@ Current set is WIP. * mb_autoexec_show_gui80_mouse ` [cmd]` * mb_autoexec_safe_cmd ` [text-mode]` * mb_autoexec_safe_test ` [text-mode]` -* mb_msxhub_file ` ` -* mb_msxhub_get_dos1_boot `` -* mb_msxhub_get_dos2_boot `` -* mb_msxhub_get_dos2_utils `` -* mb_msxhub_get_nextor_boot `` -* mb_msxhub_get_nextor_utils `` -* mb_msxhub_get_macro80 `` -* mb_msxhub_get_z80asmuk `` -* mb_msxhub_get_wbass2 `` -* mb_msxhub_get_konpass `` -* mb_msxhub_get_pmarc `` -* mb_msxhub_get_lhpack `` -* mb_msxhub_get_lhext `` -* mb_msxhub_get_gunzip `` -* mb_msxhub_get_tunzip `` -* mb_msxhub_get_popcom `` -* mb_msxhub_get_make `` -* mb_msxhub_get_adir `` -* mb_msxhub_get_turbo `` -* mb_msxhub_get_baskom `` -* mb_msxhub_get_binldr `` -* mb_msxhub_get_dmphex `` -* mb_msxhub_get_zd `` -* mb_msxhub_get_msxdos2t `` -* mb_msxhub_get_gfxage `` -* mb_msxrom_file ` ` -* mb_msxrom_setup `` -* mb_msxrom_extension_ide `` -* mb_msxrom_extension_ide_nextor `` -* mb_msxrom_extension_scsi_novaxis `` -* mb_msxrom_extension_msxdos22 `` -* mb_msxrom_extension_rs232 `` -* mb_msxrom_extension_fmpac `` -* mb_msxrom_extension_fmpac_en `` -* mb_msxrom_extension_moonsound `` -* mb_msxrom_extension_basickun `` -* mb_msxrom_machine_Canon_V-20 `` -* mb_msxrom_machine_Mitsubishi_ML-F80 `` -* mb_msxrom_machine_Mitsubishi_ML-FX1 `` -* mb_msxrom_machine_Mitsubishi_ML-G3_ES `` -* mb_msxrom_machine_Philips_VG_8000 `` -* mb_msxrom_machine_Philips_VG_8230 `` -* mb_msxrom_machine_Philips_NMS_8250 `` -* mb_msxrom_machine_Toshiba_HX-21 `` -* mb_msxrom_machine_Yamaha_AX200 `` -* mb_msxrom_machine_Yamaha_YIS-503IIIR `` -* mb_msxrom_machine_Panasonic_FS-A1WSX `` -* mb_msxrom_machine_Boosted_MSX2_EN `` -* mb_msxrom_machine_Boosted_MSX2+_JP `` -* mb_openmsx_setup ` ` -* mb_openmsx_dosctl ` [machine] [mem-argu]` -* mb_sdcc_compile_asm ` ` -* mb_sdcc_link_asm_lib ` ` -* mb_sdcc_link_asm ` ` -* mb_sdcc_link_asm_0000 ` ` -* mb_sdcc_link_asm_0100 ` ` -* mb_sdcc_link_asm_1000 ` ` -* mb_sdcc_link_asm_4000 ` ` -* mb_sdcc_link_asm_8000 ` ` -* mb_sdcc_link_asm_C000 ` ` -* mb_sdcc_link_asm_bdos ` ` -* mb_sdcc_hex2bin ` ` -* mb_clean `` -* mb_mkdir `` -* mb_delete `` -* mb_copy ` ` -* mb_unix2dos ` ` -* mb_dos2unix ` ` -* mb_create_dist ` ` -* mb_create_flight_video `` + ## Errata diff --git a/lib/make/mb_autoexec.mk b/lib/make/mb_autoexec.mk index 1f2be72..e0f4475 100644 --- a/lib/make/mb_autoexec.mk +++ b/lib/make/mb_autoexec.mk @@ -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."," ") + 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 comand.","") + 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_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."," [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."," [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."," [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 diff --git a/lib/make/mb_doc.mk b/lib/make/mb_doc.mk new file mode 100644 index 0000000..5b43e40 --- /dev/null +++ b/lib/make/mb_doc.mk @@ -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."," [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."," [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."," [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).","") + + +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'") diff --git a/lib/make/mb_flight.mk b/lib/make/mb_flight.mk new file mode 100644 index 0000000..c0c828b --- /dev/null +++ b/lib/make/mb_flight.mk @@ -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.","") diff --git a/lib/make/mb_msxhub.mk b/lib/make/mb_msxhub.mk index 5e6f636..83ac7f0 100644 --- a/lib/make/mb_msxhub.mk +++ b/lib/make/mb_msxhub.mk @@ -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."," ") # # 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.","") + +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.","") + 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.","") # # 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.","") 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.","") # # 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.","") + 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.","") + 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.","") + 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.","") # # 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.","") + 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.","") + 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.","") + 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.","") + 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.","") + 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.","") # # 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.","") + 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.","") + 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.","") + 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.","") + 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.","") + 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.","") + 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.","") + 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.","") # # 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.","") diff --git a/lib/make/mb_msxpipe.mk b/lib/make/mb_msxpipe.mk new file mode 100644 index 0000000..6ab0272 --- /dev/null +++ b/lib/make/mb_msxpipe.mk @@ -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."," [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."," [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 + + diff --git a/lib/make/mb_msxrom.mk b/lib/make/mb_msxrom.mk index d99701f..795f737 100644 --- a/lib/make/mb_msxrom.mk +++ b/lib/make/mb_msxrom.mk @@ -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."," ") 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.","") 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.","") 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.","") 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.","") 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.","") 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.","") 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.","") 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.","") 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.","") 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.","") 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.","") 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.","") 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.","") 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.","") 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.","") 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.","") 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.","") 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.","") 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.","") 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.","") 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.","") 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.","") 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.","") diff --git a/lib/make/mb_openmsx.mk b/lib/make/mb_openmsx.mk index a999e88..1621a36 100644 --- a/lib/make/mb_openmsx.mk +++ b/lib/make/mb_openmsx.mk @@ -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."," ") 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."," [machine] [mem-ext]") diff --git a/lib/make/mb_sdcc.mk b/lib/make/mb_sdcc.mk index 033aa9d..7bf06c1 100644 --- a/lib/make/mb_sdcc.mk +++ b/lib/make/mb_sdcc.mk @@ -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."," ") 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."," ") 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."," ") + 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."," ") + 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."," ") + 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."," ") + 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."," ") + 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."," ") + 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."," ") + 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."," ") 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."," ") diff --git a/lib/make/msxbuild.mk b/lib/make/msxbuild.mk index 8b64a66..acb6dc5 100644 --- a/lib/make/msxbuild.mk +++ b/lib/make/msxbuild.mk @@ -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 := "" + +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.","") + define mb_mkdir $(MB_MKDIR) $(1) endef +MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_mkdir,"Creates an folder.","") + define mb_delete $(if $(wildcard $(1)),$(MB_RM) $(1)) endef +MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_delete,"Deletes an file.","") + define mb_copy $(MB_COPY) $(1) $(2) endef +MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_copy,"Copy an file."," ") + 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."," ") + 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."," ") + 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."," ") diff --git a/src/0module.mk b/src/0module.mk new file mode 100644 index 0000000..4544789 --- /dev/null +++ b/src/0module.mk @@ -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 diff --git a/src/0module/0module.mk b/src/0module/0module.mk new file mode 100644 index 0000000..e5e344c --- /dev/null +++ b/src/0module/0module.mk @@ -0,0 +1,3 @@ + +$(PATH_BIN): + $(call mb_mkdir,$(PATH_BIN)) diff --git a/src/0module/assert-all/0module.mk b/src/0module/assert-all/0module.mk new file mode 100644 index 0000000..9f9b4d1 --- /dev/null +++ b/src/0module/assert-all/0module.mk @@ -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 diff --git a/src/0module/clean/0module.mk b/src/0module/clean/0module.mk new file mode 100644 index 0000000..a440e3e --- /dev/null +++ b/src/0module/clean/0module.mk @@ -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 diff --git a/src/0module/prepare/0module.mk b/src/0module/prepare/0module.mk new file mode 100644 index 0000000..c26637c --- /dev/null +++ b/src/0module/prepare/0module.mk @@ -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 diff --git a/src/ahello-m80-test/0module.mk b/src/ahello-m80-test/0module.mk index 5b0e106..25bc2cf 100644 --- a/src/ahello-m80-test/0module.mk +++ b/src/ahello-m80-test/0module.mk @@ -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 diff --git a/src/ahello-m80/0module.mk b/src/ahello-m80/0module.mk index 223f067..a500043 100644 --- a/src/ahello-m80/0module.mk +++ b/src/ahello-m80/0module.mk @@ -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 diff --git a/src/ahello-sdcc-test/0module.mk b/src/ahello-sdcc-test/0module.mk index 238379e..ae5f64b 100644 --- a/src/ahello-sdcc-test/0module.mk +++ b/src/ahello-sdcc-test/0module.mk @@ -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 \ No newline at end of file diff --git a/src/ahello-sdcc/0module.mk b/src/ahello-sdcc/0module.mk index 9853c94..9f573d0 100644 --- a/src/ahello-sdcc/0module.mk +++ b/src/ahello-sdcc/0module.mk @@ -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 diff --git a/src/assert-all/0module.mk b/src/assert-all/0module.mk deleted file mode 100644 index 3f1c4e2..0000000 --- a/src/assert-all/0module.mk +++ /dev/null @@ -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))) diff --git a/src/dist-qa-dos1/0module.mk b/src/dist-qa-dos1/0module.mk index 7c83049..64ab7c3 100644 --- a/src/dist-qa-dos1/0module.mk +++ b/src/dist-qa-dos1/0module.mk @@ -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 diff --git a/src/dist-qa-dos2/0module.mk b/src/dist-qa-dos2/0module.mk index c198109..30b231f 100644 --- a/src/dist-qa-dos2/0module.mk +++ b/src/dist-qa-dos2/0module.mk @@ -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 diff --git a/src/dist-qa-msx1/0module.mk b/src/dist-qa-msx1/0module.mk index d3186f6..cc01c60 100644 --- a/src/dist-qa-msx1/0module.mk +++ b/src/dist-qa-msx1/0module.mk @@ -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 diff --git a/src/dist-qa-msxhub/0module.mk b/src/dist-qa-msxhub/0module.mk index 83a61a0..7a40961 100644 --- a/src/dist-qa-msxhub/0module.mk +++ b/src/dist-qa-msxhub/0module.mk @@ -3,12 +3,13 @@ DIST_QA_MSXHUB_MACHINE ?= Boosted_MSX2+_JP 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)) +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 diff --git a/src/dist/0module.mk b/src/dist/0module.mk index 191adac..4118118 100644 --- a/src/dist/0module.mk +++ b/src/dist/0module.mk @@ -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.") diff --git a/src/make-on-msx/0module.mk b/src/make-on-msx/0module.mk index 23617ad..c8de67c 100644 --- a/src/make-on-msx/0module.mk +++ b/src/make-on-msx/0module.mk @@ -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 +