+# Don't remove $(outdir)/.log's. Logs are a target!
+# we want to see botched results as well.
$(outdir)/%.dvi: %.mf
- mf $<
- gftodvi $(basename $<)
- mv $(basename $<).dvi $(outdir)
+ -MFINPUTS=$(src-dir) $(METAFONT) "\scrollmode; input $<;"
+ gftodvi $(basename $<)
+ mv $(basename $<).dvi $(outdir)
rm $(basename $<).*gf
-$(outdir)/%.log: %.mf
- mf $<
- mv $(@F) $@
- rm $(basename $< ).*gf
+$(outdir)/%.tfm $(outdir)/%.log: %.mf
+ MFINPUTS=$(src-dir) $(METAFONT) "\mode:=$(MFMODE); nonstopmode; input $<;" $(METAFONT_QUIET)
+# Let's keep this log output, it saves another mf run.
+ mv $(basename $(@F)).log $(basename $(@F)).tfm $(outdir)
+ rm -f $(basename $(@F)).*gf $(basename $(@F)).*pk
-$(outdir)/%.tfm: %.mf
- mf '\mode:=ljfour; input $<;'
- mv $(@F) $(outdir)
- rm $(basename $<).*gf $(basename $<).*log
-
-$(outdir)/%.$(XPM_RESOLUTION)gf: %.mf
- mf "\\mode=$(XPM_MODE); \\input $<"
- mv $(@F) out
- rm -f $(basename $<).log $(basename $<).tfm
-
-$(outdir)/%.$(XPM_RESOLUTION)pk: $(outdir)/%.$(XPM_RESOLUTION)gf
- gftopk $< $@
+# ugh . mf2pt1 is extremely broken, it pollutes CWD iso. creating a
+# temp dir.
+#
+# the soft link for mf2pt1.mp is for recent mpost versions
+# which no longer dump a .mem file
+$(outdir)/%.pfb: %.mf $(outdir)/mf2pt1.mem
+ TMP=`mktemp -d $(outdir)/pfbtemp.XXXXXXXXX` \
+ && ( cd $$TMP \
+ && ln -s ../mf2pt1.mem . \
+ && ln -s ../../mf2pt1.mp . \
+ && MFINPUTS=$(abs-src-dir):..:: $(buildscript-dir)/mf2pt1 $(MF2PT1_OPTIONS) $< $(METAFONT_QUIET)) \
+ && mv $$TMP/*pfb $(outdir); \
+ rm -rf $$TMP
+# since recent mpost versions no longer create a mem file, we create a dummy
+# file to satisfy the dependency (which gets overwritten in case an older
+# mpost creates a real mem file)
+$(outdir)/mf2pt1.mem: mf2pt1.mp
+ cd $(outdir) \
+ && touch mf2pt1.mem \
+ && mpost -progname=mpost -ini $(top-src-dir)/mf/mf2pt1.mp \\dump