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.argy...@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 <psm...@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