--- /dev/null
+&CAPS => subdir_CAPS or TOP_CAPS
+&lc => subdir/lc or lc
+
+&_ => subdir_ or TOP_
+&/ => subdir/ or nothing
+&=_ => subdir or TOP
+&=/ => subdir or .
+&^ => $(top_srcdir)/subdir or $(top_srcdir)
+&~ => $(abs_top_srcdir)/subdir or $(abs_top_srcdir)
+
+&& => &&
+\& => &
+
+& thing thing... & => each thing prefixed by &/ &^/ &~/ resp
+& ^ thing thing... & each thing is any non-ws
+& ~ thing thing... & & may be omitted before EOL or before \EOL
+ other &'s not recognised
+
+CAPS is [A-Z][0-9_A-Z]*(?!\w)
+lc is [a-z][-+,0-9_a-z]*(?!\w)
+
+&!<spaces or tabs> disables & *until* EOL (and disappears)
+
+&!STUFF<lwsp> STUFF is recognised instead of &
+ the terminating lwsp is discarded too
+ may also occur at eol
+
+eg notably
+ STUFF!& now & is recognised instead (ie back to normal)
+ STUFFSTUFF STUFF
+
+eg
+ &!@@@ @@@ is recognised instead of &
+ @@@!& go back to &
+
+&TARGETS[_things] is handled specially
+ must be spelled precisely this way
+ if no _things, means _all
+
+Also, `all' is weird in that it is present even if not specified