>>> What about explicitly creating them as a make prerequisite?
>> 
>> If this is possible, we should certainly do this.

Something like the attached (untested) patch should do.


    Werner
diff --git a/Documentation/GNUmakefile b/Documentation/GNUmakefile
index fbc4692c63..eba1d3ac48 100644
--- a/Documentation/GNUmakefile
+++ b/Documentation/GNUmakefile
@@ -184,7 +184,12 @@ $(outdir)/%.xref-map: $(outdir)/%.texi
 			--master-map-file=$(subst $(call target_language)/,en/,$@)) \
 		$(DOCUMENTATION_INCLUDES) -o $(dir $@) $<
 
-$(outdir)/%.pdf: $(outdir)/%.texi $(outdir)/version.itexi $(outdir)/weblinks.itexi $(OUT_PDF_IMAGES) $(OUT_BITMAP_IMAGES)
+$(outdir)/%.pdf: $(outdir)/%.texi \
+                 $(outdir)/version.itexi \
+                 $(outdir)/weblinks.itexi \
+                 $(OUT_PDF_IMAGES) \
+                 $(OUT_BITMAP_IMAGES) \
+                 | pre-pdf
 	$(call ly_progress,Making,$@,< texi)
 	TEX=$(PDFTEX) PDFTEX=$(PDFTEX) PDFLATEX=$(PDFLATEX) \
 		$(buildscript-dir)/run-and-check.sh \
@@ -218,6 +223,14 @@ else
 	mv $(outdir)/$*.tmp.pdf $@
 endif
 
+# LilyPond uses Cyrillic in its documentation; the used fonts are from the
+# LH family.  By default, its metrics files are generated on the fly, which
+# might cause problems in parallel make jobs.  For this reason we generate
+# the needed TFM files in advance.
+pre-pdf:
+	mktextfm latt1095
+	mktextfm larm1095
+
 $(outdir)/%/index.html: $(outdir)/%.texi $(outdir)/version.itexi $(outdir)/weblinks.itexi $(OUT_BITMAP_IMAGES) $(OUT_CSS_FILES)
 	$(call ly_progress,Making,$@,< texi)
 	mkdir -p $(dir $@)
diff --git a/input/regression/lilypond-book/GNUmakefile b/input/regression/lilypond-book/GNUmakefile
index c689475007..a3d7e85854 100644
--- a/input/regression/lilypond-book/GNUmakefile
+++ b/input/regression/lilypond-book/GNUmakefile
@@ -58,7 +58,7 @@ $(outdir)/%.tex: %.latex
 
 # Add the tex => pdf rule only if 'pdflatex' is set
 ifeq (,$(findstring pdflatex,$(MISSING_OPTIONAL)))
-$(outdir)/%.pdf: $(outdir)/%.tex
+$(outdir)/%.pdf: $(outdir)/%.tex | pre-pdf
 	$(call ly_progress,Making,$@,< tex)
 	rm -fr $(outdir)/$*.build/
 	mkdir $(outdir)/$*.build
@@ -95,7 +95,7 @@ $(outdir)/%.html: $(outdir)/%.texi
 		$(TEXI2HTML_PROGRAM) $(TEXI2HTML_FLAGS) \
 		--output=$@ $<"  "$(outdir)/$*.texilog.log"
 
-$(outdir)/%.pdf: $(outdir)/%.texi
+$(outdir)/%.pdf: $(outdir)/%.texi | pre-pdf
 	TEX=$(PDFTEX) PDFTEX=$(PDFTEX) PDFLATEX=$(PDFLATEX) \
 		$(buildscript-dir)/run-and-check.sh \
 			"cd $(outdir); \
@@ -122,3 +122,11 @@ $(outdir)/%.pdf: $(outdir)/%.xml
 		"$(DBLATEX) $(DBLATEX_BACKEND) -o $*.pdf $(notdir $<)" \
 		"$*.dblatex.log"
 endif
+
+# LilyPond uses Cyrillic in its documentation; the used fonts are from the
+# LH family.  By default, its metrics files are generated on the fly, which
+# might cause problems in parallel make jobs.  For this reason we generate
+# the needed TFM files in advance.
+pre-pdf:
+	mktextfm latt1095
+	mktextfm larm1095
diff --git a/stepmake/stepmake/texinfo-rules.make b/stepmake/stepmake/texinfo-rules.make
index 64a77ae16d..e5327486d2 100644
--- a/stepmake/stepmake/texinfo-rules.make
+++ b/stepmake/stepmake/texinfo-rules.make
@@ -14,7 +14,7 @@ $(outdir)/%/index.html: $(outdir)/%.texi
 	mkdir -p $(dir $@)
 	$(buildscript-dir)/run-and-check.sh "DEPTH=$(depth)/../ $(TEXI2HTML) $(TEXI2HTML_SPLIT) $(TEXI2HTML_FLAGS) --output=$(dir $@) $<"  "$(outdir)/$*.splittexi.log"
 
-$(outdir)/%.pdf: $(outdir)/%.texi
+$(outdir)/%.pdf: $(outdir)/%.texi | pre-pdf
 	$(call ly_progress,Making,$@,< texi)
 	TEX=$(PDFTEX) PDFTEX=$(PDFTEX) PDFLATEX=$(PDFLATEX) \
 		$(buildscript-dir)/run-and-check.sh \
@@ -46,3 +46,11 @@ ifeq ($(USE_EXTRACTPDFMARK),yes)
 else
 	mv $(outdir)/$*.tmp.pdf $@
 endif
+
+# LilyPond uses Cyrillic in its documentation; the used fonts are from the
+# LH family.  By default, its metrics files are generated on the fly, which
+# might cause problems in parallel make jobs.  For this reason we generate
+# the needed TFM files in advance.
+pre-pdf:
+	mktextfm latt1095
+	mktextfm larm1095

Reply via email to