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 20658ae2adc3087e1f24db87cababc19aaa154b9..be1ece7c3d09e40d89170e7d0cb919e343f1369b 100644 (file)
--- a/README
+++ b/README
@@ -26,7 +26,7 @@ Basic approach
 --------------
 
 The developer is expected to write a makefile fragment, in each
 --------------
 
 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
 
 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 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).
 
 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.
 
 (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.
 
 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
 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
 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'
 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
 
 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
 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.
 
   &: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,
 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.
 
 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
 ------------------
 
 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'.
 
 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.
 --------------------------------------------------------------------
 
 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
 
 
  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
  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
                            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 ?
 
 
  (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
      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...])
 
   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
 probably contain:
 
   include subdirmk/usual.mk
@@ -410,7 +410,7 @@ Hints
 -----
 
 You can convert your project incrementally.  Start with the top-level
 -----
 
 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
 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 2318691a720390e69d465c4687621de6a6656540..a10f2d39c49763db8f175f30a2068ae405882e7b 100644 (file)
@@ -21,7 +21,7 @@
 .makefiles.stamp
 /main.mk
 Makefile
 .makefiles.stamp
 /main.mk
 Makefile
-Subdir.mk
+Dir.mk
 Final.mk
 *.tmp
 
 Final.mk
 *.tmp
 
similarity index 80%
rename from example/Subdir.sd.mk
rename to example/Dir.sd.mk
index 5c2040a1b8f65b8ce848380a3ee3c7fd7a688029..7c0fd2c228d381cbfb289e92feb9e35ffc721ecb 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
 #  Copyright 2019 Mark Wooding
 #  Copyright 2019 Ian Jackson
 # SPDX-License-Identifier: LGPL-2.0-or-later
index 4a0450686c61e556227a1134bef5f3d114b7b277..a6a6cda90c6b1e032dabf49797086c0280789a41 100755 (executable)
--- a/generate
+++ b/generate
@@ -7,7 +7,7 @@
 # $(srcdir)/subdirmk/generate [--srcdir=SRCDIR] [--] SUBDIR...
 #
 # generates in each subdirectory
 # $(srcdir)/subdirmk/generate [--srcdir=SRCDIR] [--] SUBDIR...
 #
 # generates in each subdirectory
-#     Subdir.mk.tmp
+#     Dir.mk.tmp
 #     Makefile
 # and in toplevel
 #     main.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);
     };
        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 ($$);
 }
 
 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.
 
     # ^ 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 => []);
     write_makefile($dir_prefix, scalar @$path);
 
     my %targets = (all => []);
@@ -364,12 +364,12 @@ sub process_subtree ($$) {
     }
 
     set_dir_vars($path);
     }
 
     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 {
 
     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)";
        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 bdb1b2714d7411bfa45056abd42dab40049acd89..7150bb1849870e146472d3f23022fa1b58331fa0 100644 (file)
@@ -5,7 +5,7 @@
 
 # Usage:
 #   include subdirmk/regen.mk
 
 # 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
 #
 # 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
 # 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
 # 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                                 \
 # 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                            \
                        , $?),,                                 \
                             Final.sd.mk $(top_srcdir)/Final.sd.mk \
                             %.mk.in                            \
                        , $?),,                                 \
index 9498a86e8cd5ebdb2a0409588e4c6171e268b1f3..142b6f5b1b74f1a5af2f315628a7f7d4b9aee598 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
 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
        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_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],
 ])
 
 AC_DEFUN([SUBDIRMK_MAKEFILES],
index 16cb7a262c7b3e9e82b6f6a80d517c1edc397b83..d7fff17321f954bd4d204b268b5982a885c6b580 100755 (executable)
@@ -37,7 +37,7 @@ reset_times () {
 reset_times
 echo 'for-check-1:' >>../src/for-test.sd.mk
 make -j4 for-check-1
 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
 
 : ----- for-check-2 -----
 reset_times
index cd40d9f99688fa973da9b4d162f3502318ba1e4a..58a3024815653b10d90f0759ec216d79b514506e 100644 (file)
@@ -3,15 +3,15 @@ top_srcdir=@top_srcdir@
 abs_top_srcdir=@abs_top_srcdir@
 SUBDIRMK_MAKEFILES :=
 MAKEFILE_TEMPLATES :=
 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
 SUBDIRMK_MAKEFILES += Final.mk
+MAKEFILE_TEMPLATES += ./Dir.sd.mk
 MAKEFILE_TEMPLATES += ./Final.sd.mk
 MAKEFILE_TEMPLATES += ./Prefix.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 += ./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)
 MAKEFILE_TEMPLATES += ./sub/dir/doctest.sd.mk
 include $(SUBDIRMK_MAKEFILES)
index 66c71ebcde5ae968a04fa001accef3cd494800cb..d7067d1df1cb2281ae96712446f0f3eb00889bea 100644 (file)
@@ -5,7 +5,7 @@
 
 # Usage:
 #   include subdirmk/usual.mk
 
 # 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.
 #
 # Provides various conventional `make' variables, and a
 # rule for compiling C programs.