From: Lady Date: Fri, 6 Mar 2026 02:47:43 +0000 (-0500) Subject: Get destinations from “with metadata” parsed file X-Git-Tag: 1.1.0~1 X-Git-Url: https://git.ladys.computer/Shushe/commitdiff_plain/2fcf7186a7211578eb721726c5d45eff09d80524 Get destinations from “with metadata” parsed file This file contains the entire parse result, so there is no need to load the parse result separately. This commit also updates the Make dependencies to accurately track that these files are required. --- diff --git a/GNUmakefile b/GNUmakefile index a883837..33fa601 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2023, 2024, 2025 Lady +# SPDX-FileCopyrightText: 2023, 2024, 2025, 2026 Lady # SPDX-License-Identifier: MPL-2.0 SHELL = /bin/sh @@ -8,7 +8,7 @@ override define makefileinfo ╭────────────────────────────╮ ╔╡ ⁌ ⛩📰 书社 ∷ GNUmakefile ╞═════════════════════════════════╗ ║╰────────────────────────────╯ ║ -╟┬ ¶ Prerequisites ───────────────────────────────────────────┬╢ +╟┬ § Prerequisites ───────────────────────────────────────────┬╢ ║│ │║ ║│ Requires G·N·U Make, at least version 3.81, the Fine Free │║ ║│ File Command, and the various programs packaged with │║ @@ -51,7 +51,7 @@ override define makefileinfo ║│ program `program´ by overriding the corresponding variable │║ ║│ `PROGRAM´ when calling Make. │║ ║╰────────────────────────────────────────────────────────────╯║ -╟┬ ¶ Usage ───────────────────────────────────────────────────┬╢ +╟┬ § Usage ───────────────────────────────────────────────────┬╢ ║│ │║ ║│ • `make all´ (default): Compile, but do not install, all │║ ║│ files. │║ @@ -81,9 +81,9 @@ override define makefileinfo ║│ See `README.markdown´ for a more involved description of │║ ║│ the capabilities and configuration of this program. │║ ║╰────────────────────────────────────────────────────────────╯║ -╟┬ ¶ Copyright & License ─────────────────────────────────────┬╢ +╟┬ § Copyright & License ─────────────────────────────────────┬╢ ║│ │║ -║│ Copyright © 2023–2025 Lady [@ Ladys Computer]. │║ +║│ Copyright © 2023–2026 Lady [@ Ladys Computer]. │║ ║│ │║ ║│ This Source Code Form is subject to the terms of the │║ ║│ Mozilla Public License, v 2.0. If a copy of the M·P·L was │║ @@ -689,7 +689,7 @@ $(call metadata,$(sourcefiles) $(sourceincludes)) : % : $$(call datadata,$$@) $( # Collect the metadata into a single file, and generate the dependencies and destinations files as side·effects. # # Doing this all in one step reduces the number of calls to `xsltproc´ required, but requires that it be called from the build directory (necessitating a subshell). -$(BUILDDIR)/dependencies $(BUILDDIR)/destinations $(BUILDDIR)/metadata : $(call diffprereqs,metadatas,$(call metadata,$(sort $(sourcefiles) $(sourceincludes)))) $$(call parseresult,$(sourcefiles) $(sourceincludes)) $(THISDIR)/lib/expandmetadata.xslt +$(BUILDDIR)/dependencies $(BUILDDIR)/destinations $(BUILDDIR)/metadata : $(call diffprereqs,metadatas,$(call metadata,$(sort $(sourcefiles) $(sourceincludes)))) $(call diffprereqs,parseds,$$(call parsed,$(sort $(sourcefiles) $(sourceincludes)))) $(THISDIR)/lib/expandmetadata.xslt $(call inform,$(PRINTF) '%s\n' 'Compiling metadata…' >&2) $(silent){ $(PRINTF) '<书社vocab:BuildDirectory nfo:fileUrl="%s"/>' $(call quote,$(call attresc,$(call fileuri,$(BUILDDIR)))); {$(foreach meta,$(call metadata,$(sort $(sourcefiles) $(sourceincludes))), $(CAT) $(call quote,$(meta));) } | $(SED) 's///g'; $(PRINTF) '%s\n' ''; } | ( $(CD) $(call quote,$(BUILDDIR)); $(XSLTPROC) --nonet --novalid --nomkdir $(call quote,$(abspath $(THISDIR)/lib/expandmetadata.xslt)) - ) | $(XMLLINT) --nonet --nsclean - >|$(call quote,$(BUILDDIR)/metadata) diff --git a/lib/expandmetadata.xslt b/lib/expandmetadata.xslt index 727d58a..df790f9 100644 --- a/lib/expandmetadata.xslt +++ b/lib/expandmetadata.xslt @@ -1,12 +1,12 @@