# (callable) Test to see if the dependencies provided by the second argument matches the value in the file corresponding to the first argument in `$(BUILDDIR)/lastprereqs´.
# If not, return the third argument, plus an additional rule to save the new prerequisites.
-override makeandsavedeps = $(if $(subst $(shell $(CAT) $(call quote,$(BUILDDIR)/lastdeps/$1) 2> /dev/null || true),,$2),$3$(newline)$(silent)$(call ensuredirectory,$(BUILDDIR)/lastdeps)$(newline)$(silent)$(PRINTF) '%s\n' $(call quote,$2) > $(BUILDDIR)/lastdeps/$1,)
+override makeandsavedeps = $(if $(or $(if $2,,1),$(subst $(shell $(CAT) $(call quote,$(BUILDDIR)/lastdeps/$1) 2> /dev/null || true),,$2)),$3$(newline)$(silent)$(call ensuredirectory,$(BUILDDIR)/lastdeps)$(newline)$(silent)$(PRINTF) '%s\n' $(call quote,$2) > $(BUILDDIR)/lastdeps/$1,)
# (callable) Make the catalog for the provided category.
override define makecategorycatalog
# ─ ¶ Build Targets ───────────────────────────────────────────────────
# Initialize the ⛩️📰 书社 repository if it is empty.
-$(SHUSHE)/GNUmakefile : %/GNUmakefile :
+$(SHUSHE)/GNUmakefile : $(THISDIR)/%/GNUmakefile :
@$(PRINTF) '%s\n' $(call quote,Initializing git submodule at `$*´)
- $(silent)$(GIT) submodule update --init $(call quote,$*)
+ $(silent)cd $(THISDIR) && $(GIT) submodule update --init $(call quote,$*)
# Touch parsers and transforms if the files in `lib/´ have changed.
$(PARSERS) $(TRANSFORMS) : $(wildcard lib/*.xslt)