At 2024-06-19T07:53:59-0700, Larry McVoy wrote: > On Wed, Jun 19, 2024 at 08:44:14AM -0600, Warner Losh wrote: > > The posted Makefile is no a strictly conforming POSIX Makefile, but > > uses gmake extensions extensively... And eyes of the beholder may > > vary... > > Yeah, I lost that battle. I prefer, and carry around the sources to, > a make from Unix. It's simple and does what I need. But my guys > convinced me there was enough value in gmake that we used it. I tried > to keep the craziness to a minimum. And I think I succeeded, I can > fix bugs in that Makefile. As of POSIX 2024, that Makefile is less GNUish than its used to be. I excerpted the list of changes to POSIX make for Issue 8. Here it is. Changes in POSIX 2024 make Issue 8 Austin Group Defect 251 is applied, encouraging implementations to disallow the creation of filenames containing any bytes that have the encoded value of a character. Austin Group Defects 330, 1417, 1422, 1709, and 1710 are applied, adding new forms of macro assignment using the "::=", "?=", and "+=" operators. Austin Group Defect 333 is applied, adding support for “silent includes” using −include. Austin Group Defects 336 and 1711 are applied, specifying the behavior when string1 in a macro expansion contains a macro expansion. Austin Group Defect 337 is applied, adding a new form of macro assignment using the "!=" operator. Austin Group Defects 373 and 1417 are applied, changing the set of characters that portable applications can use in macro names to the entire portable filename character set (thus adding to the set that could previously be used). Austin Group Defects 514 and 1520 are applied, adding the $+ and $^ internal macros. Austin Group Defect 518 is applied, allowing multiple files to be specified on an include line. Austin Group Defects 519, 1712, and 1715 are applied, adding support for pattern macro expansions. Austin Group Defects 523, 1708, and 1749 are applied, adding the .PHONY special target. Austin Group Defect 875 is applied, clarifying the requirements for inference rules. Austin Group Defect 1104 is applied, changing “s2.a” to “.s2.a”. Austin Group Defect 1122 is applied, changing the description of NLSPATH. Austin Group Defect 1141 is applied, changing “core files” to “a file named core”. Austin Group Defect 1155 is applied, clarifying the handling of the MAKE macro. Austin Group Defect 1325 is applied, adding requirements relating to the creation of include files. Austin Group Defect 1330 is applied, removing obsolescent interfaces. Austin Group Defect 1419 is applied, updating the .SCCS_GET default rule. Austin Group Defect 1420 is applied, clarifying where internal macros can be used. Austin Group Defect 1421 is applied, changing the APPLICATION USAGE section. Austin Group Defects 1424, 1658, 1690, 1701, 1702, 1703, 1704, 1707, 1719, 1720, 1721, 1722, and 1750 are applied, making various minor editorial wording changes. Austin Group Defects 1436, 1437, 1652, 1660, 1661, and 1733 are applied, adding the −j maxjobs option and the .NOTPARALLEL and .WAIT special targets, and changing the −n option. Austin Group Defects 1471 and 1513 are applied, adding a new form of macro assignment using the ":::=" operator. Austin Group Defect 1479 is applied, clarifying the requirements for default rules and macro values. Austin Group Defect 1492 is applied, changing the EXIT STATUS section. Austin Group Defect 1505 is applied, clarifying the requirements for expansion of macros that do not exist. Austin Group Defect 1510 is applied, correcting a typographic error in the RATIONALE section. Austin Group Defect 1549 is applied, clarifying the requirements for an escaped in a command line. Austin Group Defect 1615 is applied, allowing target names to contain slashes and hyphens. Austin Group Defect 1626 is applied, adding the CURDIR macro. Austin Group Defect 1631 is applied, adding information about use of the −j option with the .c.a default rule to the APPLICATION USAGE and EXAMPLES sections. Austin Group Defect 1650 is applied, changing the few occurrences of “dependencies” to use the more common “prerequisites”. Austin Group Defect 1653 is applied, clarifying the difference between how MAKEFLAGS is parsed compared to shell commands that use the make utility. Austin Group Defects 1654 and 1655 are applied, changing the APPLICATION USAGE section. Austin Group Defect 1656 is applied, changing the NAME section. Austin Group Defect 1657 is applied, moving some requirements unrelated to makefile syntax from the Makefile Syntax subsection to the beginning of the EXTENDED DESCRIPTION section. Austin Group Defect 1689 is applied, removing some redundant wording from the DESCRIPTION section. Austin Group Defect 1692 is applied, allowing make, when invoked with the −q or −t option, to execute command lines (without a prefix) that expand the MAKE macro. Austin Group Defect 1693 is applied, changing “command lines” to “execution lines” in the description of the −s option. Austin Group Defect 1694 is applied, changing “in the order they appear” to “in the order specified” in the OPERANDS section. Austin Group Defect 1696 is applied, changing the STDOUT section. Austin Group Defect 1697 is applied, changing the RATIONALE and FUTURE DIRECTIONS sections. Austin Group Defect 1698 is applied, changing “of a target” to “of the target” in the EXTENDED DESCRIPTION section. Austin Group Defect 1699 is applied, addressing some inconsistencies in the use of the term “rules”. Austin Group Defect 1706 is applied, removing a line from the format specified for target rules. Austin Group Defect 1714 is applied, changing “beginning of the line” to “beginning of the value”. Austin Group Defect 1716 is applied, changing the typographic convention used for variable elements within target names, in particular the inference rule suffixes s1 and s2. Austin Group Defect 1723 is applied, adding historical context to a paragraph in the RATIONALE section. Austin Group Defect 1772 is applied, clarifying the ASYNCHRONOUS EVENTS section. "Well, I'm not even sure that's a crime anymore--there've been a lot of changes in the law." -- Irwin Fletcher Regards, Branden