Compare commits

..

3 commits

Author SHA1 Message Date
Willem Cazander ededd8e51e Merge branch 'master' into test_ci_fail_match
Some checks failed
Run test asserts / Test-Asserts (pull_request) Failing after 3s
2024-06-24 14:08:25 +02:00
Willem Cazander 7c92990a9d Merge branch 'master' into test_ci_fail_match
Some checks failed
Run test asserts / Test-Asserts (pull_request) Failing after 5s
2024-06-24 01:25:33 +02:00
Willem Cazander 0caad97612 Test failaire on content.
Some checks failed
Run test asserts / Test-Asserts (push) Failing after 5s
Run test asserts / Test-Asserts (pull_request) Failing after 5s
2024-06-23 19:01:03 +02:00
87 changed files with 790 additions and 4329 deletions

View file

@ -4,15 +4,6 @@ on:
branches:
- master
pull_request:
env:
VERBOSE: off
DEBUG: off
ASSERT_MSXROM_MATRIX: off
MB_I18N: BASIC
MB_OPENMSX_STDOUT_IGNORE: on
MB_OPENMSX_STDERR_IGNORE: on
MB_AUTOEXEC_EMBED_USER: GITHUB_ACTOR
MB_AUTOEXEC_EMBED_VARS: GITHUB_WORKFLOW GITHUB_JOB GITHUB_RUN_NUMBER GITHUB_EVENT_NAME GITHUB_REF_NAME GITHUB_REF_TYPE GITHUB_REPOSITORY GITHUB_REPOSITORY_OWNER
jobs:
Test-Asserts:
runs-on: self-hosted
@ -20,4 +11,4 @@ jobs:
- name: Check out
uses: actions/checkout@v3
- name: Run asserts
run: make -j1 @ALL
run: make assert-all

5
.gitignore vendored
View file

@ -1,9 +1,12 @@
syntax: glob
# Project ignores
Makelocal.mk
bin
bin/**
lib/openmsx/omsxctl.tcl
# Makefile ignores
Makelocal.mk
# File ignores
*.log

View file

@ -1,26 +1,25 @@
#
# Module based project makefile to self build msxbuild.
#
rwildcard = $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))
INC_TEST := $(call rwildcard, test, */0module.mk)
PATH_BIN := bin
PATH_SRC := src
PATH_MSXBUILD ?= lib
MB_PROJ_META_GROUP_ID := love.distributedrebirth.msx4.firemake.make4.msxbuild
MB_PROJ_META_ARTIFACT_ID := msxbuild
MB_PROJ_META_VERSION := 1.0.0
MB_PROJ_META_NAME := MSXBUILD
MB_PROJ_META_DESCRIPTION := Library to use openMSX in build pipeline.
MB_PROJ_META_WEBSITE := https://code.distributedrebirth.love/arch-msx/msxbuild
.RECIPEPREFIX := _
.DEFAULT_GOAL := @all
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))
-include Makelocal.mk
include $(PATH_MSXBUILD)/msxbuild.mk
$(call mb-make-call,mb-setup-default,$(PATH_BIN),$(PATH_SRC))
# Optional: make faster and setup graph root
.PHONY: Makefile
.PHONY: Makelocal.mk
.PHONY: $(PATH_MSXBUILD)/msxbuild.mk
Makefile:: Makelocal.mk
Makefile:: $(PATH_MSXBUILD)/msxbuild.mk
@@include-root:: Makefile
include lib/make/msxbuild.mk
include $(INC_TEST)

8
Makelocal.mk.tpl Normal file
View file

@ -0,0 +1,8 @@
# Local included makefile fragment.
# Save this file without tpl suffix and custumize it.
#
# Change to local installations if needed;
#PATH_SDCC ?= /usr/bin
#PATH_UNIX2DOS ?= /usr/bin
#PATH_OPENMSX ?= /opt/openMSX/bin/

301
README.md
View file

@ -2,245 +2,108 @@
Utils to use openMSX in build pipelines.
You can use these scripts as-is. the files in the `lib` are all you need.
But as always, feel free to extend it for your specific needs or contribute a fix or feature.
You can use these scripts as-is. But as always, feel free to extend it
for your specific needs or contribute a fix or feature.
## OpenMSX missing automation documentation
* Don't use DirAsDisk, it is slow
* Wrap all TCL commands in catch+stderr+exit1
* Use TCL script for auto HD import/export
* Use stdio mode for headless and/or fast boot
* Disable throttling for automation steps
* Use fail_after TCL script to run openMSX safely
* Control openMSX from inside with TCL+command
* Enable SDL just before command is addictive fast
* TODO: Use TCL for BASIC/ASM/C lcov (Cobertura) code coverage
The files in this repro try to handle these steps for you.
## Features
* Allows parallel headless openMSX build pipeline
* openMSX safe exit failure guards
* Automatic disk image import + export per build step
* SDCC msx build steps.
* Allows headless openMSX buildpipe.
* openMSX safe exit failure guards.
* Automatic disk image import + export per build step.
* Downloads and caches resources from msxhub.com
* 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
* make + wget + tar + awk + grep + dos2unix
* sdcc
* make
* openmsx
* ffmpeg
* rsync
* sdcc
* wget
* unix2dos
For debian use;
apt-get install make wget tar gawk grep dos2unix sdcc openmsx ffmpeg rsync
apt-get install make openmsx wget dos2unix sdcc
## Install Classic
## Usage
TODO
Include the `lib/make/msxbuild.mk` file from your Makefile.
And override the required paths;
* PATH_SDCC ?= /usr/bin
* PATH_UNIX2DOS ?= /usr/bin
* PATH_OPENMSX ?= /opt/openMSX/bin/
* PATH_MSXBUILD ?= /opt/msxbuild
## Install Docker
TODO
## Usage Setup
Most simple `Makefile` example;
PATH_MSXBUILD ?= ~/somewhere/local/copy/msxbuild/lib
# Optional set own prefix BEFORE include mxsbuild
.RECIPEPREFIX := _
include $(PATH_MSXBUILD)/msxbuild.mk
# Write normal make rules
Use simple with 0module structure add tree include structure.
PATH_SRC := src
$(call mb_make_call,mb_flow_0module_setup,$(PATH_SRC))
Or more complex do a full flow setup of project with;
(note this will call also the 0module_setup for you)
PATH_BIN := bin
PATH_SRC := src
$(call mb_make_call,mb_setup_default,$(PATH_BIN),$(PATH_SRC))
# Write normal and/or dynamic flow rules in many 0module.mk files.
Then build result based compile rules see an example in; `test/ahello-m80/0module.mk`
## Rule Writing
## Functions
TODO: Link to example project on github a few ways to compile and test hello.
Current set is WIP.
## Usage Help
When using the `mb_setup_default` this add a help system which works by running: `make @help | grep "*"`
* @help-variable
* @help-variable-deep
* @help-variable-rock
* @help-variable-flow
* @help-variable-i18n
* @help-function
* @help-function-deep
* @help-function-flow
* @help-target
* @help-target-deep
* @help-target-run
* @help-target-module
* @help-target-assert
* @help-machine
* @help-all
* @help-firemake
* @clean
* @init
* @prepare
* @process
* @compile
* @link
* @build
* @test
* @package
* @package-qa
* @package-deploy
* @all
* @flight-video-build
* @flight-video-test
* @flight-video-package-qa
* @flight-video-all
Running: `make @help-all | grep "*" | wc -l` to count all documented items of an (example) project;
546
## Example Project
When you want to see whats happening do a debug run;
normal run;
time make
real 0m8.058s
debug run at 11 Mhz;
time VERBOSE=on DEBUG=on MB_OPENMSX_HEADLESS=off MB_OPENMSX_THROTTLE=on make
real 2m34.071s
debug run real msx speed;
time VERBOSE=on DEBUG=on MB_OPENMSX_HEADLESS=off MB_OPENMSX_THROTTLE=on MB_OPENMSX_SPEED=100 make
real 2m37.379s
record build run with screenshot on exit;
time MB_OPENMSX_HEADLESS=off MB_FLIGHT_SCREEN=on make @build
real 2m40.784s
record matrix test run with video per session and merge to one video file;
time ASSERT_MSXROM_MATRIX=on make @flight-video-all
real 0m18.184s
full build parallel;
time make -j4 @all
real 0m4.226s
manual test all packages on other MSX1 machine;
make ASSERT_MSXHUB_MACHINE=Philips_VG_8000 bin/assert/msxhub/@run
view the make graph of an target;
make -Bnd bin/example/dist-hello-qa-msx1/@assert | make2graph | dot -Tpng -o /tmp/out.png;open /tmp/out.png
## Internal conventions make
* A library MUST use variables for indenting, zero tab space or white space
* Internal things MUST start with an under score
* Variables MUST be in upper case
* Variables MUST use an under score as separator
* File targets MUST be in a relative binary build folder
* None file targets MUST start with at-sign with optional build folder prefix
* None file targets MUST separate words with an hyphen
* Define eval flow MUST start with two underscores
* Eval flow MUST be injected by a function
* Eval flow MUST have an preamble/restore of dynamic white space
* Functions MUST call function with mb-make-call for DEBUG tracing
* Functions MUST be in lower case
* Functions MUST separate words with an hyphen
* mb_compile_asm
* mb_link_asm_lib
* mb_link_asm
* mb_link_asm_0000 = call mb_link_asm,$(1),$(2),0x0000
* mb_link_asm_0100
* mb_link_asm_1000
* mb_link_asm_4000
* mb_link_asm_8000
* mb_link_asm_C000
* mb_link_asm_dos = alias for mb_link_asm_0100
* mb_hex2bin
* mb_openmsx_dosctl
* mb_msxhub_file
* mb_package_dos1
* mb_package_dos2
* mb_package_nextor
* mb_package_macro80
* mb_package_z80asmuk
* mb_package_popcom
* mb_package_dmphex
* mb_package_baskom
* mb_package_pmarc
* mb_package_lhpack
* mb_package_lhext
* mb_package_gunzip
* mb_package_tunzip
* mb_package_turbo
* mb_package_binldr
* mb_package_gfxage
* mb_autoexec_append_cmd
* mb_autoexec_append_echo
* mb_autoexec_append_rem
* mb_autoexec_append_gui_mode
* mb_autoexec_append_stop_fail
* mb_autoexec_append_exit
* mb_autoexec_write_default
* mb_autoexec_open_gui
* mb_autoexec_open_gui_cmd
* mb_autoexec_cmd
* mb_autoexec_cmd_test
* mb_clean
* mb_mkdir
* mb_delete
* mb_copy
* mb_create_dist
## Errata
* (?19++) Very sometimes the fail_after "boot_err" watchdog doesn't get canceled
* Make: @@include-mods will not get chained, it doesn't list ANY dep anymore
* Make: @@include-tree will not get phony, (and thus @@include-root not on top)
* boot_exec_setcolor: does not work on MSX1 vdp TMS9918
* Doesn't work on windows
* TODO: mbboot80+add arg prefix and move to other repro + msxhub package
* TODO: Missing C and mixed support
* TODO: Use TCL for BASIC/ASM/C lcov (Cobertura) code coverage
* Missing C and mixed support
* If no SDL than screenshot in fail_after doesn't work
## OpenMSX backlog issues
* Add setting for "save_imgui_on_exit false" so no imgui.ini file is created
* Only all all 16 bit unicode fonts because unicode is 21 bit but imgui is not
* (FIXED:rm-SDL) Bug: screenshots sometimes segfaults when using SDL renderer
* (FIXED:add-issue) Screenshots don't work without throttle
* (FIXED++) Audio device init option + warning messages on computer without sound card
* (#1669) MIDI device init option + warning messages on computer without sound card
* (#1671) Enhancing the IDE CD-ROM support
* (#1704) Allow `<type>IDEHD</type><DeviceName>OPENMSX IDEHD</DeviceName>` now hardcoded in IDEHD.CC:37 + update default for mode 40
* (#1705) Diskmanipulator export (sync) fully non-cased filename compare (duplicates)
* (#1705) Diskmanipulator export (sync) don't touch/overwrite unmodified files
* Diskmanipulator reuse the device defined filename
* Diskmanipulator Imported folders in openMSX; `cd utils;cd ..;dir` breaks, use `cd utils:cd a:\;dir` as workaround
* run instance-id or run/process-label to replace hardcoded "untitled1" path
* Remove msg or add ignore sram-fully or blank setting: SRAM file nms8250.cmos not found, assuming blank SRAM content.
* Video record append mode + optional multiple previds to glue videos as one
* SDL-NULL as window less renderer so that screenshot and/or video works headless
* Video record remove blue start frame on start of recording
* (FIXED++) Allow for `set renderer none` in TCL or command argument for headless mode
* (DONE) DocUpdate: Added optional exit code of exit command
* DocUpdate: Add speed note because it is slow + add example "after quit {export hdd}"
* DocUpdate: Wrap all TCL commands in catch+stderr+exit1
* DocUpdate: Add 'headless' example via stdio+new + link to control omsxctl
## Make4++ backlog issues
Since `.RECIPEPREFIX` is added to make, it broke library support and having per call different
dynamic white space rules is also really hard for a human brain.
To fix make5 will use (IBM spec) binary files to express the rules.
* Add a few new define's to have official make documentation
* BUG: Unicode read+parse ok but function call fails on `include $(MB__BASEPATH)/lib/make/प्रणालीᐥᔆʸᔆᐪᓫᔿ/mb_doc.mk`.
* Add a checked call function `call-safe` which exits on undefined call argument
* Add `call` and `call-safe` debug trace option
* Add `--warn-shell` and `--warn-shell-recipe` to allow user to force the project to use fast zero shell wrapped commands
* Add -e option to make internal echo command for escaped sequences
* Add native OS functions for `os-echo,os-file-copy,os-file-delete,os-folder-delete,os-folder-create,etc`
* Add string letters function
* Add string isascii function (death with unicode)
* Add lowercase and uppercase functions (full 21bit unicode support)
* Add XML output for help system for integration with IDE's
* Add `wildcard-treewalker` for deeper searches
* Add namespace support for variables/functions/targets like: moduleX::bin/prog.o: moduleX::src/prog.c
* Add checksum function to calc checksum for file
* Add `os-copy-diff` function to use checksums to copy only changed files
* Allow make to use checksums not timestamps to detect file updates
Make version 5 will bring `make` to the last century;
* Make5: Define (binary) namespaced XML to replace ascii Makefile syntax
* Make5: Remove guile support fully (maybe replace with embedded MSX BASIC)
* Make5: Add converter command for upgrade make4 syntax and option to run make4 file.
* Make5: move all internal's to namespace's
* Make5: Replace all ultra short 1980's magic templates variables with ultra long human readable name
* Make5: upgrade to new BDOS split file and folder API in OS kernel VFS layer
* Make5: Delete all Old-Fashioned Suffix Rules code
* Make5: Delete .EXPORT_ALL_VARIABLES and `export` without variable
* Make5: (Opt?) Delete VPATH search variable (replace with namespace vpath ??)
* Make5: Delete/refactor all (old) code that make the make code ugly
* Make5: Adds zillala (emacs like) bug reporting output for when make fails script or internally
* Make5: Replace all trace/debug/base-print with XML output + optional XSLT + wrap old argu
Make version 6 will bring `make` to the current century;
* Make6: Only support 18bit four corner method, fixed i18n words, no letters, no ascii, no unicode
* Make6: Only support octal based (18 and/or 144 bit) computers (the new MSX'es)
* Make6: Only support new BDOS version (split folders from files)
Make version 7 will bring `make` to the next century;
* Make7: Make without source, all make code is generated from the nether skynet step code definitions
* Make7: If the OS kernel "ATARI TERMINATOR AI" thinks it is faster to run make rules in VHDL it will be done so

Binary file not shown.

View file

@ -1,2 +0,0 @@
rem Reboot openMSX
omsxctl headless_reset

View file

@ -1,2 +1,2 @@
rem Shutdown openMSX
omsxctl headless_exit
rem Exit openMSX
omsxctl exit 0

75
lib/make/mb_autoexec.mk Normal file
View file

@ -0,0 +1,75 @@
MB_AUTOEXEC_BYSELF ?= true
MB_AUTOEXEC_BYSELF_MSG ?= Generated by msxbuild Makefile
MB_AUTOEXEC_TEXTMODE ?= 80
MB_AUTOEXEC_TEXTCOLOR ?= 15,0,0
MB_AUTOEXEC_VERSION ?= true
MB_AUTOEXEC_STARTUP_TIMEOUT ?= 60
MB_AUTOEXEC_STARTUP_EXITCODE ?= 124
MB_AUTOEXEC_TEST_TIMEOUT ?= 120
MB_AUTOEXEC_TEST_EXITCODE ?= 1
MB_AUTOEXEC_CMD_TIMEOUT ?= 300
MB_AUTOEXEC_CMD_EXITCODE ?= 1
define mb_autoexec_append_cmd
echo "$(2)\r" >> $(1)/autoexec.bat
endef
define mb_autoexec_append_echo
$(call mb_autoexec_append_cmd,$(1),echo $(2))
endef
define mb_autoexec_append_rem
$(call mb_autoexec_append_cmd,$(1),rem $(2))
endef
define mb_autoexec_append_gui_mode
$(call mb_autoexec_append_echo,$(1),Enabling SDL renderer.)
$(call mb_autoexec_append_cmd,$(1),omsxctl set renderer SDL > NUL)
$(call mb_autoexec_append_echo,$(1),Enabling CPU throttling.)
$(call mb_autoexec_append_cmd,$(1),omsxctl set throttle on > NUL)
endef
define mb_autoexec_append_stop_fail
$(call mb_autoexec_append_echo,$(1),Disabling automatic failure.)
$(call mb_autoexec_append_cmd,$(1),omsxctl fail_after 0)
endef
define mb_autoexec_append_exit
$(call mb_autoexec_append_cmd,$(1),omsxctl exit 0)
endef
define mb_autoexec_write_default
echo -n "" > $(1)/autoexec.bat
$(if $(filter true,$(MB_AUTOEXEC_BYSELF)),$(call mb_autoexec_append_rem,$(1),$(MB_AUTOEXEC_BYSELF_MSG)))
$(call mb_autoexec_append_cmd,$(1),omsxctl fail_after $(MB_AUTOEXEC_STARTUP_TIMEOUT) seconds failed_autoexec $(MB_AUTOEXEC_STARTUP_EXITCODE))
$(if $(filter 40,$(MB_AUTOEXEC_TEXTMODE)),$(call mb_autoexec_append_cmd,$(1),mode 40))
$(if $(filter 40,$(MB_AUTOEXEC_TEXTMODE)),$(call mb_autoexec_append_echo,$(1),Enabled mode 40.))
$(if $(filter 80,$(MB_AUTOEXEC_TEXTMODE)),$(call mb_autoexec_append_cmd,$(1),mode 80))
$(if $(filter 80,$(MB_AUTOEXEC_TEXTMODE)),$(call mb_autoexec_append_echo,$(1),Enabled mode 80.))
$(call mb_autoexec_append_cmd,$(1),COLOR $(MB_AUTOEXEC_TEXTCOLOR))
$(if $(filter true,$(MB_AUTOEXEC_VERSION)),$(call mb_autoexec_append_cmd,$(1),ver))
endef
define mb_autoexec_open_gui
@echo === Generating autoexec.bat for command with gui
$(call mb_autoexec_write_default,$(1))
$(call mb_autoexec_append_stop_fail,$(1))
$(call mb_autoexec_append_gui_mode,$(1))
$(call mb_autoexec_append_echo,$(1),Type shutdown to stop emulation.)
endef
define mb_autoexec_open_gui_cmd
$(call mb_autoexec_open_gui,$(1))
$(call mb_autoexec_append_echo,$(1),Running command '$(2)')
$(call mb_autoexec_append_cmd,$(1),$(2))
endef
define mb_autoexec_cmd
@echo === Generating autoexec.bat for command
$(call mb_autoexec_write_default,$(1))
$(call mb_autoexec_append_cmd,$(1),omsxctl fail_after $(MB_AUTOEXEC_CMD_TIMEOUT) seconds failed_cmd $(MB_AUTOEXEC_CMD_EXITCODE))
$(call mb_autoexec_append_echo,$(1),Running command '$(2)')
$(call mb_autoexec_append_cmd,$(1),$(2))
$(call mb_autoexec_append_exit,$(1))
endef
define mb_autoexec_cmd_test
@echo === Generating autoexec.bat for command test
$(call mb_autoexec_write_default,$(1))
$(call mb_autoexec_append_cmd,$(1),omsxctl fail_after $(MB_AUTOEXEC_TEST_TIMEOUT) seconds failed_test $(MB_AUTOEXEC_TEST_EXITCODE))
$(call mb_autoexec_append_echo,$(1),Running test '$(2)')
$(call mb_autoexec_append_cmd,$(1),$(2))
$(call mb_autoexec_append_exit,$(1))
endef

42
lib/make/mb_base.mk Normal file
View file

@ -0,0 +1,42 @@
# 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%
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
endif
# Remove space after separator
MB_PSEP = $(strip $(MB_SEP))
# Needed for comma in call arguments (like for l80.com)
MB_COMMA:=,
define mb_clean
@echo === Cleaning build folder.
test $(1) && $(MB_RMDIR) $(1)
endef
define mb_mkdir
$(MB_MKDIR) $(1)
endef
define mb_delete
test $(1) && $(MB_RM) $(1)
endef
define mb_copy
$(MB_COPY) $(1) $(2)
endef
define mb_create_dist
tar -czf $(1) -C $(2) `ls $(2)`
endef

59
lib/make/mb_build.mk Normal file
View file

@ -0,0 +1,59 @@
MB_BUILD_FLAG_CPU ?= -mz80
MB_BUILD_FLAG_LD ?= --nostdinc
MB_BUILD_SDASM_FLAGS ?= -g -l -c -o
MB_BUILD_SDCC_FLAGS ?=
MB_BUILD_SDAR_FLAGS ?= -rc
MB_BUILD_SDCC_CMD ?= $(PATH_SDCC)/sdcc
MB_BUILD_SDASM_CMD ?= $(PATH_SDCC)/sdasz80
MB_BUILD_SDAR_CMD ?= $(PATH_SDCC)/sdar
MB_BUILD_SDOBJCOPY_CMD ?= $(PATH_SDCC)/sdobjcopy
MB_BUILD_UNIX2DOS_CMD ?= $(PATH_UNIX2DOS)/unix2dos
# TODO: Add C + mixed support;
#$(MB_SDASM) -I$(MB_LIBASM_SRC)/include
#-l$(LIBASM_LINK)
define mb_unix2dos
$(MB_BUILD_UNIX2DOS_CMD) -n $(1) $(2)
endef
define mb_compile_asm
@echo === Compile module asm.
$(MB_BUILD_SDASM_CMD) $(MB_BUILD_SDASM_FLAGS) $(1) $(2)
endef
define mb_link_asm_lib
@echo === Link module asm lib.
$(MB_BUILD_SDAR_CMD) $(MB_BUILD_SDAR_FLAGS) $(1) $(2)
endef
define mb_link_asm
@echo === Link asm module at $(3)
$(MB_BUILD_SDCC_CMD) $(MB_BUILD_FLAG_CPU) $(MB_BUILD_SDCC_FLAGS) --no-std-crt0 --code-loc $(3) -o $(1) $(2)
endef
define mb_link_asm_0000
$(call mb_link_asm,$(1),$(2),0x0000)
endef
define mb_link_asm_0100
$(call mb_link_asm,$(1),$(2),0x0100)
endef
define mb_link_asm_1000
$(call mb_link_asm,$(1),$(2),0x1000)
endef
define mb_link_asm_4000
$(call mb_link_asm,$(1),$(2),0x4000)
endef
define mb_link_asm_8000
$(call mb_link_asm,$(1),$(2),0x8000)
endef
define mb_link_asm_C000
$(call mb_link_asm,$(1),$(2),0xC000)
endef
define mb_link_asm_dos
$(call mb_link_asm_0100,$(1),$(2))
endef
define mb_hex2bin
$(MB_BUILD_SDOBJCOPY_CMD) -I ihex --output-target=binary $(1) $(2)
endef

View file

@ -1,141 +0,0 @@
MB_ENV ?= on
$(call mb-make-call,mb-doc-variable-deep,MB_ENV,Enables VERBOSE and DEBUG variable parsing.)
#
# Configure verbose mode
#
ifeq ("$(MB_ENV)", "on")
ifdef VERBOSE
ifeq ("$(VERBOSE)", "off")
.SILENT:
endif
endif
ifdef うるさい
ifeq ("$(うるさい)", "ユニット")
.SILENT:
endif
endif
ifdef LUIDRUCHTIG
ifeq ("$(LUIDRUCHTIG)", "uit")
.SILENT:
endif
endif
ifdef VERBOSA
ifeq ("$(VERBOSA)", "traje")
.SILENT:
endif
endif
ifdef VERBOSO
ifeq ("$(VERBOSO)", "traje")
.SILENT:
endif
endif
ifdef VERBEUSE
ifeq ("$(VERBEUSE)", "dehors")
.SILENT:
endif
endif
ifdef VERBEUX
ifeq ("$(VERBEUX)", "dehors")
.SILENT:
endif
endif
ifdef шумный
ifeq ("$(шумный)", "вне")
.SILENT:
endif
endif
ifdef 吵雜
ifeq ("$(吵雜)", "出去")
.SILENT:
endif
endif
ifdef वाचाल
ifeq ("$(वाचाल)", "बंद")
.SILENT:
endif
endif
ifdef ᕗᕉᑉᕉᔅ
ifeq ("$(ᕗᕉᑉᕉᔅ)", "ᖃᒥᓪᓗᒍ")
.SILENT:
endif
endif
ifndef VERBOSE
ifndef うるさい
ifndef LUIDRUCHTIG
ifndef VERBOSA
ifndef VERBOSO
ifndef VERBEUSE
ifndef VERBEUX
ifndef шумный
ifndef 吵雜
ifndef वाचाल
ifndef ᕗᕉᑉᕉᔅ
.SILENT:
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
#
# Configure debug mode
#
ifeq ("$(MB_ENV)", "on")
ifdef DEBUG
ifneq ("$(DEBUG)", "off")
MB_MAKE_CALL_DEBUG := $(DEBUG)
endif
endif
ifdef ONTBEESTEN
ifneq ("$(ONTBEESTEN)", "uit")
MB_MAKE_CALL_DEBUG := $(ONTBEESTEN)
endif
endif
ifdef デバッグ
ifneq ("$(デバッグ)", "ユニット")
MB_MAKE_CALL_DEBUG := $(デバッグ)
endif
endif
ifdef DEPURAR
ifneq ("$(DEPURAR)", "traje")
MB_MAKE_CALL_DEBUG := $(DEPURAR)
endif
endif
ifdef DÉBOGUER
ifneq ("$(DÉBOGUER)", "dehors")
MB_MAKE_CALL_DEBUG := $(DÉBOGUER)
endif
endif
ifdef отлаживать
ifneq ("$(отлаживать)", "вне")
MB_MAKE_CALL_DEBUG := $(отлаживать)
endif
endif
ifdef 偵錯
ifneq ("$(偵錯)", "出去")
MB_MAKE_CALL_DEBUG := $(偵錯)
endif
endif
ifdef डिबग
ifneq ("$(डिबग)", "बंद")
MB_MAKE_CALL_DEBUG := $(डिबग)
endif
endif
ifdef ᐃᕿᒡᒐᖅᑐᖅ
ifneq ("$(ᐃᕿᒡᒐᖅᑐᖅ)", "ᖃᒥᓪᓗᒍ")
MB_MAKE_CALL_DEBUG := $(ᐃᕿᒡᒐᖅᑐᖅ)
endif
endif
endif

View file

@ -1,88 +0,0 @@
MB_FLIGHT_SCREEN ?= off
$(call mb-make-call,mb-doc-variable,MB_FLIGHT_SCREEN,Creates screenshots on exit of openMSX.)
MB_FLIGHT_VIDEO ?= off
$(call mb-make-call,mb-doc-variable,MB_FLIGHT_VIDEO,Create video of every build pipe session.)
MB_FLIGHT_PREFIX ?= msxbuild
$(call mb-make-call,mb-doc-variable,MB_FLIGHT_PREFIX,Prefix for video and screenshot flight files.)
MB_FLIGHT_SEPERATOR ?= -
$(call mb-make-call,mb-doc-variable,MB_FLIGHT_SEPERATOR,File and index number seperator for flight files.)
MB_FLIGHT_RECORD_FLAG ?= -doublesize
$(call mb-make-call,mb-doc-variable,MB_FLIGHT_RECORD_FLAG,Command parameter flag of the video recorder.)
MB_FLIGHT_VIDEO_NAME ?= night-flight
$(call mb-make-call,mb-doc-variable,MB_FLIGHT_VIDEO_NAME,Video file name of the final result merged video.)
define mb-flight-video-merge
$(MB_   )$(call mb-make-call,mb-make-check-arg1,$(0),$(1))
$(MB_   )$(call mb-make-call,mb-os-echo-command,Indexing flight videos)
$(MB_   )find $(1) -type f -name '*.avi' -printf '%T@ %Tc %p\n' | sort -n | awk -F "$(1)/" -v s="file '" -v e="'" '{print s$$2e}' > $(1)/$(MB_FLIGHT_VIDEO_NAME).lst
$(MB_   )ffmpeg -v quiet -y -f concat -safe 0 -i $(1)/$(MB_FLIGHT_VIDEO_NAME).lst -c copy $(1)/$(MB_FLIGHT_VIDEO_NAME).avi
$(MB_   )$(call mb-make-call,mb-os-echo-remark,Flight video completed)
endef
$(call mb-make-call,mb-doc-function-deep,mb-flight-video-merge,Merged all flight videos to one.,<dir>)
define __mb-flight-proj-flow-video
.RECIPEPREFIX := $(MB_@RECIPE)
@@flight-video-build: @build
$(MB_@RECIPE)$$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb-make-call,mb-flight-video-merge,$(1)))
@flight-video-build: @clean
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_@RECIPE)MB_OPENMSX_HEADLESS$(MB_MAKE_EQUALS)off MB_FLIGHT_VIDEO$(MB_MAKE_EQUALS)on $$(MAKE) -s @@flight-video-build
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@flight-video-build,Runs @clean and @build with recorder and merges flight videos to one.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@flight-video-build)
@@flight-video-test: @test
$(MB_@RECIPE)$$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb-make-call,mb-flight-video-merge,$(1)))
@flight-video-test: @clean
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_@RECIPE)MB_OPENMSX_HEADLESS$(MB_MAKE_EQUALS)off MB_FLIGHT_VIDEO$(MB_MAKE_EQUALS)on $$(MAKE) @@flight-video-test
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@flight-video-test,Runs @clean and @test with recorder and merges flight videos to one.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@flight-video-test)
@@flight-video-package-qa: @package-qa
$(MB_@RECIPE)$$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb-make-call,mb-flight-video-merge,$(1)))
@flight-video-package-qa: @clean
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_@RECIPE)MB_OPENMSX_HEADLESS$(MB_MAKE_EQUALS)off MB_FLIGHT_VIDEO$(MB_MAKE_EQUALS)on $$(MAKE) @@flight-video-package-qa
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@flight-video-package-qa,Runs @clean and @package-qa with recorder and merges flight videos to one.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@flight-video-package-qa)
@@flight-video-all: @all
$(MB_@RECIPE)$$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb-make-call,mb-flight-video-merge,$(1)))
@flight-video-all: @clean
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_@RECIPE)MB_OPENMSX_HEADLESS$(MB_MAKE_EQUALS)off MB_FLIGHT_VIDEO$(MB_MAKE_EQUALS)on $$(MAKE) @@flight-video-all
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@flight-video-all,Runs @clean and @all with recorder and merges flight videos to one.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@flight-video-all)
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
define mb-flight-proj-flow-video
$(MB_   )$(call mb-make-call,mb-make-check-arg1,$(0),$(1))
$(MB_   )$(eval $(call mb-make-call,__$(0),$(1)))
endef
$(call mb-make-call,mb-doc-function-flow,mb-flight-proj-flow-video,Prints flow for adding flight video targets in project build cycle.,<path-bin>)

22
lib/make/mb_msxhub.mk Normal file
View file

@ -0,0 +1,22 @@
MB_CACHE ?=~/.cache
MB_MSXHUB_API ?= https://msxhub.com/api
MB_MSXHUB_CACHE ?= $(MB_CACHE)/msxhub/repro-v0
MB_MSXHUB_WGET ?= wget
# NOTE: with HDD import/export we get duplicate files after openMSX run, so force to 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_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))),,$(MB_MSXHUB_WGET) -O $(MB_MSXHUB_CACHE)/$(subst $(MB_MSXHUB_API)/,,$(1)) $(1))
endef
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)))))
$(if $(filter true,$(3)),$(call mb_copy,$(MB_MSXHUB_CACHE)/$(2),$(1)/$(call _mb_lowercase,$(notdir $(2)))))
endef

37
lib/make/mb_openmsx.mk Normal file
View file

@ -0,0 +1,37 @@
MB_OPENMSX_BOOT_TIMEOUT ?= 25
MB_OPENMSX_MACHINE ?= Philips_NMS_8250
MB_OPENMSX_SPEED ?= $(if $(findstring turboR,$(MB_OPENMSX_MACHINE)),100,333)
MB_OPENMSX_EXTS ?=
MB_OPENMSX_EXTRA_MEM ?= -ext ram4mb
MB_OPENMSX_JOYPORTA ?=
MB_OPENMSX_JOYPORTB ?=
MB_OPENMSX_SCALE_FACTOR ?= 3
MB_OPENMSX_ARGS = \
-machine $(MB_OPENMSX_MACHINE) \
-ext slotexpander -ext ide $(MB_OPENMSX_EXTRA_MEM) $(MB_OPENMSX_EXTS) \
-script $(PATH_MSXBUILD_REAL)/lib/openmsx/boot_env.tcl \
-script $(PATH_MSXBUILD_REAL)/lib/openmsx/boot_hdd.tcl \
-script $(PATH_MSXBUILD_REAL)/lib/openmsx/fail_after.tcl \
-script $(PATH_MSXBUILD_REAL)/lib/openmsx/omsxctl.tcl
define _mb_openmsx_run
@echo === Running openMSX
$(call mb_msxhub_file,$(PATH_MSXBUILD_REAL)/lib/openmsx,OMSXCTL/1.0-1/get/OMSXCTL/omsxctl.tcl)
FAIL_AFTER_BOOT=$(MB_OPENMSX_BOOT_TIMEOUT) \
FAIL_AFTER_PATH=bin \
BOOT_HDD_PATH="$(1)" \
BOOT_HDD_IMAGE="$(1)/../dsk.img" \
JOYPORTA=$(MB_OPENMSX_JOYPORTA) \
JOYPORTB=$(MB_OPENMSX_JOYPORTB) \
SCALE_FACTOR=$(MB_OPENMSX_SCALE_FACTOR) \
SPEED=$(MB_OPENMSX_SPEED) \
SAVE_SETTINGS_ON_EXIT=off \
THROTTLE=off \
$(PATH_OPENMSX)/openmsx $(MB_OPENMSX_ARGS) -control stdio < $(PATH_MSXBUILD_REAL)/lib/openmsx/boot_stdio.xml
endef
define mb_openmsx_dosctl
$(call mb_msxhub_file,$(1),OMSXCTL/1.0-1/get/OMSXCTL/omsxctl.com)
$(call _mb_openmsx_run,$(1))
endef

101
lib/make/mb_packages.mk Normal file
View file

@ -0,0 +1,101 @@
# MSXHUB fetch package files functions
define mb_package_emuctl
$(call mb_copy,$(PATH_MSXBUILD)/lib/emuctl/shutdown.bat,$(1))
$(call mb_copy,$(PATH_MSXBUILD)/lib/emuctl/z80.bat,$(1))
endef
#
# Operating System
#
define mb_package_dos1
$(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_package_dos2
$(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
# TODO: remove MSXDOS2.SYS...
define mb_package_nextor
$(call mb_msxhub_file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/MSXDOS2.SYS)
$(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
#
# Compilers
#
define mb_package_macro80
$(call mb_msxhub_file,$(1),MACRO80/2.0-1/get/MACRO80/CREF80.COM)
$(call mb_msxhub_file,$(1),MACRO80/2.0-1/get/MACRO80/L80.COM)
$(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)
$(call mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/HEXTOCOM.COM)
$(call mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/HEXTOBIN.COM)
endef
define mb_package_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)
$(call mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/HEXTOCOM.COM)
$(call mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/PRL.COM)
$(call mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/PRNTOSYM.COM)
$(call mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/RSX.COM)
$(call mb_msxhub_file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/ZSM.COM)
$(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
#
# Compressors
#
define mb_package_pmarc
$(call mb_msxhub_file,$(1),PMARC/2.0-1/get/PMARC/PMARC.COM)
$(call mb_msxhub_file,$(1),PMARC/2.0-1/get/PMARC/PMCAT.COM)
$(call mb_msxhub_file,$(1),PMARC/2.0-1/get/PMARC/PMEXE2.COM)
$(call mb_msxhub_file,$(1),PMARC/2.0-1/get/PMARC/PMEXT.COM)
$(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
define mb_package_lhpack
$(call mb_msxhub_file,$(1),LHPACK/1.00-1/get/LHPACK/lhpack.com)
endef
define mb_package_lhext
$(call mb_msxhub_file,$(1),LHEXT/1.34-2/get/LHEXT/lhext.com)
endef
define mb_package_gunzip
$(call mb_msxhub_file,$(1),GUNZIP/1.1-1/get/GUNZIP/gunzip.com)
endef
define mb_package_tunzip
$(call mb_msxhub_file,$(1),TUNZIP/0.91-1/get/TUNZIP/tunzip.com)
endef
define mb_package_popcom
$(call mb_msxhub_file,$(1),POPCOM/1.00-2/get/POPCOM/popcom.com)
endef
#
# Tools
#
define mb_package_turbo
$(call mb_msxhub_file,$(1),TURBO/2.1-1/get/TURBO/turbo.com)
endef
define mb_package_baskom
$(call mb_msxhub_file,$(1),BASKOM/1.0-1/get/BASKOM/baskom.com)
endef
define mb_package_binldr
$(call mb_msxhub_file,$(1),BINLDR/1.0.2-1/get/BINLDR/BINLDR.COM)
endef
define mb_package_dmphex
$(call mb_msxhub_file,$(1),DMPHEX/1.00-1/get/DMPHEX/dmphex.com)
endef
#
# Graphics editors
#
define mb_package_gfxage
$(call mb_msxhub_file,$(1),GFXAGE/0.99-1/get/GFXAGE/gfxage.com)
endef

18
lib/make/msxbuild.mk Normal file
View file

@ -0,0 +1,18 @@
#
# msxbuild.mk - Makefile helper to use with msx projects.
#
# Setup required tools paths
PATH_SDCC ?= /usr/bin
PATH_UNIX2DOS ?= /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 features
include $(PATH_MSXBUILD)/lib/make/mb_base.mk
include $(PATH_MSXBUILD)/lib/make/mb_autoexec.mk
include $(PATH_MSXBUILD)/lib/make/mb_msxhub.mk
include $(PATH_MSXBUILD)/lib/make/mb_packages.mk
include $(PATH_MSXBUILD)/lib/make/mb_openmsx.mk
include $(PATH_MSXBUILD)/lib/make/mb_build.mk

View file

@ -1,114 +0,0 @@
MB_DOC_FIRE_VARIABLE_FLOW = $(call mb-make-call,mb-make-space-newline)
MB_DOC_FIRE_VARIABLE = $(call mb-make-call,mb-make-space-newline)
MB_DOC_FIRE_VARIABLE_DEEP = $(call mb-make-call,mb-make-space-newline)
MB_DOC_FIRE_VARIABLE_ROCK = $(call mb-make-call,mb-make-space-newline)
MB_DOC_FIRE_VARIABLE_I18N = $(call mb-make-call,mb-make-space-newline)
MB_DOC_FIRE_FUNCTION = $(call mb-make-call,mb-make-space-newline)
MB_DOC_FIRE_FUNCTION_DEEP = $(call mb-make-call,mb-make-space-newline)
MB_DOC_FIRE_FUNCTION_FLOW = $(call mb-make-call,mb-make-space-newline)
MB_DOC_FIRE_TARGET = $(call mb-make-call,mb-make-space-newline)
MB_DOC_FIRE_TARGET_DEEP = $(call mb-make-call,mb-make-space-newline)
MB_DOC_FIRE_TARGET_RUN = $(call mb-make-call,mb-make-space-newline)
MB_DOC_FIRE_TARGET_MODULE = $(call mb-make-call,mb-make-space-newline)
MB_DOC_FIRE_TARGET_ORPHAN = $(call mb-make-call,mb-make-space-newline)
MB_DOC_FIRE_TARGET_ASSERT = $(call mb-make-call,mb-make-space-newline)
MB_DOC_FIRE_TARGET_HELP = $(call mb-make-call,mb-make-space-newline)
MB_DOC_XML_ROOT := firemake
MB_DOC_XML_ATTR_NAME := name
MB_DOC_XML_ATTR_LEVEL := level
MB_DOC_XML_TAG_ARGS := arguments
MB_DOC_XML_TAG_DESC := description
MB_DOC_XML_TAG_VALUE := value
#MB_DOC_XML_TAG_MACHINE := machine
#MB_DOC_FIRE_VARIABLE_ROCK += $(call mb-make-call,_mb-doc-variable4u-rock,MB_DOC_XML_TAG_MACHINE,XML machine tag for firemake output.)
# rename now internal: _MB_DOC_FORMAT
MB_DOC_FORMAT ?= txt
#MB_DOC_FIRE_VARIABLE_DEEP += $(call mb-make-call,_mb-doc-variable4u-deep,MB_DOC_FORMAT,Output format of documention$(MB_MAKE_COMMA) only 'txt' or 'xml' is supported.)
define _mb-doc-variable-txt
$(MB_   )* $(2)$(MB_MAKE_EQUALS)$(4)$(call mb-make-call,mb-make-space-newline)$\
$(MB_      )$(if $(3),$(call mb-make-call,mb-make-space-tab)$(3)$(call mb-make-call,mb-make-space-newline))$\
$(MB_   )$(call mb-make-call,mb-make-space-newline)
endef
define _mb-doc-variable-xml
$(MB_   )$(call mb-make-call,mb-make-space-newline)$\
$(MB_      )$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-xml-open,variable,$(MB_DOC_XML_ATTR_NAME),$(2),$(MB_DOC_XML_ATTR_LEVEL),$(1))$(call mb-make-call,mb-make-space-newline)$\
$(MB_         )$(if $(4),$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-xml-tag-value,$(MB_DOC_XML_TAG_VALUE),$(4))$(call mb-make-call,mb-make-space-newline))$\
$(MB_         )$(if $(3),$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-xml-tag-value,$(MB_DOC_XML_TAG_DESC),$(3))$(call mb-make-call,mb-make-space-newline))$\
$(MB_      )$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-xml-close,variable)
endef
define mb-doc-variable
$(MB_   )$(eval MB_DOC_FIRE_VARIABLE += $$(call mb-make-call,_mb-doc-variable-$$(MB_DOC_FORMAT),build,$(1),$(2),$($(1))))
endef
define mb-doc-variable-deep
$(MB_   )$(eval MB_DOC_FIRE_VARIABLE_DEEP += $$(call mb-make-call,_mb-doc-variable-$$(MB_DOC_FORMAT),deep,$(1),$(2),$($(1))))
endef
define mb-doc-variable-rock
$(MB_   )$(eval MB_DOC_FIRE_VARIABLE_ROCK += $$(call mb-make-call,_mb-doc-variable-$$(MB_DOC_FORMAT),rock,$(1),$(2),$($(1))))
endef
define mb-doc-variable-flow
$(MB_   )$(eval MB_DOC_FIRE_VARIABLE_FLOW += $$(call mb-make-call,_mb-doc-variable-$$(MB_DOC_FORMAT),flow,$(1),$(2),$$(words $$($(1)))))
endef
define mb-doc-variable-i18n
$(MB_   )$(eval MB_DOC_FIRE_VARIABLE_I18N += $$(call mb-make-call,_mb-doc-variable-$$(MB_DOC_FORMAT),i18n,$(1),$(2),$($(1))))
endef
define _mb-doc-function-txt
$(MB_   )* $(2) $(if $(4),$(MB_MAKE_EQUALS) $(4))$(if $(3),$(call mb-make-call,mb-make-space-newline)$(call mb-make-call,mb-make-space-tab)$(3)$(call mb-make-call,mb-make-space-newline))$\
$(MB_   )$(call mb-make-call,mb-make-space-newline)
endef
define _mb-doc-function-xml
$(MB_   )$(call mb-make-call,mb-make-space-newline)$\
$(MB_      )$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-xml-open,function,$(MB_DOC_XML_ATTR_NAME),$(2),$(MB_DOC_XML_ATTR_LEVEL),$(1))$(call mb-make-call,mb-make-space-newline)$\
$(MB_         )$(if $(4),$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-xml-tag-value,$(MB_DOC_XML_TAG_ARGS),$(4))$(call mb-make-call,mb-make-space-newline))$\
$(MB_         )$(if $(3),$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-xml-tag-value,$(MB_DOC_XML_TAG_DESC),$(3))$(call mb-make-call,mb-make-space-newline))$\
$(MB_      )$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-xml-close,function)
endef
define mb-doc-function
$(MB_   )$(eval MB_DOC_FIRE_FUNCTION += $$(call mb-make-call,_mb-doc-function-$$(MB_DOC_FORMAT),build,$(1),$(2),$(3)))
endef
define mb-doc-function-deep
$(MB_   )$(eval MB_DOC_FIRE_FUNCTION_DEEP += $$(call mb-make-call,_mb-doc-function-$$(MB_DOC_FORMAT),deep,$(1),$(2),$(3)))
endef
define mb-doc-function-flow
$(MB_   )$(eval MB_DOC_FIRE_FUNCTION_FLOW += $$(call mb-make-call,_mb-doc-function-$$(MB_DOC_FORMAT),flow,$(1),$(2),$(3)))
endef
define _mb-doc-target-txt
$(MB_   )* $(2)$(if $(3),$(call mb-make-call,mb-make-space-newline)$(call mb-make-call,mb-make-space-tab)$(3))$(call mb-make-call,mb-make-space-newline)$\
$(MB_   )$(call mb-make-call,mb-make-space-newline)
endef
define _mb-doc-target-xml
$(MB_   )$(call mb-make-call,mb-make-space-newline)$\
$(MB_      )$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-xml-open,target,$(MB_DOC_XML_ATTR_NAME),$(2),$(MB_DOC_XML_ATTR_LEVEL),$(1))$(call mb-make-call,mb-make-space-newline)$\
$(MB_         )$(if $(3),$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-xml-tag-value,$(MB_DOC_XML_TAG_DESC),$(3))$(call mb-make-call,mb-make-space-newline))$\
$(MB_      )$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-xml-close,target)
endef
define mb-doc-target
$(MB_   )$(eval MB_DOC_FIRE_TARGET += $$(call mb-make-call,_mb-doc-target-$$(MB_DOC_FORMAT),build,$(1),$(2)))
endef
define mb-doc-target-deep
$(MB_   )$(eval MB_DOC_FIRE_TARGET_DEEP += $$(call mb-make-call,_mb-doc-target-$$(MB_DOC_FORMAT),deep,$(1),$(2)))
endef
define mb-doc-target-help
$(MB_   )$(eval MB_DOC_FIRE_TARGET_HELP += $$(call mb-make-call,_mb-doc-target-$$(MB_DOC_FORMAT),help,$(1),$(2)))
endef
define mb-doc-target-run
$(MB_   )$(eval MB_DOC_FIRE_TARGET_RUN += $$(call mb-make-call,_mb-doc-target-$$(MB_DOC_FORMAT),run,$(1),$(2)))
endef
define mb-doc-target-module
$(MB_   )$(eval MB_DOC_FIRE_TARGET_MODULE += $$(call mb-make-call,_mb-doc-target-$$(MB_DOC_FORMAT),module,$(1),$(2)))
endef
define mb-doc-target-orphan
$(MB_   )$(eval MB_DOC_FIRE_TARGET_ORPHAN += $$(call mb-make-call,_mb-doc-target-$$(MB_DOC_FORMAT),orphan,$(1),$(2)))
endef
define mb-doc-target-assert
$(MB_   )$(eval MB_DOC_FIRE_TARGET_ASSERT += $$(call mb-make-call,_mb-doc-target-$$(MB_DOC_FORMAT),assert,$(1),$(2)))
endef

View file

@ -1,43 +0,0 @@
MB_MAKE_COMMA := ,
$(call mb-make-call,mb-doc-variable-rock,MB_MAKE_COMMA,Expanded special char; comma.)
MB_MAKE_EQUALS := =
$(call mb-make-call,mb-doc-variable-rock,MB_MAKE_EQUALS,Expanded special char; equals.)
MB_MAKE_APPEND := +$(MB_MAKE_EQUALS)
$(call mb-make-call,mb-doc-variable-rock,MB_MAKE_APPEND,Expanded special char; +equals.)
MB_MAKE_HASH := \#
$(call mb-make-call,mb-doc-variable-rock,MB_MAKE_HASH,Expanded special char; hash.)
MB_MAKE_COLON := :
$(call mb-make-call,mb-doc-variable-rock,MB_MAKE_COLON,Expanded special char; colon.)
MB_MAKE_DOLLAR := $$
$(call mb-make-call,mb-doc-variable-rock,MB_MAKE_DOLLAR,Expanded special char; dollar.)
define mb-make-target-phony
.PHONY: $(1)
endef
$(call mb-make-call,mb-doc-function-deep,mb-make-flag-phony,Marks an target as phony.,<target>)
define mb-make-wildcard-treewalker
$(MB_   )$(foreach _dir,$(wildcard $(1)*),$(call mb-make-wildcard-treewalker,$(_dir)/,$(2)) $(filter $(subst *,%,$(2)),$(_dir)))
endef
$(call mb-make-call,mb-doc-function-deep,mb-make-wildcard-treewalker,Recursive wildcard search.,<dir> <match>)
define mb-make-lowercase
$(MB_   )$(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
$(call mb-make-call,mb-doc-function-deep,mb-make-lowercase,Converts ascii string to lowercase.,<string>)
define mb-make-uppercase
$(MB_   )$(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
$(call mb-make-call,mb-doc-function-deep,mb-make-uppercase,Converts ascii string to uppercase.,<string>)

View file

@ -1,21 +0,0 @@
MB_MAKE_CALL_DEBUG ?= off
# Workaround for --warn-undefined-variables
1 :=
2 :=
3 :=
4 :=
5 :=
6 :=
7 :=
8 :=
9 :=
define _mb-make-call-debug
$(MB_   )$(if $(filter off,$(MB_MAKE_CALL_DEBUG)),,$(if $(findstring mb-doc-,$(1)),,$(warning DEBUG $(1) ($(2),$(3),$(4),$(5),$(6),$(7),$(8),$(9)))))
endef
define mb-make-call
$(MB_   )$(call _mb-make-call-debug,$(1),$(2),$(3),$(4),$(5),$(6),$(7),$(8),$(9))$(if $(filter file,$(origin $(1))),$(call $(1),$(2),$(3),$(4),$(5),$(6),$(7),$(8),$(9)),$(error $(1) is not defined))
endef

View file

@ -1,52 +0,0 @@
define mb-make-check-variable
$(MB_   )$(if $($(1)),,$(error $(1): $(MB_I18N_MAKE_CHECK_VARIABLE)))
endef
$(call mb-make-call,mb-doc-function-deep,mb-make-check-variable,Checks that a variable is not empty.,<variable>)
define mb-make-check-value-valid
$(MB_   )$(if $(filter $(2),$(3)),,$(error $(1): $(MB_I18N_MAKE_CHECK_VALUE_VALID) $(2) $(3)))
endef
$(call mb-make-call,mb-doc-function-deep,mb-make-check-value-valid,Checks that a value is valid.,<value> <valid-values>)
define mb-make-check-arg1
$(MB_   )$(if $(2),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG1)))
endef
$(call mb-make-call,mb-doc-function-deep,mb-make-check-arg1,Checks that a function has a given argument.,<function> <arg1>)
define mb-make-check-arg2
$(MB_   )$(if $(2),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG1))) \
$(MB_   )$(if $(3),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG2)))
endef
$(call mb-make-call,mb-doc-function-deep,mb-make-check-arg2,Checks that a function has the given arguments.,<function> <arg1> <arg2>)
define mb-make-check-arg3
$(MB_   )$(if $(2),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG1))) \
$(MB_   )$(if $(3),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG2))) \
$(MB_   )$(if $(4),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG3)))
endef
$(call mb-make-call,mb-doc-function-deep,mb-make-check-arg3,Checks that a function has the given arguments.,<function> <arg1> <arg2> <arg3>)
define mb-make-check-arg4
$(MB_   )$(if $(2),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG1))) \
$(MB_   )$(if $(3),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG2))) \
$(MB_   )$(if $(4),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG3))) \
$(MB_   )$(if $(5),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG4)))
endef
$(call mb-make-call,mb-doc-function-deep,mb-make-check-arg4,Checks that a function has the given arguments.,<function> <arg1> <arg2> <arg3> <arg4>)
define mb-make-check-arg5
$(MB_   )$(if $(2),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG1))) \
$(MB_   )$(if $(3),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG2))) \
$(MB_   )$(if $(4),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG3))) \
$(MB_   )$(if $(5),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG4))) \
$(MB_   )$(if $(6),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG5)))
endef
$(call mb-make-call,mb-doc-function-deep,mb-make-check-arg5,Checks that a function has the given arguments.,<function> <arg1> <arg2> <arg3> <arg4> <arg5>)

View file

@ -1,53 +0,0 @@
# Wait until functions are parsed...
#*** Recursive variable: $(call mb-make-call,mb-doc-variable-flow,MB_DOC_FIRE_VARIABLE_FLOW,Flow builder of fire flow variable data.)
$(call mb-make-call,mb-doc-variable-flow,MB_DOC_FIRE_VARIABLE,Flow builder of firemake variable data.)
$(call mb-make-call,mb-doc-variable-flow,MB_DOC_FIRE_VARIABLE_DEEP,Flow builder of makefire deep variable data.)
$(call mb-make-call,mb-doc-variable-flow,MB_DOC_FIRE_VARIABLE_ROCK,Flow builder of makefire rock variable data.)
$(call mb-make-call,mb-doc-variable-flow,MB_DOC_FIRE_VARIABLE_I18N,Flow builder of makefire i18n variable data.)
$(call mb-make-call,mb-doc-variable-flow,MB_DOC_FIRE_FUNCTION,Flow builder of firemake function data.)
$(call mb-make-call,mb-doc-variable-flow,MB_DOC_FIRE_FUNCTION_DEEP,Flow builder of firemake deep function data.)
$(call mb-make-call,mb-doc-variable-flow,MB_DOC_FIRE_FUNCTION_FLOW,Flow builder of firemake flow function data.)
$(call mb-make-call,mb-doc-variable-flow,MB_DOC_FIRE_TARGET,Flow builder of firemake target data.)
$(call mb-make-call,mb-doc-variable-flow,MB_DOC_FIRE_TARGET_DEEP,Flow builder of firemake deep target data.)
$(call mb-make-call,mb-doc-variable-flow,MB_DOC_FIRE_TARGET_RUN,Flow builder of firemake run target data.)
$(call mb-make-call,mb-doc-variable-flow,MB_DOC_FIRE_TARGET_MODULE,Flow builder of firemake module target data.)
$(call mb-make-call,mb-doc-variable-flow,MB_DOC_FIRE_TARGET_ORPHAN,Flow builder of firemake orphan target data.)
$(call mb-make-call,mb-doc-variable-flow,MB_DOC_FIRE_TARGET_ASSERT,Flow builder of firemake assert target data.)
$(call mb-make-call,mb-doc-variable-flow,MB_DOC_FIRE_TARGET_HELP,Flow builder of firemake help data.)
$(call mb-make-call,mb-doc-variable-rock,MB_DOC_XML_ROOT,XML root tag for firemake output.)
$(call mb-make-call,mb-doc-variable-rock,MB_DOC_XML_ATTR_NAME,XML name attribute for firemake output.)
$(call mb-make-call,mb-doc-variable-rock,MB_DOC_XML_ATTR_LEVEL,XML level attribute for firemake output.)
$(call mb-make-call,mb-doc-variable-rock,MB_DOC_XML_TAG_ARGS,XML arguments tag for firemake output.)
$(call mb-make-call,mb-doc-variable-rock,MB_DOC_XML_TAG_DESC,XML description tag for firemake output.)
$(call mb-make-call,mb-doc-variable-rock,MB_DOC_XML_TAG_VALUE,XML value tag for firemake output.)
$(call mb-make-call,mb-doc-function-deep,mb-doc-variable,Saves formatted documention of an variable.,<name> [desc])
$(call mb-make-call,mb-doc-function-deep,mb-doc-variable-deep,Saves formatted documention of an deep variable.,<name> [desc])
$(call mb-make-call,mb-doc-function-deep,mb-doc-variable-rock,Saves formatted documention of an rock variable.,<name> [desc])
$(call mb-make-call,mb-doc-function-deep,mb-doc-variable-flow,Saves formatted documention of an flow variable.,<name> [desc])
$(call mb-make-call,mb-doc-function-deep,mb-doc-variable-i18n,Saves formatted documention of an i18n variable.,<name> [desc])
$(call mb-make-call,mb-doc-function-deep,mb-doc-function,Saves formatted documention of an function.,<name> [desc] [args])
$(call mb-make-call,mb-doc-function-deep,mb-doc-function-deep,Saves formatted documention of an deep function.,<name> [desc] [args])
$(call mb-make-call,mb-doc-function-deep,mb-doc-function-flow,Saves formatted documention of an flow function.,<name> [desc] [args])
$(call mb-make-call,mb-doc-function-deep,mb-doc-target,Saves formatted documention of an target.,<name> [desc])
$(call mb-make-call,mb-doc-function-deep,mb-doc-target-deep,Saves formatted documention of an deep target.,<name> [desc])
$(call mb-make-call,mb-doc-function-deep,mb-doc-target-help,Saves formatted documention of an help target.,<name> [desc])
$(call mb-make-call,mb-doc-function-deep,mb-doc-target_run,Saves formatted documention of an run target.,<name> [desc])
$(call mb-make-call,mb-doc-function-deep,mb-doc-target-module,Saves formatted documention of an module target.,<name> [desc])
$(call mb-make-call,mb-doc-function-deep,mb-doc-target-orphan,Saves formatted documention of an orphan target.,<name> [desc])
$(call mb-make-call,mb-doc-function-deep,mb-doc-target-assert,Saves formatted documention of an assert target.,<name> [desc])
# After doc, to have equal order to include order
$(call mb-make-call,mb-doc-function-deep,mb-make-call,Checked origin call function wrapper.,<function> [args...])
$(call mb-make-call,mb-doc-variable-deep,MB_MAKE_CALL_DEBUG,If on prints debug trace of all make calls.)
# After make call for ordering
$(call mb-make-call,mb-doc-function-deep,mb-make-space-newline,Prints a newline character.)
$(call mb-make-call,mb-doc-function-deep,mb-make-space-tab,Prints a tab character.)
$(call mb-make-call,mb-doc-function-deep,mb-make-space-white,Prints a white space character.)
$(call mb-make-call,mb-doc-function-deep,mb-make-space-white-to-comma,Replaces all spaces with comma's.,<input>)

View file

@ -1,18 +0,0 @@
define mb-make-module-path-src
$(MB_   )$(1)$(abspath $(subst $(1),,$(dir $(lastword $(MAKEFILE_LIST)))))
endef
$(call mb-make-call,mb-doc-function-deep,mb-make-module-path-src,Convert current location folder as src folder.,<path-src>)
define mb-make-module-path-bin
$(MB_   )$(2)$(abspath $(subst $(1),,$(dir $(lastword $(MAKEFILE_LIST)))))
endef
$(call mb-make-call,mb-doc-function-deep,mb-make-module-path-src,Convert current location folder as bin folder.,<path-src> <path-bin>)
define mb-make-module-local-deps
$(MB_   )$(foreach _dep,$(2),$(1)/$(notdir $(_dep)))
endef
$(call mb-make-call,mb-doc-function-deep,mb-make-module-deps,Convert other files to local deps.,<mod-bin> <deps>)

View file

@ -1,21 +0,0 @@
define mb-make-space-newline
$(MB_   )
$(MB_   )
endef
define mb-make-space-tab
$(MB_   ) $(MB_ )
endef
define mb-make-space-white
$(MB_   )$(subst ,, )
endef
define mb-make-space-white-to-comma
$(MB_   )$(subst $(call mb-make-call,mb-make-space-white),$(MB_MAKE_COMMA),$1)
endef

View file

@ -1,62 +0,0 @@
MB_MAKE_XML_LT := <
$(call mb-make-call,mb-doc-variable-rock,MB_MAKE_XML_LT,Expanded special char; lesser than.)
MB_MAKE_XML_GT := >
$(call mb-make-call,mb-doc-variable-rock,MB_MAKE_XML_GT,Expanded special char; greater than.)
MB_MAKE_XML_CDATA_START := <![CDATA[
$(call mb-make-call,mb-doc-variable-rock,MB_MAKE_XML_CDATA_START,Expanded special char; XML cdata start.)
MB_MAKE_XML_CDATA_END := ]]>
$(call mb-make-call,mb-doc-variable-rock,MB_MAKE_XML_CDATA_END,Expanded special char; XML cdata end.)
define mb-make-xml-prolog
$(MB_   )$(MB_MAKE_XML_LT)$\
$(MB_    )?xml version$(MB_MAKE_EQUALS)"1.0" ?$\
$(MB_   )$(MB_MAKE_XML_GT)
endef
$(call mb-make-call,mb-doc-function-deep,mb-make-xml-prolog,Print xml document prolog.)
define mb-make-xml-escape-attr-value
$(MB_   )$(subst ',&apos;,$(subst ",&quote;,$(subst &,&amp;,$(subst <,&lt;,$(subst >,&gt;,$(subst $(MB_MAKE_XML_CDATA_START),,$(subst $(MB_MAKE_XML_CDATA_END),,$(1))))))))
endef
$(call mb-make-call,mb-doc-function-deep,mb-make-xml-escape-attr-value,Prints escaped XML attribute value.,<value>)
define mb-make-xml-escape-tag-body
$(MB_   )$(subst $(MB_MAKE_XML_CDATA_START),,$(subst $(MB_MAKE_XML_CDATA_END),,$(1)))
endef
$(call mb-make-call,mb-doc-function-deep,mb-make-xml-escape-tag-body,Prints escaped XML element/tag body value.,<value>)
define mb-make-xml-open
$(MB_   )$(MB_MAKE_XML_LT)$(1)$\
$(MB_    )$(if $(2), $(2)$(MB_MAKE_EQUALS)"$(call mb-make-call,mb-make-xml-escape-attr-value,$(3))")$\
$(MB_    )$(if $(4), $(4)$(MB_MAKE_EQUALS)"$(call mb-make-call,mb-make-xml-escape-attr-value,$(5))")$\
$(MB_   )$(MB_MAKE_XML_GT)
endef
$(call mb-make-call,mb-doc-function-deep,mb-make-xml-open,Print xml open tag.,<tag> [attr1-name] [attr1-value] [attr2-name] [attr2-value])
define mb-make-xml-close
$(MB_   )$(MB_MAKE_XML_LT)/$(1)$(MB_MAKE_XML_GT)
endef
$(call mb-make-call,mb-doc-function-deep,mb-make-xml-close,Print xml close tag.,<tag>)
define mb-make-xml-value
$(MB_   )$(MB_MAKE_XML_CDATA_START)$\
$(MB_    )$(call mb-make-call,mb-make-xml-escape-tag-body,$(1))$\
$(MB_   )$(MB_MAKE_XML_CDATA_END)
endef
$(call mb-make-call,mb-doc-function-deep,mb-make-xml-value,Print xml value in cdata wrapper.,<value>)
define mb-make-xml-tag-value
$(MB_   )$(if $(2),$(call mb-make-call,mb-make-xml-open,$(1))$(call mb-make-call,mb-make-xml-value,$(2))$(call mb-make-call,mb-make-xml-close,$(1)))
endef
$(call mb-make-call,mb-doc-function-deep,mb-make-xml-tag-value,Print xml tag with value inside.,<tag> [value])

View file

@ -1,26 +0,0 @@
#
# Latin1 white space and latin1 tab space are not usable in makefiles.
# Setup private chinese white space
#
MB_ :=
MB_  :=
MB_   :=
MB_    :=
MB_     :=
MB_      :=
MB_       :=
MB_        :=
MB_         :=
MB_          :=
MB_           :=
MB_            :=
MB_             :=
MB_              :=
MB_               :=
MB_                :=
MB_                 :=
MB_                  :=
# Defines the real white space " " variable for line wrapping without white space
$(eval $$(subst ,, ) :=)

View file

@ -1,16 +0,0 @@
define mb-conv-unix2dos
$(MB_   )$(call mb-make-call,mb-make-check-arg2,$(0),$(1),$(2))
$(MB_   )$(call mb-make-call,mb-os-echo-command,$(MB_I18N_CONV_UNIX2DOS) $(2))
$(MB_   )unix2dos -q -n $(1) $(2)
endef
$(call mb-make-call,mb-doc-function,mb-conv-unix2dos,Converts an unix file to dos.,<in> <out>)
define mb-conv-dos2unix
$(MB_   )$(call mb-make-call,mb-make-check-arg2,mb-conv-dos2unix,$(1),$(2))
$(MB_   )$(call mb-make-call,mb-os-echo-command,$(MB_I18N_CONV_DOS2UNIX) $(2))
$(MB_   )dos2unix -q -n $(1) $(2)
endef
$(call mb-make-call,mb-doc-function,mb-conv-dos2unix,Converts an dos file to unix.,<in> <out>)

View file

@ -1,75 +0,0 @@
MB_NESTOR80_PATH ?=
$(call mb-make-call,mb-doc-variable,MB_NESTOR80_PATH,Optional path where Nestor80 binaries are located.)
MB_NESTOR80_FLAG_VERBOSE ?=--no-show-banner --no-color-output --verbosity 0
$(call mb-make-call,mb-doc-variable-deep,MB_NESTOR80_FLAG_VERBOSE,The Nestor80 shared verbose flags.)
MB_NESTOR80_N80_FLAGS ?=
$(call mb-make-call,mb-doc-variable-deep,MB_NESTOR80_N80_FLAGS,The N80 compile flags.)
MB_NESTOR80_LK80_FLAGS ?=
$(call mb-make-call,mb-doc-variable-deep,MB_NESTOR80_LK80_FLAGS,The LK80 linker flags.)
define _mb-nestor80-path
$(MB_   )$(if $(MB_NESTOR80_PATH),$(MB_NESTOR80_PATH)/$(1),$(1))
endef
define mb-nestor80-compile
$(MB_   )$(call mb-make-call,mb-os-echo-command,$(MB_I18N_NESTOR80_COMPILE) $(2))
$(MB_   )$(call mb-make-call,_mb-nestor80-path,N80) $(1) $(2) $(MB_NESTOR80_N80_FLAGS) $(MB_NESTOR80_FLAG_VERBOSE)
endef
$(call mb-make-call,mb-doc-function,mb-nestor80-compile,Compiles source code.,<in> <out>)
# TODO: Create BUG for LK80 it prints one new line, which is illigal white space on normal execution style
define mb-nestor80-link
$(MB_   )$(call mb-make-call,mb-os-echo-command,$(MB_I18N_NESTOR80_LINK) $(2) @ $(3))
$(MB_   )@echo "$(MB_I18N_OS_CRAYON_TAG) `$(call mb-make-call,_mb-nestor80-path,LK80) $(MB_NESTOR80_LK80_FLAGS) $(MB_NESTOR80_FLAG_VERBOSE) --code $(3) --output-format bin -o $(2) $(1)`"
endef
$(call mb-make-call,mb-doc-function,mb-nestor80-link,Links to custom code location.,<in> <out> <code-loc>)
define mb-nestor80-link-0000
$(MB_   )$(call mb-make-call,mb-nestor80-link,$(1),$(2),0000h)
endef
$(call mb-make-call,mb-doc-function,mb-nestor80-link-0000,Links to 0x0000.,<in> <out>)
define mb-nestor80-link-0100
$(MB_   )$(call mb-make-call,mb-nestor80-link,$(1),$(2),0100h)
endef
$(call mb-make-call,mb-doc-function,mb-nestor80-link-0100,Links to 0x0100.,<in> <out>)
define mb-nestor80-link-1000
$(MB_   )$(call mb-make-call,mb-nestor80-link,$(1),$(2),1000h)
endef
$(call mb-make-call,mb-doc-function,mb-nestor80-link-1000,Links to 0x1000.,<in> <out>)
define mb-nestor80-link-4000
$(MB_   )$(call mb-make-call,mb-nestor80-link,$(1),$(2),4000h)
endef
$(call mb-make-call,mb-doc-function,mb-nestor80-link-4000,Links to 0x4000.,<in> <out>)
define mb-nestor80-link-8000
$(MB_   )$(call mb-make-call,mb-nestor80-link,$(1),$(2),8000h)
endef
$(call mb-make-call,mb-doc-function,mb-nestor80-link-8000,Links to 0x8000.,<in> <out>)
define mb-nestor80-link-C000
$(MB_   )$(call mb-make-call,mb-nestor80-link,$(1),$(2),C000h)
endef
$(call mb-make-call,mb-doc-function,mb-nestor80-link-C000,Links to 0xC000.,<in> <out>)
define mb-nestor80-link-bdos
$(MB_   )$(call mb-make-call,mb-nestor80-link-0100,$(1),$(2))
endef
$(call mb-make-call,mb-doc-function,mb-nestor80-link-bdos,Links to BDOS.,<in> <out>)

View file

@ -1,127 +0,0 @@
MB_OS_RM ?= rm -f
$(call mb-make-call,mb-doc-variable-rock,MB_OS_RM,Native OS delete command.)
MB_OS_RMDIR ?= rm -rf
$(call mb-make-call,mb-doc-variable-rock,MB_OS_RMDIR,Native OS remove folder command.)
MB_OS_MKDIR ?= mkdir -p
$(call mb-make-call,mb-doc-variable-rock,MB_OS_MKDIR,Native OS create folder command.)
MB_OS_COPY ?= cp
$(call mb-make-call,mb-doc-variable-rock,MB_OS_COPY,Native OS copy command.)
MB_OS_STDOUT_IGNORE ?= >/dev/null
$(call mb-make-call,mb-doc-variable-rock,MB_OS_STDOUT_IGNORE,Native OS ignore stdout.)
MB_OS_STDERR_IGNORE ?= 2>/dev/null
$(call mb-make-call,mb-doc-variable-rock,MB_OS_STDERR_IGNORE,Native OS ignore stderr.)
MB_OS_SEP ?=/
$(call mb-make-call,mb-doc-variable-rock,MB_OS_SEP,Native OS path seperator.)
MB_OS_CACHE ?= ~/.cache
$(call mb-make-call,mb-doc-variable-rock,MB_OS_CACHE,Native OS application cache folder.)
MB_OS_TERM_COLORS ?= $(shell tput colors 2> /dev/null;test $$? -eq 0 || echo -1)
$(call mb-make-call,mb-doc-variable-rock,MB_OS_TERM_COLORS,Native OS terminal color count support.)
ifdef OS
ifeq ($(OS),Windows_NT)
$(MB_   )MB_OS_RM ?= del /F /Q
$(MB_   )MB_OS_RMDIR ?= RMDIR /S /Q
$(MB_   )MB_OS_MKDIR ?= mkdir
$(MB_   )MB_OS_COPY ?= copy
$(MB_   )MB_OS_STDOUT_IGNORE ?= >NUL
$(MB_   )MB_OS_STDERR_IGNORE ?= 2>NUL || true
$(MB_   )MB_OS_SEP ?=\
$(MB_   )MB_OS_CACHE ?= %LOCALAPPDATA%
$(MB_   )MB_OS_TERM_COLORS ?= -1
endif
endif
define mb-os-file-empty
$(MB_   )$(file >$(1))
endef
$(call mb-make-call,mb-doc-function,mb-os-file-empty,Makes an file empty.,<file>)
define mb-os-file-append
$(MB_   )$(file >>$(1),$(2))
endef
$(call mb-make-call,mb-doc-function,mb-os-file-append,Appends text to an file,<file> <text>)
define mb-os-file-copy
$(MB_   )$(MB_OS_COPY) $(1) $(2)
endef
$(call mb-make-call,mb-doc-function,mb-os-file-copy,Copy an file.,<in> <out>)
define mb-os-file-delete
$(MB_   )$(MB_OS_RM) $(1)
endef
$(call mb-make-call,mb-doc-function,mb-os-file-delete,Deletes an file.,<file>)
define mb-os-file-touch
$(MB_   )touch $(1)
endef
$(call mb-make-call,mb-doc-function,mb-os-file_touch,Changes file timestamps.,<file>)
define mb-os-dir-delete
$(MB_   )$(MB_OS_RMDIR) $(1)
endef
$(call mb-make-call,mb-doc-function,mb-os-dir-delete,Delete the full folder.,<dir>)
define mb-os-dir-create
$(MB_   )$(MB_OS_MKDIR) $(1)
endef
$(call mb-make-call,mb-doc-function,mb-os-dir-create,Creates an folder.,<dir>)
define mb-os-crayon-tagged-echo
$(MB_   )$(if $(filter -1,$(MB_OS_TERM_COLORS)),@echo $(MB_I18N_OS_CRAYON_TAG) $(2),@echo -e "\x1B[$(1)m$(MB_I18N_OS_CRAYON_TAG)\x1B[39m $(2)")
endef
$(call mb-make-call,mb-doc-function-deep,mb-os-crayon-tagged-echo,Echo's an prefixed message to stdout with ansi color code.,<color-code> <message>)
define mb-os-echo-report
$(MB_   )$(call mb-make-call,mb-os-crayon-tagged-echo,31,$(1))
endef
$(call mb-make-call,mb-doc-function-deep,mb-os-echo-report,Echo's an message to stdout with 'red' crayon.,<message>)
define mb-os-echo-good
$(MB_   )$(call mb-make-call,mb-os-crayon-tagged-echo,32,$(1))
endef
$(call mb-make-call,mb-doc-function-deep,mb-os-echo-good,Echo's an message to stdout with 'green' crayon.,<message>)
define mb-os-echo-assert
$(MB_   )$(call mb-make-call,mb-os-crayon-tagged-echo,33,$(1))
endef
$(call mb-make-call,mb-doc-function-deep,mb-os-echo-assert,Echo's an message to stdout with 'yellow' crayon.,<message>)
define mb-os-echo-command
$(MB_   )$(call mb-make-call,mb-os-crayon-tagged-echo,34,$(1))
endef
$(call mb-make-call,mb-doc-function-deep,mb-os-echo-command,Echo's an message to stdout with 'blue' crayon.,<message>)
define mb-os-echo-phase
$(MB_   )$(call mb-make-call,mb-os-crayon-tagged-echo,35,$(1))
endef
$(call mb-make-call,mb-doc-function-deep,mb-os-echo-phase,Echo's an message to stdout with 'magenta' crayon.,<message>)
define mb-os-echo-remark
$(MB_   )$(call mb-make-call,mb-os-crayon-tagged-echo,36,$(1))
endef
$(call mb-make-call,mb-doc-function-deep,mb-os-echo-alert,Echo's an message to stdout with 'cyan' crayon.,<message>)

View file

@ -1,7 +0,0 @@
define mb-package-create-archive
$(MB_   )$(call mb-make-call,mb-os-echo-command,$(MB_I18N_PACKAGE_CREATE_ARCHIVE) $(2))
$(MB_   )tar -czf $(2) -C $(1) `ls $(1)`
endef
$(call mb-make-call,mb-doc-function,mb-package-create_archive,Create an distribution archive.,<dir> <artifact>)

View file

@ -1,99 +0,0 @@
MB_SDCC_PATH ?=
$(call mb-make-call,mb-doc-variable,MB_SDCC_PATH,Optional path where SDCC binaries are located.)
MB_SDCC_FLAG_CPU ?= -mz80
$(call mb-make-call,mb-doc-variable-deep,MB_SDCC_FLAG_CPU,The SDCC cpu target option.)
MB_SDCC_FLAG_LD ?= --nostdinc
$(call mb-make-call,mb-doc-variable-deep,MB_SDCC_FLAG_LD,The SDCC linker option.)
MB_SDCC_ASZ80_FLAGS ?= -g -l -c -o
$(call mb-make-call,mb-doc-variable-deep,MB_SDCC_ASZ80_FLAGS,The SDCC z80 asm compiler flags.)
MB_SDCC_CC_FLAGS ?=
$(call mb-make-call,mb-doc-variable-deep,MB_SDCC_CC_FLAGS,The SDCC C compiler flags.)
MB_SDCC_AR_FLAGS ?= -rc
$(call mb-make-call,mb-doc-variable-deep,MB_SDCC_AR_FLAGS,The SDCC module archive flags.)
# TODO: Add C + mixed support;
#$(MB_SDASM) -I$(MB_LIBASM_SRC)/include
#-l$(LIBASM_LINK)
define _mb-sdcc-path
$(MB_   )$(if $(MB_SDCC_PATH),$(MB_SDCC_PATH)/$(1),$(1))
endef
define mb-sdcc-compile-asm
$(MB_   )$(call mb-make-call,mb-os-echo-command,$(MB_I18N_SDCC_COMPILE) $(2) - ASM)
$(MB_   )$(call mb-make-call,_mb-sdcc-path,sdasz80) $(MB_SDCC_ASZ80_FLAGS) $(2) $(1)
endef
$(call mb-make-call,mb-doc-function,mb-sdcc-compile-asm,Compiles asm source code.,<in> <out>)
define mb-sdcc-arlib-asm
$(MB_   )$(call mb-make-call,mb-os-echo-command,$(MB_I18N_SDCC_ARLIB) $(2))
$(MB_   )$(call mb-make-call,_mb-sdcc-path,sdar) $(MB_SDCC_AR_FLAGS) $(1) $(2)
endef
$(call mb-make-call,mb-doc-function,mb-sdcc-arlib-asm,Link asm lib module.,<in> <out>)
define mb-sdcc-link-asm
$(MB_   )$(call mb-make-call,mb-os-echo-command,$(MB_I18N_SDCC_LINK) $(2) - ASM @ $(3))
$(MB_   )$(call mb-make-call,_mb-sdcc-path,sdcc) $(MB_SDCC_FLAG_CPU) $(MB_SDCC_CC_FLAGS) --no-std-crt0 --code-loc $(3) -o $(2) $(1)
endef
$(call mb-make-call,mb-doc-function,mb-sdcc-link-asm,Links asm to custom code location.,<in> <out> <code-loc>)
define mb-sdcc-link-asm-0000
$(MB_   )$(call mb-make-call,mb-sdcc-link-asm,$(1),$(2),0x0000)
endef
$(call mb-make-call,mb-doc-function,mb-sdcc-link-asm-0000,Links asm to 0x0000.,<in> <out>)
define mb-sdcc-link-asm-0100
$(MB_   )$(call mb-make-call,mb-sdcc-link-asm,$(1),$(2),0x0100)
endef
$(call mb-make-call,mb-doc-function,mb-sdcc-link-asm-0100,Links asm to 0x0100.,<in> <out>)
define mb-sdcc-link-asm-1000
$(MB_   )$(call mb-make-call,mb-sdcc-link-asm,$(1),$(2),0x1000)
endef
$(call mb-make-call,mb-doc-function,mb-sdcc-link-asm-1000,Links asm to 0x1000.,<in> <out>)
define mb-sdcc-link-asm-4000
$(MB_   )$(call mb-make-call,mb-sdcc-link-asm,$(1),$(2),0x4000)
endef
$(call mb-make-call,mb-doc-function,mb-sdcc-link-asm-4000,Links asm to 0x4000.,<in> <out>)
define mb-sdcc-link-asm-8000
$(MB_   )$(call mb-make-call,mb-sdcc-link-asm,$(1),$(2),0x8000)
endef
$(call mb-make-call,mb-doc-function,mb-sdcc-link-asm-8000,Links asm to 0x8000.,<in> <out>)
define mb-sdcc-link-asm-C000
$(MB_   )$(call mb-make-call,mb-sdcc-link-asm,$(1),$(2),0xC000)
endef
$(call mb-make-call,mb-doc-function,mb-sdcc-link-asm-C000,Links asm to 0xC000.,<in> <out>)
define mb-sdcc-link-asm-bdos
$(MB_   )$(call mb-make-call,mb-sdcc-link-asm-0100,$(1),$(2))
endef
$(call mb-make-call,mb-doc-function,mb-sdcc-link-asm-bdos,Links asm to BDOS.,<in> <out>)
define mb-sdcc-objcopy
$(MB_   )$(call mb-make-call,mb-os-echo-command,$(MB_I18N_SDCC_OBJCOPY) $(2))
$(MB_   )$(call mb-make-call,_mb-sdcc-path,sdobjcopy) -I ihex --output-target$(MB_MAKE_EQUALS)binary $(1) $(2)
endef
$(call mb-make-call,mb-doc-function,mb-sdcc-objcopy,Converts an hex file to binary.,<in> <out>)

View file

@ -1,169 +0,0 @@
MB_I18N ?=
$(call mb-make-call,mb-doc-variable,MB_I18N,The language code to select the i18n pack.)
MB_I18N_ASSERT_SUCCESS ?= Assert successfull
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_ASSERT_SUCCESS,Message for when assertion test is successfull.)
MB_I18N_ASSERT_FAILURE ?= Assert failure
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_ASSERT_FAILURE,Message for when assertion test is failed.)
MB_I18N_AUTOEXEC_WRITE ?= Write autoexec for
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_AUTOEXEC_WRITE,Message for when writing a default autoexec.)
MB_I18N_CONV_UNIX2DOS ?= Convert to dos-EOL
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_CONV_UNIX2DOS,Message for when converting a file to dos.)
MB_I18N_CONV_DOS2UNIX ?= Convert to nix-EOL
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_CONV_DOS2UNIX,Message for when converting a file to unix.)
MB_I18N_PACKAGE_CREATE_ARCHIVE ?= Build distribution archive
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PACKAGE_CREATE_ARCHIVE,Message for when creating a archive.)
MB_I18N_MAKE_CHECK_VARIABLE ?= Variable is empty
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_MAKE_CHECK_VARIABLE,Error message when an variable is empty.)
MB_I18N_MAKE_CHECK_VALUE_VALID ?= Value is not valid
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_MAKE_CHECK_VALUE_VALID,Error message when the value is invalid.)
MB_I18N_MAKE_CHECK_ARG1 ?= Argument 1 is missing
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_MAKE_CHECK_ARG1,Error message when argument 1 is missing.)
MB_I18N_MAKE_CHECK_ARG2 ?= Argument 2 is missing
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_MAKE_CHECK_ARG2,Error message when argument 2 is missing.)
MB_I18N_MAKE_CHECK_ARG3 ?= Argument 3 is missing
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_MAKE_CHECK_ARG3,Error message when argument 3 is missing.)
MB_I18N_MAKE_CHECK_ARG4 ?= Argument 4 is missing
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_MAKE_CHECK_ARG4,Error message when argument 4 is missing.)
MB_I18N_MAKE_CHECK_ARG5 ?= Argument 5 is missing
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_MAKE_CHECK_ARG5,Error message when argument 5 is missing.)
MB_I18N_MSXHUB_FILE_FETCH ?= Fetch msxhub file
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_MSXHUB_FILE_FETCH,Message for when fetching a msxhub file.)
MB_I18N_MSXROM_FILE_FETCH ?= Fetch msxrom file
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_MSXROM_FILE_FETCH,Message for when fetching a msxrom file.)
MB_I18N_OPENMSX_STARTUP ?= Start openMSX! for
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_OPENMSX_STARTUP,Message used on startup of openMSX.)
MB_I18N_OS_CRAYON_TAG ?= ===
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_OS_CRAYON_TAG,Crayon tag colored prefix to a message.)
MB_I18N_PROJ_STEP_BEFORE ?= -- Before
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_STEP_BEFORE,Prefix for begin phase message.)
MB_I18N_PROJ_STEP_AFTER ?= ---- After
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_STEP_AFTER,Prefix for after phase message.)
MB_I18N_PROJ_STEP_DONE ?= Finished executing prime pi target
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_STEP_DONE,Message for requested phase completed.)
MB_I18N_PROJ_DIR_CREATE ?= Creating folder
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_DIR_CREATE,Message for creating a folder.)
MB_I18N_PROJ_DIR_DELETE ?= Removing folder
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_DIR_DELETE,Message for deleting a folder.)
MB_I18N_PROJ_ASSERT_COUNT ?= Total assertions done
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_ASSERT_COUNT,Message for reporting the assertion count of a phase.)
MB_I18N_PROJ_OPENMSX_COUNT ?= Total openMSX invokes
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_OPENMSX_COUNT,Message for reporting the openMSX invoke count of a session.)
MB_I18N_FLOW_CLONE_REPORT ?= Clone troopers
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_FLOW_CLONE_REPORT,Message for total amount of cloned files.)
MB_I18N_NESTOR80_COMPILE ?= Nestor80 compile
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_NESTOR80_COMPILE,Message for Nestor80 compiler run.)
MB_I18N_NESTOR80_LINK ?= Nestor80 linking
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_NESTOR80_LINK,Message for Nestor80 linker run.)
MB_I18N_SDCC_COMPILE ?= SDCC Compile super
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_SDCC_COMPILE,Message for SDCC compiler run.)
MB_I18N_SDCC_ARLIB ?= SDCC Builder arlib
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_SDCC_ARLIB,Message for SDCC lib archive tool.)
MB_I18N_SDCC_LINK ?= SDCC Linker MSXlib
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_SDCC_LINK,Message for SDCC linker run.)
MB_I18N_SDCC_OBJCOPY ?= SDCC sdobjcopy for
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_SDCC_OBJCOPY,Message for SDCC objcopy run.)
MB_I18N_PROJ_PHASEID_CLEAN ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEID_CLEAN,Local command of clean target.)
MB_I18N_PROJ_PHASEDOC_CLEAN ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEDOC_CLEAN,Local documentation of clean target.)
MB_I18N_PROJ_PHASEID_INIT ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEID_INIT,Local command of init target.)
MB_I18N_PROJ_PHASEDOC_INIT ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEDOC_INIT,Local documentation of init target.)
MB_I18N_PROJ_PHASEID_PREPARE ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEID_PREPARE,Local command of prepare target.)
MB_I18N_PROJ_PHASEDOC_PREPARE ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEDOC_PREPARE,Local documentation of prepare target.)
MB_I18N_PROJ_PHASEID_PROCESS ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEID_PROCESS,Local command of proces target.)
MB_I18N_PROJ_PHASEDOC_PROCESS ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEDOC_PROCESS,Local documentation of process target.)
MB_I18N_PROJ_PHASEID_COMPILE ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEID_COMPILE,Local command of compile target.)
MB_I18N_PROJ_PHASEDOC_COMPILE ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEDOC_COMPILE,Local documentation of compile target.)
MB_I18N_PROJ_PHASEID_LINK ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEID_LINK,Local command of link target.)
MB_I18N_PROJ_PHASEDOC_LINK ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEDOC_LINK,Local documentation of link target.)
MB_I18N_PROJ_PHASEID_BUILD ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEID_BUILD,Local command of build target.)
MB_I18N_PROJ_PHASEDOC_BUILD ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEDOC_BUILD,Local documentation of build target.)
MB_I18N_PROJ_PHASEID_TEST ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEID_TEST,Local command of test target.)
MB_I18N_PROJ_PHASEDOC_TEST ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEDOC_TEST,Local documentation of test target.)
MB_I18N_PROJ_PHASEID_PACKAGE ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEID_PACKAGE,Local command of package target.)
MB_I18N_PROJ_PHASEDOC_PACKAGE ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEDOC_PACKAGE,Local documentation of package target.)
MB_I18N_PROJ_PHASEID_PACKAGE_QA ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEID_PACKAGE_QA,Local command of package-qa target.)
MB_I18N_PROJ_PHASEDOC_PACKAGE_QA ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEDOC_PACKAGE_QA,Local documentation of package-qa target.)
MB_I18N_PROJ_PHASEID_PACKAGE_DEPLOY ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEID_PACKAGE_DEPLOY,Local command of package-deploy target.)
MB_I18N_PROJ_PHASEDOC_PACKAGE_DEPLOY ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEDOC_PACKAGE_DEPLOY,Local documentation of package-deploy target.)
MB_I18N_PROJ_PHASEID_ALL ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEID_ALL,Local command of all target.)
MB_I18N_PROJ_PHASEDOC_ALL ?=
$(call mb-make-call,mb-doc-variable-i18n,MB_I18N_PROJ_PHASEDOC_ALL,Local documentation of all target.)

View file

@ -1,57 +0,0 @@
MB_I18N_ASSERT_SUCCESS = ASSERTED DONE:
MB_I18N_ASSERT_FAILURE = ASSERTION FAILED:
MB_I18N_AUTOEXEC_WRITE = WRITE BOOSTER:
MB_I18N_CONV_UNIX2DOS = CONV UNIX2DOS:
MB_I18N_CONV_DOS2UNIX = CONV DOS2UNIX:
MB_I18N_PACKAGE_CREATE_ARCHIVE = BUILD ARCHIVE:
MB_I18N_MAKE_CHECK_VARIABLE = VARIABLE EMPTY
MB_I18N_MAKE_CHECK_VALUE_VALID = VALUE ERROR
MB_I18N_MAKE_CHECK_ARG1 = ARG 1 FAIL
MB_I18N_MAKE_CHECK_ARG2 = ARG 2 FAIL
MB_I18N_MAKE_CHECK_ARG3 = ARG 3 FAIL
MB_I18N_MAKE_CHECK_ARG4 = ARG 4 FAIL
MB_I18N_MAKE_CHECK_ARG5 = ARG 5 FAIL
MB_I18N_MSXHUB_FILE_FETCH = FETCH MSXHUB:
MB_I18N_MSXROM_FILE_FETCH = FETCH MSXROM:
MB_I18N_OPENMSX_STARTUP = BOOT! OPENMSX:
MB_I18N_OS_CRAYON_TAG = MSX⁴
MB_I18N_PROJ_STEP_BEFORE = $(MB_MAKE_HASH)$(MB_MAKE_HASH)$(MB_MAKE_HASH)$(MB_MAKE_HASH)$(MB_MAKE_HASH)$(MB_MAKE_HASH)$(MB_MAKE_HASH) BEFORE
MB_I18N_PROJ_STEP_AFTER = $(MB_MAKE_HASH)$(MB_MAKE_HASH)$(MB_MAKE_HASH)$(MB_MAKE_HASH)$(MB_MAKE_HASH)$(MB_MAKE_HASH)$(MB_MAKE_HASH)$(MB_MAKE_HASH) AFTER
MB_I18N_PROJ_STEP_DONE = RUN COMPLETED:
MB_I18N_PROJ_DIR_CREATE = FOLDER CREATE:
MB_I18N_PROJ_DIR_DELETE = FOLDER DELETE:
MB_I18N_PROJ_ASSERT_COUNT = TOTAL ASSERT$(MB_MAKE_HASH):
MB_I18N_PROJ_OPENMSX_COUNT = TOTAL EMUCTL$(MB_MAKE_HASH):
MB_I18N_FLOW_CLONE_REPORT = GEM⁴ TROOPERS:
MB_I18N_NESTOR80_COMPILE = N80 _CHURCH[]:
MB_I18N_NESTOR80_LINK = LK80 PRAYER[]:
MB_I18N_SDCC_COMPILE = ATARI COMPILE:
MB_I18N_SDCC_ARLIB = ATARI ARLIB:
MB_I18N_SDCC_LINK = ATARI LINK []:
MB_I18N_SDCC_OBJCOPY = ATARI OBJCOPY:
MB_I18N_PROJ_PHASEID_CLEAN = CLEAN
MB_I18N_PROJ_PHASEDOC_CLEAN = DELETE SMURFS
MB_I18N_PROJ_PHASEID_INIT = INIT
MB_I18N_PROJ_PHASEDOC_INIT = INIT PLASTIC
MB_I18N_PROJ_PHASEID_PREPARE = PREPARE
MB_I18N_PROJ_PHASEDOC_PREPARE = PREPARE PLASTIC
MB_I18N_PROJ_PHASEID_PROCESS = PROCESS
MB_I18N_PROJ_PHASEDOC_PROCESS = PROCESS MOLD PART
MB_I18N_PROJ_PHASEID_COMPILE = COMPILE
MB_I18N_PROJ_PHASEDOC_COMPILE = COMPILE MOLD PART
MB_I18N_PROJ_PHASEID_LINK = LINK
MB_I18N_PROJ_PHASEDOC_LINK = LINK PART LEGO
MB_I18N_PROJ_PHASEID_BUILD = BUILD
MB_I18N_PROJ_PHASEDOC_BUILD = BUILD LEGO
MB_I18N_PROJ_PHASEID_TEST = TEST
MB_I18N_PROJ_PHASEDOC_TEST = TEST LEGO
MB_I18N_PROJ_PHASEID_PACKAGE = PACKAGE
MB_I18N_PROJ_PHASEDOC_PACKAGE = PACKAGE LEGO BOX
MB_I18N_PROJ_PHASEID_PACKAGE_QA = PACKAGE_QA
MB_I18N_PROJ_PHASEDOC_PACKAGE_QA = PACKAGE BURN LEGO BOX
MB_I18N_PROJ_PHASEID_PACKAGE_DEPLOY = PACKAGE_DEPLOY
MB_I18N_PROJ_PHASEDOC_PACKAGE_DEPLOY = PACKAGE DEPLOY LEGO BOX
MB_I18N_PROJ_PHASEID_ALL = ALL
MB_I18N_PROJ_PHASEDOC_ALL = MAKE A LEGO CITY

View file

@ -1,45 +0,0 @@
MB_I18N_ASSERT_SUCCESS = ᑲᔪᓯᓂᖃᑦᑎᐊᕐᓂᖅ
MB_I18N_ASSERT_FAILURE = ᓇᓗᓇᐃᖅᑕᐅᓂᖓ ᑲᔪᓯᙱᓐᓂᖓ
MB_I18N_AUTOEXEC_WRITE = ᑎᑎᕋᑲᐅᑎᒋᓂᖅ ᑲᒫᓗᖕᒥᒃ
MB_I18N_CONV_UNIX2DOS = ᐅᐊᔭᐅᑉ ᐃᓱᐊᓄᐊᕐᓗᒍ
MB_I18N_CONV_DOS2UNIX = ᑐᑭᓕᐊᖓᔪᓐᓃᕐᓗᓂ
MB_I18N_PACKAGE_CREATE_ARCHIVE = ᓴᓇᓗᑎᒃ ᑐᖅᑯᐃᕕᒃᓴᓂᑦ
MB_I18N_MAKE_CHECK_VARIABLE = ᐊᓯᔾᔨᖅᑕᖅᑐᑦ ᐱᑕᖃᙱᓐᓂᐅᔪᑦ
MB_I18N_MAKE_CHECK_VALUE_VALID = ᐊᑐᙱᓐᓂᖓ ᖃᔅᓯᐅᓂᖓ
MB_I18N_MAKE_CHECK_ARG1 = ᐊᐃᕙᔾᔪᑎ ᐊᑕᐅᓯᖅ ᐊᔪᖅᑐᖅ
MB_I18N_MAKE_CHECK_ARG2 = ᐊᐃᕙᔾᔪᑎ ᒪᕐᕉᒃ ᐊᔪᖅᑑᒃ
MB_I18N_MAKE_CHECK_ARG3 = ᐊᐃᕙᐅᑎ ᐱᖓᓱᑦ ᐊᔪᖅᑐᑦ
MB_I18N_MAKE_CHECK_ARG4 = ᐊᐃᕙᓂᖅ ᓯᑕᒪᑦ ᑲᔪᓯᓐᓂᖏᑦᑐᖅ
MB_I18N_MAKE_CHECK_ARG5 = ᐊᕐᓴᖅ ᐊᒃᓴᓗᐊᖓ ᐊᔪᓕᖅᑐᖅ
MB_I18N_MSXHUB_FILE_FETCH = ᖃᕆᑕᐅᔭᕐᒥ ᒥᓇᕆᓗᒍ
MB_I18N_MSXROM_FILE_FETCH = ᒥᓇᕆᓗᒍ ᖃᕆᑕᐅᔭᖅ ᐃᖅᑲᐅᒪᔾᔪᑎ
MB_I18N_OPENMSX_STARTUP = ᑲᖏᖅᑐᖅ ᖃᕆᑕᐅᔭᖅ
MB_I18N_OS_CRAYON_TAG = ꜊꜊꜊⋇꜏꜏꜏
MB_I18N_PROJ_STEP_BEFORE = ᓯᕗᓂᐊᓂ
MB_I18N_PROJ_STEP_AFTER = ᑭᖑᓂᖓᓂ
MB_I18N_PROJ_STEP_DONE = ᐱᓕᕆᐊᖅ ᐱᐊᓂᒃᑕᐅᔪᖅ
MB_I18N_PROJ_DIR_CREATE = ᑐᖅᑯᐃᕝᕕᓕᐅᕐᓂᖅ
MB_I18N_PROJ_DIR_DELETE = ᑐᖅᑯᖅᓯᓯᒪᕝᕕᖓ ᐲᔭᖅᑕᐅᓗᓂ
MB_I18N_PROJ_ASSERT_COUNT = ᑲᑎᖦᖢᒋᑦ ᑕᐃᒪᐃᓐᓂᕋᖅᑕᐅᔪᑦ
MB_I18N_PROJ_OPENMSX_COUNT = ᑲᑎᖦᖢᒋᑦ ᒪᑐᐃᙶᖅᑐᑦ
MB_I18N_FLOW_CLONE_REPORT = ᐃᓐᓈᕈᐃᑦ
MB_I18N_NESTOR80_COMPILE = ᓂᖀᑦ ᓄᑕᐅᙱᑦᑐᑦ ᑲᑎᖅᓱᒐᑦ
MB_I18N_NESTOR80_LINK = ᓱᓪᓗᑯᑖᒃᑯᑦ ᐊᒃᑐᐊᖃᑦᑕᐅᑎᓂᖅ
MB_I18N_SDCC_COMPILE = ᖃᕆᑕᐅᔭᕋᓛᖅᓄᐊᑦᓯᓂᖅ
MB_I18N_SDCC_ARLIB = ᖃᕆᑕᐅᔭᕋᓛᖅᑐᖅᑯᖅᑕᐅᓯᒪᔪᑦ
MB_I18N_SDCC_LINK = ᖃᕆᑕᐅᔭᕋᓛᖅᐊᑦᑕᑕᕐᕕᒃᓴ
MB_I18N_SDCC_OBJCOPY = ᖃᕆᑕᐅᔭᕋᓛᖅᐱᖁᑎᐅᑉ ᐊᔾᔨᖓ
MB_I18N_PROJ_PHASEID_CLEAN = ᓴᓗᒪᓗᓂ
MB_I18N_PROJ_PHASEID_INIT = ᐃᑎᖅᓴᖅ
MB_I18N_PROJ_PHASEID_PREPARE = ᐱᕙᒌᔭᖅᓯᒪᓂᖅ
MB_I18N_PROJ_PHASEID_PROCESS = ᐱᓕᕆᔾᔪᓯᖅ
MB_I18N_PROJ_PHASEID_COMPILE = ᓄᐊᑦᓯᓂᖅ
MB_I18N_PROJ_PHASEID_LINK = ᐊᑦᑕᑕᕐᕕᒃᓴ
MB_I18N_PROJ_PHASEID_BUILD = ᓴᓇᓂᖅ
MB_I18N_PROJ_PHASEID_TEST = ᖃᐅᔨᓴᕈᑎ
MB_I18N_PROJ_PHASEID_PACKAGE = ᐴᖅᑲᖅᓯᒪᔪᑦ
MB_I18N_PROJ_PHASEID_PACKAGE_QA = ᐴᖅᑲᖅᓯᒪᔪᑦ−ᖃᖅ
MB_I18N_PROJ_PHASEID_PACKAGE_DEPLOY = ᐴᖅᑲᖅᓯᒪᔪᑦ−ᐃᓕᔭᐅᔪᑦ
MB_I18N_PROJ_PHASEID_ALL = ᑕᒪᕐᒥᒃ

View file

@ -1,56 +0,0 @@
MB_I18N_ASSERT_SUCCESS = アサート成功
MB_I18N_ASSERT_FAILURE = アサーションが失敗しました
MB_I18N_AUTOEXEC_WRITE = 自動実行の書き込み
MB_I18N_CONV_UNIX2DOS = ディスクシステムの行末に変換
MB_I18N_CONV_DOS2UNIX = メインフレームラインエンドに変換
MB_I18N_PACKAGE_CREATE_ARCHIVE = ビルド配布アーカイブ
MB_I18N_MAKE_CHECK_VARIABLE = 変数が空です
MB_I18N_MAKE_CHECK_VALUE_VALID = 値が無効です
MB_I18N_MAKE_CHECK_ARG1 = 引数 一 がありません
MB_I18N_MAKE_CHECK_ARG2 = 引数 二 がありません
MB_I18N_MAKE_CHECK_ARG3 = 引数 三 がありません
MB_I18N_MAKE_CHECK_ARG4 = 引数 四 がありません
MB_I18N_MAKE_CHECK_ARG5 = 引数 五 がありません
MB_I18N_MSXHUB_FILE_FETCH = コンピューターハブファイルを取得する
MB_I18N_MSXROM_FILE_FETCH = 読み取り専用メモリファイルを取得する
MB_I18N_OPENMSX_STARTUP = オープンメッカシステムを開始
MB_I18N_OS_CRAYON_TAG = ©Δ∞ 仙上主天
MB_I18N_PROJ_STEP_BEFORE = フェーズ前
MB_I18N_PROJ_STEP_AFTER = フェーズ後
MB_I18N_PROJ_STEP_DONE = プライムパイターゲットの実行を終了しました
MB_I18N_PROJ_DIR_CREATE = フォルダーの作成
MB_I18N_PROJ_DIR_DELETE = フォルダーの削除
MB_I18N_PROJ_ASSERT_COUNT = 完了したアサーションの合計
MB_I18N_PROJ_OPENMSX_COUNT = オープンメッカが呼び出す合計数
MB_I18N_FLOW_CLONE_REPORT = クローン・トルーパー
MB_I18N_NESTOR80_COMPILE = ネスターの古いコンパイル
MB_I18N_NESTOR80_LINK = ネストルの古いリンク
MB_I18N_SDCC_COMPILE = 標準マイクロコンパイラ
MB_I18N_SDCC_ARLIB = 標準マイクロビルドライブラリ
MB_I18N_SDCC_LINK = 標準マイクロリンクメッカ図書館
MB_I18N_SDCC_OBJCOPY = 標準マイクロオブジェクトコピー
MB_I18N_PROJ_PHASEID_CLEAN = クリーン
MB_I18N_PROJ_PHASEDOC_CLEAN = プロジェクトのビルドフォルダーをクリーンアップします。
MB_I18N_PROJ_PHASEID_INIT = 初期化する
MB_I18N_PROJ_PHASEDOC_INIT = モジュール出力フォルダーをセットアップして検証します。
MB_I18N_PROJ_PHASEID_PREPARE = 準備する
MB_I18N_PROJ_PHASEDOC_PREPARE = 処理する前にソースを準備します。
MB_I18N_PROJ_PHASEID_PROCESS = プロセス
MB_I18N_PROJ_PHASEDOC_PROCESS = コンパイル前にソースを処理します。
MB_I18N_PROJ_PHASEID_COMPILE = コンパイル
MB_I18N_PROJ_PHASEDOC_COMPILE = すべてのプロジェクト ソースをコンパイルします。
MB_I18N_PROJ_PHASEID_LINK = リンク
MB_I18N_PROJ_PHASEDOC_LINK = すべてのプロジェクト中間ファイルをリンクします。
MB_I18N_PROJ_PHASEID_BUILD = 建てる
MB_I18N_PROJ_PHASEDOC_BUILD = すべてのプロジェクト成果物をビルドします。
MB_I18N_PROJ_PHASEID_TEST = テスト
MB_I18N_PROJ_PHASEDOC_TEST = すべてのアサーション テストを実行します。
MB_I18N_PROJ_PHASEID_PACKAGE = パッケージ
MB_I18N_PROJ_PHASEDOC_PACKAGE = プロジェクトのパッケージを作成します。
MB_I18N_PROJ_PHASEID_PACKAGE_QA = パッケージの品質保証
MB_I18N_PROJ_PHASEDOC_PACKAGE_QA = プロジェクトのすべてのパッケージ 〄テストを実行します。
MB_I18N_PROJ_PHASEID_PACKAGE_DEPLOY = パッケージのデプロイ
MB_I18N_PROJ_PHASEDOC_PACKAGE_DEPLOY = パッケージをデプロイします。
MB_I18N_PROJ_PHASEID_ALL = 全て
MB_I18N_PROJ_PHASEDOC_ALL = 完全なビルドおよびパッケージ化の 〄テストを実行します。

View file

@ -1,180 +0,0 @@
MB_AUTOEXEC_SHOW_VERSION ?= off
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_SHOW_VERSION,Print OS version on boot.)
MB_AUTOEXEC_SHOW_PATH ?= on
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_SHOW_PATH,Print search path on boot.)
MB_AUTOEXEC_SHOW_INIT ?= on
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_SHOW_INIT,Print msxbuild init message on boot.)
MB_AUTOEXEC_SHOW_HOST ?= on
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_SHOW_HOST,Print host machine on boot.)
MB_AUTOEXEC_SHOW_USER ?= on
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_SHOW_USER,Print host user on boot.)
MB_AUTOEXEC_SHOW_FOLDER ?= on
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_SHOW_FOLDER,Print host folder on boot.)
MB_AUTOEXEC_SHOW_TARGET ?= on
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_SHOW_TARGET,Print host target on boot.)
MB_AUTOEXEC_STARTUP_TIMEOUT ?= 60
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_STARTUP_TIMEOUT,Startup failure timeout of autoexec.)
MB_AUTOEXEC_STARTUP_EXITCODE ?= 124
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_STARTUP_EXITCODE,Startup failure exit code of autoexec.)
MB_AUTOEXEC_SAFE_ASSERT_TIMEOUT ?= 120
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_SAFE_ASSERT_TIMEOUT,Safe assert execution failure timeout.)
MB_AUTOEXEC_SAFE_ASSERT_EXITCODE ?= 1
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_SAFE_ASSERT_EXITCODE,Safe assert execution failure exit code.)
MB_AUTOEXEC_SAFE_CMD_TIMEOUT ?= 300
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_SAFE_CMD_TIMEOUT,Safe command execution failure timeout.)
MB_AUTOEXEC_SAFE_CMD_EXITCODE ?= 1
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_SAFE_CMD_EXITCODE,Safe command execution failure exit code.)
MB_AUTOEXEC_STARTUP_NOTE ?=
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_STARTUP_NOTE,When set this startup note message is shown.)
MB_AUTOEXEC_COLOR_FG ?= 141
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_COLOR_FG,Default foreground color if none is given.)
MB_AUTOEXEC_COLOR_BG ?= 000
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_COLOR_BG,Default background color if none if given.)
MB_AUTOEXEC_EMBED_VARS ?=
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_EMBED_VARS,List of host env variables to copy to msx as 'MSX_x' variables.)
MB_AUTOEXEC_EMBED_USER ?= USER
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_EMBED_USER,Embedds this host variable to the msx as 'MB_USER' variable.)
MB_AUTOEXEC_TIME_FORMAT ?= 24
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_TIME_FORMAT,The time format the msx will get set to.)
MB_AUTOEXEC_DATE_FORMAT ?= DD/MM/YY
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_DATE_FORMAT,The time format the msx will get set to.)
MB_AUTOEXEC_PROMPT_FORMAT ?= %MB_USER%@%_CWD%*
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_PROMPT_FORMAT,The prompt format for command 2.40 and higher.)
MB_AUTOEXEC_PROMPT_SPACE ?= on
$(call mb-make-call,mb-doc-variable,MB_AUTOEXEC_PROMPT_SPACE,When on adds an white space after the prompt format.)
define mb-autoexec-append-cmd
$(MB_   )echo -e "$(2)\r" >> $(1)/autoexec.bat
endef
$(call mb-make-call,mb-doc-function,mb-autoexec-append-cmd,Appends an command.,<dir> <command>)
define mb-autoexec-append-echo
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),echo $(subst >,&gt;,$(2)))
endef
$(call mb-make-call,mb-doc-function,mb-autoexec-append-echo,Appends an echo message.,<dir> <message>)
define mb-autoexec-append-rem
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),rem $(2))
endef
$(call mb-make-call,mb-doc-function,mb-autoexec-append-rem,Appends an script remark.,<dir> <remark>)
define mb-autoexec-append-show-gui
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),omsxctl headless_show_gui)
endef
$(call mb-make-call,mb-doc-function,mb-autoexec-append-show-gui,Appends headless show gui command.,<dir>)
define mb-autoexec-append-stop-fail
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),omsxctl fail_after 0)
endef
$(call mb-make-call,mb-doc-function,mb-autoexec-append-stop-fail,Appends stop automatic failure command.,<dir>)
define mb-autoexec-append-exit
$(MB_   )$(if $(filter on,$(MB_FLIGHT_SCREEN)),$(call mb-make-call,mb-autoexec-append-save-screenshot,$(1)))
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),omsxctl headless_exit)
endef
$(call mb-make-call,mb-doc-function,mb-autoexec-append-exit,Appends exit emulation command.,<dir>)
define mb-autoexec-append-plug-porta
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),omsxctl boot_exec_plug_porta $(2))
endef
$(call mb-make-call,mb-doc-function,mb-autoexec-append-plug-porta,Appends an plug device into joyporta action.,<dir> <plug-dev>)
define mb-autoexec-append-plug-portb
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),omsxctl boot_exec_plug_portb $(2))
endef
$(call mb-make-call,mb-doc-function,mb-autoexec-append-plug-portb,Appends an plug device into joyportb action.,<dir> <plug-dev>)
define mb-autoexec-append-save-screenshot
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),omsxctl night_flight_save_screenshot $(2))
endef
$(call mb-make-call,mb-doc-function,mb-autoexec-append-save-screenshot,Appends save screenshot command.,<dir> [prefix])
define mb-autoexec-append-save-video
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),omsxctl night_flight_save_video $(2))
endef
$(call mb-make-call,mb-doc-function,mb-autoexec-append-save-video,Appends save video command.,<dir> [prefix])
define mb-autoexec-append-safe-assert
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),omsxctl fail_after $(if $(3),$(3),$(MB_AUTOEXEC_SAFE_ASSERT_TIMEOUT)) seconds err_test $(if $(4),$(4),$(MB_AUTOEXEC_SAFE_ASSERT_EXITCODE)))
$(MB_   )$(call mb-make-call,mb-autoexec-append-echo,$(1),mb::safe assert $(2))
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),$(2))
endef
$(call mb-make-call,mb-doc-function,mb-autoexec-append-safe-assert,Appends running a safe assert.,<dir> <cmd> [timeout] [exit-code])
define mb-autoexec-append-safe-cmd
$(MB_   )$(call mb-make-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)))
$(MB_   )$(call mb-make-call,mb-autoexec-append-echo,$(1),mb::safe command $(2))
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),$(2))
endef
$(call mb-make-call,mb-doc-function,mb-autoexec-append-safe-cmd,Appends running a safe command.,<dir> <cmd> [timeout] [exit-code])
define _mb-autoexec-write-preboot
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),$(2)mbboot80)
$(MB_   )$(call mb-make-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)))
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),$(2)omsxctl fail_after $(MB_AUTOEXEC_STARTUP_TIMEOUT) seconds err_exec $(MB_AUTOEXEC_STARTUP_EXITCODE))
$(MB_   )$(if $(filter on,$(MB_AUTOEXEC_SHOW_INIT)),$(call mb-make-call,mb-autoexec-append-cmd,$(1),$(2)omsxctl boot_exec_show_init))
$(MB_   )$(if $(filter on,$(MB_AUTOEXEC_SHOW_VERSION)),$(call mb-make-call,mb-autoexec-append-cmd,$(1),ver))
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),PATH + %@DRIVE%\;)
$(MB_   )$(if $(wildcard $(1)/utils),$(call mb-make-call,mb-autoexec-append-cmd,$(1),PATH + %@DRIVE%\UTILS))
endef
define mb-autoexec-write-default
$(MB_   )$(call mb-make-call,mb-os-echo-remark,$(MB_I18N_AUTOEXEC_WRITE) $(1))
$(MB_   )$(call mb-make-call,mb-os-file-empty,$(1)/autoexec.bat)
$(MB_   )$(if $(wildcard $(1)/utils),$(call mb-make-call,_mb-autoexec-write-preboot,$(1),utils\,$(2),$(3)),$(call mb-make-call,_mb-autoexec-write-preboot,$(1),,$(2),$(3)))
$(MB_   )$(if $(filter on,$(MB_AUTOEXEC_SHOW_HOST)),$(call mb-make-call,mb-autoexec-append-cmd,$(1),omsxctl boot_exec_show_host))
$(MB_   )$(if $(MB_AUTOEXEC_STARTUP_NOTE),$(call mb-make-call,mb-autoexec-append-echo,$(1),mb::note $(MB_AUTOEXEC_STARTUP_NOTE)))
$(MB_   )$(if $(filter on,$(MB_FLIGHT_VIDEO)),$(call mb-make-call,mb-autoexec-append-save-video,$(1)))
$(MB_   )echo -n -e "$(subst $(call mb-make-call,mb-make-space-white)set,set,$(foreach var,$(MB_AUTOEXEC_EMBED_VARS),set MSX_$(var)$(MB_MAKE_EQUALS)$($(var))\r\n))" >> $(1)/autoexec.bat
$(MB_   )echo -n -e "$(subst $(call mb-make-call,mb-make-space-white)set,set,$(foreach var,$(MB_AUTOEXEC_EMBED_VARS),echo MSX_$(var)$(MB_MAKE_EQUALS)%MSX_$(var)%\r\n))" >> $(1)/autoexec.bat
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),set TIME$(MB_MAKE_EQUALS)$(MB_AUTOEXEC_TIME_FORMAT))
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),set DATE$(MB_MAKE_EQUALS)$(MB_AUTOEXEC_DATE_FORMAT))
$(MB_   )$(if $(filter on,$(MB_AUTOEXEC_SHOW_PATH)),$(call mb-make-call,mb-autoexec-append-cmd,$(1),echo mb::path %PATH%))
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),set MB_SNAIL$(MB_MAKE_EQUALS)$(notdir $@))
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),set MB_USER$(MB_MAKE_EQUALS)$($(MB_AUTOEXEC_EMBED_USER)))
$(MB_   )$(if $(filter on,$(MB_AUTOEXEC_SHOW_USER)),$(call mb-make-call,mb-autoexec-append-echo,$(1),mb::user %MB_USER%))
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),set MB_SLIME$(MB_MAKE_EQUALS)$(1))
$(MB_   )$(call mb-make-call,mb-autoexec-append-cmd,$(1),set MB_TARGET$(MB_MAKE_EQUALS)$@)
$(MB_   )$(if $(filter on,$(MB_AUTOEXEC_SHOW_FOLDER)),$(call mb-make-call,mb-autoexec-append-echo,$(1),mb::bath %MB_SLIME%))
$(MB_   )$(if $(filter on,$(MB_AUTOEXEC_SHOW_TARGET)),$(call mb-make-call,mb-autoexec-append-echo,$(1),mb::pipe %MB_TARGET%))
$(MB_   )$(if $(filter on,$(MB_AUTOEXEC_PROMPT_SPACE)),$(call mb-make-call,mb-autoexec-append-cmd,$(1),set PROMPT \"$(value MB_AUTOEXEC_PROMPT_FORMAT)$(call mb-make-call,mb-make-space-white)\"))
$(MB_   )$(if $(filter on,$(MB_AUTOEXEC_PROMPT_SPACE)),,$(call mb-make-call,mb-autoexec-append-cmd,$(1),,set PROMPT \"$(value MB_AUTOEXEC_PROMPT_FORMAT)\"))
endef
$(call mb-make-call,mb-doc-function,mb-autoexec-write-default,Write a default autoexec.bat file.,<dir> [fg-color] [bg-color])

View file

@ -1,246 +0,0 @@
MB_MSXHUB_API ?= https://msxhub.com/api
$(call mb-make-call,mb-doc-variable-deep,MB_MSXHUB_API,Resource identifier for msxhub package rest api.)
MB_MSXHUB_CACHE ?= $(MB_OS_CACHE)/msxbuild/msxhub
$(call mb-make-call,mb-doc-variable-deep,MB_MSXHUB_CACHE,Cache storage location.)
define _mb-msxhub-file-fetch
$(MB_   )$(call mb-make-call,mb-os-echo-command,$(MB_I18N_MSXHUB_FILE_FETCH) $(subst $(MB_MSXHUB_API)/,,$(1)))
$(MB_   )$(if $(wildcard $(dir $(MB_MSXHUB_CACHE)/$(subst $(MB_MSXHUB_API)/,,$(1)))),,$(call mb-make-call,mb-os-dir-create,$(dir $(MB_MSXHUB_CACHE)/$(subst $(MB_MSXHUB_API)/,,$(1)))))
$(MB_   )$(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
$(MB_   )$(if $(wildcard $(MB_MSXHUB_CACHE)/$(2)),,$(call mb-make-call,_mb-msxhub-file-fetch,$(MB_MSXHUB_API)/$(2)))
$(MB_   )$(if $(wildcard $(1)/$(call mb-make-call,mb-make-lowercase,$(notdir $(2)))),,$(call mb-make-call,mb-os-file-copy,$(MB_MSXHUB_CACHE)/$(2),$(1)/$(call mb-make-call,mb-make-lowercase,$(notdir $(2)))))
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-file,Installs msxsub packages from slug into dir.,<dir> <msxhub-slug>)
#
# Operating System (minimal)
#
define mb-msxhub-get-msxdos1-boot
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS1/1.03-2/get/MSXDOS1/MSXDOS.SYS)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS1/1.03-2/get/MSXDOS1/COMMAND.COM)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-msxdos1-boot,Installs msxdos1 boot files into dir.,<dir>)
define mb-msxhub-get-msxdos2-boot
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/MSXDOS2.SYS)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/COMMAND2.COM)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-msxdos2-boot,Installs msxdos2 boot files into dir.,<dir>)
define mb-msxhub-get-nextor-boot
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/NEXTOR.SYS)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/COMMAND2.COM)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-nextor-boot,Installs nextor boot files into dir.,<dir>)
#
# Native OS utils
#
define mb-msxhub-get-msxdos2-utils
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/CHKDSK.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/DISKCOPY.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/FIXDISK.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/UNDEL.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/XCOPY.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/XDIR.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2/2.20-1/get/MSXDOS2/UTILS/KMODE.COM)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-msxdos2-utils,Installs msxdos2 util files into dir.,<dir>)
define mb-msxhub-get-nextor-utils
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/DELALL.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/DEVINFO.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/DRIVERS.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/DRVINFO.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/FASTOUT.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/LOCK.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/MAPDRV.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/EMUFILE.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/RALLOC.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/Z80MODE.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/NSYSVER.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/NEXBOOT.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),NEXTOR/2.1.0-1/get/NEXTOR/CONCLUS.COM)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-nextor-utils,Installs nextor util files into dir.,<dir>)
#
# Compilers
#
define mb-msxhub-get-macro80
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MACRO80/2.0-1/get/MACRO80/CREF80.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MACRO80/2.0-1/get/MACRO80/L80.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MACRO80/2.0-1/get/MACRO80/LIB80.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MACRO80/2.0-1/get/MACRO80/M80.COM)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-macro80,Installs macro80 package into dir.,<dir>)
define mb-msxhub-get-z80asmuk
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/BINTOASM.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/DUMP.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/HEXTOCOM.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/PRL.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/PRNTOSYM.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/RSX.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/ZSM.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/ZSMPP.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),Z80ASMUK/3.4-1/get/Z80ASMUK/HEXTOBIN.COM)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-z80asmuk,Installs z80asmuk package into dir.,<dir>)
define mb-msxhub-get-wbass2
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),WBASS2/2.0-1/get/WBASS2/zoekram.bin)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),WBASS2/2.0-1/get/WBASS2/wbass2.bin)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),WBASS2/2.0-1/get/WBASS2/wbass2.bas)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-wbass2,Installs wbass2 package into dir.,<dir>)
define mb-msxhub-get-konpass
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),KONPASS/1.3.0-1/get/KONPASS/KONPASS.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),KONPASS/1.3.0-1/get/KONPASS/KONPASS.DAT)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-konpass,Installs konpass package into dir.,<dir>)
#
# Compressors
#
define mb-msxhub-get-pmarc
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),PMARC/2.0-1/get/PMARC/PMARC.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),PMARC/2.0-1/get/PMARC/PMCAT.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),PMARC/2.0-1/get/PMARC/PMEXE2.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),PMARC/2.0-1/get/PMARC/PMEXT.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),PMARC/2.0-1/get/PMARC/PMSET.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),PMARC/2.0-1/get/PMARC/PMSFX2.COM)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-pmarc,Installs pmarc package into dir.,<dir>)
define mb-msxhub-get-lhpack
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),LHPACK/1.00-1/get/LHPACK/lhpack.com)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-lhpack,Installs lhpack package into dir.,<dir>)
define mb-msxhub-get-lhext
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),LHEXT/1.34-2/get/LHEXT/lhext.com)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-lhext,Installs lhext package into dir.,<dir>)
define mb-msxhub-get-gunzip
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),GUNZIP/1.1-1/get/GUNZIP/gunzip.com)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-gunzip,Installs gunzip package into dir.,<dir>)
define mb-msxhub-get-tunzip
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),TUNZIP/0.91-1/get/TUNZIP/tunzip.com)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-tunzip,Installs tunzip package into dir.,<dir>)
define mb-msxhub-get-popcom
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),POPCOM/1.00-2/get/POPCOM/popcom.com)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-popcom,Installs popcom package into dir.,<dir>)
#
# Tools
#
define mb-msxhub-get-make
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MAKE/2.00-1/get/MAKE/MAKE.COM)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-make,Installs make package into dir.,<dir>)
define mb-msxhub-get-adir
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),ADIR/1.3-1/get/ADIR/adir.com)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-adir,Installs adir package into dir.,<dir>)
define mb-msxhub-get-turbo
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),TURBO/2.1-1/get/TURBO/turbo.com)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-turbo,Installs turbo package into dir.,<dir>)
define mb-msxhub-get-baskom
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),BASKOM/1.0-1/get/BASKOM/baskom.com)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-baskom,Installs baskom package into dir.,<dir>)
define mb-msxhub-get-binldr
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),BINLDR/1.0.2-1/get/BINLDR/BINLDR.COM)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-binldr,Installs binldr package into dir.,<dir>)
define mb-msxhub-get-dmphex
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),DMPHEX/1.00-1/get/DMPHEX/dmphex.com)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-dmphex,Installs dmphex package into dir.,<dir>)
define mb-msxhub-get-zd
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),ZD/3.30-1/get/ZD/zd.com)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-zd,Installs zd package into dir.,<dir>)
define mb-msxhub-get-msxdos2t
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/ADDAUX.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/BEEP.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/BIO.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/BODY.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/BSAVE.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/CAL.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/CALC.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/DUMP.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/EXPAND.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/GREP.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/HEAD.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/KEY.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/LIST.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/LS.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/MENU.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/MORE.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/PATCH.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/SLEEP.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/TAIL.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/TR.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/UNIQ.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/VIEW.COM)
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),MSXDOS2T/1.0-1/get/MSXDOS2T/WC.COM)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-msxdos2t,Installs msxdos2t package into dir.,<dir>)
#
# Graphics editors
#
define mb-msxhub-get-gfxage
$(MB_   )$(call mb-make-call,mb-msxhub-file,$(1),GFXAGE/0.99-1/get/GFXAGE/gfxage.com)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxhub-get-gfxage,Installs gfxage package into dir.,<dir>)

View file

@ -1,65 +0,0 @@
MB_MSXPIPE_COLOR_FG_SAFE_CMD ?= 026
$(call mb-make-call,mb-doc-variable,MB_MSXPIPE_COLOR_FG_SAFE_CMD,Foreground color of safe command session pipe.)
MB_MSXPIPE_COLOR_BG_SAFE_CMD ?= 000
$(call mb-make-call,mb-doc-variable,MB_MSXPIPE_COLOR_BG_SAFE_CMD,Background color of safe command session pipe.)
MB_MSXPIPE_COLOR_FG_SAFE_ASSERT ?= 421
$(call mb-make-call,mb-doc-variable,MB_MSXPIPE_COLOR_FG_SAFE_ASSERT,Foreground color of safe assert session pipe.)
MB_MSXPIPE_COLOR_BG_SAFE_ASSERT ?= 000
$(call mb-make-call,mb-doc-variable,MB_MSXPIPE_COLOR_BG_SAFE_ASSERT,Background color of safe assert session pipe.)
MB_MSXPIPE_COLOR_FG_RUN_GUI ?= 141
$(call mb-make-call,mb-doc-variable,MB_MSXPIPE_COLOR_FG_RUN_GUI,Foreground color of run gui session pipe.)
MB_MSXPIPE_COLOR_BG_RUN_GUI ?= 000
$(call mb-make-call,mb-doc-variable,MB_MSXPIPE_COLOR_BG_RUN_GUI,Background color of run gui session pipe.)
define mb-msxpipe-safe-cmd
$(MB_   )$(call mb-make-call,mb-make-check-arg2,$(0),$(1),$(2))
$(MB_   )$(call mb-make-call,mb-autoexec-write-default,$(1),$(if $(4),$(4),$(MB_MSXPIPE_COLOR_FG_SAFE_CMD)),$(if $(5),$(5),$(MB_MSXPIPE_COLOR_BG_SAFE_CMD)))
$(MB_   )$(call mb-make-call,mb-autoexec-append-safe-cmd,$(1),$(2))
$(MB_   )$(call mb-make-call,mb-autoexec-append-exit,$(1))
$(MB_   )$(call mb-make-call,mb-openmsx-dosctl,$(1),$(3))
endef
$(call mb-make-call,mb-doc-function,mb-msxpipe-safe-cmd,Runs openMSX and safely executes one command.,<dir> <cmd> [machine] [fg-color] [bg-color])
define mb-msxpipe-safe-assert
$(MB_   )$(call mb-make-call,mb-make-check-arg2,$(0),$(1),$(2))
$(MB_   )$(call mb-make-call,mb-autoexec-write-default,$(1),$(if $(4),$(4),$(MB_MSXPIPE_COLOR_FG_SAFE_ASSERT)),$(if $(5),$(5),$(MB_MSXPIPE_COLOR_BG_SAFE_ASSERT)))
$(MB_   )$(call mb-make-call,mb-autoexec-append-safe-assert,$(1),$(2))
$(MB_   )$(call mb-make-call,mb-autoexec-append-exit,$(1))
$(MB_   )$(call mb-make-call,mb-openmsx-dosctl,$(1),$(3))
endef
$(call mb-make-call,mb-doc-function,mb-msxpipe-safe-assert,Runs openMSX and safely executes one assert.,<dir> <cmd> [machine] [fg-color] [bg-color])
define _mb-msxpipe-run-gui
$(MB_   )$(call mb-make-call,mb-autoexec-write-default,$(1),$(MB_MSXPIPE_COLOR_FG_RUN_GUI),$(MB_MSXPIPE_COLOR_BG_RUN_GUI))
$(MB_   )$(if $(filter mouse,$(4)),$(call mb-make-call,mb-autoexec-append-plug-porta,$(1),$(4)))
$(MB_   )$(call mb-make-call,mb-autoexec-append-stop-fail,$(1))
$(MB_   )$(call mb-make-call,mb-autoexec-append-show-gui,$(1))
$(MB_   )$(call mb-make-call,mb-autoexec-append-echo,$(1),mb::help Run shutdown to exit)
$(MB_   )$(if $(2),$(call mb-make-call,mb-autoexec-append-echo,$(1),mb::auto command $(2)))
$(MB_   )$(if $(2),$(call mb-make-call,mb-autoexec-append-cmd,$(1),$(2)))
$(MB_   )$(call mb-make-call,mb-openmsx-dosctl,$(1),$(3))
endef
define mb-msxpipe-run-gui
$(MB_   )$(call mb-make-call,mb-make-check-arg1,$(0),$(1))
$(MB_   )$(call mb-make-call,_mb-msxpipe-run-gui,$(1),$(2),$(3))
endef
$(call mb-make-call,mb-doc-function,mb-msxpipe-run-gui,Runs openMSX forever with renderer and optionals.,<dir> [cmd] [machine])
define mb-msxpipe-run-gui-mouse
$(MB_   )$(call mb-make-call,mb-make-check-arg1,$(0),$(1))
$(MB_   )$(call mb-make-call,_mb-msxpipe-run-gui,$(1),$(2),$(3),mouse)
endef
$(call mb-make-call,mb-doc-function,mb-msxpipe-run-gui-mouse,Runs openMSX forever with renderer and mouse and optionals.,<dir> [cmd] [machine])

View file

@ -1,280 +0,0 @@
# 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
$(call mb-make-call,mb-doc-variable-deep,MB_MSXROM_API,Resource identifier for msxrom pi pie named slices data.)
MB_MSXROM_CACHE ?= $(MB_OS_CACHE)/msxbuild/msxrom
$(call mb-make-call,mb-doc-variable-deep,MB_MSXROM_CACHE,Cache storage location.)
MB_MSXROM_FIRE_MACHINES ?=
$(call mb-make-call,mb-doc-variable-flow,MB_MSXROM_FIRE_MACHINES,List of supported machines.)
define _mb-msxrom-grow-fire-machines
$(MB_   )$(call mb-make-call,mb-make-check-arg1,$(0),$(1))
$(MB_   )$(eval MB_MSXROM_FIRE_MACHINES $(MB_MAKE_APPEND) $(1))
endef
define _mb-msxrom-file-fetch
$(MB_   )$(call mb-make-call,mb-os-echo-command,$(MB_I18N_MSXROM_FILE_FETCH) $(subst $(MB_MSXROM_API)/,,$(1)))
$(MB_   )$(if $(wildcard $(dir $(MB_MSXROM_CACHE)/$(subst $(MB_MSXROM_API)/,,$(1)))),,$(call mb-make-call,mb-os-dir-create,$(dir $(MB_MSXROM_CACHE)/$(subst $(MB_MSXROM_API)/,,$(1)))))
$(MB_   )$(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
$(MB_   )$(if $(wildcard $(MB_MSXROM_CACHE)/$(2)),,$(call mb-make-call,_mb-msxrom-file-fetch,$(MB_MSXROM_API)/$(2)))
$(MB_   )$(if $(wildcard $(1)/$(notdir $(2))),,$(call mb-make-call,mb-os-file-copy,$(MB_MSXROM_CACHE)/$(2),$(1)/$(notdir $(2))))
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-file,Installs msxroms from slug into an subdir.,<dir> <msxrom-slug>)
define mb-msxrom-setup
$(MB_   )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))),,$(call mb-make-call,mb-os-dir-create,$(1)$(MB_@WORK)$(notdir $(1))))
$(MB_   )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/share),,$(call mb-make-call,mb-os-dir-create,$(1)$(MB_@WORK)$(notdir $(1))/share))
$(MB_   )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/share/systemroms),,$(call mb-make-call,mb-os-dir-create,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms))
$(MB_   )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines),,$(call mb-make-call,mb-os-dir-create,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines))
$(MB_   )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/philips),,$(call mb-make-call,mb-os-dir-create,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/philips))
$(MB_   )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/sony),,$(call mb-make-call,mb-os-dir-create,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/sony))
$(MB_   )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/extensions),,$(call mb-make-call,mb-os-dir-create,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/extensions))
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-setup,Creates needed systemrom folders.,<dir>)
define mb-msxrom-extension-ide
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/extensions,extensions/ide240.dat)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-extension-ide,Installs sunrise IDE classic rom.,<dir>)
define mb-msxrom-extension-ide-nextor
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/extensions,extensions/Nextor-2.1.1.SunriseIDE.ROM)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-extension-ide-nextor,Installs sunrise IDE nextor rom.,<dir>)
define mb-msxrom-extension-scsi-novaxis
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/extensions,extensions/novaxis.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-extension-scsi-novaxis,Installs Gouda SCSI novaxis rom.,<dir>)
define mb-msxrom-extension-msxdos22
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/extensions,extensions/msxdos22.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-extension-msxdos22,Installs msxdos 2.20 rom.,<dir>)
define mb-msxrom-extension-rs232
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/extensions,extensions/rs232.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-extension-rs232,Installs rs232 rom.,<dir>)
define mb-msxrom-extension-fmpac
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/extensions,extensions/fmpac.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-extension-fmpac,Installs fmpac rom.,<dir>)
define mb-msxrom-extension-fmpac-en
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/extensions,extensions/fmpac_en.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-extension-fmpac-en,Installs fmpac english rom.,<dir>)
define mb-msxrom-extension-moonsound
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/extensions,extensions/yrw801.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-extension-moonsound,Installs moonsound rom.,<dir>)
define mb-msxrom-extension-basickun
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/extensions,machines/sanyo/phc-70fd2_basickun.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-extension-basickun,Installs basickun compiler rom.,<dir>)
define mb-msxrom-machine-Canon_V-20
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/canon/v-20_basic-bios1.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-machine-Canon_V-20,Installs machine roms.,<dir>)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Canon_V-20)
define mb-msxrom-machine-Mitsubishi_ML-F80
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/mitsubishi/ml-f80_basic-bios1.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-machine-Mitsubishi_ML-F80,Installs machine roms.,<dir>)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Mitsubishi_ML-F80)
define mb-msxrom-machine-Mitsubishi_ML-FX1
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/mitsubishi/ml-fx1_basic-bios1.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-machine-Mitsubishi_ML-FX1,Installs machine roms.,<dir>)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Mitsubishi_ML-FX1)
define mb-msxrom-machine-Mitsubishi_ML-G3_ES
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/mitsubishi/ml-g3_es_basic-bios2.rom)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/mitsubishi/ml-g3_es_disk.rom)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/mitsubishi/ml-g3_es_msx2sub.rom)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/mitsubishi/ml-g3_es_rs232.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-machine-Mitsubishi_ML-G3_ES,Installs machine roms.,<dir>)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Mitsubishi_ML-G3_ES)
define mb-msxrom-machine-Philips_VG_8000
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/philips,machines/philips/vg8000_basic-bios1.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-machine-Philips_VG_8000,Installs machine roms.,<dir>)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Philips_VG_8000)
define mb-msxrom-machine-Philips_VG_8010
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/philips,machines/philips/vg8010_basic-bios1.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-machine-Philips_VG_8010,Installs machine roms.,<dir>)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Philips_VG_8010)
define mb-msxrom-machine-Philips_VG_8010F
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/philips,machines/philips/vg8010f_basic-bios1.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-machine-Philips_VG_8010F,Installs machine roms.,<dir>)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Philips_VG_8010F)
define mb-msxrom-machine-Philips_VG_8020
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/philips,machines/philips/vg8020_basic-bios1.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-machine-Philips_VG_8020,Installs machine roms.,<dir>)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Philips_VG_8020)
define mb-msxrom-machine-Philips_VG_8020F
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/philips,machines/philips/vg8020f_basic-bios1.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-machine-Philips_VG_8020F,Installs machine roms.,<dir>)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Philips_VG_8020F)
define mb-msxrom-machine-Philips_VG_8230
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/philips,machines/philips/vg8230_basic-bios2.rom)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/philips,machines/philips/vg8230_disk.rom)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/philips,machines/philips/vg8230_msx2sub.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-machine-Philips_VG_8230,Installs machine roms.,<dir>)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Philips_VG_8230)
define mb-msxrom-machine-Philips_NMS_8245
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/philips,machines/philips/NMS8245SystemROM1.08.bin)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-machine-Philips_NMS_8245,Installs machine roms.,<dir>)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Philips_NMS_8245)
define mb-msxrom-machine-Philips_NMS_8250
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/philips,machines/philips/nms8250_basic-bios2.rom)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/philips,machines/philips/nms8250_msx2sub.rom)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/philips,machines/philips/nms8250_disk.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-machine-Philips_NMS_8250,Installs machine roms.,<dir>)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Philips_NMS_8250)
define mb-msxrom-machine-Sony_HB-10
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/sony,machines/sony/hb-10_basic-bios1.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-machine-Sony_HB-10,Installs machine roms.,<dir>)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Sony_HB-10)
define mb-msxrom-machine-Sony_HB-10P
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/sony,machines/sony/hb-10p_basicbios1.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-machine-Sony_HB-10P,Installs machine roms.,<dir>)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Sony_HB-10P)
define mb-msxrom-machine-Sony_HB-F500P
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/sony,machines/sony/hb-f500p_basic-bios2.rom)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/sony,machines/sony/hb-f500p_msx2sub.rom)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/sony,machines/sony/hb-f500p_disk.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-machine-Sony_HB-F500P,Installs machine roms.,<dir>)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Sony_HB-F500P)
define mb-msxrom-machine-Sony_HB-F700P
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/sony,machines/sony/hb-f700p_basic-bios2.rom)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/sony,machines/sony/hb-f700p_msx2sub.rom)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines/sony,machines/sony/hb-f700p_disk.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-machine-Sony_HB-F700P,Installs machine roms.,<dir>)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Sony_HB-F700P)
define mb-msxrom-machine-Toshiba_HX-21
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/toshiba/HX21-IC2.BIN)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/toshiba/HX21-IC3.BIN)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-machine-Toshiba_HX-21,Installs machine roms.,<dir>)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Toshiba_HX-21)
define mb-msxrom-machine-Yamaha_AX200
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/yamaha/ax200_basic-bios1.rom)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/yamaha/ax200_arabic.rom)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/yamaha/ax200_music.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-machine-Yamaha_AX200,Installs machine roms.,<dir>)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Yamaha_AX200)
define mb-msxrom-machine-Yamaha_YIS-503IIIR
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/yamaha/yis503iii_basic-bios2.rom)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/yamaha/yis503iii_msx2sub.rom)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/yamaha/yis503iii_cpm.rom)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/yamaha/yis503iii_net_2.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-machine-Yamaha_YIS-503IIIR,Installs machine roms.,<dir>)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Yamaha_YIS-503IIIR)
define mb-msxrom-machine-Panasonic_FS-A1WSX
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/panasonic/fs-a1wsx_basic-bios2p.rom)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/panasonic/fs-a1wsx_disk.rom)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/panasonic/fs-a1wsx_firmware.rom)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/panasonic/fs-a1wsx_fmbasic.rom)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/panasonic/fs-a1wsx_kanjibasic.rom)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/panasonic/fs-a1wsx_kanjifont.rom)
$(MB_   )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/panasonic/fs-a1wsx_msx2psub.rom)
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-machine-Panasonic_FS-A1WSX,Installs machine roms.,<dir>)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Panasonic_FS-A1WSX)
define mb-msxrom-machine-Boosted_MSX2_EN
$(MB_   )$(call mb-make-call,mb-msxrom-machine-Philips_NMS_8250,$(1))
$(MB_   )$(call mb-make-call,mb-msxrom-extension-fmpac,$(1))
$(MB_   )$(call mb-make-call,mb-msxrom-extension-moonsound,$(1))
$(MB_   )$(call mb-make-call,mb-msxrom-extension-basickun,$(1))
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-machine-Boosted_MSX2_EN,Installs machine and extensions roms.,<dir>)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Boosted_MSX2_EN)
define mb-msxrom-machine-Boosted_MSX2+_JP
$(MB_   )$(call mb-make-call,mb-msxrom-machine-Panasonic_FS-A1WSX,$(1))
$(MB_   )$(call mb-make-call,mb-msxrom-extension-moonsound,$(1))
$(MB_   )$(call mb-make-call,mb-msxrom-extension-basickun,$(1))
endef
$(call mb-make-call,mb-doc-function-deep,mb-msxrom-machine-Boosted_MSX2+_JP,Installs machine and extensions roms.,<dir>)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Boosted_MSX2+_JP)

View file

@ -1,128 +0,0 @@
MB_OPENMSX_PATH ?=
$(call mb-make-call,mb-doc-variable,MB_OPENMSX_PATH,Optional path where openMSX binary is located.)
MB_OPENMSX_BOOT_TIMEOUT ?= 25
$(call mb-make-call,mb-doc-variable,MB_OPENMSX_BOOT_TIMEOUT,Timeout in seconds to guard for boot failures.)
MB_OPENMSX_BOOT_OS ?= nextor
$(call mb-make-call,mb-doc-variable,MB_OPENMSX_BOOT_OS,The default OS to run$$(MB_MAKE_COMMA) valid values are; nextor$$(MB_MAKE_COMMA)msxdos1$$(MB_MAKE_COMMA)msxdos2)
MB_OPENMSX_MACHINE ?= Philips_NMS_8250
$(call mb-make-call,mb-doc-variable,MB_OPENMSX_MACHINE,The default MSX machine to use.)
MB_OPENMSX_MACHINE_RAM ?= ram1mb
$(call mb-make-call,mb-doc-variable,MB_OPENMSX_MACHINE_RAM,Extra ram extension for machine allowed: off$$(MB_MAKE_COMMA)ram16k$$(MB_MAKE_COMMA)ram64k$$(MB_MAKE_COMMA)ram512k$$(MB_MAKE_COMMA)ram1mb$$(MB_MAKE_COMMA)ram2mb$$(MB_MAKE_COMMA)ram4mb)
MB_OPENMSX_SPEED ?= $(if $(findstring turboR,$(MB_OPENMSX_MACHINE)),100,333)
$(call mb-make-call,mb-doc-variable,MB_OPENMSX_SPEED,The throttled MSX emulation speed.)
MB_OPENMSX_ARGS ?=
$(call mb-make-call,mb-doc-variable,MB_OPENMSX_ARGS,Extra arguments to invoke openMSX with.)
MB_OPENMSX_HDD_SIZE ?= 4m
$(call mb-make-call,mb-doc-variable,MB_OPENMSX_HDD_SIZE,The default fire-hdd disk image size.)
MB_OPENMSX_SCALE_FACTOR ?= 3
$(call mb-make-call,mb-doc-variable,MB_OPENMSX_SCALE_FACTOR,The gui scale factor to display the emulation.)
MB_OPENMSX_THROTTLE ?= off
$(call mb-make-call,mb-doc-variable,MB_OPENMSX_THROTTLE,An on/off flag to control throttling globally.)
MB_OPENMSX_HEADLESS ?= on
$(call mb-make-call,mb-doc-variable,MB_OPENMSX_HEADLESS,Controls if openMSX starts headless.)
MB_OPENMSX_RENDERER ?= SDLGL-PP
$(call mb-make-call,mb-doc-variable-deep,MB_OPENMSX_RENDERER,The gui renderer used to display the window head with.)
MB_OPENMSX_STDOUT_IGNORE ?= off
$(call mb-make-call,mb-doc-variable-deep,MB_OPENMSX_STDOUT_IGNORE,Kills logging...rm after issues openMSX are solved.)
MB_OPENMSX_STDERR_IGNORE ?= off
$(call mb-make-call,mb-doc-variable-deep,MB_OPENMSX_STDERR_IGNORE,Kills logging...rm after issues openMSX are solved.)
MB_OPENMSX_FIRE_PIPE_SMOKE ?=
$(call mb-make-call,mb-doc-variable-flow,MB_OPENMSX_FIRE_PIPE_SMOKE,Word count of total openMSX executions.)
define mb-openmsx-setup
$(MB_   )$(call mb-make-call,mb-make-check-arg2,$(0),$(1),$(2))
$(MB_   )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))),,$(call mb-make-call,mb-os-dir-create,$(1)$(MB_@WORK)$(notdir $(1))))
$(MB_   )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/stdio.xml),,$(call mb-make-call,mb-os-file-copy,$(MB_@BASEPATH)openmsx/stdio.xml,$(1)$(MB_@WORK)$(notdir $(1))))
$(MB_   )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/share),,$(call mb-make-call,mb-os-dir-create,$(1)$(MB_@WORK)$(notdir $(1))/share))
$(MB_   )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/share/settings.xml),,$(call mb-make-call,mb-os-file-copy,$(MB_@BASEPATH)openmsx/share/settings.xml,$(1)$(MB_@WORK)$(notdir $(1))/share))
$(MB_   )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/share/scripts),,$(call mb-make-call,mb-os-dir-create,$(1)$(MB_@WORK)$(notdir $(1))/share/scripts))
$(MB_   )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/share/scripts/boot_exec.tcl),,$(call mb-make-call,mb-os-file-copy,$(MB_@BASEPATH)openmsx/share/scripts/boot_exec.tcl,$(1)$(MB_@WORK)$(notdir $(1))/share/scripts))
$(MB_   )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/share/scripts/fail_after.tcl),,$(call mb-make-call,mb-os-file-copy,$(MB_@BASEPATH)openmsx/share/scripts/fail_after.tcl,$(1)$(MB_@WORK)$(notdir $(1))/share/scripts))
$(MB_   )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/share/scripts/fire_hdd.tcl),,$(call mb-make-call,mb-os-file-copy,$(MB_@BASEPATH)openmsx/share/scripts/fire_hdd.tcl,$(1)$(MB_@WORK)$(notdir $(1))/share/scripts))
$(MB_   )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/share/scripts/headless.tcl),,$(call mb-make-call,mb-os-file-copy,$(MB_@BASEPATH)openmsx/share/scripts/headless.tcl,$(1)$(MB_@WORK)$(notdir $(1))/share/scripts))
$(MB_   )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/share/scripts/night_flight.tcl),,$(call mb-make-call,mb-os-file-copy,$(MB_@BASEPATH)openmsx/share/scripts/night_flight.tcl,$(1)$(MB_@WORK)$(notdir $(1))/share/scripts))
$(MB_   )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/share/scripts/omsxctl.tcl),,$(call mb-make-call,mb-msxhub-file,$(1)$(MB_@WORK)$(notdir $(1))/share/scripts,OMSXCTL/1.0-1/get/OMSXCTL/omsxctl.tcl))
$(MB_   )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/share/extensions),,$(call mb-make-call,mb-os-dir-create,$(1)$(MB_@WORK)$(notdir $(1))/share/extensions))
$(MB_   )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/share/extensions/fire-hdd.xml),,$(call mb-make-call,mb-os-file-copy,$(MB_@BASEPATH)openmsx/share/extensions/fire-hdd.xml,$(1)$(MB_@WORK)$(notdir $(1))/share/extensions))
$(MB_   )$(call mb-make-call,mb-msxrom-setup,$(1))
$(MB_   )$(call mb-make-call,mb-msxrom-extension-ide-nextor,$(1))
$(MB_   )$(call mb-make-call,mb-msxrom-machine-$(2),$(1))
endef
$(call mb-make-call,mb-doc-function-deep,mb-openmsx-setup,Setup openMSX local build home folder for machine.,<dir> <machine>)
define _mb-openmsx-path
$(MB_   )$(if $(MB_OPENMSX_PATH),$(MB_OPENMSX_PATH)/$(1),$(1))
endef
define _mb-openmsx-run
$(MB_   )$(eval MB_OPENMSX_FIRE_PIPE_SMOKE $(MB_MAKE_APPEND) OK)
$(MB_   )$(call mb-make-call,mb-os-echo-command,$(MB_I18N_OPENMSX_STARTUP) $@ - $(2))
$(MB_   )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/persistent/fire-hdd/untitled1/sync),,$(call mb-make-call,mb-os-dir-create,$(1)$(MB_@WORK)$(notdir $(1))/persistent/fire-hdd/untitled1/sync))
$(MB_   )BOOT_WATCHDOG=$(MB_OPENMSX_BOOT_TIMEOUT) \
$(MB_   )FIRE_HDD_PATH="$(1)" \
$(MB_   )FIRE_HDD_SIZE=$(MB_OPENMSX_HDD_SIZE) \
$(MB_   )FIRE_HDD_IMAGE="$(1)$(MB_@WORK)$(notdir $(1))/persistent/fire-hdd/untitled1/image-hda.dsk" \
$(MB_   )FIRE_HDD_PATH_EXPORT="$(1)$(MB_@WORK)$(notdir $(1))/persistent/fire-hdd/untitled1/sync" \
$(MB_   )SCALE_FACTOR=$(MB_OPENMSX_SCALE_FACTOR) \
$(MB_   )SPEED=$(MB_OPENMSX_SPEED) \
$(MB_   )HEADLESS=$(MB_OPENMSX_HEADLESS) \
$(MB_   )RENDERER=$(MB_OPENMSX_RENDERER) \
$(MB_   )THROTTLE=$(MB_OPENMSX_THROTTLE) \
$(MB_   )NF_PREFIX=$(MB_FLIGHT_PREFIX) \
$(MB_   )NF_SEPERATOR=$(MB_FLIGHT_SEPERATOR) \
$(MB_   )NF_RECORD_FLAG=$(MB_FLIGHT_RECORD_FLAG) \
$(MB_   )OPENMSX_HOME="$(1)$(MB_@WORK)$(notdir $(1))" \
$(MB_   )$(call mb-make-call,_mb-openmsx-path,openmsx) \
$(MB_      )-machine $(2) \
$(MB_      )-ext slotexpander \
$(MB_      )-ext fire-hdd \
$(MB_      )$(if $(filter ram16k,$(3)),-ext ram16k) \
$(MB_      )$(if $(filter ram64k,$(3)),-ext ram64k) \
$(MB_      )$(if $(filter ram512k,$(3)),-ext ram512k) \
$(MB_      )$(if $(filter ram1mb,$(3)),-ext ram1mb) \
$(MB_      )$(if $(filter ram4mb,$(3)),-ext ram2mb) \
$(MB_      )$(if $(filter ram4mb,$(3)),-ext ram4mb) \
$(MB_      )$(MB_OPENMSX_ARGS) \
$(MB_      )-control stdio < $(1)$(MB_@WORK)$(notdir $(1))/stdio.xml \
$(MB_      )$(if $(filter on,$(MB_OPENMSX_STDOUT_IGNORE)),$(MB_OS_STDOUT_IGNORE)) \
$(MB_      )$(if $(filter on,$(MB_OPENMSX_STDERR_IGNORE)),$(MB_OS_STDERR_IGNORE))
$(MB_   )rsync --checksum --recursive "$(1)$(MB_@WORK)$(notdir $(1))/persistent/fire-hdd/untitled1/sync/" "$(1)/"
endef
define _mb-openmsx-dosctl-bat
$(MB_   )$(if $(wildcard $(1)/z80.bat),,$(call mb-make-call,mb-os-file-copy,$(MB_@BASEPATH)emuctl/z80.bat,$(1)))
$(MB_   )$(if $(wildcard $(1)/reboot.bat),,$(call mb-make-call,mb-os-file-copy,$(MB_@BASEPATH)emuctl/reboot.bat,$(1)))
$(MB_   )$(if $(wildcard $(1)/shutdown.bat),,$(call mb-make-call,mb-os-file-copy,$(MB_@BASEPATH)emuctl/shutdown.bat,$(1)))
$(MB_   )$(if $(wildcard $(1)/mbboot80.com),,$(call mb-make-call,mb-os-file-copy,$(MB_@BASEPATH)emuctl/mbboot80.com,$(1)))
$(MB_   )$(if $(wildcard $(1)/omsxctl.com),,$(call mb-make-call,mb-msxhub-file,$(1),OMSXCTL/1.0-1/get/OMSXCTL/omsxctl.com))
endef
define mb-openmsx-dosctl
$(MB_   )$(call mb-make-call,mb-make-check-arg1,$(0),$(1))
$(MB_   )$(call mb-make-call,mb-openmsx-setup,$(1),$(if $(2),$(2),$(MB_OPENMSX_MACHINE)))
$(MB_   )$(if $(wildcard $(1)/utils),$(call mb-make-call,_mb-openmsx-dosctl-bat,$(1)/utils),$(call mb-make-call,_mb-openmsx-dosctl-bat,$(1)))
$(MB_   )$(if $(wildcard $(1)/command.com),,$(if $(wildcard $(1)/command2.com),,$(call mb-make-call,mb-msxhub-get-$(MB_OPENMSX_BOOT_OS)-boot,$(1))))
$(MB_   )$(call mb-make-call,_mb-openmsx-run,$(1),$(if $(2),$(2),$(MB_OPENMSX_MACHINE)),$(if $(3),$(3),$(MB_OPENMSX_MACHINE_RAM)))
endef
$(call mb-make-call,mb-doc-function,mb-openmsx-dosctl,Starts openMSX with dos controller.,<dir> [machine] [mem-ext])

View file

@ -1,63 +0,0 @@
define __mb-flow-assert-grep-binary-x
.RECIPEPREFIX := $(MB_@RECIPE)
$(1)/@assert/$(5)/@$(2): $(1)/@$(5)
$(MB_@RECIPE)@echo -n "$(MB_I18N_OS_CRAYON_TAG) "
$(MB_@RECIPE)grep --colour$(MB_MAKE_EQUALS)auto -U "$(4)" $(1)/$(3)
$(MB_@RECIPE)$$(call mb-make-call,mb-os-echo-assert,$$(MB_I18N_ASSERT_SUCCESS) $(1)/@assert/$(5)/@$(2))
$(MB_@RECIPE)$$(call mb-make-call,mb-proj-grow-assert-success,$(5))
$(MB_   )$$(call mb-make-call,mb-doc-target-assert,$(1)/@assert/$(5)/@$(2),Asserts that $(3) output matches.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(1)/@assert/$(5)/@$(2))
$(MB_   )$$(call mb-make-call,mb-proj-grow-deps-phase,$(5),$(1)/@assert/$(5)/@$(2))
$(1)/@$(5)-deps:: $(1)/@assert/$(5)/@$(2)
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
define mb-flow-assert-grep-binary-test
$(MB_   )$(call mb-make-call,mb-make-check-arg4,$(0),$(1),$(2),$(3),$(4))
$(MB_   )$(eval $(call mb-make-call,__mb-flow-assert-grep-binary-x,$(1),$(2),$(3),$(4),@test))
endef
$(call mb-make-call,mb-doc-function-flow,mb-flow-assert-grep-binary-test,Inject flow of single binary grep assert.,<build-dir> <test-id> <file> <grep-match>)
define mb-flow-assert-grep-binary-package-qa
$(MB_   )$(call mb-make-call,mb-make-check-arg4,$(0),$(1),$(2),$(3),$(4))
$(MB_   )$(eval $(call mb-make-call,__mb-flow-assert-grep-binary-x,$(1),$(2),$(3),$(4),@package-qa))
endef
$(call mb-make-call,mb-doc-function-flow,mb-flow-assert-grep-binary-package-qa,Inject flow of single binary grep assert.,<build-dir> <test-id> <file> <grep-match>)
define __mb-flow-assert-msxpipe-grep-x
.RECIPEPREFIX := $(MB_@RECIPE)
$(1)/@assert/$(5)/@$(2): $(7)/@$(5)
$(MB_@RECIPE)$$(if $$(wildcard $(7)/$(3).out),,$$(call mb-make-call,mb-os-file-delete,$(7)/$(3).out))
$(MB_@RECIPE)$$(call mb-make-call,mb-msxpipe-safe-assert,$(7),$(3) > $(3).out,$(6))
$(MB_@RECIPE)@echo -n "$(MB_I18N_OS_CRAYON_TAG) "
$(MB_@RECIPE)grep --colour$(MB_MAKE_EQUALS)auto "$(4)" $(7)/$(3).out
$(MB_@RECIPE)$$(call mb-make-call,mb-os-echo-assert,$$(MB_I18N_ASSERT_SUCCESS) $(1)/@assert/$(5)/@$(2))
$(MB_@RECIPE)$$(call mb-make-call,mb-proj-grow-assert-success,$(5))
$(MB_   )$$(call mb-make-call,mb-doc-target-assert,$(1)/@assert/$(5)/@$(2),Asserts that $(3) output matches.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(1)/@assert/$(5)/@$(2))
$(MB_   )$$(call mb-make-call,mb-proj-grow-deps-phase,$(5),$(1)/@assert/$(5)/@$(2))
# Add phase dep link in source project build phase target
$(1)/@$(5)-deps:: $(1)/@assert/$(5)/@$(2)
# (extra) Add local phase dep link in clone poject for build phase target
$(7)/@$(5)-deps:: $(1)/@assert/$(5)/@$(2)
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
define mb-flow-assert-msxpipe-grep-test
$(MB_   )$(call mb-make-call,mb-make-check-arg5,$(0),$(1),$(2),$(3),$(4),$(5))
$(MB_   )$(eval $(call mb-make-call,mb-flow-clone-deps-proj-setup-orphan,$(subst $(abspath $(dir $(1)))/,,$(dir $(1))$(abspath $(1)$(MB_@WORK)_assert_test/$(notdir $(1))/$(3))),$(1),$(2),$(6),$(7)))
$(MB_   )$(eval $(call mb-make-call,__mb-flow-assert-msxpipe-grep-x,$(1),$(3),$(4),$(5),@test,$(7),$(subst $(abspath $(dir $(1)))/,,$(dir $(1))$(abspath $(1)$(MB_@WORK)_assert_test/$(notdir $(1))/$(3)))))
endef
$(call mb-make-call,mb-doc-function-flow,mb-flow-assert-msxpipe-grep-test,Inject flow of single grep assert.,<build-dir> <deps> <test-id> <cmd-name> <grep-match> [packages] [machine])
define mb-flow-assert-msxpipe-grep-package-qa
$(MB_   )$(call mb-make-call,mb-make-check-arg5,$(0),$(1),$(2),$(3),$(4),$(5))
$(MB_   )$(eval $(call mb-make-call,mb-flow-clone-deps-proj-setup-orphan,$(subst $(abspath $(dir $(1)))/,,$(dir $(1))$(abspath $(1)$(MB_@WORK)_assert_package_qa/$(notdir $(1))/$(3))),$(1),$(2),$(6),$(7)))
$(MB_   )$(eval $(call mb-make-call,__mb-flow-assert-msxpipe-grep-x,$(1),$(3),$(4),$(5),@package-qa,$(7),$(subst $(abspath $(dir $(1)))/,,$(dir $(1))$(abspath $(1)$(MB_@WORK)_assert_package_qa/$(notdir $(1))/$(3)))))
endef
$(call mb-make-call,mb-doc-function-flow,mb-flow-assert-msxpipe-grep-package-qa,Inject flow of single grep assert.,<build-dir> <deps> <test-id> <cmd-name> <grep-match> [packages] [machine])

View file

@ -1,45 +0,0 @@
define __mb-flow-clone-deps
.RECIPEPREFIX := $(MB_@RECIPE)
$(1)/%: $(2)/%
$(MB_@RECIPE)$$(call mb-make-call,mb-os-file-copy,$$<,$$@)
$(1)/@@process-deps::
$(MB_@RECIPE)$$(call mb-make-call,mb-os-echo-remark,$(MB_I18N_FLOW_CLONE_REPORT) $$(words $(4)))
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
define __mb-flow-clone-deps-chain
.RECIPEPREFIX := $(MB_@RECIPE)
$(1): $(MB_@GRAPH_CHAIN)
MB_@GRAPH_CHAIN :$(MB_MAKE_EQUALS) $(1)
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
define mb-flow-clone-deps-proj-setup
$(MB_   )$(call mb-make-call,mb-make-check-arg3,$(0),$(1),$(2),$(3))
$(MB_   )$(call mb-make-call,mb-flow-proj-setup,$(1),$(2)/@build,$(1))
$(MB_   )$(call mb-make-call,mb-flow-proj-module-run,$(1),$(5))
$(MB_   )$(if $(4),$(call mb-make-call,mb-flow-proj-prepare-packages,$(1),$(4)))
$(MB_   )$(eval $(call mb-make-call,__mb-flow-clone-deps,$(1),$(2),$(3),$(call mb-make-call,mb-make-module-local-deps,$(1),$(3))))
$(MB_   )$(eval MB_@GRAPH_CHAIN :$(MB_MAKE_EQUALS) $(1)/@@prepare)
$(MB_   )$(foreach _dep,$(call mb-make-call,mb-make-module-local-deps,$(1),$(3)),$(eval $(call mb-make-call,__mb-flow-clone-deps-chain,$(_dep))))
$(MB_   )$(eval $(1)/@@prepare-deps:: $(MB_@GRAPH_CHAIN))
endef
$(call mb-make-call,mb-doc-function-flow,mb-flow-clone-deps-proj-setup,Inject flow of file copy toolchain module.,<bin-to> <bin-from> <deps> [packages] [machine])
define mb-flow-clone-deps-proj-setup-orphan
$(MB_   )$(call mb-make-call,mb-make-check-arg3,$(0),$(1),$(2),$(3))
$(MB_   )$(call mb-make-call,mb-flow-proj-setup-orphan,$(1),$(2)/@build,$(1))
$(MB_   )$(call mb-make-call,mb-flow-proj-module-run,$(1),$(5))
$(MB_   )$(if $(4),$(call mb-make-call,mb-flow-proj-prepare-packages,$(1),$(4)))
$(MB_   )$(eval $(call mb-make-call,__mb-flow-clone-deps,$(1),$(2),$(3),$(call mb-make-call,mb-make-module-local-deps,$(1),$(3))))
$(MB_   )$(eval MB_@GRAPH_CHAIN :$(MB_MAKE_EQUALS) $(1)/@@prepare)
$(MB_   )$(foreach _dep,$(call mb-make-call,mb-make-module-local-deps,$(1),$(3)),$(eval $(call mb-make-call,__mb-flow-clone-deps-chain,$(_dep))))
$(MB_   )$(eval $(1)/@@prepare-deps:: $(MB_@GRAPH_CHAIN))
endef
$(call mb-make-call,mb-doc-function-flow,mb-flow-clone-deps-proj-setup-orphan,Inject flow of file copy toolchain module.,<bin-to> <bin-from> <deps> [packages] [machine])

View file

@ -1,158 +0,0 @@
MB_FLOW_HELP_TEMP := $(shell mktemp)
$(call mb-make-call,mb-doc-variable-rock,MB_FLOW_HELP_TEMP,Temp file to output help with.)
MB_FLOW_HELP_UNITEEN_XML ?= on
$(call mb-make-call,mb-doc-variable-rock,MB_FLOW_HELP_UNITEEN_XML,Test dutch unit-one flag XML attributes.)
# Never use echo to display real text: Argument List Too Long
define _mb-flow-print-help
$(MB_   )@echo -e "$(2)"
$(MB_   )$(file >$(MB_FLOW_HELP_TEMP),$($(1)))
$(MB_   )@cat $(MB_FLOW_HELP_TEMP)
$(MB_   )@$(call mb-make-call,mb-os-file-delete,$(MB_FLOW_HELP_TEMP))
endef
define _mb-flow-help-uniteen-xml
$(MB_   )$(call mb-make-call,mb-make-space-newline)$\
$(MB_      )$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-xml-open,uniteen,flag,orange,للَّٰهِilLצسُو,ₚᵣₐᵧTo)$(call mb-make-call,mb-make-space-newline)$\
$(MB_      )$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-xml-close,uniteen)$(call mb-make-call,mb-make-space-newline)$\
$(MB_      )$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-xml-open,uniteen,flag,red,𑀳𑁂𑀮𑀺𑀉𑁄𑀤𑁄𑀭𑁂𑀡𑀪𑀸𑀕,ₚᵣₐᵧTo)$(call mb-make-call,mb-make-space-newline)$\
$(MB_      )$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-xml-close,uniteen)$(call mb-make-call,mb-make-space-newline)$\
$(MB_      )$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-xml-open,uniteen,flag,white,ᒡᒢᑊᒻᒻᓫᔿ,ₚᵣₐᵧTo)$(call mb-make-call,mb-make-space-newline)$\
$(MB_      )$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-xml-close,uniteen)$(call mb-make-call,mb-make-space-newline)$\
$(MB_      )$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-xml-open,uniteen,flag,blue,仙上主天,ₚᵣₐᵧTo)$(call mb-make-call,mb-make-space-newline)$\
$(MB_      )$(call mb-make-call,mb-make-space-tab)$(call mb-make-call,mb-make-xml-close,uniteen)$(call mb-make-call,mb-make-space-newline)
endef
define __mb-flow-doc-help
.RECIPEPREFIX := $(MB_@RECIPE)
@help:
$(MB_@RECIPE)$$(call mb-make-call,_mb-flow-print-help,MB_DOC_FIRE_TARGET_HELP,Welcome to the $$(if $$(MB_PROJ_META_NAME),$$(MB_PROJ_META_NAME),MSXBUILD) help system.\\n\\nFor detailed fire help use one of the following targets;)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@help)
@help-variable:
$(MB_@RECIPE)$$(call mb-make-call,_mb-flow-print-help,MB_DOC_FIRE_VARIABLE,Documention of the make fire variables;)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@help-variable,Lists build variables.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@help-variable)
@help-variable-deep:
$(MB_@RECIPE)$$(call mb-make-call,_mb-flow-print-help,MB_DOC_FIRE_VARIABLE_DEEP,Documention of the deep make variables;)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@help-variable-deep,Lists deep variables.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@help-variable-deep)
@help-variable-rock:
$(MB_@RECIPE)$$(call mb-make-call,_mb-flow-print-help,MB_DOC_FIRE_VARIABLE_ROCK,Documention of the rock make variables;)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@help-variable-rock,Lists rock variables.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@help-variable-rock)
@help-variable-flow:
$(MB_@RECIPE)$$(call mb-make-call,_mb-flow-print-help,MB_DOC_FIRE_VARIABLE_FLOW,Documention of the flow make variables;)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@help-variable-flow,Lists flow variables.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@help-variable-flow)
@help-variable-i18n:
$(MB_@RECIPE)$$(call mb-make-call,_mb-flow-print-help,MB_DOC_FIRE_VARIABLE_I18N,Documention of the i18n make variables;)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@help-variable-i18n,Lists i18n variables.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@help-variable-i18n)
@help-function:
$(MB_@RECIPE)$$(call mb-make-call,_mb-flow-print-help,MB_DOC_FIRE_FUNCTION,Documention of the make fire functions;)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@help-function,Lists build functions.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@help-function)
@help-function-deep:
$(MB_@RECIPE)$$(call mb-make-call,_mb-flow-print-help,MB_DOC_FIRE_FUNCTION_DEEP,Documention of the deep make functions;)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@help-function-deep,Lists deep functions.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@help-function-deep)
@help-function-flow:
$(MB_@RECIPE)$$(call mb-make-call,_mb-flow-print-help,MB_DOC_FIRE_FUNCTION_FLOW,Documention of the flow make functions;)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@help-function-flow,Lists flow functions.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@help-function-flow)
@help-target:
$(MB_@RECIPE)$$(call mb-make-call,_mb-flow-print-help,MB_DOC_FIRE_TARGET,Build one of the following make fire targets;)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@help-target,Lists build targets.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@help-target)
@help-target-deep:
$(MB_@RECIPE)$$(call mb-make-call,_mb-flow-print-help,MB_DOC_FIRE_TARGET_DEEP,Build one of the following deep make targets;)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@help-target-deep,Lists deep targets.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@help-target-deep)
@help-target-run:
$(MB_@RECIPE)$$(call mb-make-call,_mb-flow-print-help,MB_DOC_FIRE_TARGET_RUN,Build one of the following run make targets;)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@help-target-run,Lists runnable targets.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@help-target-run)
@help-target-module:
$(MB_@RECIPE)$$(call mb-make-call,_mb-flow-print-help,MB_DOC_FIRE_TARGET_MODULE,Build one of the following module make targets;)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@help-target-module,Lists module targets.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@help-target-module)
@help-target-orphan:
$(MB_@RECIPE)$$(call mb-make-call,_mb-flow-print-help,MB_DOC_FIRE_TARGET_ORPHAN,Build one of the following orphan make targets;)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@help-target-orphan,Lists orphan targets.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@help-target-orphan)
@help-target-assert:
$(MB_@RECIPE)$$(call mb-make-call,_mb-flow-print-help,MB_DOC_FIRE_TARGET_ASSERT,Build one of the following assert make targets;)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@help-target-assert,Lists assert targets.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@help-target-assert)
@help-machine:
$(MB_@RECIPE)@echo -e "Use one of the following machines to build targets;"
$(MB_@RECIPE)@echo -e "\n "$(foreach _rom,$(MB_MSXROM_FIRE_MACHINES)," * $(_rom)\n")
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@help-machine,Lists supported machines.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@help-machine)
@help-all: \
$(MB_   )@help-variable @help-variable-deep @help-variable-rock @help-variable-flow @help-variable-i18n \
$(MB_   )@help-function @help-function-deep @help-function-flow \
$(MB_   )@help-target @help-target-deep @help-target-run @help-target-module @help-target-orphan @help-target-assert \
$(MB_   )@help-machine
$(MB_@RECIPE)$$(call mb-make-call,mb-os-echo-good,OK)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@help-all,Lists all documented information.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@help-all)
@help-firemake:
$(MB_@RECIPE)$$(eval MB_DOC_FORMAT :$(MB_MAKE_EQUALS) xml)
$(MB_@RECIPE)$$(file >$(MB_FLOW_HELP_TEMP),$$(call mb-make-call,mb-make-xml-prolog))
$(MB_@RECIPE)$$(file >>$(MB_FLOW_HELP_TEMP),$$(call mb-make-call,mb-make-xml-open,$$(MB_DOC_XML_ROOT)))
$(MB_@RECIPE)$$(if $$(filter on,$$(MB_FLOW_HELP_UNITEEN_XML)),$$(file >>$(MB_FLOW_HELP_TEMP),$$(call mb-make-call,_mb-flow-help-uniteen-xml)))
$(MB_@RECIPE)$$(file >>$(MB_FLOW_HELP_TEMP),$$(MB_DOC_FIRE_VARIABLE))
$(MB_@RECIPE)$$(file >>$(MB_FLOW_HELP_TEMP),$$(MB_DOC_FIRE_VARIABLE_DEEP))
$(MB_@RECIPE)$$(file >>$(MB_FLOW_HELP_TEMP),$$(MB_DOC_FIRE_VARIABLE_ROCK))
$(MB_@RECIPE)$$(file >>$(MB_FLOW_HELP_TEMP),$$(MB_DOC_FIRE_VARIABLE_FLOW))
$(MB_@RECIPE)$$(file >>$(MB_FLOW_HELP_TEMP),$$(MB_DOC_FIRE_VARIABLE_I18N))
$(MB_@RECIPE)$$(file >>$(MB_FLOW_HELP_TEMP),$$(MB_DOC_FIRE_FUNCTION))
$(MB_@RECIPE)$$(file >>$(MB_FLOW_HELP_TEMP),$$(MB_DOC_FIRE_FUNCTION_DEEP))
$(MB_@RECIPE)$$(file >>$(MB_FLOW_HELP_TEMP),$$(MB_DOC_FIRE_FUNCTION_FLOW))
$(MB_@RECIPE)$$(file >>$(MB_FLOW_HELP_TEMP),$$(MB_DOC_FIRE_TARGET))
$(MB_@RECIPE)$$(file >>$(MB_FLOW_HELP_TEMP),$$(MB_DOC_FIRE_TARGET_DEEP))
$(MB_@RECIPE)$$(file >>$(MB_FLOW_HELP_TEMP),$$(MB_DOC_FIRE_TARGET_RUN))
$(MB_@RECIPE)$$(file >>$(MB_FLOW_HELP_TEMP),$$(MB_DOC_FIRE_TARGET_MODULE))
$(MB_@RECIPE)$$(file >>$(MB_FLOW_HELP_TEMP),$$(MB_DOC_FIRE_TARGET_ORPHAN))
$(MB_@RECIPE)$$(file >>$(MB_FLOW_HELP_TEMP),$$(MB_DOC_FIRE_TARGET_ASSERT))
$(MB_@RECIPE)$$(file >>$(MB_FLOW_HELP_TEMP),$$(MB_DOC_FIRE_TARGET_HELP))
$(MB_@RECIPE)$$(file >>$(MB_FLOW_HELP_TEMP),$$(call mb-make-call,mb-make-xml-close,$$(MB_DOC_XML_ROOT)))
$(MB_@RECIPE)@cat $$(MB_FLOW_HELP_TEMP)
$(MB_@RECIPE)@$$(call mb-make-call,mb-os-file-delete,$$(MB_FLOW_HELP_TEMP))
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@help-firemake,Output all documention in XML for IDE integration.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@help-firemake)
# TODO: create doc for "warpue" xml tag + list Word vAriable Readout Private valUE (for UI)
#$(MB_@RECIPE)$$(file >>$(MB_FLOW_HELP_TEMP),$$(foreach _rom,$$(MB_MSXROM_FIRE_MACHINES),\t$$(call mb-make-call,mb-make-xml-open,$$(MB_DOC_XML_TAG_MACHINE),name,$$(_rom))$$(call mb-make-call,mb-make-xml-close,$$(MB_DOC_XML_TAG_MACHINE))\n))
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
define mb-flow-doc-help
$(MB_   )$(eval $(call mb-make-call,__$(0),$(1)))
endef
$(call mb-make-call,mb-doc-function-flow,mb-flow-doc-help,Inject flow of fire help system.)

View file

@ -1,40 +0,0 @@
# TODO: to create bin files use;
# l80 /P:C000,hello,hello/N/X/Y/E
# and
# hextobin hello.hex hello.bin
define __mb-flow-macro80-bdos-mono
.RECIPEPREFIX := $(MB_@RECIPE)
$(1)/@@process-deps:: $(1)/$(3).mac
$(1)/$(3).mac: $(2)/$(3).mac | $(1)/@prepare
$(MB_@RECIPE)$$(call mb-make-call,mb-conv-unix2dos,$(2)/$(3).mac,$(1)/$(3).mac)
$(MB_   )$$(call mb-make-call,mb-doc-target-deep,$(1)/$(3).mac)
$(1)/@@compile-deps:: $(1)/$(3).rel
$(1)/$(3).rel: $(1)/$(3).mac
$(MB_@RECIPE)$$(call mb-make-call,mb-msxpipe-safe-cmd,$(1),m80 $$(MB_MAKE_EQUALS)$(3)/Z)
$(MB_   )$$(call mb-make-call,mb-doc-target-deep,$(1)/$(3).rel)
$(1)/@@link-deps:: $(1)/$(3).hex
$(1)/$(3).hex: $(1)/$(3).rel
$(MB_@RECIPE)$$(call mb-make-call,mb-msxpipe-safe-cmd,$(1),l80 $(3)$$(MB_MAKE_COMMA)$(3)/N/X/Y/E)
$(MB_   )$$(call mb-make-call,mb-doc-target-deep,$(1)/$(3).hex)
$(1)/@@build-deps:: $(1)/$(3).com
$(1)/$(3).com: $(1)/$(3).hex
$(MB_@RECIPE)$$(call mb-make-call,mb-msxpipe-safe-cmd,$(1),hextocom $(3))
$(MB_   )$$(call mb-make-call,mb-doc-target-deep,$(1)/$(3).com)
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
define mb-flow-macro80-bdos-mono
$(MB_   )$(call mb-make-call,mb-make-check-arg3,$(0),$(1),$(2),$(3))
$(MB_   )$(call mb-make-call,mb-flow-proj-setup,$(1),@init,$(1))
$(MB_   )$(call mb-make-call,mb-flow-proj-module-run,$(1))
$(MB_   )$(call mb-make-call,mb-flow-proj-prepare-packages,$(1),macro80 z80asmuk,utils)
$(MB_   )$(eval $(call mb-make-call,__$(0),$(1),$(2),$(3)))
endef
$(call mb-make-call,mb-doc-function-flow,mb-flow-macro80-bdos-mono,Inject flow of m80 toolchain bdos mono file module.,<bin-dir> <src-dir> <objname>)

View file

@ -1,29 +0,0 @@
define __mb-flow-nestor80-bdos-mono
.RECIPEPREFIX := $(MB_@RECIPE)
$(1)/@@prepare-deps:: $(1)/$(3).mac
$(1)/$(3).mac: $(2)/$(3).mac | $(1)/@init
$(MB_@RECIPE)$$(call mb-make-call,mb-os-file-copy,$$<,$$@)
$(MB_   )$$(call mb-make-call,mb-doc-target-deep,$(1)/$(3).mac)
$(1)/@@compile-deps:: $(1)/$(3).rel
$(1)/$(3).rel: $(1)/$(3).mac
$(MB_@RECIPE)$$(call mb-make-call,mb-nestor80-compile,$$<,$$@)
$(MB_   )$$(call mb-make-call,mb-doc-target-deep,$(1)/$(3).rel)
$(1)/@@link-deps:: $(1)/$(3).com
$(1)/$(3).com: $(1)/$(3).rel
$(MB_@RECIPE)$$(call mb-make-call,mb-nestor80-link-bdos,$$<,$$@)
$(MB_   )$$(call mb-make-call,mb-doc-target-deep,$(1)/$(3).com)
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
define mb-flow-nestor80-bdos-mono
$(MB_   )$(call mb-make-call,mb-make-check-arg3,$(0),$(1),$(2),$(3))
$(MB_   )$(call mb-make-call,mb-flow-proj-setup,$(1),@init,$(1))
$(MB_   )$(call mb-make-call,mb-flow-proj-module-run,$(1))
$(MB_   )$(eval $(call mb-make-call,__$(0),$(1),$(2),$(3)))
endef
$(call mb-make-call,mb-doc-function-flow,mb-flow-nestor80-bdos-mono,Inject flow of Nestor80 toolchain bdos mono file module.,<bin-dir> <src-dir> <objname>)

View file

@ -1,35 +0,0 @@
define __mb-flow-nx01-skywalker
$(MB_   )ifdef DEBUG
$(MB_      )ifneq ("$$(DEBUG)", "off")
$(MB_         )$$(warning DEBUG $(0) ($(1)))
$(MB_      )endif
$(MB_   )endif
$(MB_   ).PHONY: $(1)
$(MB_   )include $(1)
$(MB_   )@@include-mods:: $(1)
$(MB_   )$(1): @@include-tree
endef
define mb-flow-nx01-skywalker
$(MB_   )$(call mb-make-call,mb-make-check-arg1,$(0),$(1))
$(MB_   )$(foreach _mod,$(call mb-make-call,mb-make-wildcard-treewalker,$(1),*/0module.mk),$(eval $(call mb-make-call,__$(0),$(_mod))))
$(MB_   )$(foreach _mod,$(call mb-make-call,mb-make-wildcard-treewalker,$(1),*/0module000.mk),$(eval $(call mb-make-call,__$(0),$(_mod))))
$(MB_   )$(foreach _mod,$(call mb-make-call,mb-make-wildcard-treewalker,$(1),*/0module001.mk),$(eval $(call mb-make-call,__$(0),$(_mod))))
$(MB_   )$(foreach _mod,$(call mb-make-call,mb-make-wildcard-treewalker,$(1),*/0module010.mk),$(eval $(call mb-make-call,__$(0),$(_mod))))
$(MB_   )$(foreach _mod,$(call mb-make-call,mb-make-wildcard-treewalker,$(1),*/0module011.mk),$(eval $(call mb-make-call,__$(0),$(_mod))))
$(MB_   )$(foreach _mod,$(call mb-make-call,mb-make-wildcard-treewalker,$(1),*/0module100.mk),$(eval $(call mb-make-call,__$(0),$(_mod))))
$(MB_   )$(foreach _mod,$(call mb-make-call,mb-make-wildcard-treewalker,$(1),*/0module101.mk),$(eval $(call mb-make-call,__$(0),$(_mod))))
$(MB_   )$(foreach _mod,$(call mb-make-call,mb-make-wildcard-treewalker,$(1),*/0module110.mk),$(eval $(call mb-make-call,__$(0),$(_mod))))
$(MB_   )$(foreach _mod,$(call mb-make-call,mb-make-wildcard-treewalker,$(1),*/0module111.mk),$(eval $(call mb-make-call,__$(0),$(_mod))))
$(MB_   )$(foreach _mod,$(call mb-make-call,mb-make-wildcard-treewalker,$(1),*/1module.mk),$(eval $(call mb-make-call,__$(0),$(_mod))))
$(MB_   )$(foreach _mod,$(call mb-make-call,mb-make-wildcard-treewalker,$(1),*/1module000.mk),$(eval $(call mb-make-call,__$(0),$(_mod))))
$(MB_   )$(foreach _mod,$(call mb-make-call,mb-make-wildcard-treewalker,$(1),*/1module001.mk),$(eval $(call mb-make-call,__$(0),$(_mod))))
$(MB_   )$(foreach _mod,$(call mb-make-call,mb-make-wildcard-treewalker,$(1),*/1module010.mk),$(eval $(call mb-make-call,__$(0),$(_mod))))
$(MB_   )$(foreach _mod,$(call mb-make-call,mb-make-wildcard-treewalker,$(1),*/1module011.mk),$(eval $(call mb-make-call,__$(0),$(_mod))))
$(MB_   )$(foreach _mod,$(call mb-make-call,mb-make-wildcard-treewalker,$(1),*/1module100.mk),$(eval $(call mb-make-call,__$(0),$(_mod))))
$(MB_   )$(foreach _mod,$(call mb-make-call,mb-make-wildcard-treewalker,$(1),*/1module101.mk),$(eval $(call mb-make-call,__$(0),$(_mod))))
$(MB_   )$(foreach _mod,$(call mb-make-call,mb-make-wildcard-treewalker,$(1),*/1module110.mk),$(eval $(call mb-make-call,__$(0),$(_mod))))
$(MB_   )$(foreach _mod,$(call mb-make-call,mb-make-wildcard-treewalker,$(1),*/1module111.mk),$(eval $(call mb-make-call,__$(0),$(_mod))))
endef
$(call mb-make-call,mb-doc-function-flow,mb-flow-nx01-skywalker,Inject flow of 18 bit recursive binary loading schema 0/1module[000-111].mk for include levels.,<dir>)

View file

@ -1,337 +0,0 @@
MB_PROJ_META_GROUP_ID ?=
$(call mb-make-call,mb-doc-variable,MB_PROJ_META_GROUP_ID,The project group id.)
MB_PROJ_META_ARTIFACT_ID ?=
$(call mb-make-call,mb-doc-variable,MB_PROJ_META_ARTIFACT_ID,The project artifact id.)
MB_PROJ_META_VERSION ?=
$(call mb-make-call,mb-doc-variable,MB_PROJ_META_VERSION,The project version.)
MB_PROJ_META_NAME ?=
$(call mb-make-call,mb-doc-variable,MB_PROJ_META_NAME,The project name.)
MB_PROJ_META_DESCRIPTION ?=
$(call mb-make-call,mb-doc-variable,MB_PROJ_META_DESCRIPTION,The project description.)
MB_PROJ_META_WEBSITE ?=
$(call mb-make-call,mb-doc-variable,MB_PROJ_META_WEBSITE,The project website location.)
MB_PROJ_PHASE_GROW_DEPS = @prepare @process @compile @link @build @test @package @package-qa @package-deploy @all
$(call mb-make-call,mb-doc-variable-rock,MB_PROJ_PHASE_GROW_DEPS,All the phases of an project with grow deps steps.)
MB_PROJ_FIRE_MODULE_INIT ?=
$(call mb-make-call,mb-doc-variable-flow,MB_PROJ_FIRE_MODULE_INIT,List of unique module project structure targets.)
MB_PROJ_FIRE_MODULE_RUN ?=
$(call mb-make-call,mb-doc-variable-flow,MB_PROJ_FIRE_MODULE_RUN,List of unique module project modules run targets.)
MB_PROJ_FIRE_ASSERT_SUCCESS ?=
$(call mb-make-call,mb-doc-variable-flow,MB_PROJ_FIRE_ASSERT_SUCCESS,Word count of total asserts successes.)
define mb-proj-grow-assert-success
$(MB_   )$(call mb-make-call,mb-make-check-arg1,$(0),$(1))
$(MB_   )$(call mb-make-call,mb-make-check-value-valid,$(0),$(1),@test @package-qa)
$(MB_   )$(eval MB_PROJ_FIRE_ASSERT_SUCCESS $(MB_MAKE_APPEND) $(1))
endef
$(call mb-make-call,mb-doc-function-deep,mb-proj-grow-assert-success,Grow the success counter of assertions.,<phase-id>)
define mb-proj-grow-deps-phase
$(MB_   )$(call mb-make-call,mb-make-check-arg2,$(0),$(1),$(2))
$(MB_   )$(call mb-make-call,mb-make-check-value-valid,$(0),$(1),$(MB_PROJ_PHASE_GROW_DEPS))
$(MB_   )$(eval @$(1)-deps:: $(2))
endef
$(call mb-make-call,mb-doc-function-deep,mb-proj-grow-deps-phase,Grow the deps of the selected phase.,<phase> <slave-target>)
define _mb-proj-flow-step-before
$(MB_   )$(if $(filter $(subst @@,@,$@),$(MB_PROJ_PHASE_GROW_DEPS) @clean @init),$(call mb-make-call,mb-os-echo-phase,$(MB_I18N_PROJ_STEP_BEFORE) $@))
endef
define _mb-proj-flow-step-done
$(MB_   )$(if $(filter $@,$(MB_PROJ_PHASE_GROW_DEPS) @clean @init),$(call mb-make-call,mb-os-echo-phase,$(MB_I18N_PROJ_STEP_AFTER) $@))
$(MB_   )$(if $(value MAKECMDGOALS),$(if $(filter $@,$(MAKECMDGOALS)),$(call mb-make-call,mb-os-echo-report,$(MB_I18N_PROJ_OPENMSX_COUNT) $(words $(MB_OPENMSX_FIRE_PIPE_SMOKE)))))
$(MB_   )$(if $(value MAKECMDGOALS),$(if $(filter $@,$(MAKECMDGOALS)),$(call mb-make-call,mb-os-echo-good,$(MB_I18N_PROJ_STEP_DONE) $@)))
endef
define __mb-flow-proj-setup
.RECIPEPREFIX := $(MB_@RECIPE)
$(3)@@clean: $(2)
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@clean)
$(3)@clean: $(3)@@clean
$(MB_@RECIPE)$$(if $$(wildcard $(1)),$$(call mb-make-call,mb-os-echo-command,$$(MB_I18N_PROJ_DIR_DELETE) $(1)))
$(MB_@RECIPE)$$(if $$(wildcard $(1)),$$(call mb-make-call,mb-os-dir-delete,$(1)))
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$(5),$(3)@clean,Clean's the project build folders.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@clean)
$(3)@@init: $(2)
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@init)
$(3)@init: $(3)@@init
$(MB_@RECIPE)$$(if $$(wildcard $(1)),,$$(call mb-make-call,mb-os-echo-command,$$(MB_I18N_PROJ_DIR_CREATE) $(1)))
$(MB_@RECIPE)$$(if $$(wildcard $(1)),,$$(call mb-make-call,mb-os-dir-create,$(1)))
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$(5),$(3)@init,Create the project output folders.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@init)
$(3)@@prepare: $(3)@init
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@prepare)
$(3)@@prepare-deps::
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@prepare-deps)
$(3)@prepare: $(3)@@prepare $(3)@@prepare-deps
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$(5),$(3)@prepare,Prepare sources before processing.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@prepare)
$(MB_   )$$(if $(4),$$(call mb-make-call,mb-proj-grow-deps-phase,@prepare,$(3)@prepare))
$(3)@@process: $(3)@prepare
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@process)
$(3)@@process-deps::
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@process-deps)
$(3)@process: $(3)@@process $(3)@@process-deps
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$(5),$(3)@process,Process sources before compiling.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@process)
$(MB_   )$$(if $(4),$$(call mb-make-call,mb-proj-grow-deps-phase,@process,$(3)@process))
$(3)@@compile: $(3)@process
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@compile)
$(3)@@compile-deps::
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@compile-deps)
$(3)@compile: $(3)@@compile $(3)@@compile-deps
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$(5),$(3)@compile,Compiles all project sources.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@compile)
$(MB_   )$$(if $(4),$$(call mb-make-call,mb-proj-grow-deps-phase,@compile,$(3)@compile))
$(3)@@link: $(3)@compile
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@link)
$(3)@@link-deps::
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@link-deps)
$(3)@link: $(3)@@link $(3)@@link-deps
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$(5),$(3)@link,Link all project intermediate files.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@link)
$(MB_   )$$(if $(4),$$(call mb-make-call,mb-proj-grow-deps-phase,@link,$(3)@link))
$(3)@@build: $(3)@link
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@build)
$(3)@@build-deps::
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@build-deps)
$(3)@build: $(3)@@build $(3)@@build-deps
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$(5),$(3)@build,Build all project artifacts.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@build)
$(MB_   )$$(if $(4),$$(call mb-make-call,mb-proj-grow-deps-phase,@build,$(3)@build))
$(3)@@test: $(3)@build
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@test)
$(3)@@test-deps::
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@test-deps)
$(3)@test: $(3)@@test $(3)@@test-deps
$(MB_@RECIPE)$$(if $(3),,$$(call mb-make-call,mb-os-echo-report,$$(MB_I18N_PROJ_ASSERT_COUNT) @test: $$(words $$(filter @test,$$(MB_PROJ_FIRE_ASSERT_SUCCESS)))))
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$(5),$(3)@test,Run all assertion tests.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@test)
$(MB_   )$$(if $(4),$$(call mb-make-call,mb-proj-grow-deps-phase,@test,$(3)@test))
$(3)@@package: $(3)@test
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@package)
$(3)@@package-deps::
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@package-deps)
$(3)@package: $(3)@@package $(3)@@package-deps
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$(5),$(3)@package,Create all packages of project.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@package)
$(MB_   )$$(if $(4),$$(call mb-make-call,mb-proj-grow-deps-phase,@package,$(3)@package))
$(3)@@package-qa: $(3)@package
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@package-qa)
$(3)@@package-qa-deps::
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@package-qa-deps)
$(3)@package-qa: $(3)@@package-qa $(3)@@package-qa-deps
$(MB_@RECIPE)$$(if $(3),,$$(call mb-make-call,mb-os-echo-report,$$(MB_I18N_PROJ_ASSERT_COUNT) @package-qa: $$(words $$(filter @package-qa,$$(MB_PROJ_FIRE_ASSERT_SUCCESS)))))
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$(5),$(3)@package-qa,Run all packages QA of project.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@package-qa)
$(MB_   )$$(if $(4),$$(call mb-make-call,mb-proj-grow-deps-phase,@package-qa,$(3)@package-qa))
$(3)@@package-deploy: $(3)@package-qa
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@package-deploy)
$(3)@@package-deploy-deps::
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@package-deploy-deps)
$(3)@package-deploy: $(3)@@package-deploy $(3)@@package-deploy-deps
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$(5),$(3)@package-deploy,Deploy all the packages.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@package-deploy)
$(MB_   )$$(if $(4),$$(call mb-make-call,mb-proj-grow-deps-phase,@package-deploy,$(3)@package-deploy))
$(3)@@all: $(3)@package-qa
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-before)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@all)
$(3)@@all-deps::
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@@all-deps)
$(3)@all: $(3)@@all $(3)@@all-deps
$(MB_@RECIPE)$$(if $$(value MAKECMDGOALS),,$$(if $$(filter $$@,@all),$$(call mb-make-call,mb-os-echo-report,$$(MB_I18N_PROJ_OPENMSX_COUNT) $$(words $$(MB_OPENMSX_FIRE_PIPE_SMOKE)))))
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-$(5),$(3)@all,Run full build and package QA tests.)
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(3)@all)
$(MB_   )$$(if $(4),$$(call mb-make-call,mb-proj-grow-deps-phase,@all,$(3)@all))
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
define mb-flow-proj-setup
$(MB_   )$(call mb-make-call,mb-make-check-arg1,$(0),$(1))
$(MB_   )$(if $(3),,$(call mb-make-call,mb-make-check-variable,MB_PROJ_META_GROUP_ID))
$(MB_   )$(if $(3),,$(call mb-make-call,mb-make-check-variable,MB_PROJ_META_ARTIFACT_ID))
$(MB_   )$(if $(3),,$(call mb-make-call,mb-make-check-variable,MB_PROJ_META_VERSION))
$(MB_   )$(if $(3),,$(call mb-make-call,mb-make-check-variable,MB_PROJ_META_NAME))
$(MB_   )$(if $(3),,$(call mb-make-call,mb-make-check-variable,MB_PROJ_META_DESCRIPTION))
$(MB_   )$(if $(3),,$(call mb-make-call,mb-make-check-variable,MB_PROJ_META_WEBSITE))
$(MB_   )$(if $(filter $(if $(3),$(3)/@init,@init),$(MB_PROJ_FIRE_MODULE_INIT)),,$(eval $(call mb-make-call,__$(0),$(1),$(2),$(if $(3),$(3)/),$(if $(3),$(3)/),$$(if $(3),module,help))))
$(MB_   )$(if $(3),,$(if $(MB_I18N),$(if $(filter off,$(MB_I18N)),,$(call mb-make-call,_$(0)-i18n))))
$(MB_   )$(eval MB_PROJ_FIRE_MODULE_INIT $(MB_MAKE_APPEND) $(if $(3),$(3)/@init,@init))
endef
$(call mb-make-call,mb-doc-function-flow,mb-flow-proj-setup,Inject flow of abstract project build cycle.,<bin-dir> [parent-glue] [bin-mod-dir])
define mb-flow-proj-setup-orphan
$(MB_   )$(call mb-make-call,mb-make-check-arg1,$(0),$(1))
$(MB_   )$(if $(filter $(if $(3),$(3)/@init,@init),$(MB_PROJ_FIRE_MODULE_INIT)),,$(eval $(call mb-make-call,__mb-flow-proj-setup,$(1),$(2),$(if $(3),$(3)/),,orphan)))
$(MB_   )$(eval MB_PROJ_FIRE_MODULE_INIT $(MB_MAKE_APPEND) $(if $(3),$(3)/@init,@init))
endef
$(call mb-make-call,mb-doc-function-flow,mb-flow-proj-setup-orphan,Inject flow of abstract orphan project module.,<bin-dir> [parent-glue] [bin-mod-dir])
define __mb-flow-proj-setup-i18n
.RECIPEPREFIX := $(MB_@RECIPE)
@$$(MB_I18N_PROJ_PHASEID_CLEAN): @clean
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_CLEAN),$$(MB_I18N_PROJ_PHASEDOC_CLEAN))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_CLEAN))
@$$(MB_I18N_PROJ_PHASEID_INIT): @init
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_INIT),$$(MB_I18N_PROJ_PHASEDOC_INIT))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_INIT))
@$$(MB_I18N_PROJ_PHASEID_PREPARE): @$$(MB_I18N_PROJ_PHASEID_INIT) @prepare
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_PREPARE),$$(MB_I18N_PROJ_PHASEDOC_PREPARE))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_PREPARE))
@$$(MB_I18N_PROJ_PHASEID_PROCESS): @$$(MB_I18N_PROJ_PHASEID_PREPARE) @process
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_PROCESS),$$(MB_I18N_PROJ_PHASEDOC_PROCESS))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_PROCESS))
@$$(MB_I18N_PROJ_PHASEID_COMPILE): @$$(MB_I18N_PROJ_PHASEID_PROCESS) @compile
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_COMPILE),$$(MB_I18N_PROJ_PHASEDOC_COMPILE))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_COMPILE))
@$$(MB_I18N_PROJ_PHASEID_LINK): @$$(MB_I18N_PROJ_PHASEID_COMPILE) @link
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_LINK),$$(MB_I18N_PROJ_PHASEDOC_LINK))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_LINK))
@$$(MB_I18N_PROJ_PHASEID_BUILD): @$$(MB_I18N_PROJ_PHASEID_LINK) @build
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_BUILD),$$(MB_I18N_PROJ_PHASEDOC_BUILD))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_BUILD))
@$$(MB_I18N_PROJ_PHASEID_TEST): @$$(MB_I18N_PROJ_PHASEID_BUILD) @test
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_TEST),$$(MB_I18N_PROJ_PHASEDOC_TEST))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_TEST))
@$$(MB_I18N_PROJ_PHASEID_PACKAGE): @$$(MB_I18N_PROJ_PHASEID_TEST) @package
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_PACKAGE),$$(MB_I18N_PROJ_PHASEDOC_PACKAGE))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_PACKAGE))
@$$(MB_I18N_PROJ_PHASEID_PACKAGE_QA): @$$(MB_I18N_PROJ_PHASEID_PACKAGE) @package-qa
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_PACKAGE_QA),$$(MB_I18N_PROJ_PHASEDOC_PACKAGE_QA))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_PACKAGE_QA))
@$$(MB_I18N_PROJ_PHASEID_PACKAGE_DEPLOY): @$$(MB_I18N_PROJ_PHASEID_PACKAGE_QA) @package-deploy
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_PACKAGE_DEPLOY),$$(MB_I18N_PROJ_PHASEDOC_PACKAGE_DEPLOY))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_PACKAGE_DEPLOY))
@$$(MB_I18N_PROJ_PHASEID_ALL): @$$(MB_I18N_PROJ_PHASEID_PACKAGE_QA) @all
$(MB_@RECIPE)$$(call mb-make-call,_mb-proj-flow-step-done)
$(MB_   )$$(call mb-make-call,mb-doc-target-help,@$$(MB_I18N_PROJ_PHASEID_ALL),$$(MB_I18N_PROJ_PHASEDOC_ALL))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,@$$(MB_I18N_PROJ_PHASEID_ALL))
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
define _mb-flow-proj-setup-i18n
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_CLEAN)
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_INIT)
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_PREPARE)
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_PROCESS)
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_COMPILE)
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_LINK)
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_BUILD)
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_TEST)
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_PACKAGE)
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_PACKAGE_QA)
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_PACKAGE_DEPLOY)
$(MB_   )$(call mb-make-call,mb-make-check-variable,MB_I18N_PROJ_PHASEID_ALL)
$(MB_   )$(eval $(call mb-make-call,_$(0)))
endef
define __mb-flow-proj-module-run
.RECIPEPREFIX := $(MB_@RECIPE)
$(1)/@run: $(1)/@build
$(MB_@RECIPE)$$(call mb-make-call,mb-msxpipe-run-gui,$(1),,$(2))
$(MB_   )$$(call mb-make-call,mb-doc-target-run,$(1)/@run,Run manually $(notdir $(1)) with gui$(if $(2), on $(2).,.))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(1)/@run)
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
define mb-flow-proj-module-run
$(MB_   )$(call mb-make-call,mb-make-check-arg1,$(0),$(1))
$(MB_   )$(if $(filter $(1)/@run,$(MB_PROJ_FIRE_MODULE_RUN)),,$(eval $(call mb-make-call,__$(0),$(1),$(2))))
$(MB_   )$(eval MB_PROJ_FIRE_MODULE_RUN +$(MB_MAKE_EQUALS) $(1)/@run)
endef
$(call mb-make-call,mb-doc-function-flow,mb-flow-proj-module-run,Inject flow module @run.,<bin-dir> [machine])
define __mb-flow-proj-prepare-packages
.RECIPEPREFIX := $(MB_@RECIPE)
$(1)/@msxhub/$(2): $(MB_@GRAPH_CHAIN)
$(MB_@RECIPE)$$(if $$(wildcard $(1)$$(if $(3),/$(3))),,$$(call mb-make-call,mb-os-dir-create,$(1)$$(if $(3),/$(3))))
$(MB_@RECIPE)$$(call mb-make-call,mb-msxhub-get-$(2),$(1)$$(if $(3),/$(3)))
$(MB_   )$$(call mb-make-call,mb-make-target-phony,$(1)/@msxhub/$(2))
$(MB_   )MB_@GRAPH_CHAIN :$(MB_MAKE_EQUALS) $(1)/@msxhub/$(2)
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
define mb-flow-proj-prepare-packages
$(MB_   )$(call mb-make-call,mb-make-check-arg2,$(0),$(1),$(2))
$(MB_   )$(eval MB_@GRAPH_CHAIN :$(MB_MAKE_EQUALS) $(1)/@@prepare)
$(MB_   )$(foreach _pack,$(2),$(eval $(call mb-make-call,__$(0),$(1),$(_pack),$(3))))
$(MB_   )$(eval $(1)/@@prepare-deps:: $(MB_@GRAPH_CHAIN))
endef
$(call mb-make-call,mb-doc-function-flow,mb-flow-proj-prepare-packages,Inject package fetch flow for module.,<bin-dir> <packages> [dest-dir])

View file

@ -1,29 +0,0 @@
define __mb-flow-sdcc-bdos-mono
.RECIPEPREFIX := $(MB_@RECIPE)
$(1)/@@compile-deps:: $(1)/$(3).rel
$(1)/$(3).rel: $(2)/$(3).asm | $(1)/@prepare
$(MB_@RECIPE)$$(call mb-make-call,mb-sdcc-compile-asm,$$<,$$@)
$(MB_   )$$(call mb-make-call,mb-doc-target-deep,$(1)/$(3).rel)
$(1)/@@link-deps:: $(1)/$(3).hex
$(1)/$(3).hex: $(1)/$(3).rel
$(MB_@RECIPE)$$(call mb-make-call,mb-sdcc-link-asm-bdos,$$<,$$@)
$(MB_   )$$(call mb-make-call,mb-doc-target-deep,$(1)/$(3).hex)
$(1)/@@build-deps:: $(1)/$(3).com
$(1)/$(3).com: $(1)/$(3).hex
$(MB_@RECIPE)$$(call mb-make-call,mb-sdcc-objcopy,$$<,$$@)
$(MB_   )$$(call mb-make-call,mb-doc-target-deep,$(1)/$(3).com)
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
define mb-flow-sdcc-bdos-mono
$(MB_   )$(call mb-make-call,mb-make-check-arg3,$(0),$(1),$(2),$(3))
$(MB_   )$(call mb-make-call,mb-flow-proj-setup,$(1),@init,$(1))
$(MB_   )$(call mb-make-call,mb-flow-proj-module-run,$(1))
$(MB_   )$(eval $(call mb-make-call,__$(0),$(1),$(2),$(3)))
endef
$(call mb-make-call,mb-doc-function-flow,mb-flow-sdcc-bdos-mono,Inject flow of sdcc toolchain bdos mono file module.,<bin-dir> <src-dir> <objname>)

View file

@ -1,109 +0,0 @@
#
# msxbuild.mk - Makefile helper to use with msx projects.
#
# Make make, make behave;
MAKEFLAGS += --no-builtin-rules
MAKEFLAGS += --no-builtin-variables
MAKEFLAGS += --warn-undefined-variables
.DELETE_ON_ERROR :=
.RECIPEPREFIX := $(if $(.RECIPEPREFIX),$(.RECIPEPREFIX),>)
.SUFFIXES :=
.ONESHELL :=
.SHELLFLAGS := -e -u -o pipefail -c
SHELL := bash
ifeq ($(origin .RECIPEPREFIX), undefined)
$(error This version of make does not support dynamic white space brain fuck mode.)
endif
#########################################################
### IN THIS FILE NEVER USE A WHITE SPACE OR TAB SPACE ###
#########################################################
# Set some root variable to use in this library
MB_@RECIPE := ]
MB_@RECIPEPREFIX := $(.RECIPEPREFIX)
MB_@BASEPATH := $(dir $(lastword $(MAKEFILE_LIST)))
MB_@WORK := /../_work/
MB_@GRAPH_CHAIN :=
# Build multiple groups of chains of includes
define __mb-include
ifdef DEBUG
ifneq ("$$(DEBUG)", "off")
$$(warning DEBUG $(0) ($(1)))
endif
endif
.PHONY: $(MB_@BASEPATH)$(1)
include $(MB_@BASEPATH)$(1)
$(MB_@BASEPATH)$(1): $(MB_@GRAPH_CHAIN)
MB_@GRAPH_CHAIN := $(MB_@BASEPATH)$(1)
endef
# Include full library grouped in functional blocks
MB_@GRAPH_CHAIN := @@include-parent
$(eval $(call __mb-include,make/सिस्टमₚᵣₐᵧToੴ/mb_xxx.mk))
$(eval $(call __mb-include,make/सिस्टमₚᵣₐᵧToੴ/mb_doc.mk))
$(eval $(call __mb-include,make/सिस्टमₚᵣₐᵧToੴ/mb_make_call.mk))
$(eval $(call __mb-include,make/सिस्टमₚᵣₐᵧToੴ/mb_make_space.mk))
$(eval $(call __mb-include,make/सिस्टमₚᵣₐᵧToੴ/mb_make_doc4u.mk))
$(eval $(call __mb-include,make/सिस्टमₚᵣₐᵧToੴ/mb_make_check.mk))
$(eval $(call __mb-include,make/सिस्टमₚᵣₐᵧToੴ/mb_make_module.mk))
$(eval $(call __mb-include,make/सिस्टमₚᵣₐᵧToੴ/mb_make_xml.mk))
$(eval $(call __mb-include,make/सिस्टमₚᵣₐᵧToੴ/mb_make.mk))
@@include-libs:: $(MB_@GRAPH_CHAIN)
MB_@GRAPH_CHAIN := @@include-parent
$(eval $(call __mb-include,make/ᐅᖓᕙᕆᐊᖅᓯᓂᖅ/mb_os.mk))
$(eval $(call __mb-include,make/ᐅᖓᕙᕆᐊᖅᓯᓂᖅ/mb_conv.mk))
$(eval $(call __mb-include,make/ᐅᖓᕙᕆᐊᖅᓯᓂᖅ/mb_sdcc.mk))
$(eval $(call __mb-include,make/ᐅᖓᕙᕆᐊᖅᓯᓂᖅ/mb_package.mk))
$(eval $(call __mb-include,make/ᐅᖓᕙᕆᐊᖅᓯᓂᖅ/mb_nestor80.mk))
@@include-libs:: $(MB_@GRAPH_CHAIN)
MB_@GRAPH_CHAIN := @@include-parent
$(eval $(call __mb-include,make/天房系統擴展/mb_msxrom.mk))
$(eval $(call __mb-include,make/天房系統擴展/mb_msxhub.mk))
$(eval $(call __mb-include,make/天房系統擴展/mb_msxpipe.mk))
$(eval $(call __mb-include,make/天房系統擴展/mb_openmsx.mk))
$(eval $(call __mb-include,make/天房系統擴展/mb_autoexec.mk))
@@include-libs:: $(MB_@GRAPH_CHAIN)
MB_@GRAPH_CHAIN := @@include-parent
$(eval $(call __mb-include,make/𓃬𓍄𓋹𓀭/mb_flow_nx01.mk))
$(eval $(call __mb-include,make/𓃬𓍄𓋹𓀭/mb_flow_help.mk))
$(eval $(call __mb-include,make/𓃬𓍄𓋹𓀭/mb_flow_proj.mk))
$(eval $(call __mb-include,make/𓃬𓍄𓋹𓀭/mb_flow_assert.mk))
$(eval $(call __mb-include,make/𓃬𓍄𓋹𓀭/mb_flow_macro80.mk))
$(eval $(call __mb-include,make/𓃬𓍄𓋹𓀭/mb_flow_nestor80.mk))
$(eval $(call __mb-include,make/𓃬𓍄𓋹𓀭/mb_flow_sdcc.mk))
$(eval $(call __mb-include,make/𓃬𓍄𓋹𓀭/mb_flow_clone.mk))
@@include-libs:: $(MB_@GRAPH_CHAIN)
MB_@GRAPH_CHAIN :=
$(eval $(call __mb-include,make/mb_env.mk))
$(eval $(call __mb-include,make/mb_flight.mk))
$(eval $(call __mb-include,make/ i18n/mb_i18n.mk))
ifneq ("$(MB_I18N)", "off")
$(if $(MB_I18N),$(if $(wildcard $(MB_@BASEPATH)make/ i18n/mb_i18n_$(MB_I18N).mk),,$(error Unsupported i18n language code: $(MB_I18N))))
$(eval $(call __mb-include,make/ i18n/mb_i18n_$(MB_I18N).mk))
endif
@include:: $(MB_@GRAPH_CHAIN)
MB_@GRAPH_CHAIN :=
# Glue phony targets to get internal @include tree (semi) correct (TODO: fix chain in: mb_flow_0module_setup)
.PHONY: @include @@include-root @@include-libs @@include-mods @@include-parent @@include-tree
@@include-parent:: @@include-mods
@include:: @@include-libs @@include-root
# Document our internal variables, now we have the functions loaded
$(MB_ )$(call mb-make-call,mb-doc-variable-rock,MB_@RECIPE,Recipe prefix to set and indent flow eval rules.)
$(MB_  )$(call mb-make-call,mb-doc-variable-rock,MB_@RECIPEPREFIX,Recipe prefix to restore to after flow eval rules.)
$(MB_   )$(call mb-make-call,mb-doc-variable-rock,MB_@BASEPATH,Path where msxbuild lib folder is located.)
$(MB_    )$(call mb-make-call,mb-doc-variable-rock,MB_@WORK,Shorthand to move to the work folder of module.)
$(MB_     )$(call mb-make-call,mb-doc-variable-rock,MB_@GRAPH_CHAIN,Helper to chain internal graph sections includes into groups.)
# Provider+doc easy single function start point for user
define mb-setup-default
$(MB_ )$(call mb-make-call,mb-make-check-arg2,$(0),$(1),$(2))
$(MB_  )$(call mb-make-call,mb-flow-doc-help)
$(MB_   )$(call mb-make-call,mb-flow-nx01-skywalker,$(2))
$(MB_    )$(call mb-make-call,mb-flow-proj-setup,$(1),@include)
$(MB_     )$(call mb-make-call,mb-flight-proj-flow-video,$(1))
endef
$(call mb-make-call,mb-doc-function,mb-setup-default,Setup default extenstions to configure dynamic project flow.,<bin-dir> <src-dir>)

75
lib/openmsx/boot_env.tcl Normal file
View file

@ -0,0 +1,75 @@
# boot_env -- Sets various openMSX settings based from environment variables.
#
# Typically used in automation tools which run openMSX without human interaction.
# Supported environment variables by this script;
#
# SAVE_SETTINGS_ON_EXIT=off
# Disables automatic settings saving.
#
# RENDERER=SDL
# Override video output from command line.
#
# SCALE_FACTOR=3
# Override video scale factor for SDL renderer.
#
# THROTTLE=off
# Disables msx speed emulation.
#
# SPEED=400
# Sets msx speed to 4x of original but only when throttle is on.
#
# JOYPORTA=mouse
# Inserts mouse in joyporta.
#
# JOYPORTB=mouse
# Inserts mouse in joyportb.
#
if {[info exists ::env(SAVE_SETTINGS_ON_EXIT)] && ([string trim $::env(SAVE_SETTINGS_ON_EXIT)] != "")} {
if {[catch {set save_settings_on_exit [string trim $::env(SAVE_SETTINGS_ON_EXIT)]} err_msg]} {
puts stderr "error: env.SAVE_SETTINGS_ON_EXIT value $err_msg"
exit 1
}
}
if {[info exists ::env(RENDERER)] && ([string trim $::env(RENDERER)] != "")} {
if {[catch {set renderer [string trim $::env(RENDERER)]} err_msg]} {
puts stderr "error: env.RENDERER value $err_msg"
exit 1
}
}
if {[info exists ::env(SCALE_FACTOR)] && ([string trim $::env(SCALE_FACTOR)] != "")} {
if {[catch {set scale_factor [string trim $::env(SCALE_FACTOR)]} err_msg]} {
puts stderr "error: env.SCALE_FACTOR value $err_msg"
exit 1
}
}
if {[info exists ::env(THROTTLE)] && ([string trim $::env(THROTTLE)] != "")} {
if {[catch {set throttle [string trim $::env(THROTTLE)]} err_msg]} {
puts stderr "error: env.THROTTLE value $err_msg"
exit 1
}
}
if {[info exists ::env(SPEED)] && ([string trim $::env(SPEED)] != "")} {
if {[catch {set speed [string trim $::env(SPEED)]} err_msg]} {
puts stderr "error: env.SPEED value $err_msg"
exit 1
}
}
if {[info exists ::env(JOYPORTA)] && ([string trim $::env(JOYPORTA)] != "")} {
if {[catch {plug joyporta [string trim $::env(JOYPORTA)]} err_msg]} {
puts stderr "error: env.JOYPORTA value $err_msg"
exit 1
}
}
if {[info exists ::env(JOYPORTB)] && ([string trim $::env(JOYPORTB)] != "")} {
if {[catch {plug joyportb [string trim $::env(JOYPORTB)]} err_msg]} {
puts stderr "error: env.JOYPORTB value $err_msg"
exit 1
}
}

130
lib/openmsx/boot_hdd.tcl Normal file
View file

@ -0,0 +1,130 @@
# boot_hdd -- Create import/export disk images to local folder.
#
# Typically used in automation tools which run openMSX without human interaction.
# This script is basicly is a bit more generic and safe way to run the following code;
#
# diskmanipulator create disk.img 32m 32m 32m 32m
# hda disk.img
# diskmanipulator import hda1 ./disk-in/
# after quit {diskmanipulator export hda1 ./disk-out/}
#
# Supported environment variables by this script;
#
# BOOT_HDD_SIZE=30m
# Sets the size of the created partitions, defaults to 15m for dos1.
#
# BOOT_HDD_IMAGE=bin/myapp/dsk.img
# Defaults to ./hdd.dsk
#
# BOOT_HDD_PATH=bin/myapp/dsk
# provides the default values for BOOT_HDD_PATH_IMPORT and BOOT_HDD_PATH_EXPORT
#
# BOOT_HDD_PATH_IMPORT=bin/myapp/dsk
# When set enables the import of all files into the first disk partition.
#
# BOOT_HDD_PATH_EXPORT=bin/myapp/dsk-result
# When set enables the export of all files back to the filesystem
#
# BOOT_HDD_EXPORT_PARTITION=2
# When set override the export from 'first' to 'given' partition number.
#
# BOOT_HDD_EXPORT_DIR=myout
# By default export does chdir to root of msx partition override to custom export directory.
#
# BOOT_HDD_PARTITIONS=2
# The number of partitions created in the disk image, defaults to 1.
#
# per default create msxdos1 compatible partition size.
set boot_hdd_size 15m
set boot_hdd_image hdd.dsk
set boot_hdd_path_import 0
set boot_hdd_path_export 0
set boot_hdd_export_partition 0
set boot_hdd_export_dir \\
set boot_hdd_partitions 1
# Parse env settings
if {[info exists ::env(BOOT_HDD_SIZE)] && ([string trim $::env(BOOT_HDD_SIZE)] != "")} {
set boot_hdd_size [string trim $::env(BOOT_HDD_SIZE)]
}
if {[info exists ::env(BOOT_HDD_IMAGE)] && ([string trim $::env(BOOT_HDD_IMAGE)] != "")} {
set boot_hdd_image [string trim $::env(BOOT_HDD_IMAGE)]
}
if {[info exists ::env(BOOT_HDD_PATH)] && ([string trim $::env(BOOT_HDD_PATH)] != "")} {
set boot_hdd_path_import [string trim $::env(BOOT_HDD_PATH)]
set boot_hdd_path_export [string trim $::env(BOOT_HDD_PATH)]
}
if {[info exists ::env(BOOT_HDD_PATH_IMPORT)] && ([string trim $::env(BOOT_HDD_PATH_IMPORT)] != "")} {
set boot_hdd_path_import [string trim $::env(BOOT_HDD_PATH_IMPORT)]
}
if {[info exists ::env(BOOT_HDD_PATH_EXPORT)] && ([string trim $::env(BOOT_HDD_PATH_EXPORT)] != "")} {
set boot_hdd_path_export [string trim $::env(BOOT_HDD_PATH_EXPORT)]
}
if {[info exists ::env(BOOT_HDD_EXPORT_PARTITION)] && ([string trim $::env(BOOT_HDD_EXPORT_PARTITION)] != "")} {
set boot_hdd_export_partition [string trim $::env(BOOT_HDD_EXPORT_PARTITION)]
}
if {[info exists ::env(BOOT_HDD_EXPORT_DIR)] && ([string trim $::env(BOOT_HDD_EXPORT_DIR)] != "")} {
set boot_hdd_export_dir [string trim $::env(BOOT_HDD_EXPORT_DIR)]
}
if {[info exists ::env(BOOT_HDD_PARTITIONS)] && ([string trim $::env(BOOT_HDD_PARTITIONS)] != "")} {
set boot_hdd_partitions [string trim $::env(BOOT_HDD_PARTITIONS)]
if {$boot_hdd_partitions == 0 || $boot_hdd_partitions > 4} {
puts stderr "error: Invalid env.BOOT_HDD_PARTITIONS value 1-4 allowed: $boot_hdd_partitions"
exit 1
}
}
if {$boot_hdd_path_import != 0} {
set boot_hdd_disk_partition "hda"
if {$boot_hdd_partitions == 1} {
if {[catch {diskmanipulator create $boot_hdd_image $boot_hdd_size} err_msg]} {
puts stderr "error: create1 $err_msg"
exit 1
}
}
if {$boot_hdd_partitions > 1} {
set boot_hdd_disk_partition "hda1"
if {$boot_hdd_partitions == 2} {
if {[catch {diskmanipulator create $boot_hdd_image $boot_hdd_size $boot_hdd_size} err_msg]} {
puts stderr "error: create2 $err_msg"
exit 1
}
}
if {$boot_hdd_partitions == 3} {
if {[catch {diskmanipulator create $boot_hdd_image $boot_hdd_size $boot_hdd_size $boot_hdd_size} err_msg]} {
puts stderr "error: create3 $err_msg"
exit 1
}
}
if {$boot_hdd_partitions == 4} {
if {[catch {diskmanipulator create $boot_hdd_image $boot_hdd_size $boot_hdd_size $boot_hdd_size $boot_hdd_size} err_msg]} {
puts stderr "error: create4 $err_msg"
exit 1
}
}
}
if {[catch {hda $boot_hdd_image} err_msg]} {
puts stderr "error: hda $err_msg"
exit 1
}
if {[catch {diskmanipulator import $boot_hdd_disk_partition $boot_hdd_path_import} err_msg]} {
puts stderr "error: import $err_msg"
exit 1
}
if {$boot_hdd_path_export != 0} {
if {$boot_hdd_export_partition != 0} {
set boot_hdd_disk_partition "hda$boot_hdd_export_partition"
}
after quit {
if {[catch {diskmanipulator chdir $boot_hdd_disk_partition $boot_hdd_export_dir} err_msg]} {
puts stderr "error: chdir $err_msg"
exit 1
}
if {[catch {diskmanipulator export $boot_hdd_disk_partition $boot_hdd_path_export} err_msg]} {
puts stderr "error: export $err_msg"
exit 1
}
}
}
}

View file

@ -0,0 +1,7 @@
<openmsx-control>
<!--
When booting 'openmsx -control stdio < boot_stdio.xml'
It starts then in power off mode and without renderer for fast booting.
-->
<command>set power on</command>
</openmsx-control>

View file

@ -2,9 +2,9 @@
#
# Typically used in combination with the MSX-DOS 'omsxctl.com' utility.
#
# Adds two commands to openMSX;
# Adds two environment variables and two commands to openMSX;
#
# 'fail_after <timeout> [timeunit] [fail_id] [fail_code]'
# 'fail_after timeout [timeunit] [fail_id] [fail_code]'
# Schedules an openMSX exit after the timeout.
# This can be canceled by requesting a timeout of 0 or new timeout.
# The timeunit can be selected between (msx)'time' and (host)'realtime'.
@ -17,20 +17,22 @@
#
# Supported environment variables by this script;
#
# BOOT_WATCHDOG=30
# FAIL_AFTER_PATH=.
# Enabled automatic screenshots saving in case of failures in the supplied path.
#
# FAIL_AFTER_BOOT=30
# Enables the boot watchdog timer which will exit openMSX after the timeout(in seconds).
# To cancel this timer give an `fail_after 0` or any new fail_after command.
# (exits with status 124 see `man timeout`)
#
set fail_after_prev_timer 0
set fail_after_prev_id 0
set fail_after_boot_timeout 0
proc fail_after_exit {{fail_id "fail_after_exit"} {fail_code 2}} {
if {[catch {screenshot -prefix $fail_id} err_msg]} {
global fail_after_path
if {$fail_after_path != 0} {
if {[catch {screenshot $fail_after_path/$fail_id.png} err_msg]} {
puts stderr "warning: $err_msg"
}
# maybe later add; if {is_text_mode} { [get_screen] ?> $fail_after_path/$fail_id.scr }
}
puts stderr "error: Failure request from $fail_id"
exit $fail_code
}
@ -40,11 +42,8 @@ proc fail_after { timeout {time_unit "time"} {fail_id "fail_after"} {fail_code 2
global fail_after_prev_id
set msg ""
if {$fail_after_prev_timer != 0} {
if {[catch {after cancel $fail_after_prev_timer} err_msg]} {
puts stderr "error: $err_msg"
fail_after_exit fail_after_cancel_error 1
}
set msg "mb::fail canceled $fail_after_prev_id"
after cancel $fail_after_prev_timer
set msg "$fail_after_prev_id: Stopped attempt."
}
set fail_after_prev_id $fail_id
if {$time_unit != "time"} {
@ -55,28 +54,24 @@ proc fail_after { timeout {time_unit "time"} {fail_id "fail_after"} {fail_code 2
puts stderr "error: $err_msg"
fail_after_exit fail_after_timer_error 1
}
set msg "$msg\nmb::fail after $timeout $time_unit $fail_id"
set msg "$msg\n$fail_id: Automatic failure in $timeout $time_unit seconds."
} else {
set fail_after_prev_timer 0
}
return $msg
}
proc fail_after_reboot_watchdog {} {
global fail_after_boot_timeout
if {$fail_after_boot_timeout != 0} {
if {[catch {fail_after $fail_after_boot_timeout realtime err_boot 124} err_msg]} {
puts stderr "error: $err_msg"
fail_after_exit fail_after_reboot_install_error 1
}
if {[catch {after boot "fail_after_reboot_watchdog"} err_msg]} {
puts stderr "error: $err_msg"
fail_after_exit fail_after_reboot_cycle_error 1
}
}
# Globals
set fail_after_prev_timer 0
set fail_after_prev_id 0
set fail_after_path 0
# Parse screenshot path env setting
if {[info exists ::env(FAIL_AFTER_PATH)] && ([string trim $::env(FAIL_AFTER_PATH)] != "")} {
set fail_after_path [string trim $::env(FAIL_AFTER_PATH)]
}
if {[info exists ::env(BOOT_WATCHDOG)] && ([string trim $::env(BOOT_WATCHDOG)] != "")} {
set fail_after_boot_timeout [string trim $::env(BOOT_WATCHDOG)]
fail_after_reboot_watchdog
# Enables boot watch dog timer when FAIL_AFTER_BOOT env has a value. (124 see `man timeout`)
if {[info exists ::env(FAIL_AFTER_BOOT)] && ([string trim $::env(FAIL_AFTER_BOOT)] != "")} {
fail_after [string trim $::env(FAIL_AFTER_BOOT)] realtime failed_boot 124
}

View file

@ -1,28 +0,0 @@
<?xml version="1.0" ?>
<!DOCTYPE msxconfig SYSTEM 'msxconfig2.dtd'>
<msxconfig>
<info>
<name>Fire HDD ©Δ∞ 仙上主天</name>
<manufacturer>MSXBUILD للَّٰهِilLצسُو</manufacturer>
<code />
<release_year>2024</release_year>
<description>Sunrise IDE with lastest nextor.</description>
<type>external hard disk</type>
</info>
<devices>
<primary slot="any">
<secondary slot="any">
<SunriseIDE id="Sunrise IDE">
<mem base="0x0000" size="0x10000" />
<rom>
<sha1>dca824d7b0ddf25c6e87a8098e97ab7489725f57</sha1> <!-- SHA1 of Nextor-2.1.1.SunriseIDE.ROM -->
</rom>
<master>
<type>IDEHD</type>
<filename>image-hda.dsk</filename>
</master>
</SunriseIDE>
</secondary>
</primary>
</devices>
</msxconfig>

View file

@ -1,55 +0,0 @@
# boot_exec -- Helper commands to autoexec.bat boot scripts.
#
# Adds the following commands to openMSX;
#
# 'boot_exec_setcolor <vdp_fg> <vdp_bg>'
# Sets the VDP colors to defaults or supplied colors.
#
# 'boot_exec_show_host'
# Displays machine boot line message.
#
# 'boot_exec_show_init'
# Displays MSXBUILD openMSX version boot line message.
#
proc boot_exec_setcolor {{vdp_fg 0} {vdp_bg 0}} {
if {$vdp_fg != 0} {
set color_vdp_fg $vdp_fg
} else {
set color_vdp_fg "777"
}
if {$vdp_bg != 0} {
set color_vdp_bg $vdp_bg
} else {
set color_vdp_bg "000"
}
if {([vdpreg 8] != 0) || ([vdpreg 16] != 0)} {
setcolor 15 $color_vdp_fg
setcolor 4 $color_vdp_bg
return "mb::boot color fg $color_vdp_fg bg $color_vdp_bg"
} else {
return "mb::boot color MSX1"
}
}
proc boot_exec_show_host {} {
set result "mb::host "
append result [machine_info config_name]
return $result
}
proc boot_exec_show_init {} {
set result "mb::init MSXBUILD on "
append result [openmsx_info version]
return $result
}
proc boot_exec_plug_porta {{plug_dev}} {
plug joyporta $plug_dev
return "mb::plug porta $plug_dev"
}
proc boot_exec_plug_portb {{plug_dev}} {
plug joyportb $plug_dev
return "mb::plug portb $plug_dev"
}

View file

@ -1,128 +0,0 @@
# fire_hdd -- Automatic fire hard disk drive which does import/export to local folder.
#
# Typically used in automation tools which run openMSX without human interaction.
# This script is a complex, but safe form, of the following code;
#
# diskmanipulator create disk.img 32m 32m 32m 32m
# hda disk.img
# diskmanipulator import hda1 ./disk-in/
# after quit {diskmanipulator export hda1 ./disk-out/}
#
# Supported environment variables by this script;
#
# FIRE_HDD_SIZE=30m
# Sets the size of the created partitions, defaults to 15m for dos1.
#
# FIRE_HDD_IMAGE=bin/myapp/dsk.img
# Defaults to ./hdd.dsk
#
# FIRE_HDD_PATH=bin/myapp/dsk
# provides the default values for FIRE_HDD_PATH_IMPORT and FIRE_HDD_PATH_EXPORT
#
# FIRE_HDD_PATH_IMPORT=bin/myapp/dsk
# When set enables the import of all files into the first disk partition.
#
# FIRE_HDD_PATH_EXPORT=bin/myapp/dsk-result
# When set enables the export of all files back to the file system
#
# FIRE_HDD_EXPORT_PARTITION=2
# When set override the export from 'first' to 'given' partition number.
#
# FIRE_HDD_EXPORT_DIR=myout
# By default export does change directory to root of MSX partition override to custom export directory.
#
# FIRE_HDD_PARTITIONS=2
# The number of partitions created in the disk image, defaults to 1.
#
set fire_hdd_size 15m
set fire_hdd_image hdd.dsk
set fire_hdd_path_import 0
set fire_hdd_path_export 0
set fire_hdd_export_partition 0
set fire_hdd_export_dir \\
set fire_hdd_partitions 1
if {[info exists ::env(FIRE_HDD_SIZE)] && ([string trim $::env(FIRE_HDD_SIZE)] != "")} {
set fire_hdd_size [string trim $::env(FIRE_HDD_SIZE)]
}
if {[info exists ::env(FIRE_HDD_IMAGE)] && ([string trim $::env(FIRE_HDD_IMAGE)] != "")} {
set fire_hdd_image [string trim $::env(FIRE_HDD_IMAGE)]
}
if {[info exists ::env(FIRE_HDD_PATH)] && ([string trim $::env(FIRE_HDD_PATH)] != "")} {
set fire_hdd_path_import [string trim $::env(FIRE_HDD_PATH)]
set fire_hdd_path_export [string trim $::env(FIRE_HDD_PATH)]
}
if {[info exists ::env(FIRE_HDD_PATH_IMPORT)] && ([string trim $::env(FIRE_HDD_PATH_IMPORT)] != "")} {
set fire_hdd_path_import [string trim $::env(FIRE_HDD_PATH_IMPORT)]
}
if {[info exists ::env(FIRE_HDD_PATH_EXPORT)] && ([string trim $::env(FIRE_HDD_PATH_EXPORT)] != "")} {
set fire_hdd_path_export [string trim $::env(FIRE_HDD_PATH_EXPORT)]
}
if {[info exists ::env(FIRE_HDD_EXPORT_PARTITION)] && ([string trim $::env(FIRE_HDD_EXPORT_PARTITION)] != "")} {
set fire_hdd_export_partition [string trim $::env(FIRE_HDD_EXPORT_PARTITION)]
}
if {[info exists ::env(FIRE_HDD_EXPORT_DIR)] && ([string trim $::env(FIRE_HDD_EXPORT_DIR)] != "")} {
set fire_hdd_export_dir [string trim $::env(FIRE_HDD_EXPORT_DIR)]
}
if {[info exists ::env(FIRE_HDD_PARTITIONS)] && ([string trim $::env(FIRE_HDD_PARTITIONS)] != "")} {
set fire_hdd_partitions [string trim $::env(FIRE_HDD_PARTITIONS)]
if {$fire_hdd_partitions == 0 || $fire_hdd_partitions > 4} {
puts stderr "error: Invalid env.FIRE_HDD_PARTITIONS value 1-4 allowed: $fire_hdd_partitions"
exit 1
}
}
if {$fire_hdd_path_import != 0} {
set fire_hdd_disk_partition "hda"
if {$fire_hdd_partitions == 1} {
if {[catch {diskmanipulator create $fire_hdd_image $fire_hdd_size} err_msg]} {
puts stderr "error: create1 $err_msg"
exit 1
}
}
if {$fire_hdd_partitions > 1} {
set fire_hdd_disk_partition "hda1"
if {$fire_hdd_partitions == 2} {
if {[catch {diskmanipulator create $fire_hdd_image $fire_hdd_size $fire_hdd_size} err_msg]} {
puts stderr "error: create2 $err_msg"
exit 1
}
}
if {$fire_hdd_partitions == 3} {
if {[catch {diskmanipulator create $fire_hdd_image $fire_hdd_size $fire_hdd_size $fire_hdd_size} err_msg]} {
puts stderr "error: create3 $err_msg"
exit 1
}
}
if {$fire_hdd_partitions == 4} {
if {[catch {diskmanipulator create $fire_hdd_image $fire_hdd_size $fire_hdd_size $fire_hdd_size $fire_hdd_size} err_msg]} {
puts stderr "error: create4 $err_msg"
exit 1
}
}
}
if {[catch {hda $fire_hdd_image} err_msg]} {
puts stderr "error: hda $err_msg"
exit 1
}
if {[catch {diskmanipulator import $fire_hdd_disk_partition $fire_hdd_path_import} err_msg]} {
puts stderr "error: import $err_msg"
exit 1
}
if {$fire_hdd_path_export != 0} {
if {$fire_hdd_export_partition != 0} {
set fire_hdd_disk_partition "hda$fire_hdd_export_partition"
}
after quit {
if {[catch {diskmanipulator chdir $fire_hdd_disk_partition $fire_hdd_export_dir} err_msg]} {
puts stderr "error: chdir $err_msg"
exit 1
}
if {[catch {diskmanipulator export $fire_hdd_disk_partition $fire_hdd_path_export} err_msg]} {
puts stderr "error: export $err_msg"
exit 1
}
}
}
}

View file

@ -1,94 +0,0 @@
# headless -- Control openMSX in headless mode.
#
# Adds the following commands to openMSX;
#
# 'headless_exit'
# A normal exit of the openMSX emulator.
#
# 'headless_reset'
# Does an reset of the openMSX emulator.
#
# 'headless_show_gui'
# Enables the renderer and throttle from the inside.
#
# Supported environment variables by this script;
#
# HEADLESS=on|off
# Override video output from command line.
#
# RENDERER=SDL
# Select video renderer type for GUI mode or in none headless mode.
#
# SCALE_FACTOR=3
# Override video scale factor for the renderer.
#
# THROTTLE=off
# Disables MSX speed emulation.
#
# SPEED=333
# Sets CPU speed to relative from normal but only when throttle is on.
#
set headless_renderer_type 0
set headless_renderer_done 0
proc headless_exit {} {
after time 1 "exit 0"
return "mb::head shutdown openMSX"
}
proc headless_reset {} {
after time 1 "reset"
return "mb::head reboot openMSX"
}
proc headless_show_gui {} {
global renderer
global throttle
global headless_renderer_type
global headless_renderer_done
if {$headless_renderer_done != 0} {
return "mb::head GUI already showing"
}
if {$headless_renderer_type != 0} {
after time 1 "set renderer $headless_renderer_type"
after time 2 "set throttle on"
set headless_renderer_done 1
} else {
puts stderr "error: Requested show gui but env.RENDERER is missing."
exit 1
}
return "mb::head GUI renderer $headless_renderer_type"
}
if {[info exists ::env(RENDERER)] && ([string trim $::env(RENDERER)] != "")} {
set headless_renderer_type [string trim $::env(RENDERER)]
}
if {[info exists ::env(HEADLESS)] && ([string trim $::env(HEADLESS)] != "on")} {
if {[catch {set renderer $headless_renderer_type} err_msg]} {
puts stderr "error: env.HEADLESS value $err_msg"
exit 1
}
}
if {[info exists ::env(SCALE_FACTOR)] && ([string trim $::env(SCALE_FACTOR)] != "")} {
if {[catch {set scale_factor [string trim $::env(SCALE_FACTOR)]} err_msg]} {
puts stderr "error: env.SCALE_FACTOR value $err_msg"
exit 1
}
}
if {[info exists ::env(THROTTLE)] && ([string trim $::env(THROTTLE)] != "")} {
if {[catch {set throttle [string trim $::env(THROTTLE)]} err_msg]} {
puts stderr "error: env.THROTTLE value $err_msg"
exit 1
}
}
if {[info exists ::env(SPEED)] && ([string trim $::env(SPEED)] != "")} {
if {[catch {set speed [string trim $::env(SPEED)]} err_msg]} {
puts stderr "error: env.SPEED value $err_msg"
exit 1
}
}

View file

@ -1,71 +0,0 @@
# night_flight -- Setup the night flight black box recorder for build pipelines.
#
# Adds the following commands to openMSX;
#
# 'night_flight_save_screenshot [prefix-id]'
# Takes an screenshot with optional prefix parameter.
#
# 'night_flight_save_video [prefix-id]'
# Starts video recording with optional prefix parameter.
#
# Supported environment variables by this script;
#
# NF_PREFIX=msxbuild
# Gives screenshots and videos an prefix; msxbuild0001.avi
#
# NF_SEPERATOR=-
# Gives screenshots and videos an seperator; openmsx-0001.png
#
# NF_RECORD_FLAG=-doublesize
# Flag given to the video record command.
#
set night_flight_prefix flight
set night_flight_seperator -
set night_flight_record_flag ""
proc night_flight_save_screenshot {{prefix_id 0}} {
global night_flight_prefix
global night_flight_seperator
if {$prefix_id != 0} {
set file_prefix "$prefix_id$night_flight_seperator"
} else {
set file_prefix "$night_flight_prefix$night_flight_seperator"
}
global throttle
global speed
set old_throttle [set throttle]
set old_speed [set speed]
set throttle on
set speed 100
after time 1 "screenshot -prefix $file_prefix"
after time 2 "set throttle $old_throttle"
after time 2 "set speed $old_speed"
return "mb::save flight screenshot"
}
proc night_flight_save_video {{prefix_id 0}} {
global night_flight_prefix
global night_flight_seperator
global night_flight_record_flag
if {$prefix_id != 0} {
set file_prefix "$prefix_id$night_flight_seperator"
} else {
set file_prefix "$night_flight_prefix$night_flight_seperator"
}
after quit "record stop"
after time 1 "record start $night_flight_record_flag -prefix $file_prefix"
return "mb::save flight video"
}
if {[info exists ::env(NF_PREFIX)] && ([string trim $::env(NF_PREFIX)] != "")} {
set night_flight_prefix [string trim $::env(NF_PREFIX)]
}
if {[info exists ::env(NF_SEPERATOR)] && ([string trim $::env(NF_SEPERATOR)] != "")} {
set night_flight_seperator [string trim $::env(NF_SEPERATOR)]
}
if {[info exists ::env(NF_RECORD_FLAG)] && ([string trim $::env(NF_RECORD_FLAG)] != "")} {
set night_flight_record_flag [string trim $::env(NF_RECORD_FLAG)]
}

View file

@ -1,8 +0,0 @@
<!DOCTYPE settings SYSTEM 'settings.dtd'>
<settings>
<settings>
<setting id="save_settings_on_exit">false</setting>
<setting id="sound_driver">null</setting>
</settings>
<bindings/>
</settings>

View file

@ -1,3 +0,0 @@
<openmsx-control>
<command>set power on</command>
</openmsx-control>

View file

@ -1,55 +0,0 @@
ASSERT_MSXHUB_SRC := $(call mb-make-call,mb-make-module-path-src,$(PATH_SRC))
ASSERT_MSXHUB_BIN := $(call mb-make-call,mb-make-module-path-bin,$(PATH_SRC),$(PATH_BIN))
ASSERT_MSXHUB_MACHINE ?= Boosted_MSX2+_JP
$(call mb-make-call,mb-doc-variable,ASSERT_MSXHUB_MACHINE,The machine to run the msxhub module on.)
$(ASSERT_MSXHUB_BIN): | @init
_$(MB_  )$(if $(wildcard $(ASSERT_MSXHUB_BIN)),,$(call mb-make-call,mb-os-dir-create,$(ASSERT_MSXHUB_BIN)))
_$(MB_  )$(if $(wildcard $(ASSERT_MSXHUB_BIN)/utils),,$(call mb-make-call,mb-os-dir-create,$(ASSERT_MSXHUB_BIN)/utils))
_$(MB_  )$(call mb-make-call,mb-msxhub-get-msxdos2-utils,$(ASSERT_MSXHUB_BIN)/utils)
_$(MB_  )$(call mb-make-call,mb-msxhub-get-nextor-utils,$(ASSERT_MSXHUB_BIN)/utils)
_$(MB_  )$(call mb-make-call,mb-msxhub-get-macro80,$(ASSERT_MSXHUB_BIN)/utils)
_$(MB_  )$(call mb-make-call,mb-msxhub-get-z80asmuk,$(ASSERT_MSXHUB_BIN)/utils)
_$(MB_  )$(call mb-make-call,mb-msxhub-get-wbass2,$(ASSERT_MSXHUB_BIN)/utils)
_$(MB_  )$(call mb-make-call,mb-msxhub-get-konpass,$(ASSERT_MSXHUB_BIN)/utils)
_$(MB_  )$(call mb-make-call,mb-msxhub-get-pmarc,$(ASSERT_MSXHUB_BIN)/utils)
_$(MB_  )$(call mb-make-call,mb-msxhub-get-lhpack,$(ASSERT_MSXHUB_BIN)/utils)
_$(MB_  )$(call mb-make-call,mb-msxhub-get-lhext,$(ASSERT_MSXHUB_BIN)/utils)
_$(MB_  )$(call mb-make-call,mb-msxhub-get-gunzip,$(ASSERT_MSXHUB_BIN)/utils)
_$(MB_  )$(call mb-make-call,mb-msxhub-get-tunzip,$(ASSERT_MSXHUB_BIN)/utils)
_$(MB_  )$(call mb-make-call,mb-msxhub-get-popcom,$(ASSERT_MSXHUB_BIN)/utils)
_$(MB_  )$(call mb-make-call,mb-msxhub-get-make,$(ASSERT_MSXHUB_BIN)/utils)
_$(MB_  )$(call mb-make-call,mb-msxhub-get-adir,$(ASSERT_MSXHUB_BIN)/utils)
_$(MB_  )$(call mb-make-call,mb-msxhub-get-turbo,$(ASSERT_MSXHUB_BIN)/utils)
_$(MB_  )$(call mb-make-call,mb-msxhub-get-baskom,$(ASSERT_MSXHUB_BIN)/utils)
_$(MB_  )$(call mb-make-call,mb-msxhub-get-binldr,$(ASSERT_MSXHUB_BIN)/utils)
_$(MB_  )$(call mb-make-call,mb-msxhub-get-dmphex,$(ASSERT_MSXHUB_BIN)/utils)
_$(MB_  )$(call mb-make-call,mb-msxhub-get-zd,$(ASSERT_MSXHUB_BIN)/utils)
_$(MB_  )$(call mb-make-call,mb-msxhub-get-msxdos2t,$(ASSERT_MSXHUB_BIN)/utils)
_$(MB_  )$(call mb-make-call,mb-msxhub-get-gfxage,$(ASSERT_MSXHUB_BIN)/utils)
$(ASSERT_MSXHUB_BIN)/@run: | $(ASSERT_MSXHUB_BIN)
_$(MB_  )$(call mb-make-call,mb-msxpipe-run-gui,$(ASSERT_MSXHUB_BIN),,$(ASSERT_MSXHUB_MACHINE))
$(MB_   )$(call mb-make-call,mb-doc-target-run,$(ASSERT_MSXHUB_BIN)/@run,Run the dist with all msxhub packages.)
$(MB_   )$(call mb-make-call,mb-make-target-phony,$(ASSERT_MSXHUB_BIN)/@run)
$(ASSERT_MSXHUB_BIN)/@assert/@test/@check-listing: | $(ASSERT_MSXHUB_BIN)
_$(MB_  )$(call mb-make-call,mb-os-file-delete,$(ASSERT_MSXHUB_BIN)/utils.out)
_$(MB_  )$(call mb-make-call,mb-autoexec-write-default,$(ASSERT_MSXHUB_BIN),336)
_$(MB_  )$(call mb-make-call,mb-autoexec-append-safe-assert,$(ASSERT_MSXHUB_BIN),dir utils > utils.out)
_$(MB_  )$(call mb-make-call,mb-autoexec-append-exit,$(ASSERT_MSXHUB_BIN))
_$(MB_  )$(call mb-make-call,mb-openmsx-dosctl,$(ASSERT_MSXHUB_BIN),$(ASSERT_MSXHUB_MACHINE))
_$(MB_  )grep -q "KONPASS COM" $(ASSERT_MSXHUB_BIN)/utils.out
_$(MB_  )grep -q "MAKE COM" $(ASSERT_MSXHUB_BIN)/utils.out
_$(MB_  )$(call mb-make-call,mb-os-echo-assert,$(MB_I18N_ASSERT_SUCCESS) $(ASSERT_MSXHUB_BIN)/@assert/@test/@check-listing)
_$(MB_  )$(call mb-make-call,mb-proj-grow-assert-success,@test)
_$(MB_  )$(call mb-make-call,mb-proj-grow-assert-success,@test)
$(MB_   )$(call mb-make-call,mb-doc-target-assert,$(ASSERT_MSXHUB_BIN)/@assert/@test/@check-listing,Asserts that all dist artifacts execute results.)
$(MB_   )$(call mb-make-call,mb-proj-grow-deps-phase,@test,$(ASSERT_MSXHUB_BIN)/@assert/@test/@check-listing)
$(MB_   )$(call mb-make-call,mb-make-target-phony,$(ASSERT_MSXHUB_BIN)/@assert/@test/@check-listing)

View file

@ -1,26 +0,0 @@
ASSERT_MSXROM_SRC := $(call mb-make-call,mb-make-module-path-src,$(PATH_SRC))
ASSERT_MSXROM_BIN := $(call mb-make-call,mb-make-module-path-bin,$(PATH_SRC),$(PATH_BIN))
ASSERT_MSXROM_DEPS := $(call mb-make-call,mb-make-module-local-deps,$(PATH_BIN),$(EXAMPLE_DIST_HELLO_DEPS))
ASSERT_MSXROM_MATRIX ?= off
$(call mb-make-call,mb-doc-variable,ASSERT_MSXROM_MATRIX,When on enabled matrix testing of all machines.)
ASSERT_MSXROM_MACHINES ?=
$(call mb-make-call,mb-doc-variable,ASSERT_MSXROM_MACHINES,When set only test this list of machines else all supported.)
# Package QA matrix on: <all-machines> <dos2,nextor> <hello1,hello2,hello3,hello4> = 22 * 2 * 4 = 176 assertion tests
ifeq ("$(ASSERT_MSXROM_MATRIX)", "on")
$(MB_   )$(call mb-make-call,mb-flow-clone-deps-proj-setup-orphan,$(ASSERT_MSXROM_BIN),$(EXAMPLE_DIST_HELLO_BIN),$(EXAMPLE_DIST_HELLO_DEPS))
$(MB_   )$(foreach _rom,$(if $(ASSERT_MSXROM_MACHINES),$(ASSERT_MSXROM_MACHINES),$(MB_MSXROM_FIRE_MACHINES)),$\
$(MB_      )$(call mb-make-call,mb-flow-assert-msxpipe-grep-package-qa,$(ASSERT_MSXROM_BIN),$(ASSERT_MSXROM_DEPS),$(_rom)-msxdos2-chk1,hello1,M80,msxdos2-boot,$(_rom))$\
$(MB_      )$(call mb-make-call,mb-flow-assert-msxpipe-grep-package-qa,$(ASSERT_MSXROM_BIN),$(ASSERT_MSXROM_DEPS),$(_rom)-msxdos2-chk2,hello2,SDCC,msxdos2-boot,$(_rom))$\
$(MB_      )$(call mb-make-call,mb-flow-assert-msxpipe-grep-package-qa,$(ASSERT_MSXROM_BIN),$(ASSERT_MSXROM_DEPS),$(_rom)-msxdos2-chk3,hello3,MAKE,msxdos2-boot,$(_rom))$\
$(MB_      )$(call mb-make-call,mb-flow-assert-msxpipe-grep-package-qa,$(ASSERT_MSXROM_BIN),$(ASSERT_MSXROM_DEPS),$(_rom)-msxdos1-chk4,hello4,N80,msxdos2-boot,$(_rom))$\
$(MB_      )$(call mb-make-call,mb-flow-assert-msxpipe-grep-package-qa,$(ASSERT_MSXROM_BIN),$(ASSERT_MSXROM_DEPS),$(_rom)-nextor-chk1,hello1,M80,,$(_rom))$\
$(MB_      )$(call mb-make-call,mb-flow-assert-msxpipe-grep-package-qa,$(ASSERT_MSXROM_BIN),$(ASSERT_MSXROM_DEPS),$(_rom)-nextor-chk2,hello2,SDCC,,$(_rom))$\
$(MB_      )$(call mb-make-call,mb-flow-assert-msxpipe-grep-package-qa,$(ASSERT_MSXROM_BIN),$(ASSERT_MSXROM_DEPS),$(_rom)-nextor-chk3,hello3,MAKE,,$(_rom))$\
$(MB_      )$(call mb-make-call,mb-flow-assert-msxpipe-grep-package-qa,$(ASSERT_MSXROM_BIN),$(ASSERT_MSXROM_DEPS),$(_rom)-nextor-chk4,hello4,N80,,$(_rom))$\
$(MB_   ))
endif

View file

@ -1,21 +0,0 @@
EXAMPLE_DIST_HELLO_QA_DOS1_SRC := $(call mb-make-call,mb-make-module-path-src,$(PATH_SRC))
EXAMPLE_DIST_HELLO_QA_DOS1_BIN := $(call mb-make-call,mb-make-module-path-bin,$(PATH_SRC),$(PATH_BIN))
$(call mb-make-call,mb-flow-clone-deps-proj-setup-orphan,$(EXAMPLE_DIST_HELLO_QA_DOS1_BIN),$(EXAMPLE_DIST_HELLO_BIN),$(EXAMPLE_DIST_HELLO_DEPS),msxdos1-boot)
$(EXAMPLE_DIST_HELLO_QA_DOS1_BIN)/@assert/@package-qa/@check-simple: $(EXAMPLE_DIST_HELLO_QA_DOS1_BIN)/@build
_$(MB_  )$(call mb-make-call,mb-autoexec-write-default,$(EXAMPLE_DIST_HELLO_QA_DOS1_BIN),515)
_$(MB_  )$(call mb-make-call,mb-autoexec-append-safe-assert,$(EXAMPLE_DIST_HELLO_QA_DOS1_BIN),hello1)
_$(MB_  )$(call mb-make-call,mb-autoexec-append-safe-assert,$(EXAMPLE_DIST_HELLO_QA_DOS1_BIN),hello2)
_$(MB_  )$(call mb-make-call,mb-autoexec-append-safe-assert,$(EXAMPLE_DIST_HELLO_QA_DOS1_BIN),hello3)
_$(MB_  )$(call mb-make-call,mb-autoexec-append-safe-assert,$(EXAMPLE_DIST_HELLO_QA_DOS1_BIN),hello4)
_$(MB_  )$(call mb-make-call,mb-autoexec-append-exit,$(EXAMPLE_DIST_HELLO_QA_DOS1_BIN))
_$(MB_  )$(call mb-make-call,mb-openmsx-dosctl,$(EXAMPLE_DIST_HELLO_QA_DOS1_BIN))
_$(MB_  )$(call mb-make-call,mb-os-echo-assert,$(MB_I18N_ASSERT_SUCCESS) $(EXAMPLE_DIST_HELLO_QA_DOS1_BIN)/@assert/@package-qa/@check-simple)
$(MB_   )$(call mb-make-call,mb-doc-target-assert,$(EXAMPLE_DIST_HELLO_QA_DOS1_BIN)/@assert/@package-qa/@check-simple,Assert binaries on msxdos1.)
$(MB_   )$(call mb-make-call,mb-proj-grow-deps-phase,@package-qa,$(EXAMPLE_DIST_HELLO_QA_DOS1_BIN)/@assert/@package-qa/@check-simple)
$(MB_   )$(call mb-make-call,mb-make-target-phony,$(EXAMPLE_DIST_HELLO_QA_DOS1_BIN)/@assert/@package-qa/@check-simple)

View file

@ -1,33 +0,0 @@
EXAMPLE_DIST_HELLO_QA_DOS2_SRC := $(call mb-make-call,mb-make-module-path-src,$(PATH_SRC))
EXAMPLE_DIST_HELLO_QA_DOS2_BIN := $(call mb-make-call,mb-make-module-path-bin,$(PATH_SRC),$(PATH_BIN))
$(call mb-make-call,mb-flow-clone-deps-proj-setup-orphan,$(EXAMPLE_DIST_HELLO_QA_DOS2_BIN),$(EXAMPLE_DIST_HELLO_BIN),$(EXAMPLE_DIST_HELLO_DEPS),msxdos2-boot)
$(EXAMPLE_DIST_HELLO_QA_DOS2_BIN)/@assert/@package-qa/@check-prefix: $(EXAMPLE_DIST_HELLO_QA_DOS2_BIN)/@build
_$(MB_  )$(call mb-make-call,mb-os-file-delete,$(EXAMPLE_DIST_HELLO_QA_DOS2_BIN)/hello1.out)
_$(MB_  )$(call mb-make-call,mb-os-file-delete,$(EXAMPLE_DIST_HELLO_QA_DOS2_BIN)/hello2.out)
_$(MB_  )$(call mb-make-call,mb-os-file-delete,$(EXAMPLE_DIST_HELLO_QA_DOS2_BIN)/hello3.out)
_$(MB_  )$(call mb-make-call,mb-os-file-delete,$(EXAMPLE_DIST_HELLO_QA_DOS2_BIN)/hello4.out)
_$(MB_  )$(call mb-make-call,mb-autoexec-write-default,$(EXAMPLE_DIST_HELLO_QA_DOS2_BIN),515)
_$(MB_  )$(call mb-make-call,mb-autoexec-append-safe-assert,$(EXAMPLE_DIST_HELLO_QA_DOS2_BIN),hello1 > hello1.out)
_$(MB_  )$(call mb-make-call,mb-autoexec-append-safe-assert,$(EXAMPLE_DIST_HELLO_QA_DOS2_BIN),hello2 > hello2.out)
_$(MB_  )$(call mb-make-call,mb-autoexec-append-safe-assert,$(EXAMPLE_DIST_HELLO_QA_DOS2_BIN),hello3 > hello3.out)
_$(MB_  )$(call mb-make-call,mb-autoexec-append-safe-assert,$(EXAMPLE_DIST_HELLO_QA_DOS2_BIN),hello4 > hello4.out)
_$(MB_  )$(call mb-make-call,mb-autoexec-append-exit,$(EXAMPLE_DIST_HELLO_QA_DOS2_BIN))
_$(MB_  )$(call mb-make-call,mb-openmsx-dosctl,$(EXAMPLE_DIST_HELLO_QA_DOS2_BIN))
_$(MB_  )@echo -n "$(MB_I18N_OS_CRAYON_TAG) ";grep --colour$(MB_MAKE_EQUALS)auto "M80: Hello MSX" $(EXAMPLE_DIST_HELLO_QA_DOS2_BIN)/hello1.out
_$(MB_  )@echo -n "$(MB_I18N_OS_CRAYON_TAG) ";grep --colour$(MB_MAKE_EQUALS)auto "SDCC: Hello MSX" $(EXAMPLE_DIST_HELLO_QA_DOS2_BIN)/hello2.out
_$(MB_  )@echo -n "$(MB_I18N_OS_CRAYON_TAG) ";grep --colour$(MB_MAKE_EQUALS)auto "MAKE: Hello MSX" $(EXAMPLE_DIST_HELLO_QA_DOS2_BIN)/hello3.out
_$(MB_  )@echo -n "$(MB_I18N_OS_CRAYON_TAG) ";grep --colour$(MB_MAKE_EQUALS)auto "N80: Hello MSX" $(EXAMPLE_DIST_HELLO_QA_DOS2_BIN)/hello4.out
_$(MB_  )$(call mb-make-call,mb-os-echo-assert,$(MB_I18N_ASSERT_SUCCESS) $(EXAMPLE_DIST_HELLO_QA_DOS2_BIN)/@assert/@package-qa/@check-prefix)
_$(MB_  )$(call mb-make-call,mb-proj-grow-assert-success,@package-qa)
_$(MB_  )$(call mb-make-call,mb-proj-grow-assert-success,@package-qa)
_$(MB_  )$(call mb-make-call,mb-proj-grow-assert-success,@package-qa)
_$(MB_  )$(call mb-make-call,mb-proj-grow-assert-success,@package-qa)
$(MB_   )$(call mb-make-call,mb-doc-target-assert,$(EXAMPLE_DIST_HELLO_QA_DOS2_BIN)/@assert/@package-qa/@check-prefix,Assert binaries on msxdos2.)
$(MB_   )$(call mb-make-call,mb-proj-grow-deps-phase,@package-qa,$(EXAMPLE_DIST_HELLO_QA_DOS2_BIN)/@assert/@package-qa/@check-prefix)
$(MB_   )$(call mb-make-call,mb-make-target-phony,$(EXAMPLE_DIST_HELLO_QA_DOS2_BIN)/@assert/@package-qa/@check-prefix)

View file

@ -1,36 +0,0 @@
EXAMPLE_DIST_HELLO_QA_MSX1_SRC := $(call mb-make-call,mb-make-module-path-src,$(PATH_SRC))
EXAMPLE_DIST_HELLO_QA_MSX1_BIN := $(call mb-make-call,mb-make-module-path-bin,$(PATH_SRC),$(PATH_BIN))
EXAMPLE_DIST_HELLO_QA_MSX1_MACHINE ?= Canon_V-20
$(call mb-make-call,mb-doc-variable,EXAMPLE_DIST_HELLO_QA_MSX1_MACHINE,The machine to run the msx1 qa module on.)
$(call mb-make-call,mb-flow-clone-deps-proj-setup-orphan,$(EXAMPLE_DIST_HELLO_QA_MSX1_BIN),$(EXAMPLE_DIST_HELLO_BIN),$(EXAMPLE_DIST_HELLO_DEPS),,$(EXAMPLE_DIST_HELLO_QA_MSX1_MACHINE))
$(EXAMPLE_DIST_HELLO_QA_MSX1_BIN)/@assert/@package-qa/@check-prefix: $(EXAMPLE_DIST_HELLO_QA_MSX1_BIN)/@build
_$(MB_  )$(call mb-make-call,mb-os-file-delete,$(EXAMPLE_DIST_HELLO_QA_MSX1_BIN)/hello1.out)
_$(MB_  )$(call mb-make-call,mb-os-file-delete,$(EXAMPLE_DIST_HELLO_QA_MSX1_BIN)/hello2.out)
_$(MB_  )$(call mb-make-call,mb-os-file-delete,$(EXAMPLE_DIST_HELLO_QA_MSX1_BIN)/hello3.out)
_$(MB_  )$(call mb-make-call,mb-os-file-delete,$(EXAMPLE_DIST_HELLO_QA_MSX1_BIN)/hello4.out)
_$(MB_  )$(call mb-make-call,mb-autoexec-write-default,$(EXAMPLE_DIST_HELLO_QA_MSX1_BIN),515)
_$(MB_  )$(call mb-make-call,mb-autoexec-append-safe-assert,$(EXAMPLE_DIST_HELLO_QA_MSX1_BIN),hello1 > hello1.out)
_$(MB_  )$(call mb-make-call,mb-autoexec-append-safe-assert,$(EXAMPLE_DIST_HELLO_QA_MSX1_BIN),hello2 > hello2.out)
_$(MB_  )$(call mb-make-call,mb-autoexec-append-safe-assert,$(EXAMPLE_DIST_HELLO_QA_MSX1_BIN),hello3 > hello3.out)
_$(MB_  )$(call mb-make-call,mb-autoexec-append-safe-assert,$(EXAMPLE_DIST_HELLO_QA_MSX1_BIN),hello4 > hello4.out)
_$(MB_  )$(call mb-make-call,mb-autoexec-append-exit,$(EXAMPLE_DIST_HELLO_QA_MSX1_BIN))
_$(MB_  )$(call mb-make-call,mb-openmsx-dosctl,$(EXAMPLE_DIST_HELLO_QA_MSX1_BIN),$(EXAMPLE_DIST_HELLO_QA_MSX1_MACHINE))
_$(MB_  )@echo -n "$(MB_I18N_OS_CRAYON_TAG) ";grep --colour$(MB_MAKE_EQUALS)auto "M80: Hello MSX" $(EXAMPLE_DIST_HELLO_QA_MSX1_BIN)/hello1.out
_$(MB_  )@echo -n "$(MB_I18N_OS_CRAYON_TAG) ";grep --colour$(MB_MAKE_EQUALS)auto "SDCC: Hello MSX" $(EXAMPLE_DIST_HELLO_QA_MSX1_BIN)/hello2.out
_$(MB_  )@echo -n "$(MB_I18N_OS_CRAYON_TAG) ";grep --colour$(MB_MAKE_EQUALS)auto "MAKE: Hello MSX" $(EXAMPLE_DIST_HELLO_QA_MSX1_BIN)/hello3.out
_$(MB_  )@echo -n "$(MB_I18N_OS_CRAYON_TAG) ";grep --colour$(MB_MAKE_EQUALS)auto "N80: Hello MSX" $(EXAMPLE_DIST_HELLO_QA_MSX1_BIN)/hello4.out
_$(MB_  )$(call mb-make-call,mb-os-echo-assert,$(MB_I18N_ASSERT_SUCCESS) $(EXAMPLE_DIST_HELLO_QA_MSX1_BIN)/@assert/@package-qa/@check-prefix)
_$(MB_  )$(call mb-make-call,mb-proj-grow-assert-success,@package-qa)
_$(MB_  )$(call mb-make-call,mb-proj-grow-assert-success,@package-qa)
_$(MB_  )$(call mb-make-call,mb-proj-grow-assert-success,@package-qa)
_$(MB_  )$(call mb-make-call,mb-proj-grow-assert-success,@package-qa)
$(MB_   )$(call mb-make-call,mb-doc-target-assert,$(EXAMPLE_DIST_HELLO_QA_MSX1_BIN)/@assert/@package-qa/@check-prefix,Assert binaries on MSX1 machine.)
$(MB_   )$(call mb-make-call,mb-proj-grow-deps-phase,@package-qa,$(EXAMPLE_DIST_HELLO_QA_MSX1_BIN)/@assert/@package-qa/@check-prefix)
$(MB_   )$(call mb-make-call,mb-make-target-phony,$(EXAMPLE_DIST_HELLO_QA_MSX1_BIN)/@assert/@package-qa/@check-prefix)

View file

@ -1,42 +0,0 @@
EXAMPLE_DIST_HELLO_SRC := $(call mb-make-call,mb-make-module-path-src,$(PATH_SRC))
EXAMPLE_DIST_HELLO_BIN := $(call mb-make-call,mb-make-module-path-bin,$(PATH_SRC),$(PATH_BIN))
EXAMPLE_DIST_HELLO_OUT := $(PATH_BIN)/example-dist-hello.tar.gz
EXAMPLE_DIST_HELLO_DEPS := $(EXAMPLE_DIST_HELLO_BIN)/readme.txt \
$(EXAMPLE_DIST_HELLO_BIN)/hello1.com \
$(EXAMPLE_DIST_HELLO_BIN)/hello2.com \
$(EXAMPLE_DIST_HELLO_BIN)/hello3.com \
$(EXAMPLE_DIST_HELLO_BIN)/hello4.com
$(EXAMPLE_DIST_HELLO_BIN): | @init
_$(MB_  )$(if $(wildcard $(EXAMPLE_DIST_HELLO_BIN)),,$(call mb-make-call,mb-os-dir-create,$(EXAMPLE_DIST_HELLO_BIN)))
$(EXAMPLE_DIST_HELLO_BIN)/readme.txt: $(EXAMPLE_DIST_HELLO_SRC)/readme.txt | $(EXAMPLE_DIST_HELLO_BIN)
_$(MB_  )$(call mb-make-call,mb-conv-unix2dos,$<,$@)
$(EXAMPLE_DIST_HELLO_BIN)/hello1.com: bin/example/hello-macro80/hello.com | $(EXAMPLE_DIST_HELLO_BIN)/readme.txt
_$(MB_  )$(call mb-make-call,mb-os-file-copy,$<,$@)
$(EXAMPLE_DIST_HELLO_BIN)/hello2.com: bin/example/hello-sdcc-asm/hello.com | $(EXAMPLE_DIST_HELLO_BIN)/hello1.com
_$(MB_  )$(call mb-make-call,mb-os-file-copy,$<,$@)
$(EXAMPLE_DIST_HELLO_BIN)/hello3.com: bin/example/hello-make4msx/hello.com | $(EXAMPLE_DIST_HELLO_BIN)/hello2.com
_$(MB_  )$(call mb-make-call,mb-os-file-copy,$<,$@)
$(EXAMPLE_DIST_HELLO_BIN)/hello4.com: bin/example/hello-nestor80/hello.com | $(EXAMPLE_DIST_HELLO_BIN)/hello3.com
_$(MB_  )$(call mb-make-call,mb-os-file-copy,$<,$@)
$(EXAMPLE_DIST_HELLO_BIN)/@prepare: | $(EXAMPLE_DIST_HELLO_DEPS)
$(MB_   )$(call mb-make-call,mb-doc-target,$(EXAMPLE_DIST_HELLO_BIN)/@prepare,Prepare folder with binaries for distribution.)
$(MB_   )$(call mb-make-call,mb-make-target-phony,$(EXAMPLE_DIST_HELLO_BIN)/@prepare)
$(EXAMPLE_DIST_HELLO_OUT): $(EXAMPLE_DIST_HELLO_BIN)/@prepare
_$(MB_  )$(call mb-make-call,mb-package-create-archive,$(EXAMPLE_DIST_HELLO_BIN),$@)
$(MB_   )$(call mb-make-call,mb-doc-target,$(EXAMPLE_DIST_HELLO_OUT),Build archive distribution artifact.)
$(MB_   )$(call mb-make-call,mb-proj-grow-deps-phase,@package,$(EXAMPLE_DIST_HELLO_OUT))
# todo: convert to module
$(EXAMPLE_DIST_HELLO_BIN)/@build: $(EXAMPLE_DIST_HELLO_BIN)/@prepare
$(MB_   )$(call mb-make-call,mb-make-target-phony,$(EXAMPLE_DIST_HELLO_BIN)/@build)

View file

@ -1,2 +0,0 @@
Test readme

View file

@ -1,9 +0,0 @@
EXAMPLE_HELLO_MACRO80_SRC := $(call mb-make-call,mb-make-module-path-src,$(PATH_SRC))
EXAMPLE_HELLO_MACRO80_BIN := $(call mb-make-call,mb-make-module-path-bin,$(PATH_SRC),$(PATH_BIN))
EXAMPLE_HELLO_MACRO80_DEPS := $(EXAMPLE_HELLO_MACRO80_BIN)/hello.com
$(call mb-make-call,mb-flow-macro80-bdos-mono,$(EXAMPLE_HELLO_MACRO80_BIN),$(EXAMPLE_HELLO_MACRO80_SRC),hello)
$(call mb-make-call,mb-flow-assert-msxpipe-grep-test,$(EXAMPLE_HELLO_MACRO80_BIN),$(EXAMPLE_HELLO_MACRO80_DEPS),check-m80,hello,M80)
$(call mb-make-call,mb-flow-assert-msxpipe-grep-test,$(EXAMPLE_HELLO_MACRO80_BIN),$(EXAMPLE_HELLO_MACRO80_DEPS),check-txt,hello,o MSX world...)

View file

@ -1,20 +0,0 @@
title M80 CP/M Hello world
.Z80
WRITESTR EQU 9h
BDOS EQU 5h
ASEG
ORG 0100H
MAIN:
LD C,WRITESTR
LD DE,TXT_HELLO
CALL BDOS
RET
TXT_HELLO:
DB "M80: Hello MSX world...@ASM$"
END
DSEG

View file

@ -1,54 +0,0 @@
EXAMPLE_HELLO_MAKE4MSX_SRC := $(call mb-make-call,mb-make-module-path-src,$(PATH_SRC))
EXAMPLE_HELLO_MAKE4MSX_BIN := $(call mb-make-call,mb-make-module-path-bin,$(PATH_SRC),$(PATH_BIN))
$(call mb-make-call,mb-flow-proj-setup,$(EXAMPLE_HELLO_MAKE4MSX_BIN),@init,$(EXAMPLE_HELLO_MAKE4MSX_BIN))
$(call mb-make-call,mb-flow-proj-module-run,$(EXAMPLE_HELLO_MAKE4MSX_BIN))
$(call mb-make-call,mb-flow-proj-prepare-packages,$(EXAMPLE_HELLO_MAKE4MSX_BIN),make macro80 z80asmuk,utils)
$(call mb-make-call,mb-flow-assert-grep-binary-test,$(EXAMPLE_HELLO_MAKE4MSX_BIN),check-bin,hello.com,MAKE)
#$(EXAMPLE_HELLO_MAKE4MSX_BIN): | @init
#_$(MB_  )$(if $(wildcard $(EXAMPLE_HELLO_MAKE4MSX_BIN)),,$(call mb-make-call,mb-os-dir-create,$(EXAMPLE_HELLO_MAKE4MSX_BIN)))
#_$(MB_  )$(if $(wildcard $(EXAMPLE_HELLO_MAKE4MSX_BIN)/utils),,$(call mb-make-call,mb-os-dir-create,$(EXAMPLE_HELLO_MAKE4MSX_BIN)/utils))
#_$(MB_  )$(call mb-make-call,mb-msxhub-get-make,$(EXAMPLE_HELLO_MAKE4MSX_BIN)/utils)
#_$(MB_  )$(call mb-make-call,mb-msxhub-get-macro80,$(EXAMPLE_HELLO_MAKE4MSX_BIN)/utils)
#_$(MB_  )$(call mb-make-call,mb-msxhub-get-z80asmuk,$(EXAMPLE_HELLO_MAKE4MSX_BIN)/utils)
#$(MB_   )$(call mb-make-call,mb-doc-target-deep,$(EXAMPLE_HELLO_MAKE4MSX_BIN))
#$(MB_   )$(call mb-make-call,mb-make-target-phony,$(EXAMPLE_HELLO_MAKE4MSX_BIN))
$(EXAMPLE_HELLO_MAKE4MSX_BIN)/hello.mac: $(EXAMPLE_HELLO_MAKE4MSX_SRC)/hello.mac | $(EXAMPLE_HELLO_MAKE4MSX_BIN)/@prepare
_$(MB_  )$(call mb-make-call,mb-conv-unix2dos,$<,$@)
$(MB_   )$(call mb-make-call,mb-doc-target-deep,$(EXAMPLE_HELLO_MAKE4MSX_BIN)/hello.mac)
$(MB_   )$(call mb-make-call,mb-proj-grow-deps-phase,@process,$(EXAMPLE_HELLO_MAKE4MSX_BIN)/hello.mac)
$(EXAMPLE_HELLO_MAKE4MSX_BIN)/hello.mf: $(EXAMPLE_HELLO_MAKE4MSX_SRC)/hello.mf $(EXAMPLE_HELLO_MAKE4MSX_BIN)/hello.mac
_$(MB_  )$(call mb-make-call,mb-conv-unix2dos,$<,$@)
$(MB_   )$(call mb-make-call,mb-doc-target-deep,$(EXAMPLE_HELLO_MAKE4MSX_BIN)/hello.mf)
$(MB_   )$(call mb-make-call,mb-proj-grow-deps-phase,@process,$(EXAMPLE_HELLO_MAKE4MSX_BIN)/hello.mf)
$(EXAMPLE_HELLO_MAKE4MSX_BIN)/build.bat: $(EXAMPLE_HELLO_MAKE4MSX_SRC)/build.bat $(EXAMPLE_HELLO_MAKE4MSX_BIN)/hello.mf
_$(MB_  )$(call mb-make-call,mb-conv-unix2dos,$<,$@)
$(MB_   )$(call mb-make-call,mb-doc-target-deep,$(EXAMPLE_HELLO_MAKE4MSX_BIN)/build.bat)
$(MB_   )$(call mb-make-call,mb-proj-grow-deps-phase,@process,$(EXAMPLE_HELLO_MAKE4MSX_BIN)/build.bat)
$(EXAMPLE_HELLO_MAKE4MSX_BIN)/hello.com: $(EXAMPLE_HELLO_MAKE4MSX_BIN)/build.bat
_$(MB_  )$(call mb-make-call,mb-msxpipe-safe-cmd,$(EXAMPLE_HELLO_MAKE4MSX_BIN),build shutdown,,662)
$(MB_   )$(call mb-make-call,mb-doc-target-deep,$(EXAMPLE_HELLO_MAKE4MSX_BIN)/hello.com)
$(EXAMPLE_HELLO_MAKE4MSX_BIN)/@@build-deps:: $(EXAMPLE_HELLO_MAKE4MSX_BIN)/hello.com
#$(EXAMPLE_HELLO_MAKE4MSX_BIN)/@build: $(EXAMPLE_HELLO_MAKE4MSX_BIN)/hello.com
#$(MB_   )$(call mb-make-call,mb-doc-target,$(EXAMPLE_HELLO_MAKE4MSX_BIN)/@build,Compiles binary with make on msx.)
#$(MB_   )$(call mb-make-call,mb-proj-grow-deps-phase,@build,$(EXAMPLE_HELLO_MAKE4MSX_BIN)/@build)
#$(MB_   )$(call mb-make-call,mb-make-target-phony,$(EXAMPLE_HELLO_MAKE4MSX_BIN)/@build)
#$(EXAMPLE_HELLO_MAKE4MSX_BIN)/@run: $(EXAMPLE_HELLO_MAKE4MSX_BIN)/@build
#_$(MB_  )$(call mb-make-call,mb-msxpipe-run-gui,$(EXAMPLE_HELLO_MAKE4MSX_BIN))
#$(MB_   )$(call mb-make-call,mb-doc-target-run,$(EXAMPLE_HELLO_MAKE4MSX_BIN)/@run,Run the make build manually.)
#$(MB_   )$(call mb-make-call,mb-make-target-phony,$(EXAMPLE_HELLO_MAKE4MSX_BIN)/@run)

View file

@ -1,31 +0,0 @@
echo === Trigger workaround
rem Fixme make will not build without targets files
rem Fixme make will not build without updated time stamps
dir
copy /T build.bat HELLO.COM
dir/w utils
copy /T build.bat HELLO.HEX
dir/w utils
copy /T build.bat HELLO.REL
dir/w utils
copy /T HELLO.MAC HELLO.BAK
dir/w utils
copy /T HELLO.BAK HELLO.MAC
echo === Running make
omsxctl fail_after 300 seconds err_make 1
echo "echo --- build init" > build1.bat
make HELLO.MF /x > build2.bat
echo === Concat shutdown
echo "echo --- build shutdown" > build3.bat
IFF "shutdown" == %1
SET lastcmd=shutdown
ELSE
SET lastcmd=omsxctl fail_after 0
ENDIFF
echo %lastcmd% > build4.bat
concat build1.bat + build2.bat + build3.bat + build4.bat buildrun.bat
echo === Final script
type buildrun.bat
echo === Running build
omsxctl fail_after 300 seconds err_build 1
buildrun

View file

@ -1,20 +0,0 @@
title M80 MAKE Hello world
.Z80
WRITESTR EQU 9h
BDOS EQU 5h
ASEG
ORG 0100H
MAIN:
LD C,WRITESTR
LD DE,TXT_HELLO
CALL BDOS
RET
w
TXT_HELLO:
DB "MAKE: Hello MSX world...@ASM$"
END
DSEG

View file

@ -1,14 +0,0 @@
# Makefile to run on MSX
hello.rel: hello.mac
echo Making hello.rel
m80 =hello/Z
hello.hex: hello.rel
echo Making hello.hex
l80 hello,hello/N/X/Y/E
hello.com: hello.hex
echo Making hello.com
hextocom hello

View file

@ -1,9 +0,0 @@
EXAMPLE_HELLO_NESTOR80_SRC := $(call mb-make-call,mb-make-module-path-src,$(PATH_SRC))
EXAMPLE_HELLO_NESTOR80_BIN := $(call mb-make-call,mb-make-module-path-bin,$(PATH_SRC),$(PATH_BIN))
EXAMPLE_HELLO_NESTOR80_DEPS := $(EXAMPLE_HELLO_NESTOR80_BIN)/hello.com
$(call mb-make-call,mb-flow-nestor80-bdos-mono,$(EXAMPLE_HELLO_NESTOR80_BIN),$(EXAMPLE_HELLO_NESTOR80_SRC),hello)
$(call mb-make-call,mb-flow-assert-msxpipe-grep-test,$(EXAMPLE_HELLO_NESTOR80_BIN),$(EXAMPLE_HELLO_NESTOR80_DEPS),check-m80,hello,N80)
$(call mb-make-call,mb-flow-assert-msxpipe-grep-test,$(EXAMPLE_HELLO_NESTOR80_BIN),$(EXAMPLE_HELLO_NESTOR80_DEPS),check-txt,hello,o MSX world...)

View file

@ -1,9 +0,0 @@
EXAMPLE_HELLO_SDCC_ASM_SRC := $(call mb-make-call,mb-make-module-path-src,$(PATH_SRC))
EXAMPLE_HELLO_SDCC_ASM_BIN := $(call mb-make-call,mb-make-module-path-bin,$(PATH_SRC),$(PATH_BIN))
EXAMPLE_HELLO_SDCC_ASM_DEPS := $(EXAMPLE_HELLO_SDCC_ASM_BIN)/hello.com
$(call mb-make-call,mb-flow-sdcc-bdos-mono,$(EXAMPLE_HELLO_SDCC_ASM_BIN),$(EXAMPLE_HELLO_SDCC_ASM_SRC),hello)
$(call mb-make-call,mb-flow-assert-msxpipe-grep-test,$(EXAMPLE_HELLO_SDCC_ASM_BIN),$(EXAMPLE_HELLO_SDCC_ASM_DEPS),check-sdcc,hello,SDCC)
$(call mb-make-call,mb-flow-assert-msxpipe-grep-test,$(EXAMPLE_HELLO_SDCC_ASM_BIN),$(EXAMPLE_HELLO_SDCC_ASM_DEPS),check-hell,hello,Hell)

View file

@ -1,39 +0,0 @@
GLUEDOS1_SRC := $(call mb-make-call,mb-make-module-path-src,$(PATH_SRC))
GLUEDOS1_BIN := $(call mb-make-call,mb-make-module-path-bin,$(PATH_SRC),$(PATH_BIN))
GLUEDOS1_DIST := lib/emuctl/gluedos1
# Add msxdos1 to override default(nextor) for manual @run target
$(call mb-make-call,mb-flow-proj-prepare-packages,$(GLUEDOS1_BIN),msxdos1-boot)
# Compile binaries
$(call mb-make-call,mb-flow-sdcc-bdos-mono,$(GLUEDOS1_BIN),$(GLUEDOS1_SRC),cls)
$(call mb-make-call,mb-flow-sdcc-bdos-mono,$(GLUEDOS1_BIN),$(GLUEDOS1_SRC),echo)
$(call mb-make-call,mb-flow-sdcc-bdos-mono,$(GLUEDOS1_BIN),$(GLUEDOS1_SRC),set)
$(call mb-make-call,mb-flow-sdcc-bdos-mono,$(GLUEDOS1_BIN),$(GLUEDOS1_SRC),ver)
# (Manual) Test binaries
$(GLUEDOS1_BIN)/@@test-deps:: $(GLUEDOS1_BIN)/@assert/@test/@check-simple
$(GLUEDOS1_BIN)/@assert/@test/@check-simple: $(GLUEDOS1_BIN)/@build
_$(MB_  )$(call mb-make-call,mb-autoexec-write-default,$(GLUEDOS1_BIN))
_$(MB_  )$(call mb-make-call,mb-autoexec-append-safe-assert,$(GLUEDOS1_BIN),a:cls.com)
_$(MB_  )$(call mb-make-call,mb-autoexec-append-safe-assert,$(GLUEDOS1_BIN),a:echo.com)
_$(MB_  )$(call mb-make-call,mb-autoexec-append-safe-assert,$(GLUEDOS1_BIN),a:set.com)
_$(MB_  )$(call mb-make-call,mb-autoexec-append-safe-assert,$(GLUEDOS1_BIN),a:ver.com)
_$(MB_  )$(call mb-make-call,mb-autoexec-append-exit,$(GLUEDOS1_BIN))
_$(MB_  )$(call mb-make-call,mb-openmsx-dosctl,$(GLUEDOS1_BIN))
_$(MB_  )$(call mb-make-call,mb-os-echo-assert,$(MB_I18N_ASSERT_SUCCESS) $(GLUEDOS1_BIN)/@assert/@test/@check-simple)
$(MB_   )$(call mb-make-call,mb-doc-target-assert,$(GLUEDOS1_BIN)/@assert/@test/@check-simple,Assert binaries on msxdos1.)
$(MB_   )$(call mb-make-call,mb-proj-grow-deps-phase,@test,$(GLUEDOS1_BIN)/@assert/@test/@check-simple)
$(MB_   )$(call mb-make-call,mb-make-target-phony,$(GLUEDOS1_BIN)/@assert/@test/@check-simple)
# Release local
$(GLUEDOS1_BIN)/@release-local: | $(GLUEDOS1_BIN)/@build
_$(MB_  )$(if $(wildcard $(GLUEDOS1_DIST)),,$(call mb-make-call,mb-os-folder-create,$(GLUEDOS1_DIST)))
_$(MB_  )$(call mb-make-call,mb-os-file-copy,$(GLUEDOS1_BIN)/cls.com,$(GLUEDOS1_DIST))
_$(MB_  )$(call mb-make-call,mb-os-file-copy,$(GLUEDOS1_BIN)/echo.com,$(GLUEDOS1_DIST))
_$(MB_  )$(call mb-make-call,mb-os-file-copy,$(GLUEDOS1_BIN)/set.com,$(GLUEDOS1_DIST))
_$(MB_  )$(call mb-make-call,mb-os-file-copy,$(GLUEDOS1_BIN)/ver.com,$(GLUEDOS1_DIST))
$(MB_   )$(call mb-make-call,mb-doc-target,$(GLUEDOS1_BIN)/@release-local,Updates binary copy in $(GLUEDOS1_DIST) folder.)
$(MB_   )$(call mb-make-call,mb-make-target-phony,$(GLUEDOS1_BIN)/@release-local)

View file

@ -1,20 +0,0 @@
CALLSLT .equ 0x001C
EXPTBL .equ 0xFCC1
BIOS_CLS .equ 0x00C3
.area _CODE
JP MAIN
.db 0x0D
.db 0x0D,0x0A
.str "MSX-DOS1 cls command."
.db 0x0D,0x0A
.db 0x1A
MAIN:
XOR A
LD IY,(EXPTBL)
LD IX,#BIOS_CLS
JP CALLSLT
.area _DATA

View file

@ -1,39 +0,0 @@
.area _CODE
JP MAIN
.db 0x0D
.db 0x0D,0x0A
.str "TODO: MSX-DOS1 echo command."
.db 0x0D,0x0A
.db 0x1A
; TODO: code
;
; SUPPORT: echo foo
; SUPPORT: echo bar %FOO% bar
; SUPPORT: echo bar %FOO% bar>NUL
; SUPPORT: echo bar %FOO% bar> NUL
; SUPPORT: echo bar %FOO% bar >NUL
; SUPPORT: echo bar %FOO% bar > NUL
; SUPPORT: echo bar %FOO% bar>>NUL
; SUPPORT: echo bar %FOO% bar>> NUL
; SUPPORT: echo bar %FOO% bar >>NUL
; SUPPORT: echo bar %FOO% bar >> NUL
; SUPPORT: echo bar %FOO% bar>%FILE%
; SUPPORT: echo bar %FOO% bar> %FILE%
; SUPPORT: echo bar %FOO% bar >%FILE%
; SUPPORT: echo bar %FOO% bar > %FILE%
; SUPPORT: echo bar %FOO% bar>>%FILE%
; SUPPORT: echo bar %FOO% bar>> %FILE%
; SUPPORT: echo bar %FOO% bar >>%FILE%
; SUPPORT: echo bar %FOO% bar >> %FILE%
; - open command.env
; - read command.env
; - replace env variable of argument line
; - if redirect NUL than no output
; - if redirect is file than write (+OPTIONAL APPEND) to file
; - exit
MAIN:
RET
.area _DATA

View file

@ -1,22 +0,0 @@
.area _CODE
JP MAIN
.db 0x0D
.db 0x0D,0x0A
.str "TODO: MSX-DOS1 set command."
.db 0x0D,0x0A
.db 0x1A
; TODO: code
;
; SUPPORT: set FOO=BAR
; SUPPORT: set BAR=bar %FOO% bar
; - open command.env (auto create)
; - read command.env
; - replace env variable of argument
; - append or replace parsed argument line to env file
; - exit
MAIN:
RET
.area _DATA

View file

@ -1,49 +0,0 @@
BDOS .equ 0x0005
_DOSVER .equ 0x6F
_STROUT .equ 0x09
.area _CODE
JP MAIN
.db 0x0D
.db 0x0D,0x0A
.str "MSX-DOS1 ver(sion) command."
.db 0x0D,0x0A
.db 0x1A
MAIN:
XOR A
LD DE,#TXT_DOS
LD C,#_STROUT
CALL BDOS
XOR A
LD C,#_DOSVER
CALL BDOS
LD A,B; DOS VERSION
CP #1
LD C,#_STROUT
LD DE,#TXT_DOS1
JP C,BDOS
; TODO: print full version
; BC = MSX-DOS kernel version as BCD 0234h
; DE = MSXDOS2.SYS version number
ADD #48
LD DE,#TXT_VERSION
LD (DE),A
XOR A
LD C,#_STROUT
CALL BDOS
RET
TXT_DOS:
.str "Dos version $"
TXT_DOS1:
.str "1$"
TXT_VERSION:
.str "X.XX$"
.area _DATA

View file

@ -1,14 +0,0 @@
MBBOOT80_SRC := $(call mb-make-call,mb-make-module-path-src,$(PATH_SRC))
MBBOOT80_BIN := $(call mb-make-call,mb-make-module-path-bin,$(PATH_SRC),$(PATH_BIN))
MBBOOT80_DEPS := $(call mb-make-call,mb-make-module-local-deps,$(MBBOOT80_BIN),$(patsubst %.asm,%.com,$(shell ls -1 $(MBBOOT80_SRC)/*.asm)))
$(call mb-make-call,mb-flow-sdcc-bdos-mono,$(MBBOOT80_BIN),$(MBBOOT80_SRC),mbboot80)
$(call mb-make-call,mb-flow-assert-msxpipe-grep-test,$(MBBOOT80_BIN),$(MBBOOT80_DEPS),check-boot80,mbboot80,mb::boot mode 80)
$(MBBOOT80_BIN)/@release-local: | $(MBBOOT80_BIN)/@build
_$(MB_  )$(call mb-make-call,mb-os-file-copy,$(MBBOOT80_BIN)/mbboot80.com,lib/emuctl/mbboot80.com)
$(MB_   )$(call mb-make-call,mb-doc-target,$(MBBOOT80_BIN)/@release-local,Updates binary copy in lib/emuctl folder.)
$(MB_   )$(call mb-make-call,mb-make-target-phony,$(MBBOOT80_BIN)/@release-local)

View file

@ -1,51 +0,0 @@
.area _CODE
JP MAIN
.db 0x0D
.db 0x0D,0x0A
.str "MSXBUILD Boot mode 80 to support msx1 systems."
.db 0x0D,0x0A
.db 0x1A
MAIN:
LD HL,#0x002D
LD A,(0xFCC1)
CALL 0x0C
LD HL,#TXT_MODE80_MSX1
OR A
JP Z,PUT_TXT
LD A,#80
LD (0xF3AE),A
LD A,#0
LD IY,(0xFCC1)
LD IX,#0x5F
CALL 0x1C
LD HL,#TXT_MODE80
PUT_TXT:
LD A,(HL)
CP #0x1D
RET Z
LD E,A
LD C,#2
PUSH HL
CALL 0x5
POP HL
INC HL
JR PUT_TXT
;=========== MSX_TYPE TXT'S
TXT_MODE80:
.str "mb::boot mode 80"
.db 0x0D,0x0A
.db 0x1D
TXT_MODE80_MSX1:
.str "mb::boot mode MSX1"
.db 0x0D,0x0A
.db 0x1D
.area _DATA

9
test/0module.mk Normal file
View file

@ -0,0 +1,9 @@
BUILD_HELP += \\n\\t* assert-all \(Run all asertion tests\)
BUILD_TEST := \
test-ahello-m80-assert \
test-ahello-sdcc-assert
.PHONY: assert-all
assert-all: $(BUILD_TEST)
@echo All assertions completed.

View file

@ -0,0 +1,36 @@
TEST_AHELLO_M80 := $(PATH_BIN)/test/ahello-m80
BUILD_HELP += \\n\\t* $(TEST_AHELLO_M80)/ahello.com\\n\\t* test-ahello-m80-run\\n\\t* test-ahello-m80-assert
$(TEST_AHELLO_M80):
$(call mb_mkdir,$(TEST_AHELLO_M80))
$(call mb_package_emuctl,$(TEST_AHELLO_M80))
$(call mb_package_macro80,$(TEST_AHELLO_M80))
$(call mb_package_nextor,$(TEST_AHELLO_M80))
$(TEST_AHELLO_M80)/%.mac: test/ahello-m80/%.mac | $(TEST_AHELLO_M80)
$(call mb_unix2dos,$<,$@)
$(TEST_AHELLO_M80)/ahello.rel: $(TEST_AHELLO_M80)/ahello.mac
$(call mb_autoexec_cmd,$(TEST_AHELLO_M80),m80 =ahello/Z)
$(call mb_openmsx_dosctl,$(TEST_AHELLO_M80))
$(TEST_AHELLO_M80)/ahello.hex: $(TEST_AHELLO_M80)/ahello.rel
$(call mb_autoexec_cmd,$(TEST_AHELLO_M80),l80 ahello$(MB_COMMA)ahello/N/X/Y/E)
$(call mb_openmsx_dosctl,$(TEST_AHELLO_M80))
$(TEST_AHELLO_M80)/ahello.com: $(TEST_AHELLO_M80)/ahello.hex
$(call mb_autoexec_cmd,$(TEST_AHELLO_M80),hextocom ahello)
$(call mb_openmsx_dosctl,$(TEST_AHELLO_M80))
.PHONY: test-ahello-m80-run
test-ahello-m80-run: $(TEST_AHELLO_M80)/ahello.com
$(call mb_autoexec_open_gui,$(TEST_AHELLO_M80))
$(call mb_openmsx_dosctl,$(TEST_AHELLO_M80))
.PHONY: test-ahello-m80-assert
test-ahello-m80-assert: $(TEST_AHELLO_M80)/ahello.com
$(call mb_delete,$(TEST_AHELLO_M80)/test.out)
$(call mb_autoexec_cmd_test,$(TEST_AHELLO_M80),ahello > test.out)
$(call mb_openmsx_dosctl,$(TEST_AHELLO_M80))
grep "M80: Hello world..." $(TEST_AHELLO_M80)/test.out

View file

@ -14,7 +14,7 @@ MAIN:
RET
TXT_HELLO:
DB "N80: Hello MSX world...@ASM$"
DB "M80: Hello world...$"
END
DSEG

View file

@ -0,0 +1,29 @@
TEST_AHELLO_SDCC := $(PATH_BIN)/test/ahello-sdcc
BUILD_HELP += \\n\\t* $(TEST_AHELLO_SDCC)/ahello.com\\n\\t* test-ahello-sdcc-run\\n\\t* test-ahello-sdcc-assert
$(TEST_AHELLO_SDCC):
$(call mb_mkdir,$(TEST_AHELLO_SDCC))
$(call mb_package_emuctl,$(TEST_AHELLO_SDCC))
$(call mb_package_nextor,$(TEST_AHELLO_SDCC))
$(TEST_AHELLO_SDCC)/%.rel: test/ahello-sdcc/%.asm | $(TEST_AHELLO_SDCC)
$(call mb_compile_asm,$@,$<)
$(TEST_AHELLO_SDCC)/ahello.hex: $(TEST_AHELLO_SDCC)/ahello.rel
$(call mb_link_asm_dos,$(TEST_AHELLO_SDCC)/ahello.hex,$(TEST_AHELLO_SDCC)/ahello.rel)
$(TEST_AHELLO_SDCC)/ahello.com: $(TEST_AHELLO_SDCC)/ahello.hex
$(call mb_hex2bin,$(TEST_AHELLO_SDCC)/ahello.hex,$(TEST_AHELLO_SDCC)/ahello.com)
.PHONY: test-ahello-sdcc-run
test-ahello-sdcc-run: $(TEST_AHELLO_SDCC)/ahello.com
$(call mb_autoexec_open_gui,$(TEST_AHELLO_SDCC))
$(call mb_openmsx_dosctl,$(TEST_AHELLO_SDCC))
.PHONY: test-ahello-sdcc-assert
test-ahello-sdcc-assert: $(TEST_AHELLO_SDCC)/ahello.com
$(call mb_delete,$(TEST_AHELLO_SDCC)/test.out)
$(call mb_autoexec_cmd_test,$(TEST_AHELLO_SDCC),ahello > test.out)
$(call mb_openmsx_dosctl,$(TEST_AHELLO_SDCC))
grep "SDCC: Hello world..." $(TEST_AHELLO_SDCC)/test.out

View file

@ -31,11 +31,11 @@ PUT_TXT:
JR PUT_TXT
TXT_HELLO:
.str "SDCC: Hello MSX world..."
.str "SDCC: Hello2world..."
.db 0x1D
TXT_HELLO_SRC:
.str "@ASM."
.str "from asm."
.db 0x0D,0x0A
.db 0x1D