+
+&,lc => $(top_srcdir)/sub/dir/lc &,/ => $(top_srcdir)/sub/dir/
+&;lc => $(top_srcdir)/lc &;/ => $(top_srcdir)/
+
+&@lc => $(PWD)/sub/dir/lc &@/ => $(PWD)/sub/dir/
+&@.lc => $(PWD)/lc &@./ => $(PWD)/
+&@,lc => $(abs_top_srcdir)/sub/dir/lc &@,/ => $(abs_top_srcdir)/sub/dir/
+&@;lc => $(abs_top_srcdir)/lc &@;/ => $(abs_top_srcdir)/
+
+In general:
+ = return subdir without delimiter (not allowed with `,' `;' `@')
+ , pathname of this subdirectory in source tree
+ ; pathname of top level of source tree
+ . pathname of this directory in build tree, `@' must be specified
+ @ absolute pathnames
+ / terminates the escape (needed if next is not lwsp or space)
+ lwsp starts multi-word processing (see below)
+
+So pathname syntax is a subset of:
+ '&' [ '@' ] [ ',' | ';' | '.' ] [ lc | '/' ]
+
+ To avoid incomprehensible .sd.mk files, some combinations are not
+ allowed. For example `&=./' would mean `.' and `&./' would be the
+ empty string. Variations with `=' and one of `@' `,' `;' are
+ uncommon and must be written using make variables instead.