On Tue, 2017-12-26 at 19:44 -0800, Yuri wrote: > On 12/26/17 19:38, Paul Smith wrote: > > If the BSD Ports framework is setting some variables "as if" they > > were provided on the command line, > > But there is no such thing as "providing something as if on the > command line".
You're clearly incorrect about this, since this is exactly what happens as I showed in my example. > It is either on the command line, or not. In this case, the ARCH > variable is not provided on the command line, but gmake says that it > is. > > This looks like a bug to me. It is not a bug. It's the way make has always worked, it's documented to work this way in the GNU make manual, and it's mandated to work this way by the POSIX standard. Not to mention that this behavior is relied on by hundreds of thousands of makefiles used every day. > (BSD make is an entirely different program, that has no relation > ship with the GNU make.) That is simply not true. Both are implementations of the POSIX standard for the make utility and as such, they do interoperate on a basic level required by all implementations of the POSIX standard. Without question they each provide many extensions, and these extensions are not compatible. If your makefile uses BSD make extensions then that makefile won't work with GNU make, and vice versa. But if your makefile adheres strictly to the POSIX standard then it will work with both BSD make and GNU make. And, it certainly works to have BSD make invoke GNU make recursively, and vice versa, even if the makefiles use different sets of extensions. _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make