chiark / gitweb /
Syntax: expand &$... to ${....} rather than $(....)
[subdirmk.git] / README
diff --git a/README b/README
index efd96be277c4c417a04eb4df31d9bd9ca741cee2..2b8061b228bd95be5163dbe94cf5ddb1880c44be 100644 (file)
--- a/README
+++ b/README
@@ -114,7 +114,7 @@ So pathname syntax is a subset of:
 &\$            =>      $               provided for $-doubling regimes
 &\NEWLINE                              eats the newline and vanishes
 
-&$VARIABLE     =>      $(sub_dir_VARIABLE)     or $(TOP_VARIABLE)
+&$VARIABLE     =>      ${sub_dir_VARIABLE}     or ${TOP_VARIABLE}
        VARIABLE is ASCII starting with a letter and matching \w+
 
 & thing thing... &
@@ -334,7 +334,12 @@ suppressed with the &:warn directive.  The warning tags are:
        interpret this as $(F)BAR.  It's normally better to write
        it this way, at least if the variable expansion is followed
        by more letters.  Note that &$FOO works differently to
-       raw make: it expands to $(sub_dir_FOO).
+       raw make: it expands to ${sub_dir_FOO}.
+
+    broken-var-ref
+        An attempt at variable expansion looking like $&...
+       You probably expected this to mean $(TOP_F)BAR but it
+       expands to $TOP_FBAR which make thinks means $(T)OP_FBAR.
 
     unknown-warning
        &:warn was used to try to enable a warning that this version
@@ -361,8 +366,9 @@ In your configure.ac, say
   m4_include([subdirmk/subdirmk.ac])
   SUBDIRMK_SUBDIRS([...list of subdirectories in relative syntax...])
 
-Write a Dir.sd.mk in each directory.  The toplevel one should
-probably contain:
+Write a Dir.sd.mk in each directory.  See the substitution syntax
+reference, above, and the example/ directory here.  The toplevel
+Dir.sd.mk should probably contain:
 
   include subdirmk/usual.mk
   include subdirmk/regen.mk