On Fri, 2023-01-13 at 22:27 +0900, KO Myung-Hun wrote: > This pattern is usually used on UNIX. However, on OS/2, gcc creates > foo.exe not foo when an extension is not present, and Make check foo > only. Therefore Make tries to build foo whenever called.
I don't think I like this change. I understand its usefulness but in general make never tries to manipulate the target names like this. If users want to create a file named "foo.exe" they should use that as the target name. I get that it's super-annoying that when you ask GCC to build a file named "foo" via "-o $@" it will actually create a file named "foo.exe" instead, but I think that's something that makefile authors will have to deal with, rather than make. What do you do in situations where there are targets for BOTH "foo" and "foo.exe" in the makefile? Then when you want to build "foo" it may decide that it's up to date, because it sees the "foo.exe" file instead.