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 <newline> 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 <hyphen-minus> 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 <newline> 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 <plus-sign>
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