> From: Paul Smith <psm...@gnu.org> > Cc: thirdedit...@gmx.net, bug-make@gnu.org > Date: Tue, 19 Nov 2019 09:22:17 -0500 > > On Fri, 2019-11-15 at 15:52 +0200, Eli Zaretskii wrote: > > Ping! Paul, did you have a chance to look at this issue? > > Sorry, I'm quite underwater. I hope to be able to do a bit of make work > over the next few weeks: get out a final RC and a release.
OK. > For this, I don't really understand the issue :). What is the import > library used for? It is used to build loadable objects. Since they call functions that are implemented inside the Make executable, on Windows you must link them against the import library that tells where to find the implementation at run time. > Make is an executable, right? Yes. > Are we talking about creating loadable objects here? Yes. But, while normally an import library is used for DLLs, here we have the reverse situation: a DLL that needs to call a function inside the Make executable. > I have no preferences for filenames whatsoever: I used whatever was there > before. It isn't about choosing a file name. This is about the fact that the name of the executable whose link command produced an import library is hard-coded into the import library, so that a loadable object linked against that import library will look for the Make executable by that name when it tries to invoke one of the API functions. And we produce an executable called gnumake.exe, so that's what the loadable objects will look for -- and will fail, because Make is installed under a different file name, typically make.exe or mingw32-make.exe. > The extent of my usage is just making sure that it compiles and runs on > Windows with MSVC since that's what I have access to. Did you try to run the tests from the test suite that load shared objects or verify the API, with the MSVC-compiled Make? I think they will all fail if Make's executable file is not called gnumake.exe. My question was how to allow end-users rename the Make executable, without breaking the loadable objects. I proposed several alternatives. There's one more, btw: the end-user could link against make.exe (or whatever it's called) directly, bypassing the import library. I'd really like to hear your views and opinions on this issue. If this will have to wait until you have more time to think about the issue, so be it. Thanks.