X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=stepmake%2Fstepmake%2Fmetafont-vars.make;h=1e50a183f53e912a9edcb64764177b8c9f8980e9;hb=7719b3925322a347391fc6c5520a1d763695560f;hp=aeb75c5f004cf1ab1da0e78b985dfdd93dab11be;hpb=cb951038d3e74a85ec8539d0dc51260088251556;p=lilypond.git diff --git a/stepmake/stepmake/metafont-vars.make b/stepmake/stepmake/metafont-vars.make index aeb75c5f00..1e50a183f5 100644 --- a/stepmake/stepmake/metafont-vars.make +++ b/stepmake/stepmake/metafont-vars.make @@ -15,3 +15,25 @@ METAFONT_QUIET = >/dev/null else METAFONT_QUIET = endif + +# Find the metafont file $(1) within the source dirs and return its path. +# If not found, return $(outdir)/$(1) assuming that it is a generated file. +find-mf = \ +$(firstword \ + $(wildcard $(src-dir)/$(1)) \ + $(wildcard $(top-src-dir)/mf/$(1)) \ + $(outdir)/$(1) \ +) + +# Recursively scan the metafont .mf file $(1) for "input X;" +# and return all dependencies. +scan-mf = \ +$(foreach f, $(shell test -f $(1) && sed -ne "/^[[:space:]]*input[[:space:]]/s/^[[:space:]]*input\([^.;]*\)\(.mf;\|;\)/\1.mf/p" $(1)), \ + $(call find-mf,$(f)) \ + $(call scan-mf,$(call find-mf,$(f))) \ +) + +# Find dependencies for the target $@, based on the metafont source file $<, +# and write the dependencies to a .dep file. We cannot strip the extension of $@, +# because we have multiple rules generating .dep files. +DO_MF_DEP = ( echo ./$@: $(call scan-mf,$<) > $@.dep ) &&