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: Tue, 16 May 2023 19:05:19 +0100

Thanks for that info - I tried doing exactly as you said and I'd say I'm
almost there, except for the final link step:

When running

.\WinRel\gnumake.exe

(with or without -f Basic.mk, doesn't matter)

it seems that the final executable is attempted to be created in
the exact same file that started the build, leading to the error:

LINK : fatal error LNK1104: cannot open file 'WinRel\gnumake.exe'

I tried taking a quick look at how the output directory is decided,
but it's not so easy because apparently Basic.mk sources other
platform-specific files under the 'mk' folder, mk\Windows32.mk
in this case, and it's not so easy to tell what is happening there
with the OUTDIR variable.    The variable that appears to be
honored is

release_msvc_OUTDIR = ./WinRel/

but that seems to be unused in the file (?).

There is even this comment in mk\Windows32.mk that seems
relevant:

# I'm not sure why this builds gnumake rather than make...?
PROG = $(OUTDIR)gnumake$(EXEEXT)

Before I dig deeper into it, am I missing something obvious?

I could try and change the output dir, but afaict this was
supposed to work as-is.

On Mon, 15 May 2023 at 19:14, Paul Smith <psmith@gnu.org> wrote:
On Mon, 2023-05-15 at 17:48 +0100, Costas Argyris wrote:
> As I have said before, I wasn't successful in getting the Basic.mk
> approach to work on Windows, as I was getting various errors all
> over the place.    They started with CC being undefined, but even
> after I defined it to 'gcc' this just took me to various link errors,
> at which point I thought that this approach is not really maintained.
> That was in contrast with the other two approaches on Windows
> host, namely configure and .bat file, both of which worked as
> expected.

I think I tried to say before, but probably failed to be clear, that
Basic.mk is used _in conjunction with_ one of the alternatives to
running configure.

By that I mean you FIRST have to use one of the alternatives to running
configure, THEN you can use Build.mk.  The Basic.mk framework doesn't,
in particular, set up config.h etc.

So, the following recipe works for me; first:

  .\build_w32.bat

This sets up config.h and copies the Basic.mk file to be Makefile so
that it's available for GNU make to use.

  .\WinRel\gnumake.exe

This invokes the just-built GNU Make and uses the Makefile copy of
Basic.mk (of course you can use .\WinRel\gnumake.exe -f Basic.mk
instead if you prefer).

By default, Basic.mk uses Visual Studio as the compiler, and it expects
the invoking shell has set up MSVC using vcvarsall or whatever.  If you
set TOOLCHAIN=gcc on the make command line it should use GCC.  I admit
I haven't tried this one recently.

> So, can this feature proceed without changes in Basic.mk?

It's fine with me if you want to submit a patch that doesn't provide
these updates.  I can add them myself, or not.

reply via email to

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