> On Sep 8, 2021, at 1:06 PM, Joerg Schilling via austin-group-l at The Open > Group <austin-group-l@opengroup.org> wrote: > Hasn't it been explained many times that the non-orthogonal behavior of gmake > for the += operator for macros created with the gmake := operator is a source > of unpredictable behavior, in special if large layered (via include) makefile > systems are used and you cannot easily see how a macro was initially created?
It has been claimed in https://www.austingroupbugs.net/view.php?id=1471 <https://www.austingroupbugs.net/view.php?id=1471> , but not proven. I believe the number of users of GNU make dwarfs all other make implementations combined, and this hasn’t been a problem for users of GNU make. I’ve never seen that claim by actual users of GNU make. Nor has Paul Smith, maintainer of GNU make. > The :::= operator fixes this and allows to predict how other operators behave. I’m skeptical of *that* reason. If the goal is to enable easy portability of existing makefiles that use “:=“ to a POSIX standard operator, that’s a plausible reason to add “:::=“. But that adds yet another operator, and it’s not clear that people need it or that they would use it if it were added. --- David A. Wheeler