chiark / gitweb /
Big incompatible change: Rename `Subdir' to `Dir'
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 26 Dec 2019 01:40:09 +0000 (01:40 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 30 Dec 2019 11:35:15 +0000 (11:35 +0000)
We want completion to be easy, and we have Suffix now.  `Dir' is as
good as `Subdir' I think (and a bit shorter).

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
17 files changed:
README
example/.gitignore
example/Dir.sd.mk [moved from example/Subdir.sd.mk with 80% similarity]
example/lib/Dir.sd.mk [moved from example/lib/Subdir.sd.mk with 100% similarity]
example/lib/t/Dir.sd.mk [moved from example/lib/t/Subdir.sd.mk with 100% similarity]
example/src/Dir.sd.mk [moved from example/src/Subdir.sd.mk with 100% similarity]
generate
regen.mk.in
subdirmk.ac
tests/example/check
tests/filter/Dir.mk.expected [moved from tests/filter/Subdir.mk.expected with 100% similarity]
tests/filter/Dir.sd.mk [moved from tests/filter/Subdir.sd.mk with 100% similarity]
tests/filter/main.mk.expected
tests/filter/sub/Dir.mk.expected [moved from tests/filter/sub/Subdir.mk.expected with 100% similarity]
tests/filter/sub/dir/Dir.mk.expected [moved from tests/filter/sub/dir/Subdir.mk.expected with 100% similarity]
tests/filter/sub/dir/Dir.sd.mk [moved from tests/filter/sub/dir/Subdir.sd.mk with 100% similarity]
usual.mk.in

diff --git a/README b/README
index 20658ae..be1ece7 100644 (file)
--- a/README
+++ b/README
@@ -26,7 +26,7 @@ Basic approach
 --------------
 
 The developer is expected to write a makefile fragment, in each
-relevant subdirectory, called `Subdir.sd.mk'.
+relevant subdirectory, called `Dir.sd.mk'.
 
 These fragments may contain ordinary make language.  Unqualified
 filenames are relative to the build toplevel, and all commands all run
@@ -36,11 +36,11 @@ However, the sigil & is treated specially.  By and large, it refers to
 `the build directory corresponding to this .sd.mk file', etc.
 There are a variety of convenient constructions.
 
-The result is that to a large extent, the Subdir.sd.mk has an easy way
+The result is that to a large extent, the Dir.sd.mk has an easy way
 to namespace its "local" make variables, and an easy way to refer to
 its "local" filenames (and filenames in general).
 
-The Subdir.sd.mk's are filtered, fed through autoconf in the usual way
+The Dir.sd.mk's are filtered, fed through autoconf in the usual way
 (for @..@-substitutions) and included by one autogenerated toplevel
 makefile.
 
@@ -52,7 +52,7 @@ Each subdirectory is also provided with an autogenerated `Makefile'
 which exists purely to capture ordinary make invocations and arrange
 for something suitable to happen.
 
-Where there are dependencies between subdirectories, each Subdir.sd.mk
+Where there are dependencies between subdirectories, each Dir.sd.mk
 can simply refer to files in other subdirectories directly.
 
 Invocation, "recursive" per-directory targets
@@ -69,7 +69,7 @@ Each subdirectory has its own `all' target.  For example a
 subdirectory `src' has a target `src/all'.  The rules for these are
 automatically generated from the settings of the per-directory
 &TARGETS variables.  &TARGETS is magic in this way.  (In
-src/Subdir.sd.mk, &TARGETS of course refers to a make variable called
+src/Dir.sd.mk, &TARGETS of course refers to a make variable called
 src_TARGETS.)
 
 The `all' target in a parent directory is taken to imply the `all'
@@ -98,7 +98,7 @@ Prefix.sd.mk, Suffix.sd.mk, Final.sd.mk, inclusion
 
 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
+directory's Dir.sd.mk, and the &-substituted contents therefore
 appear once for each subdirectory.
 
 This lets you do per-directory boilerplate.  Some useful boilerplate
@@ -107,10 +107,10 @@ is already provided in subdirmk, for you to reference like this:
   &:include subdirmk/clean.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
+The top-level Dir.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.
+put them near the top of Dir.sd.mk.
 
 The file Final.sd.mk in the toplevel directory is processed and
 included after all the other files.
@@ -127,14 +127,14 @@ Global definitions
 ------------------
 
 If want to set global variables, such as CC, that should only be done
-once.  You can put them in your top-level Subdir.sd.mk, or a separate
+once.  You can put them in your top-level Dir.sd.mk, or a separate
 file you `include' and declare using SUBDIRMK_MAKEFILES.
 
 If you need different settings of variables like CC for different
 subdirectories, you should probably do that with target-specific
 variable settings.  See the info node `(make) Target-specific'.
 
-Subdirectory templates `.sd.mk' vs plain autoconf templates `.mk.in'
+Directory templates `.sd.mk' vs plain autoconf templates `.mk.in'
 --------------------------------------------------------------------
 
 There are two kinds of template files.
@@ -146,12 +146,12 @@ There are two kinds of template files.
 
  Instantiated             Usu. once per subdir    Once only
 
- Need to be mentioned     No, but Subdir.sd.mk    All not in subdirmk/
+ Need to be mentioned     No, but Dir.sd.mk       All not in subdirmk/
  in configure.ac?         via SUBDIRMK_SUBDIRS    via SUBDIRMK_MAKEFILES
 
  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
+                          (but not needed for     Dir.sd.mk
                            Prefix, Suffix, Final)
 
 If you `include subdirmk/regen.mk', dependency management and
@@ -167,7 +167,7 @@ locations:
 
  (i) In the build tree, or in the source tree ?
 
- (ii) In (or relative to) the subdirectory to which this Subdir.sd.mk
+ (ii) In (or relative to) the subdirectory to which this Dir.sd.mk
      relates, or relative to the project's top level ?
 
  (iii) Absolute or relative pathname ?  Usually relative pathnames
@@ -394,7 +394,7 @@ In your configure.ac, say
   m4_include([subdirmk/subdirmk.ac])
   SUBDIRMK_SUBDIRS([...list of subdirectories in relative syntax...])
 
-Write a Subdir.sd.mk in each directory.  The toplevel one should
+Write a Dir.sd.mk in each directory.  The toplevel one should
 probably contain:
 
   include subdirmk/usual.mk
@@ -410,7 +410,7 @@ Hints
 -----
 
 You can convert your project incrementally.  Start with the top-level
-Makefile.in and rename it to Subdir.sd.mk, and add the appropriate
+Makefile.in and rename it to Dir.sd.mk, and add the appropriate
 stuff to configure.ac, and fix everything up.  Leave the existing
 $(MAKE) -C for your existing subdirectories alone.  Then you can
 convert individual subdirectories, or classes of subdirectories, at
index 2318691..a10f2d3 100644 (file)
@@ -21,7 +21,7 @@
 .makefiles.stamp
 /main.mk
 Makefile
-Subdir.mk
+Dir.mk
 Final.mk
 *.tmp
 
similarity index 80%
rename from example/Subdir.sd.mk
rename to example/Dir.sd.mk
index 5c2040a..7c0fd2c 100644 (file)
@@ -1,4 +1,4 @@
-# subdirmk example - top-level Subdir.sd.mk
+# subdirmk example - top-level Dir.sd.mk
 #  Copyright 2019 Mark Wooding
 #  Copyright 2019 Ian Jackson
 # SPDX-License-Identifier: LGPL-2.0-or-later
index 4a04506..a6a6cda 100755 (executable)
--- a/generate
+++ b/generate
@@ -7,7 +7,7 @@
 # $(srcdir)/subdirmk/generate [--srcdir=SRCDIR] [--] SUBDIR...
 #
 # generates in each subdirectory
-#     Subdir.mk.tmp
+#     Dir.mk.tmp
 #     Makefile
 # and in toplevel
 #     main.mk.tmp
@@ -333,9 +333,9 @@ sub filter_subdir_mk ($) {
        my ($f, $enoentok) = @_;
        process_input_mk($targets, "${srcdir}/$f", \$esclit, $enoentok);
     };
-    $pi->("Prefix.sd.mk",              1);
-    $pi->("${dir_prefix}Subdir.sd.mk", 0);
-    $pi->("Suffix.sd.mk",              1);
+    $pi->("Prefix.sd.mk",           1);
+    $pi->("${dir_prefix}Dir.sd.mk", 0);
+    $pi->("Suffix.sd.mk",           1);
 }
 
 sub process_subtree ($$);
@@ -351,7 +351,7 @@ sub process_subtree ($$) {
     # ^ this is the only var which we need before we come back from
     #   the recursion.
 
-    push @output_makefiles, "${dir_prefix}Subdir.mk";
+    push @output_makefiles, "${dir_prefix}Dir.mk";
     write_makefile($dir_prefix, scalar @$path);
 
     my %targets = (all => []);
@@ -364,12 +364,12 @@ sub process_subtree ($$) {
     }
 
     set_dir_vars($path);
-    start_output_file("${dir_prefix}Subdir.mk.tmp");
+    start_output_file("${dir_prefix}Dir.mk.tmp");
 
     if ($node->[2]) {
        filter_subdir_mk(\%targets);
     } else {
-       my $sdmk = "${dir_prefix}Subdir.sd.mk";
+       my $sdmk = "${dir_prefix}Dir.sd.mk";
        if (stat $sdmk) {
            die
  "subdirmk: $sdmk unexpectedly exists (${dir_prefix} not mentioned on subdirmk/generate command line, maybe directory is missing from SUBDIRMK_SUBDIRS)";
index bdb1b27..7150bb1 100644 (file)
@@ -5,7 +5,7 @@
 
 # Usage:
 #   include subdirmk/regen.mk
-# (probably in toplevel Subdir.sd.mk)
+# (probably in toplevel Dir.sd.mk)
 #
 # Arranges that config.status is automatically rerun to update
 # makefiles from templates, whenever a template *.sd.mk or *.mk.in is
@@ -55,15 +55,15 @@ main.mk $(SUBDIRMK_MAKEFILES) $(CONFIG_STATUS_OUTPUTS): .makefiles.stamp
 # This filtering arranges that we can often run config.status to
 # generate only particular output files.  We look for *inputs* that
 # have changed.  If the only inputs that have changed are ones that we
-# know affect only one output (Subdir.sd.mk, Final.sd.mk and *.mk.in),
+# know affect only one output (Dir.sd.mk, Final.sd.mk and *.mk.in),
 # we pass config.status the corresponding output file names.
 # Otherwise we pass nothing and config.status does them all.  We need
-# to mention Subdir.sd.mk twice because if $(top_srcdir) is `.', make
+# to mention Dir.sd.mk twice because if $(top_srcdir) is `.', make
 # elides the directory part from $?.  Similarly but not identically
 # Final.sd.mk.
        $(SUBDIRMK_REGEN_NDEBUG): REGEN STAMP WANTS DEPS=$?
        ./$(CONFIG_STATUS) $(if                                 \
-               $(filter-out Subdir.sd.mk %/Subdir.sd.mk        \
+               $(filter-out Dir.sd.mk %/Dir.sd.mk              \
                             Final.sd.mk $(top_srcdir)/Final.sd.mk \
                             %.mk.in                            \
                        , $?),,                                 \
index 9498a86..142b6f5 100644 (file)
@@ -14,7 +14,7 @@ m4_map_args_w([$1],[_SUBDIRMK_SUBDIR(],[/)])])dnl
 AC_DEFUN_ONCE([_SUBDIRMK_INIT],[
   AC_CONFIG_FILES([
        main.mk:main.mk.tmp
-       Subdir.mk:Subdir.mk.tmp
+       Dir.mk:Dir.mk.tmp
        Final.mk:Final.mk.tmp
        ],[],[
      '$srcdir'/subdirmk/generate --srcdir='$srcdir' $subdirmk_subdirs
@@ -24,7 +24,7 @@ AC_DEFUN_ONCE([_SUBDIRMK_INIT],[
 
 AC_DEFUN([_SUBDIRMK_SUBDIR],[
   subdirmk_subdirs="$subdirmk_subdirs '$1'"
-  AC_CONFIG_FILES([$1Subdir.mk:$1Subdir.mk.tmp])
+  AC_CONFIG_FILES([$1Dir.mk:$1Dir.mk.tmp])
 ])
 
 AC_DEFUN([SUBDIRMK_MAKEFILES],
index 16cb7a2..d7fff17 100755 (executable)
@@ -37,7 +37,7 @@ reset_times () {
 reset_times
 echo 'for-check-1:' >>../src/for-test.sd.mk
 make -j4 for-check-1
-grep '^for-check-1:' src/Subdir.mk || false
+grep '^for-check-1:' src/Dir.mk || false
 
 : ----- for-check-2 -----
 reset_times
index cd40d9f..58a3024 100644 (file)
@@ -3,15 +3,15 @@ top_srcdir=@top_srcdir@
 abs_top_srcdir=@abs_top_srcdir@
 SUBDIRMK_MAKEFILES :=
 MAKEFILE_TEMPLATES :=
-SUBDIRMK_MAKEFILES += Subdir.mk
-SUBDIRMK_MAKEFILES += sub/Subdir.mk
-SUBDIRMK_MAKEFILES += sub/dir/Subdir.mk
+SUBDIRMK_MAKEFILES += Dir.mk
+SUBDIRMK_MAKEFILES += sub/Dir.mk
+SUBDIRMK_MAKEFILES += sub/dir/Dir.mk
 SUBDIRMK_MAKEFILES += Final.mk
+MAKEFILE_TEMPLATES += ./Dir.sd.mk
 MAKEFILE_TEMPLATES += ./Final.sd.mk
 MAKEFILE_TEMPLATES += ./Prefix.sd.mk
-MAKEFILE_TEMPLATES += ./Subdir.sd.mk
 MAKEFILE_TEMPLATES += ./Suffix.sd.mk
 MAKEFILE_TEMPLATES += ./doctest.sd.mk
-MAKEFILE_TEMPLATES += ./sub/dir/Subdir.sd.mk
+MAKEFILE_TEMPLATES += ./sub/dir/Dir.sd.mk
 MAKEFILE_TEMPLATES += ./sub/dir/doctest.sd.mk
 include $(SUBDIRMK_MAKEFILES)
index 66c71eb..d7067d1 100644 (file)
@@ -5,7 +5,7 @@
 
 # Usage:
 #   include subdirmk/usual.mk
-# (probably in toplevel Subdir.sd.mk)
+# (probably in toplevel Dir.sd.mk)
 #
 # Provides various conventional `make' variables, and a
 # rule for compiling C programs.