diff --git a/lib/make/mb_autoexec.mk b/lib/make/mb_autoexec.mk
index 0f923df..d1f0ecf 100644
--- a/lib/make/mb_autoexec.mk
+++ b/lib/make/mb_autoexec.mk
@@ -53,47 +53,56 @@ define mb_autoexec_append_cmd
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_cmd,"Appends an command.","
")
+
define mb_autoexec_append_echo
$(call mb_autoexec_append_cmd,$(1),echo $(subst >,>,$(2)))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_echo,"Appends an echo message."," ")
+
define mb_autoexec_append_rem
$(call mb_autoexec_append_cmd,$(1),rem $(2))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_rem,"Appends an script remark."," ")
+
define mb_autoexec_append_show_gui
$(call mb_autoexec_append_cmd,$(1),omsxctl headless_show_gui)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_show_gui,"Appends headless show gui command.","")
+
define mb_autoexec_append_stop_fail
$(call mb_autoexec_append_cmd,$(1),omsxctl fail_after 0)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_stop_fail,"Appends stop automatic failure command.","")
+
define mb_autoexec_append_exit
$(if $(filter on,$(MB_FLIGHT_SCREEN)),$(call mb_autoexec_append_save_screenshot,$(1)))
$(call mb_autoexec_append_cmd,$(1),omsxctl headless_exit)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_exit,"Appends exit emulation command.","")
+
define mb_autoexec_append_joyporta_mouse
$(call mb_autoexec_append_cmd,$(1),omsxctl plug joyporta mouse)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_joyporta_mouse,"Appends plug mouse in joyporta command.","")
+
define mb_autoexec_append_save_screenshot
$(call mb_autoexec_append_cmd,$(1),omsxctl night_flight_save_screenshot $(2))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_save_screenshot,"Appends save screenshot command."," [prefix]")
+
define mb_autoexec_append_save_video
$(call mb_autoexec_append_cmd,$(1),omsxctl night_flight_save_video $(2))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_save_video,"Appends save video command."," [prefix]")
+
define mb_autoexec_append_safe_test
$(call mb_autoexec_append_cmd,$(1),omsxctl fail_after $(if $(3),$(3),$(MB_AUTOEXEC_SAFE_TEST_TIMEOUT)) seconds err_test $(if $(4),$(4),$(MB_AUTOEXEC_SAFE_TEST_EXITCODE)))
$(call mb_autoexec_append_echo,$(1),mb::safe test $(2))
@@ -101,6 +110,7 @@ define mb_autoexec_append_safe_test
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_safe_test,"Appends running a safe test."," [timeout] [exit-code]")
+
define mb_autoexec_append_safe_cmd
$(call mb_autoexec_append_cmd,$(1),omsxctl fail_after $(if $(3),$(3),$(MB_AUTOEXEC_SAFE_CMD_TIMEOUT)) seconds err_cmd $(if $(4),$(4),$(MB_AUTOEXEC_SAFE_CMD_EXITCODE)))
$(call mb_autoexec_append_echo,$(1),mb::safe command $(2))
@@ -108,6 +118,7 @@ define mb_autoexec_append_safe_cmd
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_safe_cmd,"Appends running a safe command."," [timeout] [exit-code]")
+
define _mb_autoexec_write_preboot
$(call mb_autoexec_append_cmd,$(1),$(2)mbboot80)
$(call mb_autoexec_append_cmd,$(1),$(2)omsxctl boot_exec_setcolor $(if $(3),$(3),$(MB_AUTOEXEC_COLOR_FG)) $(if $(4),$(4),$(MB_AUTOEXEC_COLOR_BG)))
@@ -117,6 +128,7 @@ define _mb_autoexec_write_preboot
$(if $(wildcard $(1)/utils),$(call mb_autoexec_append_cmd,$(1),PATH + A:\UTILS))
endef
+
define mb_autoexec_write_default
@echo === Writing autoexec.bat for $@
@echo -n "" > $(1)/autoexec.bat
diff --git a/lib/make/mb_doc.mk b/lib/make/mb_doc.mk
index 50c6244..9bef57f 100644
--- a/lib/make/mb_doc.mk
+++ b/lib/make/mb_doc.mk
@@ -47,7 +47,7 @@ define mb_doc_variable
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_doc_variable,"Prints formatted documention of an variable."," [desc]")
-# "* "$(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
@@ -77,12 +77,14 @@ define mb_doc_show_help@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))
@@ -91,6 +93,7 @@ define mb_doc_show_help@target
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))
@@ -99,6 +102,7 @@ define mb_doc_show_help@variable
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))
diff --git a/lib/make/mb_flight.mk b/lib/make/mb_flight.mk
index 47d0d57..46a5a2c 100644
--- a/lib/make/mb_flight.mk
+++ b/lib/make/mb_flight.mk
@@ -17,6 +17,7 @@ MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_FLIGHT_RECORD_FLAG,"Command pa
MB_FLIGHT_VIDEO_NAME ?= night-flight
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_FLIGHT_VIDEO_NAME,"Video file name of the final result merged video.")
+
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
diff --git a/lib/make/mb_msxhub.mk b/lib/make/mb_msxhub.mk
index 80f13b2..e748fef 100644
--- a/lib/make/mb_msxhub.mk
+++ b/lib/make/mb_msxhub.mk
@@ -5,12 +5,14 @@ MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_MSXHUB_API,"Resource identifie
MB_MSXHUB_CACHE ?= $(MB_CACHE)/msxbuild/msxhub
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_MSXHUB_CACHE,"Cache storage location.")
+
define _mb_msxhub_file_fetch
@echo === Fetch msxhub file
$(if $(wildcard $(dir $(MB_MSXHUB_CACHE)/$(subst $(MB_MSXHUB_API)/,,$(1)))),,$(call mb_mkdir,$(dir $(MB_MSXHUB_CACHE)/$(subst $(MB_MSXHUB_API)/,,$(1)))))
$(if $(wildcard $(MB_MSXHUB_CACHE)/$(subst $(MB_MSXHUB_API)/,,$(1))),,wget -O $(MB_MSXHUB_CACHE)/$(subst $(MB_MSXHUB_API)/,,$(1)) $(1))
endef
+
# NOTE: with HDD import/export we get duplicate files after openMSX run, so force to lowercase.
define mb_msxhub_file
$(if $(wildcard $(MB_MSXHUB_CACHE)/$(2)),,$(call _mb_msxhub_file_fetch,$(MB_MSXHUB_API)/$(2)))
@@ -18,6 +20,7 @@ define mb_msxhub_file
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_file,"Installs msxsub packages from slug into dir."," ")
+
#
# Operating System (minimal)
#
@@ -27,18 +30,21 @@ define mb_msxhub_get_msxdos1_boot
endef
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
#
@@ -52,6 +58,8 @@ define mb_msxhub_get_msxdos2_utils
$(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)
@@ -69,6 +77,7 @@ define mb_msxhub_get_nextor_utils
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_nextor_utils,"Installs nextor util files into dir.","")
+
#
# Compilers
#
@@ -80,6 +89,7 @@ define mb_msxhub_get_macro80
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)
@@ -93,6 +103,7 @@ define mb_msxhub_get_z80asmuk
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)
@@ -100,12 +111,14 @@ define mb_msxhub_get_wbass2
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
#
@@ -119,31 +132,37 @@ define mb_msxhub_get_pmarc
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
#
@@ -152,36 +171,43 @@ define mb_msxhub_get_make
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)
@@ -209,6 +235,7 @@ define mb_msxhub_get_msxdos2t
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxhub_get_msxdos2t,"Installs msxdos2t package into dir.","")
+
#
# Graphics editors
#
diff --git a/lib/make/mb_msxpipe.mk b/lib/make/mb_msxpipe.mk
index f31865a..2888c35 100644
--- a/lib/make/mb_msxpipe.mk
+++ b/lib/make/mb_msxpipe.mk
@@ -26,6 +26,7 @@ define mb_msxpipe_safe_cmd
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxpipe_safe_cmd,"Runs openMSX and safely executes one command."," [machine]")
+
define mb_msxpipe_safe_test
$(call mb_autoexec_write_default,$(1),$(MB_MSXPIPE_COLOR_FG_SAFE_TEST),$(MB_MSXPIPE_COLOR_BG_SAFE_TEST))
$(call mb_autoexec_append_safe_test,$(1),$(2))
@@ -34,6 +35,7 @@ define mb_msxpipe_safe_test
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxpipe_safe_test,"Runs openMSX and safely executes one test."," [machine]")
+
define _mb_msxpipe_run_gui
$(call mb_autoexec_write_default,$(1),$(MB_MSXPIPE_COLOR_FG_RUN_GUI),$(MB_MSXPIPE_COLOR_BG_RUN_GUI))
$(call mb_autoexec_append_stop_fail,$(1))
@@ -45,13 +47,14 @@ define _mb_msxpipe_run_gui
$(call mb_openmsx_dosctl,$(1),$(3))
endef
+
define mb_msxpipe_run_gui
$(call _mb_msxpipe_run_gui,$(1),$(2),$(3))
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxpipe_run_gui,"Runs openMSX forever with renderer and optionals."," [cmd] [machine]")
+
define mb_msxpipe_run_gui_mouse
$(call _mb_msxpipe_run_gui,$(1),$(2),$(3),mouse)
endef
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_msxpipe_run_gui_mouse,"Runs openMSX forever with renderer and mouse and optionals."," [cmd] [machine]")
-
diff --git a/lib/make/mb_msxrom.mk b/lib/make/mb_msxrom.mk
index 00dc867..7880264 100644
--- a/lib/make/mb_msxrom.mk
+++ b/lib/make/mb_msxrom.mk
@@ -6,18 +6,21 @@ MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_MSXROM_API,"Resource identifie
MB_MSXROM_CACHE ?= $(MB_CACHE)/msxbuild/msxrom
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_MSXROM_CACHE,"Cache storage location.")
+
define _mb_msxrom_file_fetch
@echo === Fetch msxrom file
$(if $(wildcard $(dir $(MB_MSXROM_CACHE)/$(subst $(MB_MSXROM_API)/,,$(1)))),,$(call mb_mkdir,$(dir $(MB_MSXROM_CACHE)/$(subst $(MB_MSXROM_API)/,,$(1)))))
$(if $(wildcard $(MB_MSXROM_CACHE)/$(subst $(MB_MSXROM_API)/,,$(1))),,wget -O $(MB_MSXROM_CACHE)/$(subst $(MB_MSXROM_API)/,,$(1)) $(1))
endef
+
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))
$(if $(wildcard $(1)-omsx/share),,$(call mb_mkdir,$(1)-omsx/share))
@@ -27,66 +30,79 @@ define mb_msxrom_setup
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)
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-g3_es_disk.rom)
@@ -95,11 +111,13 @@ define mb_msxrom_machine_Mitsubishi_ML-G3_ES
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)
@@ -107,6 +125,7 @@ define mb_msxrom_machine_Philips_VG_8230
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)
@@ -114,12 +133,14 @@ define mb_msxrom_machine_Philips_NMS_8250
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)
@@ -127,6 +148,7 @@ define mb_msxrom_machine_Yamaha_AX200
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)
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/yis503iii_msx2sub.rom)
@@ -135,6 +157,7 @@ define mb_msxrom_machine_Yamaha_YIS-503IIIR
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)
$(call mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_disk.rom)
@@ -146,6 +169,7 @@ define mb_msxrom_machine_Panasonic_FS-A1WSX
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))
$(call mb_msxrom_extension_fmpac,$(1))
@@ -154,10 +178,10 @@ define mb_msxrom_machine_Boosted_MSX2_EN
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 b161b83..a1507e3 100644
--- a/lib/make/mb_openmsx.mk
+++ b/lib/make/mb_openmsx.mk
@@ -32,6 +32,7 @@ MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_OPENMSX_HEADLESS,"Controls if
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.")
+
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))
@@ -52,6 +53,7 @@ define mb_openmsx_setup
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 $@
BOOT_WATCHDOG=$(MB_OPENMSX_BOOT_TIMEOUT) \
@@ -82,6 +84,7 @@ define _mb_openmsx_run
@echo === openMSX Done for $@
endef
+
define _mb_openmsx_dosctl_bat
$(if $(wildcard $(1)/z80.bat),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/emuctl/z80.bat,$(1)))
$(if $(wildcard $(1)/reboot.bat),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/emuctl/reboot.bat,$(1)))
@@ -90,6 +93,7 @@ define _mb_openmsx_dosctl_bat
$(if $(wildcard $(1)/omsxctl.com),,$(call mb_msxhub_file,$(1),OMSXCTL/1.0-1/get/OMSXCTL/omsxctl.com))
endef
+
define mb_openmsx_dosctl
$(call mb_openmsx_setup,$(1),$(if $(2),$(2),$(MB_OPENMSX_MACHINE)))
$(if $(wildcard $(1)/utils),$(call _mb_openmsx_dosctl_bat,$(1)/utils),$(call _mb_openmsx_dosctl_bat,$(1)))
diff --git a/lib/make/mb_sdcc.mk b/lib/make/mb_sdcc.mk
index a2bc311..87bec26 100644
--- a/lib/make/mb_sdcc.mk
+++ b/lib/make/mb_sdcc.mk
@@ -26,53 +26,63 @@ define mb_sdcc_compile_asm
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)
$(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)
$(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)
$(PATH_SDCC)/sdobjcopy -I ihex --output-target=binary $(1) $(2)
diff --git a/lib/make/msxbuild.mk b/lib/make/msxbuild.mk
index 0aee36a..7e4fed8 100644
--- a/lib/make/msxbuild.mk
+++ b/lib/make/msxbuild.mk
@@ -47,46 +47,55 @@ 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
$(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$(1)))))))))))))))))))))))))))
endef
+
define mb_clean
@echo === Cleaning build folder
- $(if $(wildcard $(1)),$(MB_RMDIR) $(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))
+ $(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)`