X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?p=subdirmk.git;a=blobdiff_plain;f=README;h=4da40911ce83909e880874de657b6d4db797992b;hp=fcf8c000f89a6ea61f92deca0a1aabaa420fce96;hb=8c6b02849c6918f1deac8e463b24335844d65b86;hpb=2a8a5a4b83fa745c7016a68dad7722aed4709705 diff --git a/README b/README index fcf8c00..4da4091 100644 --- a/README +++ b/README @@ -183,7 +183,7 @@ In more detail, with all the various options laid out: for build source build source This lc &file &^file $(PWD)/&file $(abs_src)/&file - directory any &/file &^/file $(PWD)/&file $(abs_src)/&/file + directory any &/file &^/file $(PWD)/&/file $(abs_src)/&/file several & f g h &^ f g h $(addprefix...) Top lc file &~file @@ -218,30 +218,38 @@ empty string). The assumption is that filenames are usually lowercase and variables usually uppercase. Otherwise, use another syntax: +&/ => sub/dir/ or nothing &_ => sub_dir_ or TOP_ -&=_ => sub_dir or TOP +&. => sub/dir or . + (This implies that `&./' works roughly like `&/', although + it can produce a needless `./') -&/ => sub/dir/ or nothing -&=/ => sub/dir or . +&= => sub_dir or TOP &^lc => $(top_srcdir)/sub/dir/lc &^/ => $(top_srcdir)/sub/dir/ +&^. => $(top_srcdir)/sub/dir &~lc => $(top_srcdir)/lc &~/ => $(top_srcdir)/ +&~. => $(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 - / terminates the escape (needed if next is not lwsp or space) + / terminates the path escape } needed if next is + _ terminates the var escape } not lwsp or space) + . terminates path escape giving dir name (excluding /) + = terminates var escape giving only prefix part (rarely needed) lwsp starts multi-word processing (see below) So pathname syntax is a subset of: - '&' [ '^' | '~' ] [ lc | '/' ] + '&' [ '^' | '~' ] [ lc | '/' | '.' | '=' ] && => && for convenience in shell runes -\& => & general escaping mechanism + +&\& => & general escaping mechanism +&\$ => $ & thing thing... & &^ thing thing... & @@ -266,21 +274,21 @@ So pathname syntax is a subset of: &# delete everything to end of line (useful if the RHS contains unrecognised & constructions) -&!STUFF - changes the escape sequence from & to literally STUFF - STUFF may be any series of of non-whitespace characters, - and is terminated by EOL or lwsp. &!STUFF and the lwsp - are discarded. +&:changequote NEWQUOTE + changes the escape sequence from & to literally NEWQUOTE + NEWQUOTE may be any series of of non-whitespace characters, + and is terminated by EOL or lwsp. The whole line is + discarded. - After this, write STUFF instead of &, everywhere. + After this, write NEWQUOTE instead of &, everywhere. The effect is global and lasts until the next setting. It takes effect on &:include'd files too, so maybe set it back before using &:include. Notably - STUFFSTUFF => STUFFSTUFF - \STUFF => STUFF - STUFF!& set escape back to & + NEWQUOTENEWQUOTE => NEWQUOTENEWQUOTE + NEWQUOTE\NEWQUOTE => NEWQUOTE + NEWQUOTE:changequote & set escape back to & &TARGETS_things Handled specially. If mentioned, declares that this