From: Ian Jackson Date: Wed, 13 Nov 2019 21:42:10 +0000 (+0000) Subject: Merge branch 'master' of https://git.distorted.org.uk/~markw/subdirmk X-Git-Tag: subdirmk/0.1~48 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;ds=sidebyside;h=b65616faf82880a08baf30080e3f18d41cda2fbd;hp=-c;p=subdirmk.git Merge branch 'master' of https://git.distorted.org.uk/~markw/subdirmk --- b65616faf82880a08baf30080e3f18d41cda2fbd diff --combined subdirmk/README index 95cdd69,9a53f93..1b249fd --- a/subdirmk/README +++ b/subdirmk/README @@@ -14,7 -14,7 +14,7 @@@ style is not very ergonomic. The main - constantly having to write out long file and directory names - the lack of a per-directory make variable namespace means long make variables (or namespace clashes) - - it is difficult to arrange that one can cd to a subdirectory + - it is difficult to arrange that one can cd to a subdirectory and say `make all' and have something reasonable happen (to wit, build an appropriate subset) @@@ -151,8 -151,8 +151,8 @@@ we describe the expansion at the top le case (in general in variable names we call that TOP rather than the empty string). - &CAPS => sub_dir_CAPS or TOP_CAPS - &lc => sub/dir/lc or lc + &CAPS => sub_dir_CAPS or TOP_CAPS + &lc => sub/dir/lc or lc Here CAPS is any ASCII letter A-Z and lc is a-z. The assumption is that filenames are usually lowercase and variables usually uppercase. Otherwise, use another syntax: @@@ -189,8 -189,8 +189,8 @@@ &!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 - is discarded. + and is terminated by EOL or lwsp. &!STUFF and the lwsp + are discarded. After this, write STUFF instead of &, everywhere. The effect is global and lasts until the next setting. @@@ -198,13 -198,14 +198,13 @@@ it back before using &:include. Notably - STUFFSTUFF => STUFF + STUFFSTUFF => STUFFSTUFF \STUFF => STUFF STUFF!& set escape back to & &TARGETS_things - Handled specially. If mentioned, declares that - this subdirectory ought to have a target `things'. - (`all' if not specified). The rule will be + Handled specially. If mentioned, declares that this + subdir ought to have a target `things'. The rule will be &/things:: $(&TARGETS_things) You may extend it by adding more :: rules for the target, @@@ -212,14 -213,13 +212,14 @@@ &TARGETS_check += & test-passed.stamp It is important to mention &TARGETS_things at least once in - the context of each applicable directory, because it arranges - that the *parent* will also have a `things' target which - recursively implies this directory's `things'. + the context of each applicable directory, because doing so + arranges that the *parent* will also have a `things' target + which recursively implies this directory's `things'. Must be spelled exactly &TARGETS_things. &_TARGETS_things, - for example, does not work. But mentioning it in a #-comment - *does* work because the & filter does not care about comments. + for example, is not magic. But mentioning &TARGETS_things in + a #-comment *does* work because the & filter does not care + about comments. `all' is extra special: every directory has an `all' target, which corresponds to &TARGETS.