bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Use UTF-8 active code page for Windows host.


From: Costas Argyris
Subject: Re: [PATCH] Use UTF-8 active code page for Windows host.
Date: Wed, 17 May 2023 22:55:52 +0100

Actually I think windres should be optional here too,
even if it is just for being consistent across all build
approaches.

If you agree, please let me know of what would be a
good portable way to check if windres is on the path
from within a Makefile (mk/Windows32.mk I guess).

From a quick search there appear to be many ways
to do this, but some of them are GNU Make-specific,
and I believe these Makefiles (Basic.mk and those
included by it) have to work with any Make, not just
GNU Make.

Also note that this can be a Windows-specific way,
possibly involving 'where windres' or 'windres --version'.
But I'm not sure how this is best done from within a
Makefile that has to be processed on Windows by
any Make program.

On Wed, 17 May 2023 at 19:34, Costas Argyris <costas.argyris@gmail.com> wrote:
Here is the patch with the Basic.mk.template and mk/Windows32.mk
changes.    I tried to keep most of the changes in the Windows-specific
file, but something had to happen in the general one as well, as far as
I could tell.

I deliberately sent only the changes relevant to the Basic.mk approach
here to facilitate review.

The changes are working as far as I can tell, with both

.\gnumake.exe -f Basic.mk TOOLCHAIN=msvc

and

.\gnumake.exe -f Basic.mk TOOLCHAIN=gcc

(and without TOOLCHAIN at all, of course, defaulting to msvc)

First I had to run

.\bootstrap.bat

to re-generate Basic.mk after changing Basic.mk.template and mk/Windows32.mk

These produce UTF-8-supporting gnumake.exe binaries in their corresponding
WinRel and GccRel folders.

As you will see, I haven't implemented checking if windres is available on
the path for the TOOLCHAIN=gcc case, as I have never come across a
case where a gcc distribution for Windows doesn't include windres (in all
cases I have seen, it gets distributed with binutils because it needs the
assembler and linker that are not part of gcc, and windres is part of binutils
so it's also there).

Tcc is not supported with the Basic.mk approach anyway, so no need to
worry about the fact that it doesn't ship with windres.

MSVC always has its own resource compiler available.

If you still need the check for windres for the gcc case, please let me know.

On Wed, 17 May 2023 at 14:10, Paul Smith <psmith@gnu.org> wrote:
On Wed, 2023-05-17 at 12:47 +0100, Costas Argyris wrote:
> However, when trying to prepare the new patch I realized that
> Basic.mk is an untracked file which is listed in .gitignore, so how
> would you like me to show you these latest changes?

The file to be changed is Basic.mk.template

Sorry I have been out of touch this week; I likely will not have much
time until the weekend.  I'm looking forward to the patch though!

For your initial question I understand the issue and I'm not sure how
it works for me I'll have to try it again.  It does seem wrong that we
replace the running instance of make; that can never work on Windows
(it works on most POSIX systems).

reply via email to

[Prev in Thread] Current Thread [Next in Thread]