diff --git a/Makefile b/Makefile
index f679593..e64f6af 100644
--- a/Makefile
+++ b/Makefile
@@ -12,7 +12,8 @@ endif
PATH_BIN := bin
PATH_SRC := src
-include lib/make/msxbuild.mk
+PATH_MSXBUILD ?= .
+include $(PATH_MSXBUILD)/lib/make/msxbuild.mk
$(eval $(call mb_make_call,mb_doc_flow_help))
$(eval $(call mb_make_call,mb_make_flow_0module,$(PATH_SRC)))
diff --git a/lib/make/mb_doc.mk b/lib/make/mb_doc.mk
index a23cfce..209a206 100644
--- a/lib/make/mb_doc.mk
+++ b/lib/make/mb_doc.mk
@@ -52,7 +52,7 @@ MB_DOC_FIRE_VARIABLE_DEEP += $(call mb_make_call,mb_doc_variable_deep,MB_DOC_FOR
define _mb_doc_variable_txt
- "* "$(2)=$(subst \\n,\\\n,$(4))\\n$(if $(3),\\t$(3)\\n)\\n
+ "* "$(2)=$(subst \\n,\\\n,$(subst >,\>,$(4)))\\n$(if $(3),\\t$(3)\\n)\\n
endef
define _mb_doc_variable_xml
\\n\\t$(call mb_make_xml_open,variable,$(MB_DOC_XML_ATTR_NAME),$(2),$(MB_DOC_XML_ATTR_LEVEL),$(1))\\n\\t\\t$(call mb_make_xml_tag_value,$(MB_DOC_XML_TAG_VALUE),$(4))\\n\\t\\t$(call mb_make_xml_tag_value,$(MB_DOC_XML_TAG_DESC),$(3))\\n\\t$(call mb_make_xml_close,variable)
diff --git a/lib/make/mb_flight.mk b/lib/make/mb_flight.mk
index c2d75eb..e70bc60 100644
--- a/lib/make/mb_flight.mk
+++ b/lib/make/mb_flight.mk
@@ -19,9 +19,9 @@ MB_DOC_FIRE_VARIABLE += $(call mb_make_call,mb_doc_variable,MB_FLIGHT_VIDEO_NAME
define mb_flight_video_merge
- @echo === Indexing flight videos
+ $(call mb_make_call,mb_make_echo_good,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
+ $(call mb_make_call,mb_make_echo_good,Flight video completed)
endef
MB_DOC_FIRE_FUNCTION += $(call mb_make_call,mb_doc_function,mb_flight_video_merge,"Merged all flight videos to one.","
")
diff --git a/lib/make/mb_make.mk b/lib/make/mb_make.mk
index dab9fa0..1c39e73 100644
--- a/lib/make/mb_make.mk
+++ b/lib/make/mb_make.mk
@@ -79,13 +79,13 @@ MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,mb_doc_function_deep,mb_make_xm
define mb_make_echo_good
-$(if $(filter -1,$(MB_COLORS)),@echo $(MB_MAKE_ECHO_CRAYON) $(1),/usr/bin/echo -e "\x1B[32m$(MB_MAKE_ECHO_CRAYON)$$1\x1B[39m $(1)")
+$(if $(filter -1,$(MB_OS_COLORS)),@echo $(MB_MAKE_ECHO_CRAYON) $(1),/usr/bin/echo -e "\x1B[32m$(MB_MAKE_ECHO_CRAYON)$$1\x1B[39m $(1)")
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,mb_doc_function_deep,mb_make_echo_good,"Echo's an message to stdout with 'green' crayon.","")
define mb_make_echo_fail
-$(if $(filter -1,$(MB_COLORS)),@echo $(MB_MAKE_ECHO_CRAYON) $(1),/usr/bin/echo -e "\x1B[31m$(MB_MAKE_ECHO_CRAYON)$$1\x1B[39m $(1)")
+$(if $(filter -1,$(MB_OS_COLORS)),@echo $(MB_MAKE_ECHO_CRAYON) $(1),/usr/bin/echo -e "\x1B[31m$(MB_MAKE_ECHO_CRAYON)$$1\x1B[39m $(1)")
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,mb_doc_function_deep,mb_make_echo_fail,"Echo's an message to stdout with 'red' crayon.","")
diff --git a/lib/make/mb_msxhub.mk b/lib/make/mb_msxhub.mk
index e342364..23bdba9 100644
--- a/lib/make/mb_msxhub.mk
+++ b/lib/make/mb_msxhub.mk
@@ -2,7 +2,7 @@
MB_MSXHUB_API ?= https://msxhub.com/api
MB_DOC_FIRE_VARIABLE_DEEP += $(call mb_make_call,mb_doc_variable_deep,MB_MSXHUB_API,"Resource identifier for msxhub package rest api.")
-MB_MSXHUB_CACHE ?= $(MB_CACHE)/msxbuild/msxhub
+MB_MSXHUB_CACHE ?= $(MB_OS_CACHE)/msxbuild/msxhub
MB_DOC_FIRE_VARIABLE_DEEP += $(call mb_make_call,mb_doc_variable_deep,MB_MSXHUB_CACHE,"Cache storage location.")
diff --git a/lib/make/mb_msxrom.mk b/lib/make/mb_msxrom.mk
index d2e38d5..21f5271 100644
--- a/lib/make/mb_msxrom.mk
+++ b/lib/make/mb_msxrom.mk
@@ -3,7 +3,7 @@
MB_MSXROM_API ?= https://msxrom.distributedrebirth.love/calc-pi/v19.1
MB_DOC_FIRE_VARIABLE_DEEP += $(call mb_make_call,mb_doc_variable_deep,MB_MSXROM_API,"Resource identifier for msxrom pi pie named slices data.")
-MB_MSXROM_CACHE ?= $(MB_CACHE)/msxbuild/msxrom
+MB_MSXROM_CACHE ?= $(MB_OS_CACHE)/msxbuild/msxrom
MB_DOC_FIRE_VARIABLE_DEEP += $(call mb_make_call,mb_doc_variable_deep,MB_MSXROM_CACHE,"Cache storage location.")
diff --git a/lib/make/mb_openmsx.mk b/lib/make/mb_openmsx.mk
index 2f145f2..09d2794 100644
--- a/lib/make/mb_openmsx.mk
+++ b/lib/make/mb_openmsx.mk
@@ -53,6 +53,7 @@ define mb_openmsx_setup
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,mb_doc_function_deep,mb_openmsx_setup,"Setup openMSX local build home folder for machine."," ")
+
define _mb_openmsx_run
$(call mb_make_call,mb_make_echo_good,Start openMSX! for $@ on $(2))
$(if $(wildcard $(1)-omsx/persistent/fire-hdd/untitled1/sync),,$(call mb_make_call,mb_mkdir,$(1)-omsx/persistent/fire-hdd/untitled1/sync))
diff --git a/lib/make/mb_os.mk b/lib/make/mb_os.mk
new file mode 100644
index 0000000..4685e7b
--- /dev/null
+++ b/lib/make/mb_os.mk
@@ -0,0 +1,32 @@
+
+# OS cmds
+ifeq ($(OS),Windows_NT)
+ MB_OS_RM = del /F /Q
+ MB_OS_RMDIR = RMDIR /S /Q
+ MB_OS_MKDIR = mkdir
+ MB_OS_COPY = copy
+ MB_OS_ERRIGNORE = 2>NUL || true
+ MB_OS_SEP = "\"
+ MB_OS_CACHE ?= %LOCALAPPDATA%
+ MB_OS_COLORS ?= -1
+else
+ MB_OS_RM = rm -f
+ MB_OS_RMDIR = rm -rf
+ MB_OS_MKDIR = mkdir -p
+ MB_OS_COPY = cp
+ MB_OS_ERRIGNORE = 2>/dev/null
+ MB_OS_SEP = "/"
+ MB_OS_CACHE ?= ~/.cache
+ MB_OS_COLORS ?= $(shell tput colors 2> /dev/null;test $$? -eq 0 || echo "-1")
+endif
+
+
+MB_DOC_FIRE_VARIABLE_ROCK += $(call mb_make_call,mb_doc_variable_rock,MB_OS_RM,"Native OS delete command.")
+MB_DOC_FIRE_VARIABLE_ROCK += $(call mb_make_call,mb_doc_variable_rock,MB_OS_RMDIR,"Native OS remove folder command.")
+MB_DOC_FIRE_VARIABLE_ROCK += $(call mb_make_call,mb_doc_variable_rock,MB_OS_MKDIR,"Native OS create folder command.")
+MB_DOC_FIRE_VARIABLE_ROCK += $(call mb_make_call,mb_doc_variable_rock,MB_OS_COPY,"Native OS copy command.")
+MB_DOC_FIRE_VARIABLE_ROCK += $(call mb_make_call,mb_doc_variable_rock,MB_OS_ERRIGNORE,"Native OS error to ignore redirect.")
+MB_DOC_FIRE_VARIABLE_ROCK += $(call mb_make_call,mb_doc_variable_rock,MB_OS_SEP,"Native OS path seperator.")
+MB_DOC_FIRE_VARIABLE_ROCK += $(call mb_make_call,mb_doc_variable_rock,MB_OS_CACHE,"Native OS application cache folder.")
+MB_DOC_FIRE_VARIABLE_ROCK += $(call mb_make_call,mb_doc_variable_rock,MB_OS_COLORS,"Native OS terminal color count support.")
+
diff --git a/lib/make/msxbuild.mk b/lib/make/msxbuild.mk
index f72b473..4588c2a 100644
--- a/lib/make/msxbuild.mk
+++ b/lib/make/msxbuild.mk
@@ -3,9 +3,9 @@
#
# Setup default tools paths
-PATH_SDCC ?= /usr/bin
-PATH_OPENMSX ?= /usr/bin
-PATH_MSXBUILD ?= $(dir $(lastword $(MAKEFILE_LIST)))../..
+PATH_SDCC ?= /usr/bin
+PATH_OPENMSX ?= /usr/bin
+PATH_MSXBUILD ?= $(dir $(lastword $(MAKEFILE_LIST)))../..
PATH_MSXBUILD_REAL := $(if $(realpath $(PATH_MSXBUILD)),$(realpath $(PATH_MSXBUILD)),$(PATH_MSXBUILD))
# Include extra features
@@ -18,53 +18,36 @@ 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
+include $(PATH_MSXBUILD)/lib/make/mb_os.mk
-# OS cmds
-ifeq ($(OS),Windows_NT)
- MB_RM = del /F /Q
- MB_RMDIR = RMDIR /S /Q
- MB_MKDIR = mkdir
- MB_COPY = copy
- MB_ERRIGNORE = 2>NUL || true
- MB_SEP=\\
- MB_CACHE ?= %LOCALAPPDATA%
- MB_COLORS ?= -1
-else
- MB_RM = rm -f
- MB_RMDIR = rm -rf
- MB_MKDIR = mkdir -p
- MB_COPY = cp
- MB_ERRIGNORE = 2>/dev/null
- MB_SEP=/
- MB_CACHE ?= ~/.cache
- MB_COLORS ?= $(shell tput colors 2> /dev/null;test $$? -eq 0 || echo "-1")
-endif
-
-# Remove space after separator
-MB_PSEP = $(strip $(MB_SEP))
+# Below mb_doc.mk for white space...
+MB_DOC_FIRE_VARIABLE_DEEP += $(call mb_make_call,mb_doc_variable_deep,PATH_SDCC,"Path where SDCC binaries are located.")
+MB_DOC_FIRE_VARIABLE_DEEP += $(call mb_make_call,mb_doc_variable_deep,PATH_OPENMSX,"Path where openMSX binary is located.")
+MB_DOC_FIRE_VARIABLE_DEEP += $(call mb_make_call,mb_doc_variable_deep,PATH_MSXBUILD,"Path where msxbuild lib folder is located.")
+MB_DOC_FIRE_VARIABLE_ROCK += $(call mb_make_call,mb_doc_variable_rock,PATH_MSXBUILD_REAL,"Resolved real path of msxbuild.")
define mb_clean
$(call mb_make_call,mb_make_echo_good,Cleaning build folder $(1))
- $(MB_RMDIR) $(1)
+ $(MB_OS_RMDIR) $(1)
endef
MB_DOC_FIRE_FUNCTION += $(call mb_make_call,mb_doc_function,mb_clean,"Removed the full folder.","")
define mb_mkdir
- $(MB_MKDIR) $(1)
+ $(MB_OS_MKDIR) $(1)
endef
MB_DOC_FIRE_FUNCTION += $(call mb_make_call,mb_doc_function,mb_mkdir,"Creates an folder.","")
define mb_delete
- $(MB_RM) $(1)
+ $(MB_OS_RM) $(1)
endef
MB_DOC_FIRE_FUNCTION += $(call mb_make_call,mb_doc_function,mb_delete,"Deletes an file.","")
define mb_copy
- $(MB_COPY) $(1) $(2)
+ $(MB_OS_COPY) $(1) $(2)
endef
MB_DOC_FIRE_FUNCTION += $(call mb_make_call,mb_doc_function,mb_copy,"Copy an file."," ")