# (callable) Check to see if the given directory exists and create it if not.
override ensuredirectory = if $(TEST) ! -d $(call quote,$1); then $(MKDIR) -p $(call quote,$1); fi
-# (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,)
+# (callable) Test to see if the file provided by the first argument exists and the dependencies provided by the third argument matches the value in the file corresponding to the second argument in `$(BUILDDIR)/lastprereqs´.
+# If not, return the fourth argument, plus an additional rule to save the new prerequisites.
+#
+# ※ If the third argument is empty, the fourth argument is always returned.
+override makeandsavedeps = $(if $(or $(if $3,,1),$(if $(wildcard $1),,1),$(subst $(shell $(CAT) $(call quote,$(BUILDDIR)/lastdeps/$2) 2> /dev/null || true),,$3)),$4$(newline)$(silent)$(call ensuredirectory,$(BUILDDIR)/lastdeps)$(newline)$(silent)$(PRINTF) '%s\n' $(call quote,$3) > $(call quote,$(BUILDDIR)/lastdeps/$2),)
# (callable) Make the catalog for the provided category.
override define makecategorycatalog
# Create category catalogs.
$(categorycatalogs) : $(BUILDDIR)/catalogs/categories/%/index : FORCE
- $(call makeandsavedeps,$*,$(call entriesforcategory,$*),$(call makecategorycatalog,$*))
+ $(call makeandsavedeps,$@,$*,$(call entriesforcategory,$*),$(call makecategorycatalog,$*))
# Create entry catalogs.
$(entrycatalogs) : $(BUILDDIR)/catalogs/entries/% :
$(silent)$(XMLCATALOG) --add uri '@' $(call quote,$*) --noout $(call quote,$@)
$(BUILDDIR)/catalogs/indices/index : FORCE | $(SRCDIR)/@
- $(call makeandsavedeps,index,$(categories),$(call makeindexcatalog,))
+ $(call makeandsavedeps,$@,index,$(categories),$(call makeindexcatalog,))
$(BUILDDIR)/catalogs/indices/fullindex : FORCE | $(SRCDIR)/@
- $(call makeandsavedeps,fullindex,$(categories),$(call makeindexcatalog,1))
+ $(call makeandsavedeps,$@,fullindex,$(categories),$(call makeindexcatalog,1))