From: Ian Jackson Date: Tue, 10 Dec 2019 01:21:43 +0000 (+0000) Subject: README: v2: Draft - Introduce &. and friends X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=24b7e76f14711aa1bc9aec57d9e5922054f32b37;p=subdirmk.git README: v2: Draft - Introduce &. and friends Signed-off-by: Ian Jackson --- diff --git a/README b/README index 6dd1a05..6ab45b9 100644 --- a/README +++ b/README @@ -218,27 +218,37 @@ 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 +^^^ rarely needed. TBD, maybe one of + &._ &_. &\_ &% &$_ + & &[varnameprefix] + $(patsubst %_,&_,%) &^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