Compare commits

...

260 commits

Author SHA1 Message Date
Willem Cazander dabe1e1403 Silenced tmp file cleanup of build in MSXBUILD help system integration.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 8s
2024-07-19 17:59:54 +02:00
Willem Cazander f301b292bc Run single for better output.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 7s
2024-07-19 16:02:51 +02:00
Willem Cazander 01345cb5ff Added some machines and fixed c: drive boot disk support.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 3s
2024-07-19 02:12:39 +02:00
Willem Cazander bd88aeee20 Added function documention of xml prolog print function.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 3s
2024-07-19 00:40:25 +02:00
Willem Cazander 49971b4a61 MB_ENV is a deep variable option.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 3s
2024-07-19 00:32:43 +02:00
Willem Cazander da2d2fbbba Made echo name equals to others.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 3s
2024-07-19 00:21:06 +02:00
Willem Cazander 7e2c0f9559 Fixed typo after renamed of package files.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 3s
2024-07-19 00:18:21 +02:00
Willem Cazander 6eebd2df94 Moved matrix test to package-qa and added option to test on few
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 4s
machines.
2024-07-19 00:14:09 +02:00
Willem Cazander 33127af5db Faster variables for local project.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 3s
2024-07-18 23:51:04 +02:00
Willem Cazander ef95659858 Grouped matrix test per machine.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 3s
2024-07-18 23:50:09 +02:00
Willem Cazander a69052c3da Report cloned files copy count.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 4s
2024-07-18 22:26:15 +02:00
Willem Cazander e07a0e1b09 Made orphan cloned project use relative build folders.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 4s
2024-07-18 22:06:15 +02:00
Willem Cazander 3560cd7340 Added help for orphan modules and renamed manual assert to be equal as
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 4s
others.
2024-07-18 15:57:00 +02:00
Willem Cazander 35577362c2 Moved self doc to other file to use normal functions.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 5s
2024-07-18 13:25:50 +02:00
Willem Cazander 669c687b8b Added xml prolog print function.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 4s
2024-07-18 12:29:17 +02:00
Willem Cazander c965e2dbfa Renamed graph ordering chain variable.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 4s
2024-07-18 11:28:57 +02:00
Willem Cazander bc70369c37 Gave module proj auto parent cycle and removed that for assert clones.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 5s
2024-07-18 11:18:45 +02:00
Willem Cazander e9f91f1e96 Wrapped Nestor80 output in echo of parallel build synced lines.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 5s
2024-07-18 00:03:05 +02:00
Willem Cazander 628da07e75 Added TODO for LK80 which prints white space noise.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 4s
2024-07-17 23:55:41 +02:00
Willem Cazander 87e211cdf6 Improved BASIC alignment formatting output.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 4s
2024-07-17 23:45:56 +02:00
Willem Cazander 28764507cd Prefixed grep asserting build output messages.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 5s
2024-07-17 23:39:09 +02:00
Willem Cazander 30c32fe41d Fixed grep not failing on error.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 4s
2024-07-17 23:30:22 +02:00
Willem Cazander 360e12c9e9 Deleted left over.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 4s
2024-07-17 23:19:36 +02:00
Willem Cazander 661097a30b Converted make4msx to flow project. 2024-07-17 23:19:23 +02:00
Willem Cazander 646c92f46b Fixed module @test deps. 2024-07-17 23:17:34 +02:00
Willem Cazander a0141d962c Removed all escaping from help system.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 5s
2024-07-17 15:08:25 +02:00
Willem Cazander c8416c42e9 Removed last shell escaped quotes from XML firemake output.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 5s
2024-07-17 13:30:34 +02:00
Willem Cazander 3041dcfff2 Added full attribute escaping.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 5s
2024-07-17 13:24:47 +02:00
Willem Cazander 4e27098c3b Moved doc out of shell and made include 18 bit to remove binary.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 6s
2024-07-17 12:46:31 +02:00
Willem Cazander ba2cc20af4 Fixed save screen on exit.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 6s
2024-07-17 01:36:38 +02:00
Willem Cazander 05da6ba318 Fixed missed renames.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 7s
2024-07-17 01:33:54 +02:00
Willem Cazander 760ebffb6f Moved all quoting of docs to print functions.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 8s
2024-07-16 19:32:08 +02:00
Willem Cazander ff16e6b5cb Fixed i18n MB_I18N_MAKE_CHECK_VALUE_VALID doc.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 8s
2024-07-16 17:43:14 +02:00
Willem Cazander 5f25388ec7 Added missing i18n for 2 lastest check functions.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 8s
2024-07-16 17:36:22 +02:00
Willem Cazander 729023d32b Use internal make file function to empty an file.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 7s
2024-07-16 17:20:47 +02:00
Willem Cazander fbdbdd5b28 Fixed wordign.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 7s
2024-07-16 16:59:36 +02:00
Willem Cazander 66990665fa Converted to make style like "filter-out"
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 7s
2024-07-16 16:45:37 +02:00
Willem Cazander 0368032b98 Added internal make conventions.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 8s
2024-07-16 12:52:36 +02:00
Willem Cazander 10ae96dee0 Forgot adding dos2 boot package.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 11s
2024-07-15 03:50:13 +02:00
Willem Cazander ccbde4fbb0 Temp help fix.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 11s
2024-07-15 03:37:56 +02:00
Willem Cazander ecd7351192 Converted to documenting variable.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 11s
2024-07-15 02:49:21 +02:00
Willem Cazander 08b3e5b4c0 TEST QUAD CORE
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 1m39s
2024-07-15 02:43:04 +02:00
Willem Cazander 20fbbf1f65 BASIC TEST
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 1m48s
2024-07-15 02:40:21 +02:00
Willem Cazander ea0fdc839f With local targer.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 1m50s
2024-07-15 02:36:06 +02:00
Willem Cazander 1c6954e475 Test the full matrix in japanse.
Some checks failed
Run test asserts / Test-Asserts (push) Failing after 1s
2024-07-15 02:34:29 +02:00
Willem Cazander da0f1c4614 Added openMSX invocation counter.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 17s
2024-07-15 00:31:46 +02:00
Willem Cazander be64071e88 Added nestor80 example.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 18s
2024-07-15 00:12:42 +02:00
Willem Cazander 893c848d1d More colors.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 15s
2024-07-14 22:58:47 +02:00
Willem Cazander 1b799cfca2 Updated with new targets.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 14s
2024-07-14 22:47:57 +02:00
Willem Cazander 337f8666e4 Split help targets more.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 15s
2024-07-14 22:39:03 +02:00
Willem Cazander 2237ff1261 Refactored the layout of the bin folder.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 15s
2024-07-14 20:53:44 +02:00
Willem Cazander a1ae7248ea Moved example into own sub folder and prefixed all.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 15s
2024-07-14 18:36:59 +02:00
Willem Cazander de377cf420 Added code for cls.com and start of ver.com
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 16s
2024-07-14 16:43:39 +02:00
Willem Cazander 48de748ae8 Added workaround for async screenshots.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 18s
2024-07-14 14:38:32 +02:00
Willem Cazander ef798ffe5c Fixed run machine in flow.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 16s
2024-07-14 14:33:46 +02:00
Willem Cazander c13a26d6b5 Auto setup module flow and packages as targets.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -13s
2024-07-14 03:46:29 +02:00
Willem Cazander f0cccf2bb3 Fixed tree folder build structure support.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -12s
2024-07-13 16:34:19 +02:00
Willem Cazander 93f57d273d Fixed typo.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -12s
2024-07-13 15:43:47 +02:00
Willem Cazander cb8285cf72 Added make7 todo.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -12s
2024-07-13 15:42:04 +02:00
Willem Cazander 5ec5d0f718 Make5 uses IBM spec format for rules.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -12s
2024-07-13 15:16:17 +02:00
Willem Cazander 50a2187960 Updated docs a bit and added missing os functions and reordered them.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -13s
2024-07-13 15:05:01 +02:00
Willem Cazander df7b435b56 Added some unicode to imgui...
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -12s
2024-07-13 14:18:31 +02:00
Willem Cazander 040286cb27 Added extra fail check on reboot watchdog code.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -12s
2024-07-13 14:10:40 +02:00
Willem Cazander 9ee68c414a Errata: sometimes "err_boot" does not get canceled sometimes...
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -12s
2024-07-13 14:04:30 +02:00
Willem Cazander 5ac8c10b24 Updated make check copy paste doc lines.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -12s
2024-07-13 13:35:12 +02:00
Willem Cazander b78d3e5c1f Limited china whitespace to one folder.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -12s
2024-07-13 13:18:49 +02:00
Willem Cazander 321ffc5a8b Removed latin1 white space which most humans can't see, to copy/paste.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -13s
2024-07-13 13:01:17 +02:00
Willem Cazander e9e76ec28b Fixed tab error on old make versions.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -13s
2024-07-13 12:53:02 +02:00
Willem Cazander 21275aaded Split prolog to mv_env and msxbuild file.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -10s
2024-07-13 00:14:51 +02:00
Willem Cazander 0bf46a9ff3 Removed lib prefix for dist build and real path now we use openMSX home
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -11s
2024-07-12 22:35:33 +02:00
Willem Cazander 66693d9cbc China spaced and updated translations of include folders.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -11s
2024-07-12 20:39:53 +02:00
Willem Cazander ef47c49b43 Fixed binary phase test template.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -10s
2024-07-12 19:32:54 +02:00
Willem Cazander 7c8f4207c6 WIP more flow rename.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -11s
2024-07-12 19:30:19 +02:00
Willem Cazander 920de8a8b1 Fixed native prepare flow.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -10s
2024-07-12 19:11:32 +02:00
Willem Cazander ea1b6011da Updated old doc text.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -10s
2024-07-12 19:03:09 +02:00
Willem Cazander 689db1e026 Fixed native @all command.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -11s
2024-07-12 18:37:44 +02:00
Willem Cazander 2e1379ab6b Use native target for eskimos.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -11s
2024-07-12 18:34:10 +02:00
Willem Cazander 89e94e59f1 Fixed default goal to new all target.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -11s
2024-07-12 18:30:53 +02:00
Willem Cazander b67ba15457 WIP moving all flow to namespace.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -11s
2024-07-12 17:59:26 +02:00
Willem Cazander 74432311ed Renamed to remark of sub commands.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -9s
2024-07-11 16:05:28 +02:00
Willem Cazander 823513abe4 Reversed phase markers.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-07-11 00:03:25 +02:00
Willem Cazander d4fa903372 Run in BASIC i18n mode.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -6s
2024-07-10 23:59:50 +02:00
Willem Cazander b92f956ac9 Fixed empty language is oke.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -6s
2024-07-10 23:55:34 +02:00
Willem Cazander 2b4bb3e7ad Aligned BASIC output.
Some checks failed
Run test asserts / Test-Asserts (push) Failing after -19s
2024-07-10 23:42:50 +02:00
Willem Cazander 32e0cc4d3d Added unsupported i18n language code error.
Some checks failed
Run test asserts / Test-Asserts (push) Failing after -19s
2024-07-10 23:38:10 +02:00
Willem Cazander f7a0e097b6 Back to one prolog inc file.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-07-10 22:35:14 +02:00
Willem Cazander 6c21443439 Fixed fire hdd naming in openMSX.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-07-10 21:30:52 +02:00
Willem Cazander 4ab7869b66 Blue screen flicker is not fixed.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-07-10 21:17:24 +02:00
Willem Cazander 08b125d21d Tuned default colors to tone down a bit for hq video with dither.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-07-10 21:11:31 +02:00
Willem Cazander 6a58bfd9c5 Left over comment.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -6s
2024-07-10 20:49:04 +02:00
Willem Cazander 3d2443dc46 Moved openMSX and SDCC to default search path by default.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -6s
2024-07-10 20:48:32 +02:00
Willem Cazander bb31f0d186 Removed tabs from flow rules.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -6s
2024-07-10 20:24:02 +02:00
Willem Cazander 72c11a15c2 Added basic i18n support for eskimos.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-07-10 19:17:40 +02:00
Willem Cazander e619ac8de7 Moved and i18n the package archive function.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -6s
2024-07-10 17:48:15 +02:00
Willem Cazander ded142d36e Fixed autoexec boot and found bug in make in splitting folders.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -6s
2024-07-10 17:03:28 +02:00
Willem Cazander 8c07ce2b1a Cleaned os echo marker namespace.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-07-10 16:24:46 +02:00
Willem Cazander b274766a05 Doc typo2 fix.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-07-10 16:10:18 +02:00
Willem Cazander 97db36a611 Doc paste typo.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-07-10 16:08:07 +02:00
Willem Cazander a16516d934 WIP Tab removal, new debug mode, clean proj deps + add i18n commands.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -6s
2024-07-10 14:05:38 +02:00
Willem Cazander d7dc7b9644 Added i18n and updated jp i18n test text.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -3s
2024-07-08 04:23:37 +02:00
Willem Cazander 73d566d16d Moved phase deps to function registration.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -3s
2024-07-08 00:34:15 +02:00
Willem Cazander 5f26a4588d Added basic argument check on flow templates.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -3s
2024-07-07 23:45:25 +02:00
Willem Cazander 8a07c9de8d Moved all eval over own function for argument validation.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -2s
2024-07-07 23:26:47 +02:00
Willem Cazander 183b0908aa Removed builtin rules and left over fix.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -3s
2024-07-07 21:34:56 +02:00
Willem Cazander f258a92475 Cleaned doc api structure.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -2s
2024-07-07 20:53:06 +02:00
Willem Cazander 81264e3b6d Updated video part.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -2s
2024-07-07 18:16:00 +02:00
Willem Cazander 61dfda3dcc Moved video flow to flight controller.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -2s
2024-07-07 18:13:48 +02:00
Willem Cazander 5295b36714 Now using dutch as source language.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -2s
2024-07-07 17:49:29 +02:00
Willem Cazander e40021dfb8 Added verbose support for eskimo Inuktitut
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -2s
2024-07-07 17:29:34 +02:00
Willem Cazander e1178ed579 Check unicode char warning.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -2s
2024-07-07 17:20:31 +02:00
Willem Cazander 76cbe51681 Small space fixes.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -1s
2024-07-07 16:41:48 +02:00
Willem Cazander 349120b8f5 Moved os function to os and finished wrapping all calls.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -2s
2024-07-07 16:33:49 +02:00
Willem Cazander 4523aa26eb Renamed to remove unix naming from silent openMSX hack.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -1s
2024-07-07 15:02:36 +02:00
Willem Cazander ffd7d845ff Test fully silent output.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -1s
2024-07-07 14:49:31 +02:00
Willem Cazander d8319f15f7 Added dist proces dep and allignment of text.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -2s
2024-07-07 14:48:12 +02:00
Willem Cazander e7f1b75a1f Moved run phase into firemake run target help system.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -1s
2024-07-07 14:29:32 +02:00
Willem Cazander f91840f1cc Add verbose code to read verbose flags.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -1s
2024-07-07 05:38:57 +02:00
Willem Cazander 6f29502ab9 Test silent build log.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -1s
2024-07-07 04:53:18 +02:00
Willem Cazander e0b2d90980 Fixed doc typos.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -1s
2024-07-07 04:47:37 +02:00
Willem Cazander f7324721c2 Added project phases and flow generators.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -1s
2024-07-07 04:33:03 +02:00
Willem Cazander 51a3276e39 Fixed white space.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -1s
2024-07-06 13:11:02 +02:00
Willem Cazander e3b9df25e9 Implemented mb_make_call_eval function.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -1s
2024-07-06 13:10:46 +02:00
Willem Cazander 1b2e6fbe99 Replace some ascii magic keywords for modern name with human letters.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -1s
2024-07-06 12:34:48 +02:00
Willem Cazander d2e5711d6a Also remove guile support.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -1s
2024-07-06 12:29:38 +02:00
Willem Cazander f956f0a324 Added make backlog item.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -1s
2024-07-06 12:15:28 +02:00
Willem Cazander 678f81ba6b Added openMSX backlog item.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 1s
2024-07-06 01:20:42 +02:00
Willem Cazander 8a18cb494d Moved all file convert function to namespace.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 0s
2024-07-06 01:09:59 +02:00
Willem Cazander fd59abc810 Added native os command echo variable command documention.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 0s
2024-07-06 00:59:01 +02:00
Willem Cazander e015f5bbb1 Move native echo to os commands.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 0s
2024-07-06 00:57:03 +02:00
Willem Cazander 71afe8278f No colors in ci yet.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 0s
2024-07-06 00:46:59 +02:00
Willem Cazander 00c0d35283 Test is ci supports colors.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 0s
2024-07-06 00:45:44 +02:00
Willem Cazander 23c9fa22ed Fixed escaping documentation outputs.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 0s
2024-07-06 00:38:01 +02:00
Willem Cazander 00ae20a61e Added optional project name to help system.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 0s
2024-07-06 00:23:16 +02:00
Willem Cazander f36aae1917 Move native os command to own file.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 0s
2024-07-06 00:11:54 +02:00
Willem Cazander 9a545d3c3a Search module only in src.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 0s
2024-07-05 23:32:01 +02:00
Willem Cazander 8760a8dd98 Updated help mojo.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 0s
2024-07-05 21:20:14 +02:00
Willem Cazander cb9b0aa733 Removed old char leftovers.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 1s
2024-07-05 21:05:55 +02:00
Willem Cazander a71f283d1d Fixed openMSX export and WIP adding first flow generators.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 0s
2024-07-05 20:43:18 +02:00
Willem Cazander 9a0b0cbdb2 Fixed startup note.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 5s
2024-07-03 13:52:33 +02:00
Willem Cazander 4e62282839 Startup note test 6.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 4s
2024-07-03 13:51:28 +02:00
Willem Cazander 4b80dd6c16 Test startup note 5.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 5s
2024-07-03 13:47:15 +02:00
Willem Cazander aa3ca21d6d Test startup note 4.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 4s
2024-07-03 13:45:57 +02:00
Willem Cazander 2ade7f171d Test startup note 3.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 4s
2024-07-03 13:44:55 +02:00
Willem Cazander c091494790 Test startup note2.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 5s
2024-07-03 13:44:08 +02:00
Willem Cazander 9d493487de Startup note test.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 4s
2024-07-03 13:43:12 +02:00
Willem Cazander ca96d11dbe Vars test completed as success.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 1s
2024-07-03 13:39:19 +02:00
Willem Cazander b536df32a0 Test vars
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 2s
2024-07-03 13:34:50 +02:00
Willem Cazander e48337d6ef Allow multiple vars to be embedded.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 1s
2024-07-03 13:30:35 +02:00
Willem Cazander 6be8161ff4 Added msxdos env vars + prompt override.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 1s
2024-07-03 11:52:43 +02:00
Willem Cazander f4197c1a14 Improved plug support and added plug result messages.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 2s
2024-07-03 00:38:25 +02:00
Willem Cazander ae4b97dbeb Removed show left over.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 3s
2024-07-03 00:14:02 +02:00
Willem Cazander 75defafde9 Improved manual run speed and made remarks correct.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 3s
2024-07-03 00:04:21 +02:00
Willem Cazander 932d423544 Converted to dubble white spaced code format.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 3s
2024-07-02 23:18:20 +02:00
Willem Cazander a0efbc4c29 Moved to dynamic default in variable doc function.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 3s
2024-07-02 23:10:13 +02:00
Willem Cazander 93cb9fd5d6 Small fixed and added color options for different things.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 3s
2024-07-02 22:56:17 +02:00
Willem Cazander 0ed79edd77 Shorted failure ids for no wrap on 40 column mode.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 3s
2024-07-02 21:04:16 +02:00
Willem Cazander 055a8f3b36 Added run_gui forever documentation keyword in the makefile.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 3s
2024-07-02 18:22:13 +02:00
Willem Cazander aaa62970d0 Renamed show gui to run gui.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 3s
2024-07-02 18:20:46 +02:00
Willem Cazander e7be4296c5 Added missing deps.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 2s
2024-07-02 16:56:21 +02:00
Willem Cazander a84972e960 Done msxpipe build steps.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 3s
2024-07-02 16:31:42 +02:00
Willem Cazander 8d84a1e65c Fixed mode 80 on msx1 and cleaned boot messages.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 3s
2024-07-02 15:34:26 +02:00
Willem Cazander da35583307 White space and added doc for autoexec.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 3s
2024-07-02 04:11:13 +02:00
Willem Cazander 65b40a74cb Renamed dos packages and new help system.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 5s
2024-07-02 03:27:14 +02:00
Willem Cazander de1dc7695d SDL is removed from openMSX
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 4s
2024-07-01 22:51:26 +02:00
Willem Cazander a6d8d1170b Added backlog sync flag for export to not overwrite equal files.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 4s
2024-07-01 22:40:06 +02:00
Willem Cazander 3a471f9f45 Doc typo fix.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -11s
2024-07-01 11:58:36 +02:00
Willem Cazander 4fc2cae2ea Added vdp color optional arguments and small doc chars.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -11s
2024-07-01 11:57:30 +02:00
Willem Cazander 59ddde5bec Rename to bdos compiler step.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -10s
2024-07-01 03:16:43 +02:00
Willem Cazander 43c9649712 Updated readme.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -10s
2024-07-01 03:15:31 +02:00
Willem Cazander 12c019c9d6 Added reboot message.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -10s
2024-07-01 01:12:51 +02:00
Willem Cazander 1b8e8b8590 Don't redirect in if stmt.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -10s
2024-07-01 00:57:03 +02:00
Willem Cazander 125e59d5f0 Added some dir to debug make-on-msx build.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -10s
2024-07-01 00:37:02 +02:00
Willem Cazander 5d90653d94 make in make small cleanup.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -10s
2024-06-30 23:49:17 +02:00
Willem Cazander 1a0e2233d7 Added assert for make running on the MSX.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -10s
2024-06-30 23:35:04 +02:00
Willem Cazander 779138daca Fixed missed renames.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -10s
2024-06-30 23:24:15 +02:00
Willem Cazander 6fd9833967 Added extra gui msg after reboot of machine.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -10s
2024-06-30 16:23:47 +02:00
Willem Cazander 7734175826 Added vdp color overrides.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -10s
2024-06-30 16:13:44 +02:00
Willem Cazander d23db7734b Removed unneeded dir/w 2024-06-30 16:12:01 +02:00
Willem Cazander 844284e185 Fixed shutdown message.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -9s
2024-06-30 15:20:03 +02:00
Willem Cazander 6429459d72 Named self managed hdd device and started with docs.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -10s
2024-06-30 14:55:48 +02:00
Willem Cazander c37fa07f0b Renamed boot hdd to fire hdd.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -10s
2024-06-30 14:23:28 +02:00
Willem Cazander 94f532ffa9 Moved normal exit to headless control script.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -9s
2024-06-30 13:56:18 +02:00
Willem Cazander ab02b54175 Renamed tcl scritps.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -10s
2024-06-30 13:52:33 +02:00
Willem Cazander c9b78d57c4 Fixed HX-21 rom target name.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -9s
2024-06-30 12:50:51 +02:00
Willem Cazander 3cb8d3f981 Fixed msxhub machine override.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -9s
2024-06-30 05:51:26 +02:00
Willem Cazander d171b1b5fb Fixed missing root path.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -9s
2024-06-30 05:32:02 +02:00
Willem Cazander 8680c88c29 Fixed white space.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -9s
2024-06-30 05:06:56 +02:00
Willem Cazander 0aecfa1ba3 Moved help to targets section.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -10s
2024-06-30 05:05:20 +02:00
Willem Cazander 07b5a6235e Fixed listing.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -10s
2024-06-30 04:47:57 +02:00
Willem Cazander b99ad11836 Reversed dist archive arguments.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -9s
2024-06-30 04:37:21 +02:00
Willem Cazander f6cb4a1f9b Moved video concat to function.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -9s
2024-06-30 04:34:07 +02:00
Willem Cazander 97655c2f1c Removed one empty line.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -9s
2024-06-30 04:14:46 +02:00
Willem Cazander 6f677b6c43 Moved asserts to remove copy of mofified files after assert.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -9s
2024-06-30 04:07:10 +02:00
Willem Cazander b175f499d4 Removed omsxctl cache. 2024-06-30 04:06:21 +02:00
Willem Cazander 6b9e627f2b Search includes from variable.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -9s
2024-06-30 02:44:32 +02:00
Willem Cazander 56e74ee085 Converted local project to demo structure.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -8s
2024-06-30 02:42:42 +02:00
Willem Cazander fd67884bee Small doc update.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -8s
2024-06-30 01:48:05 +02:00
Willem Cazander f5554b818f Set default to GL to fix screenshot issues.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -9s
2024-06-30 01:20:22 +02:00
Willem Cazander d666e3e80e Move path to path.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -8s
2024-06-30 00:49:23 +02:00
Willem Cazander 8f26443640 Fixed video order.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -9s
2024-06-30 00:33:08 +02:00
Willem Cazander f786d2b9d7 Fixed SDCC function argument order.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -8s
2024-06-30 00:12:21 +02:00
Willem Cazander 6bc54cb628 Added test for file listing in utils.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -8s
2024-06-29 23:42:02 +02:00
Willem Cazander 8190980751 Updated readme
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-06-29 16:08:40 +02:00
Willem Cazander 8b89c47824 Added dir/w output.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -8s
2024-06-29 16:04:44 +02:00
Willem Cazander c1a52773ac Added flight recorder and more boot messages.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -8s
2024-06-29 15:47:52 +02:00
Willem Cazander 97088650d4 Split headless and renderer vars.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-06-29 05:07:15 +02:00
Willem Cazander 807b32f92c Moves joyport control to autoexec.bat to control per test.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-06-29 04:46:30 +02:00
Willem Cazander f0f91a2c86 Added zd and make packages.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-06-29 03:52:54 +02:00
Willem Cazander 30d5387da5 Added konpass package.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-06-29 03:42:46 +02:00
Willem Cazander d9a743cbc0 Added wbass2 package.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-06-29 03:36:55 +02:00
Willem Cazander 5a97dc89e7 Using open gui optional command + fixed all echo escaping.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-06-29 03:08:21 +02:00
Willem Cazander be6e4c5aa6 Added default dir/w to msxhub run target.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-06-29 02:59:58 +02:00
Willem Cazander 598d673d91 Enabled auto path to A:\UTILS + added test for msxhub packages.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 11s
2024-06-29 02:49:16 +02:00
Willem Cazander 92b8aa9a06 Removed duplicate user data now we use openMSX home override.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -8s
2024-06-29 01:26:42 +02:00
Willem Cazander fdbe0eac7e Added missing package.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -8s
2024-06-29 01:25:39 +02:00
Willem Cazander a8eb4a07f6 Fixed instant boot console run.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -8s
2024-06-29 01:25:13 +02:00
Willem Cazander a48701563e Added dos2 tools package.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-06-29 01:01:17 +02:00
Willem Cazander 5fc96f8f73 Fixed casing bug in os detection wildcard.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-06-29 00:52:56 +02:00
Willem Cazander 5cf75460a9 Package name typo.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-06-29 00:41:35 +02:00
Willem Cazander 74a29e889e Auto install nextor if no dos is given by user.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-06-29 00:40:21 +02:00
Willem Cazander 72e4e916bf Allow for per process machine override without clean.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -8s
2024-06-28 23:38:05 +02:00
Willem Cazander b0bbb7ff1c Added autoexec append safe test/cmd timeout and/or exit code overrride.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-06-28 23:27:47 +02:00
Willem Cazander a443040dff Make ffmpeg silent and overwriting.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-06-28 23:17:18 +02:00
Willem Cazander 73e8b2e75b Fixed help
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-06-28 22:55:22 +02:00
Willem Cazander 82cb218bef Moved all openMSX data to local bin to enable video recorder.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-06-28 22:29:37 +02:00
Willem Cazander 33ef6ed712 Fixed greater then escape to make echo work.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-06-28 22:28:31 +02:00
Willem Cazander d2a58e86b7 Added exit on missing renderer type.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-06-28 19:10:24 +02:00
Willem Cazander 2896fa31bf Cleaned machine boot messages.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-06-28 19:04:15 +02:00
Willem Cazander dc8b8a535e Fixed message for mode 40 output.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -7s
2024-06-28 18:52:59 +02:00
Willem Cazander 5051de99fe Fixed reboot watchdog fail safe. 2024-06-28 18:17:54 +02:00
Willem Cazander 40fe6ae015 Added errata
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -6s
2024-06-28 14:48:34 +02:00
Willem Cazander 8de341a9f8 Docs added msxrom and moved sdcc as last feature.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -6s
2024-06-28 14:45:43 +02:00
Willem Cazander 36d40dbbdd Shorted video recorder env var.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -6s
2024-06-28 14:31:06 +02:00
Willem Cazander 857cc43fa5 Fixed sdcc asm compiler make variable names.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -6s
2024-06-28 14:26:48 +02:00
Willem Cazander 548035a643 Prefixed correctly and moved packages to msxhub
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -6s
2024-06-28 14:20:42 +02:00
Willem Cazander 1087c22b16 Added JP support and one 2+
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -5s
2024-06-28 02:12:44 +02:00
Willem Cazander b2a9930698 Added machines and reboot command.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -5s
2024-06-28 01:51:59 +02:00
Willem Cazander b4d4fad185 Split openMSX layout from artifacts and added video recorder.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -5s
2024-06-27 20:14:23 +02:00
Willem Cazander dd634833ef Fixed missing settings.xml
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -5s
2024-06-27 19:16:26 +02:00
Willem Cazander 80f751cfea Fixed dos1 and msx1 runs.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -4s
2024-06-27 19:09:38 +02:00
Willem Cazander 567f91be78 WIP Converted to per process openMSX share folder.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 2s
2024-06-27 16:58:21 +02:00
Willem Cazander d653e900f0 Moved settings save on exit false to settings override.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -3s
2024-06-27 00:02:36 +02:00
Willem Cazander 6736f35076 Removed TCL audio override as it can't enable alsa.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -3s
2024-06-26 23:57:42 +02:00
Willem Cazander 83402abc99 Test setting sound driver disable.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -3s
2024-06-26 23:42:15 +02:00
Willem Cazander 7a2abf6418 Added SOUND_DRIVER documentation.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -2s
2024-06-26 23:27:29 +02:00
Willem Cazander 158cb6a887 Disable sound before power on.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -2s
2024-06-26 23:15:09 +02:00
Willem Cazander c9e5ec0b93 test sound argument.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -2s
2024-06-26 23:14:15 +02:00
Willem Cazander 945485062d Removed boot beep of MSX.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -2s
2024-06-26 23:09:49 +02:00
Willem Cazander 584b9ecf5e Updated build speeds.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 0s
2024-06-26 03:48:06 +02:00
Willem Cazander 83caa0ac74 Fixed rename of test output.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 0s
2024-06-26 03:28:33 +02:00
Willem Cazander 54f8016ead Used proper make for qa copy.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 0s
2024-06-26 03:21:06 +02:00
Willem Cazander 5562fe0d7a Added dos1 and dos2 asserts of hello worlds.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 1s
2024-06-26 02:26:48 +02:00
Willem Cazander e6301e9d48 Added newline and removed make dialect for env override.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 0s
2024-06-25 16:04:17 +02:00
Willem Cazander 4bf712dfe0 Updated project ignores.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 0s
2024-06-25 16:02:38 +02:00
Willem Cazander 230331d9a5 Cleanup of path variables.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 0s
2024-06-25 15:57:13 +02:00
Willem Cazander 5ce923b3fb Used MB_CACHE to store omsxctl
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 0s
2024-06-25 15:46:31 +02:00
Willem Cazander 717aaaf83e Force empty settings.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 0s
2024-06-25 15:36:30 +02:00
Willem Cazander ce24dbc406 typo on comment
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 0s
2024-06-25 15:30:11 +02:00
Willem Cazander df3cc4dfbf Moved scripts back to version control.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 2s
2024-06-25 15:24:04 +02:00
Willem Cazander 5afc77eb38 Moved openmsx args to inline args.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 0s
2024-06-25 14:52:08 +02:00
88 changed files with 4301 additions and 835 deletions

View file

@ -4,6 +4,15 @@ on:
branches: branches:
- master - master
pull_request: 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: jobs:
Test-Asserts: Test-Asserts:
runs-on: self-hosted runs-on: self-hosted
@ -11,4 +20,4 @@ jobs:
- name: Check out - name: Check out
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Run asserts - name: Run asserts
run: make assert-all run: make -j1 @ALL

View file

@ -1,15 +0,0 @@
name: Run tests parallel
on:
pull_request:
types: [opened, reopened, synchronize]
branches:
- test_ci_parallel_build
workflow_dispatch:
jobs:
Test-Asserts-Parallel:
runs-on: self-hosted
steps:
- name: Check out
uses: actions/checkout@v3
- name: Run asserts parallel
run: make -j2 assert-all

5
.gitignore vendored
View file

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

View file

@ -1,26 +1,26 @@
#
rwildcard = $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d)) # Module based project makefile to self build msxbuild.
INC_TEST := $(call rwildcard, test, */0module.mk) #
PATH_BIN := bin PATH_BIN := bin
BUILD_ALL := "Use 'make help' for possible targets." PATH_SRC := src
BUILD_HELP := "Use one of the following build targets;" PATH_MSXBUILD ?= lib
MB_PROJ_META_GROUP_ID := love.distributedrebirth.msx4.firemake.make4.msxbuild
.SUFFIXES: MB_PROJ_META_ARTIFACT_ID := msxbuild
.PHONY: all MB_PROJ_META_VERSION := 1.0.0
all: MB_PROJ_META_NAME := MSXBUILD
@echo $(BUILD_ALL) MB_PROJ_META_DESCRIPTION := Library to use openMSX in build pipeline.
MB_PROJ_META_WEBSITE := https://code.distributedrebirth.love/arch-msx/msxbuild
BUILD_HELP += \\n\\t* help .RECIPEPREFIX := _
.PHONY: help .DEFAULT_GOAL := @all
help:
@echo $(BUILD_HELP)
BUILD_HELP += \\n\\t* clean
.PHONY: clean
clean:
$(call mb_clean,$(PATH_BIN))
-include Makelocal.mk -include Makelocal.mk
MB_OPENMSX_PATH_BIN ?= $(PATH_BIN) include $(PATH_MSXBUILD)/msxbuild.mk
include lib/make/msxbuild.mk $(call mb-make-call,mb-setup-default,$(PATH_BIN),$(PATH_SRC))
include $(INC_TEST)
# 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

View file

@ -1,8 +0,0 @@
# 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/

306
README.md
View file

@ -2,121 +2,245 @@
Utils to use openMSX in build pipelines. Utils to use openMSX in build pipelines.
You can use these scripts as-is. But as always, feel free to extend it You can use these scripts as-is. the files in the `lib` are all you need.
for your specific needs or contribute a fix or feature. 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 ## Features
* SDCC msx build steps. * Allows parallel headless openMSX build pipeline
* Allows headless openMSX buildpipe. * openMSX safe exit failure guards
* openMSX safe exit failure guards. * Automatic disk image import + export per build step
* Automatic disk image import + export per build step.
* Downloads and caches resources from msxhub.com * 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 ## Dependencies
* make * make + wget + tar + awk + grep + dos2unix
* openmsx
* sdcc * sdcc
* wget * openmsx
* unix2dos * ffmpeg
* rsync
For debian use; For debian use;
apt-get install make openmsx wget dos2unix sdcc apt-get install make wget tar gawk grep dos2unix sdcc openmsx ffmpeg rsync
## Usage ## Install Classic
Include the `lib/make/msxbuild.mk` file from your Makefile. TODO
And override the required paths;
* PATH_SDCC ?= /usr/bin ## Install Docker
* PATH_UNIX2DOS ?= /usr/bin
* PATH_OPENMSX ?= /usr/bin TODO
* PATH_MSXBUILD ?= /opt/msxbuild
## 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.
## Rule Writing
TODO: Link to example project on github a few ways to compile and test hello.
## 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
Then build result based compile rules see an example in; `test/ahello-m80/0module.mk`
When you want to see whats happening do a debug run; When you want to see whats happening do a debug run;
normal run; normal run;
time make clean assert-all time make
real 0m1.938s real 0m8.058s
debug run; debug run at 11 Mhz;
time MB_OPENMSX_RENDERER=SDL MB_OPENMSX_THROTTLE=ON make clean assert-all time VERBOSE=on DEBUG=on MB_OPENMSX_HEADLESS=off MB_OPENMSX_THROTTLE=on make
real 0m32.977s real 2m34.071s
debug run real msx speed; debug run real msx speed;
time MB_OPENMSX_RENDERER=SDL MB_OPENMSX_THROTTLE=ON MB_OPENMSX_SPEED=100 make clean assert-all time VERBOSE=on DEBUG=on MB_OPENMSX_HEADLESS=off MB_OPENMSX_THROTTLE=on MB_OPENMSX_SPEED=100 make
real 1m44.184s 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
## Functions ## Internal conventions make
Current set is WIP. * A library MUST use variables for indenting, zero tab space or white space
* Internal things MUST start with an under score
* mb_compile_asm * Variables MUST be in upper case
* mb_link_asm_lib * Variables MUST use an under score as separator
* mb_link_asm * File targets MUST be in a relative binary build folder
* mb_link_asm_0000 = call mb_link_asm,$(1),$(2),0x0000 * None file targets MUST start with at-sign with optional build folder prefix
* mb_link_asm_0100 * None file targets MUST separate words with an hyphen
* mb_link_asm_1000 * Define eval flow MUST start with two underscores
* mb_link_asm_4000 * Eval flow MUST be injected by a function
* mb_link_asm_8000 * Eval flow MUST have an preamble/restore of dynamic white space
* mb_link_asm_C000 * Functions MUST call function with mb-make-call for DEBUG tracing
* mb_link_asm_dos = alias for mb_link_asm_0100 * Functions MUST be in lower case
* mb_hex2bin * Functions MUST separate words with an hyphen
* mb_openmsx_dosctl
* mb_msxhub_file
* mb_package_emuctl
* 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 ## 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 * Doesn't work on windows
* Missing C and mixed support * TODO: mbboot80+add arg prefix and move to other repro + msxhub package
* If no SDL than screenshot in fail_after doesn't work * TODO: Missing C and mixed support
* TODO: Use TCL for BASIC/ASM/C lcov (Cobertura) code coverage
## 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

BIN
lib/emuctl/mbboot80.com Normal file

Binary file not shown.

2
lib/emuctl/reboot.bat Normal file
View file

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

View file

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

View file

@ -1,75 +0,0 @@
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

View file

@ -1,42 +0,0 @@
# 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

View file

@ -1,59 +0,0 @@
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

141
lib/make/mb_env.mk Normal file
View file

@ -0,0 +1,141 @@
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

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

@ -0,0 +1,88 @@
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>)

View file

@ -1,22 +0,0 @@
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

View file

@ -1,55 +0,0 @@
MB_OPENMSX_PATH_BIN ?= bin
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_SLOT ?= -ext slotexpander
MB_OPENMSX_EXTRA_MEM ?= -ext ram4mb
MB_OPENMSX_EXTRA_HDD ?= -ext ide-nextor
MB_OPENMSX_HDD_SIZE ?= 4m
MB_OPENMSX_JOYPORTA ?=
MB_OPENMSX_JOYPORTB ?=
MB_OPENMSX_SCALE_FACTOR ?= 3
MB_OPENMSX_THROTTLE ?= off
MB_OPENMSX_RENDERER ?=
MB_OPENMSX_SCRIPTS ?= ~/.openMSX/share/scripts
MB_OPENMSX_SAVE_ON_EXIT ?= off
MB_OPENMSX_ARGS = \
-machine $(MB_OPENMSX_MACHINE) \
$(MB_OPENMSX_EXTRA_SLOT) \
$(MB_OPENMSX_EXTRA_HDD) \
$(MB_OPENMSX_EXTRA_MEM) \
$(MB_OPENMSX_EXTS)
define _mb_openmsx_setup
$(call mb_msxhub_file,$(MB_OPENMSX_SCRIPTS),OMSXCTL/1.0-1/get/OMSXCTL/omsxctl.tcl)
$(call mb_msxhub_file,$(MB_OPENMSX_SCRIPTS),OMSXCTL/1.0-1/get/OMSXCTL/omsxctl.com)
$(if $(wildcard $(MB_OPENMSX_SCRIPTS)/boot_env.tcl),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/boot_env.tcl,$(MB_OPENMSX_SCRIPTS)))
$(if $(wildcard $(MB_OPENMSX_SCRIPTS)/boot_hdd.tcl),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/boot_hdd.tcl,$(MB_OPENMSX_SCRIPTS)))
$(if $(wildcard $(MB_OPENMSX_SCRIPTS)/fail_after.tcl),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/fail_after.tcl,$(MB_OPENMSX_SCRIPTS)))
$(if $(wildcard ~/.openMSX/share/extensions/ide-nextor.xml),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/ide-nextor.xml,~/.openMSX/share/extensions/))
endef
define _mb_openmsx_run
@echo === Running openMSX
FAIL_AFTER_BOOT=$(MB_OPENMSX_BOOT_TIMEOUT) \
FAIL_AFTER_PATH=$(MB_OPENMSX_PATH_BIN) \
BOOT_HDD_PATH="$(1)" \
BOOT_HDD_SIZE=$(MB_OPENMSX_HDD_SIZE) \
BOOT_HDD_IMAGE="$(MB_OPENMSX_PATH_BIN)/dsk-$(notdir $(1)).img" \
JOYPORTA=$(MB_OPENMSX_JOYPORTA) \
JOYPORTB=$(MB_OPENMSX_JOYPORTB) \
SCALE_FACTOR=$(MB_OPENMSX_SCALE_FACTOR) \
SPEED=$(MB_OPENMSX_SPEED) \
SAVE_SETTINGS_ON_EXIT=$(MB_OPENMSX_SAVE_ON_EXIT) \
RENDERER=$(MB_OPENMSX_RENDERER) \
THROTTLE=$(MB_OPENMSX_THROTTLE) \
$(PATH_OPENMSX)/openmsx $(MB_OPENMSX_ARGS) -control stdio < $(PATH_MSXBUILD_REAL)/lib/openmsx/boot_stdio.xml
endef
define mb_openmsx_dosctl
$(if $(wildcard $(MB_OPENMSX_SCRIPTS)/omsxctl.tcl),,$(call _mb_openmsx_setup))
$(if $(wildcard $(1)/omsxctl.com),,$(call mb_copy,$(MB_OPENMSX_SCRIPTS)/omsxctl.com,$(1)))
$(call _mb_openmsx_run,$(1))
endef

View file

@ -1,99 +0,0 @@
# 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
define mb_package_nextor
$(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

View file

@ -1,18 +0,0 @@
#
# 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

@ -0,0 +1,114 @@
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

@ -0,0 +1,43 @@
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

@ -0,0 +1,21 @@
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

@ -0,0 +1,52 @@
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

@ -0,0 +1,53 @@
# 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

@ -0,0 +1,18 @@
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

@ -0,0 +1,21 @@
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

@ -0,0 +1,62 @@
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

@ -0,0 +1,26 @@
#
# 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

@ -0,0 +1,16 @@
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

@ -0,0 +1,75 @@
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

@ -0,0 +1,127 @@
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

@ -0,0 +1,7 @@
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

@ -0,0 +1,99 @@
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>)

169
lib/make/ i18n/mb_i18n.mk Normal file
View file

@ -0,0 +1,169 @@
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

@ -0,0 +1,57 @@
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

@ -0,0 +1,45 @@
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

@ -0,0 +1,56 @@
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

@ -0,0 +1,180 @@
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

@ -0,0 +1,246 @@
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

@ -0,0 +1,65 @@
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

@ -0,0 +1,280 @@
# 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

@ -0,0 +1,128 @@
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

@ -0,0 +1,63 @@
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

@ -0,0 +1,45 @@
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

@ -0,0 +1,158 @@
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

@ -0,0 +1,40 @@
# 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

@ -0,0 +1,29 @@
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

@ -0,0 +1,35 @@
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

@ -0,0 +1,337 @@
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

@ -0,0 +1,29 @@
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>)

109
lib/msxbuild.mk Normal file
View file

@ -0,0 +1,109 @@
#
# 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>)

View file

@ -1,75 +0,0 @@
# 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
}
}

View file

@ -1,130 +0,0 @@
# 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

@ -1,7 +0,0 @@
<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,11 +2,11 @@
<!DOCTYPE msxconfig SYSTEM 'msxconfig2.dtd'> <!DOCTYPE msxconfig SYSTEM 'msxconfig2.dtd'>
<msxconfig> <msxconfig>
<info> <info>
<name>Sunrise ATA-IDE Nextor</name> <name>Fire HDD ©Δ∞ 仙上主天</name>
<manufacturer>Sunrise</manufacturer> <manufacturer>MSXBUILD للَّٰهِilLצسُو</manufacturer>
<code /> <code />
<release_year>2024</release_year> <release_year>2024</release_year>
<description>ATA-IDE interface with hard disk.</description> <description>Sunrise IDE with lastest nextor.</description>
<type>external hard disk</type> <type>external hard disk</type>
</info> </info>
<devices> <devices>
@ -19,7 +19,7 @@
</rom> </rom>
<master> <master>
<type>IDEHD</type> <type>IDEHD</type>
<filename>hd.dsk</filename> <filename>image-hda.dsk</filename>
</master> </master>
</SunriseIDE> </SunriseIDE>
</secondary> </secondary>

View file

@ -0,0 +1,55 @@
# 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

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

View file

@ -0,0 +1,128 @@
# 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

@ -0,0 +1,94 @@
# 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

@ -0,0 +1,71 @@
# 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

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

3
lib/openmsx/stdio.xml Normal file
View file

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

View file

@ -0,0 +1,55 @@
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

@ -0,0 +1,26 @@
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

@ -0,0 +1,21 @@
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

@ -0,0 +1,33 @@
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

@ -0,0 +1,36 @@
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

@ -0,0 +1,42 @@
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

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

View file

@ -0,0 +1,9 @@
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

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

View file

@ -0,0 +1,54 @@
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

@ -0,0 +1,31 @@
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

@ -0,0 +1,20 @@
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

@ -0,0 +1,14 @@
# 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

@ -0,0 +1,9 @@
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

@ -0,0 +1,20 @@
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 "N80: Hello MSX world...@ASM$"
END
DSEG

View file

@ -0,0 +1,9 @@
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

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

View file

@ -0,0 +1,39 @@
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

@ -0,0 +1,20 @@
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

@ -0,0 +1,39 @@
.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

@ -0,0 +1,22 @@
.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

@ -0,0 +1,49 @@
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

@ -0,0 +1,14 @@
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

@ -0,0 +1,51 @@
.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

View file

@ -1,9 +0,0 @@
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

@ -1,36 +0,0 @@
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

@ -1,29 +0,0 @@
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