X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;ds=sidebyside;f=README;h=de97486ea09174f267830bc171a4751a8c740a58;hb=5c0b85830407399d4cec47bf6f5ce67713d0248a;hp=5897e308644050ec8006fe42e830816ed03f0fb2;hpb=9280923e03ea7603e19fabed95d600bcc928a1cf;p=subdirmk.git diff --git a/README b/README index 5897e30..de97486 100644 --- a/README +++ b/README @@ -138,18 +138,32 @@ If you `include subdirmk/regen.mk', dependency management and automatic regeneration for all of this template substitution, and for config.status etc. is done for you. -Summary of directory reference syntaxes ---------------------------------------- +Summary of recommended directory reference syntaxes +--------------------------------------------------- - In source tree In build tree - Relative Absolute Relative Absolute +Path construction &-expansions, meanings summary: - &file $(abs)/&file - This directory &^/file &~/file &/file $(abs)/&/file - & ^ f g h & ~ f g h & f g h + In build tree In source tree + This directory just & &, + Top level &. implies absolute &; - Top level $(ts)/file $(ats)/file file $(abs)/file - f g h +Adding `@' means "absolute path". This is not needed with &. because +there is never any need to use &. since it would expand to nothing. +`/' terminates the escape (needed if the next thing is not a lowercase +character, or space). `=' means "just the value, no /". Space starts +multi-word processing. + + Recommended In build tree In source tree + when Relative Absolute Relative Absolute + + This lc &file &@file &,file &@,file + directory any &/file &@/file &,/file &@,/file + several & f g h &@ f g h &, f g h &@, f g h + + Top lc &.file &;file &@;file + level any file &./file &;/file &@;/file + several f g h &. f g h &; f g h &@; f g h + .mk.in file $(abs)/file $(src)/file $(abs_src)/file Substitution syntax ------------------- @@ -176,12 +190,18 @@ empty string). variables usually uppercase. Otherwise, use another syntax: &_ => sub_dir_ or TOP_ -&/ => sub/dir/ or nothing &=_ => sub_dir or TOP + +&/ => sub/dir/ or nothing &=/ => sub/dir or . &^ => $(top_srcdir)/sub/dir or $(top_srcdir) &~ => $(abs_top_srcdir)/sub/dir or $(abs_top_srcdir) +In general: + ^ filenames in source tree rather than build tree + ~ filenames are absolute rather than relative + @ filenames do not contain subdir (useful with the above) + && => && for convenience in shell runes \& => & general escaping mechanism