|
From: | Costas Argyris |
Subject: | Re: [PATCH] Use UTF-8 active code page for Windows host. |
Date: | Wed, 17 May 2023 12:47:11 +0100 |
Thanks for that info - I tried doing exactly as you said and I'd say I'malmost 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 inthe 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 otherplatform-specific files under the 'mk' folder, mk\Windows32.mkin this case, and it's not so easy to tell what is happening therewith the OUTDIR variable. The variable that appears to behonored isrelease_msvc_OUTDIR = ./WinRel/but that seems to be unused in the file (?).There is even this comment in mk\Windows32.mk that seemsrelevant:# 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 wassupposed 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.
[Prev in Thread] | Current Thread | [Next in Thread] |