"Paul Smith via austin-group-l at The Open Group" <austin-group-l@opengroup.org> wrote:
> But here we're inventing an entirely new operator that NO VERSION of > make currently implements (yes, I understand that BSD make has a > different operator that works in this same way but that's not the same > thing: no existing makefile today contains the :::= operator so every > makefile that wants to use it will have to be changed, and in a way > which is not backward-compatible with older versions of make). You are mistaken. The :::= operator has been implemented in two independent make programs before it was standardized. The :::= operator was introduced to smake and SunPro Make in March. At that time it did use the same behavior as smake and BSD make implemented the := operator since 30 years. While diskussing that operator in the teleconference, we discovered that BSD make added .MAKE.SAVE_DOLLARS three years ago to deal with corner cases. We asked the BSD developers for their preference on whether $$ expansion should be disabled by default in case that a new operator was introduced that does not need to implement compatibility with the 30 year old := from BSD make and smake. As a result of that, we decided that not expanding $$ is the right way to go and that behavior was implemented for :::= in smake and SunPro Make. The behavior was tested with the makefiles we developed before and a week after smake and SunPro Make introduced the complete behavior for :::=, the new POSIX feature was decided on and the current text was written. So this is not invention but developing a new operator based on experiences with existing make implementations and soon after deciding on the standard. If you like to test :::=, just compile a recent schilytools version and check smake and SunPro Make. The support for the accepted behavior was first published in the 2021-08-14 version. The finally accepted POSIX text is from 2021-08-16. Jörg -- EMail:jo...@schily.net Jörg Schilling D-13353 Berlin Blog: http://schily.blogspot.com/ URL: http://cdrecord.org/private/ http://sourceforge.net/projects/schilytools/files/