gbranden pushed a commit to branch master
in repository groff.

commit 0177f73f77c6ad64133929748cbd27fb223c90b8
Author: G. Branden Robinson <[email protected]>
AuthorDate: Sat Oct 3 21:46:20 2026 -0500

    HACKING: Recast discussion of Make programs.
    
    ...per feedback from Ingo Schwarze.  Speak more of POSIX Make and less
    of "BSD Make", which per Ingo is ill-defined since the various *BSDs'
    Make programs have diverged from each other.
    
    Where I feel I must use the term "BSD Make" for brevity, give it a nonce
    definition.
---
 HACKING | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/HACKING b/HACKING
index 12b97bbc5..bacc1669b 100644
--- a/HACKING
+++ b/HACKING
@@ -61,14 +61,14 @@ intersection of multiple constraints.
 1.  We use GNU Automake.
 2.  We don't run Make recursively.  (Quod vide Peter Miller.)
 3.  We try to support both in-tree and out-of-tree ("VPATH") builds.
-4.  We try to support both GNU Make and BSD Make.  (This is an unusual
-    and unpopular choice, and makes partisans of both tools angry.)
+4.  We try to use only POSIX Make features so that our build procedure
+    is reasonably portable.
 
 If you're having problems with Makefile rules, double check that you
 haven't fallen into one of several traps.
 
-A.  You can't use pattern rules ("%.foo: %.bar").  BSD Make doesn't
-    support them.
+A.  You can't use pattern rules ("%.foo: %.bar").  POSIX does not
+    specify them.
 
 B.  You can use the special variable `$<` _only_ in suffix rules.  POSIX
     Issue 8 (2024) doesn't specify it as having meaning anywhere else.
@@ -89,16 +89,17 @@ D.  Prerequisites in the source tree must be written 
relative to the
        $(AM_V_at)$(MKDIR_P) $(top_builddir)/man
        $(AM_V_GEN)$(SOELIMBIN) $(man_srcdir)/groff.7.man.in > $@
 
-    Bear in mind that, roughly speaking, BSD Make populates the nodes in
-    its dependency graph with _strings_, and GNU Make populates the
-    nodes with _references to files_.  For example, GNU Make knows that
-    '././foo' and './foo' are the same.  BSD Make does not.
+    Bear in mind that, roughly speaking, Make programs descended from
+    4.4BSD ("BSD Make") populate the nodes in its dependency graph with
+    _strings_, and GNU Make populates the nodes with _references to
+    files_.  For example, GNU Make knows that '././foo' and './foo' are
+    the same.  BSD Make does not.
 
 E.  Notice how we used `soelim` as the name of the target's
     _prerequisite_, but the macro `SOELIMBIN` in the _recipe_.  That's
-    because the prerequisite is interpreted by Make. Interpretatons can
-    differ--note point D above--whereas the recipe is interpreted (after
-    Make macro and special variable expansion) by the shell.
+    because the prerequisite is interpreted by Make.  Interpretations
+    can differ--note point D above--whereas the recipe is interpreted
+    (after Make macro and special variable expansion) by the shell.
 
 F.  Machine-language programs that the groff build creates and then uses
     to generate other build targets via shell commands should be

_______________________________________________
groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit

Reply via email to