[SUBDIRMK RFC v2 3/4] README: v2: Rename Perdir to Suffix; provide Prefix and Final

Ian Jackson ijackson at chiark.greenend.org.uk
Thu Dec 19 00:50:00 GMT 2019


We want to be able to specify something that appears at the top of
every per-directory segment, principall to provide for-every-directory
variable settings.

A more sophisticated scheme akin to m4 diversions would be possible in
principle, but it would make organising the output files (which must
be processed by autoconf) really awkward - let alone the depenency
management for regenerating the makefiles.

I think this new scheme is sufficient in principle to do anything that
might be needed.  It will continue to require that &:include's are
done in the right order.

Not implemented yet.

Signed-off-by: Ian Jackson <ijackson at chiark.greenend.org.uk>
---
 README | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/README b/README
index 593d164..f726f9c 100644
--- a/README
+++ b/README
@@ -90,26 +90,30 @@ Unlike `all', these other targets only exist in areas of the project
 where at least something mentions them.  So for example, if
 &TARGETS_zonk is mentioned in src but not lib, `make zonk' in
 lib will fail.  If you want to make a target exist everywhere,
-mention its name in Perdir.sd.mk (see below).
+mention its name in Prefix.sd.mk or Suffix.sd.mk (see below).
 
-Perdir.sd.mk, inclusion
------------------------
+Prefix.sd.mk, Suffix.sd.mk, Final.sd.mk, inclusion
+--------------------------------------------------
 
-The file Perdir.sd.mk in the toplevel of the source is automatically
-processed after each individual directory's Subdir.sd.mk, and the
-&-substituted contents therefore appear once for each subdirectory.
+The files Prefix.sd.mk and Suffix.sd.mk in the toplevel of the source
+are automatically processed before and after each individual
+directory's Subdir.sd.mk, and the &-substituted contents therefore
+appear once for each subdirectory.
 
 This lets you do per-directory boilerplate.  Some useful boilerplate
 is already provided in subdirmk, for you to reference like this:
   &:include subdirmk/cdeps.sd.mk
   &:include subdirmk/clean.sd.mk
-For example you could put that in Perdir.sd.mk.
+For example you could put that in Suffix.sd.mk.
 
 The top-level Subdir.sd.mk is the first makefile included after the
 autogenerated `main.mk' which merely has some basic settings and
 includes.  So if you want to get in early and set global variables,
 put them near the top of Subdir.sd.mk.
 
+The file Final.sd.mk in the toplevel directory is processed and
+included after all the other files.
+
 subdirmk's filter script itself sets (only) these variables:
   top_srcdir
   abs_top_srcdir
@@ -147,7 +151,7 @@ There are two kinds of template files.
  How to include           `&:include foo.sd.mk'   `include foo.mk'
 			  in all relevant .sd.mk  in only one
                           (but not needed for     Subdir.sd.mk
-                           Subdir and Perdir)
+                           Prefix, Suffix, Final)
 
 If you `include subdirmk/regen.mk', dependency management and
 automatic regeneration for all of this template substitution, and for
@@ -353,7 +357,7 @@ probably contain:
   include subdirmk/usual.mk
   include subdirmk/regen.mk
 
-Write a Perdir.sd.mk in the toplevel, if you want.  It should probably
+Write a Suffix.sd.mk in the toplevel, if you want.  It should probably
 have:
 
   &:include subdirmk/cdeps.sd.mk
-- 
2.11.0




More information about the sgo-software-discuss mailing list