diff options
| author | EuAndreh <eu@euandre.org> | 2026-05-26 09:45:56 -0300 |
|---|---|---|
| committer | EuAndreh <eu@euandre.org> | 2026-05-26 09:45:56 -0300 |
| commit | 587dd617a763ad3b54f6e415ac8c9fc0ae31c447 (patch) | |
| tree | 8e20ea0b5fc5d7ea47166fb14d327950388b977c | |
| parent | Extract canonical site rules into share/mkwb/site.mk (diff) | |
| download | mkwb-587dd617a763ad3b54f6e415ac8c9fc0ae31c447.tar.gz mkwb-587dd617a763ad3b54f6e415ac8c9fc0ae31c447.tar.xz | |
mkdeps.sh can now inline the canonical rules directly at the end
of the generated deps.mk -- no make-time `include` of an external
file, no GNU $(shell) gymnastics in the site Makefile.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
| -rw-r--r-- | share/mkwb/site.mk | 19 | ||||
| -rwxr-xr-x | src/rules.in | 12 |
2 files changed, 17 insertions, 14 deletions
diff --git a/share/mkwb/site.mk b/share/mkwb/site.mk index 76e9e51..be09055 100644 --- a/share/mkwb/site.mk +++ b/share/mkwb/site.mk @@ -1,12 +1,13 @@ -## mkwb canonical site rules. Sites consume this transitively -## via deps.mk: mkdeps.sh emits `include <mkwb rules path>` as -## the last line of deps.mk, so the site Makefile only needs an -## `all:` anchor followed by `include deps.mk`. Order matters: -## `all:` must come first (otherwise deps.mk's first target -## becomes the default), and the site.mk include must come AFTER -## deps.mk's variable assignments so that this file's -## `all: $(derived-assets)` line can resolve its prereq list at -## parse time. +## mkwb canonical site rules. Sites consume this content by +## inlining it at the end of their generated deps.mk: mkdeps.sh +## runs `mkwb rules` (which cats this file) so deps.mk ends up +## self-contained -- no make-time `include` of an external file. +## The site Makefile only needs an `all:` anchor followed by +## `include deps.mk`. Order matters: `all:` must come first +## (otherwise deps.mk's first target becomes the default), and +## the canonical rules below must follow deps.mk's variable +## assignments so that `all: $(derived-assets)` can resolve its +## prereq list at parse time. ## ## The including Makefile is expected to define at minimum: ## diff --git a/src/rules.in b/src/rules.in index b998091..78fa73f 100755 --- a/src/rules.in +++ b/src/rules.in @@ -1,6 +1,8 @@ #!/bin/sh -# Print the absolute path of the canonical Makefile rules shipped -# alongside mkwb. Sites consume it with: -# include $(shell mkwb rules) -# in their top-level Makefile. -echo '@SHAREDIR@/mkwb/site.mk' +# Print the contents of the canonical Makefile rules shipped +# alongside mkwb. Site builds embed the output directly in their +# generated deps.mk so no `include` directive (or shell-out) is +# needed at make time: +# # at the end of mkdeps.sh: +# mkwb rules +exec cat '@SHAREDIR@/mkwb/site.mk' |
