Just some comments on the non-configury questions:
Also, I'd name the files slightly differently, something like
w32-utf8.*, to make their relation to Windows more evident.
Note that in the patch, these files are put under the w32 dir:
src/w32/utf8.manifest
src/w32/utf8.rc
so their relation to Windows is already showing from that.
Most of the files under src/w32/ don't repeat the 'w32' in their
name, but some do, so I can see this going either way.
Finally, would we want to install the manifest file together with the
executable, and if so, should its installation name be
make.exe.manifest?
I think the answer here is 'no'.
The manifest file gets embedded in the executable, so it is
literally part of it, so there is no need to have it next to it as
a separate file. In fact, that is the strong point of this approach,
that the manifest gets embedded at build time so the user
doesn't know or see anything about it and Make just works
in UTF-8 encoding.
Having embedded the manifest in the executable, I am not
even sure if it's a good idea to repeat the manifest by having
it next to the executable as a separate file (I guess Windows
just ends up ignoring it anyway).
On the remaining work:
I have started to do some work on bringing the changes
over to build_w32.bat. This is much simpler than the
configure approach so it shouldn't take long, I do have a
couple general questions though:
1) In build_w32.bat, there are 3 compilers supported:
MSVC, gcc and tcc (Tiny C Compiler). I can see the changes
working for MSVC and gcc, but what about tcc?
AFAICT, it has no resource compiler to compile the .rc file
to an object file. It can link against the object file though,
assuming that it was produced by windres in the first place:
But if one has tcc on its own and no windres, it doesn't
seem possible to do it, so we need to decide if we are
still going to build but without UTF-8 support, or error
out, or try to find windres for compiling the .rc file and
still use tcc for the rest (kind of a mixed approach).
2) From README.W32, there is another way to build
Basic.mk
which sources mk/Windows32.mk when building for Windows.
mk/Windows32.mk has a TOOLCHAIN variable that can be
either "msvc" or "gcc" (no tcc option here).
Should mk/Windows32.mk also be updated for UTF-8 for
both toolchains?