The standard RETRO system is built using the Nga VM and a
copy of the image exported as a C source file. I sometimes
prefer to have these as a single file for easier sharing. This
is a quick little tool to combine them.
Output will be written to stdout.
Include compilation instructions and enable i/o devices.
~~~'/*_Build_with_`cc_-lm_-O2_retro-unix.c_-o_retro`_*/ s:put nl nl
'#define_BIT64 s:put nl
} [ '#define_ENABLE\_%s s:format s:put nl ] a:for-each nl
Then extract and generate the single file source.
#10 + s:chop 'vm/nga-c/ s:prepend here swap file:slurp here s:put ;
dup '#include_" s:begins-with?
[ include-file ] [ s:put nl ] choose ;
'vm/nga-c/retro.c [ source:line ] file:for-each-line ;