depth = ..
STEPMAKE_TEMPLATES=metafont install install-out
-LOCALSTEPMAKE_TEMPLATES=asciifont
include $(depth)/make/stepmake.make
INSTALLATION_OUT_DIR3=$(local_lilypond_datadir)/fonts/tfm
INSTALLATION_OUT_FILES3=$(TFM_FILES)
-SAUTER_FONTS = cmbxti7 cmbxti8 cmbxti12 cmbxti14 \
- cmcsc7 cmcsc12 cmtt17 cmbx14 cmbx17 cmtt6 cmbx6 cmbx5 cmbxti5 \
- cmti6 cmti5
+
+SAUTER_FONTS = cmbxti8
ALL_FONTS = $(FETA_FONTS) $(SAUTER_FONTS)
export MFINPUTS:=.:$(MFINPUTS)
-default: $(ALL_GEN_FILES)
+default: pfa_warning $(ALL_GEN_FILES)
+
+
+pfa_warning:
+ifneq ($(basename $(MFTRACE)),mftrace)
+ @echo ""
+ @echo "ERROR: mftrace not found"
+ @echo ""
+ @echo "For obtaining PFA fonts, either install mftrace "
+ @echo "(see http://www.xs4all.nl/~hanwen/mftrace/ ),"
+ @echo "or try one of the following commands in this directory: "
+ @echo ""
+ @echo " make get-pfa "
+ @echo " make get-rpm-pfa "
+ @echo " make get-deb-pfa "
+ @echo ""
+ @echo "These commands will try to download the files from the internet."
+ @false
+endif
+
+
+debian-mirror=http://ftp.us.debian.org
+debian-package =lilypond_$(TOPLEVEL_VERSION)-1_i386.deb
+$(outdir)/$(debian-package):
+ wget --passive-ftp -P $(outdir) $(debian-mirror)/debian/pool/main/l/lilypond/$(debian-package)
+
+get-deb-pfa: $(outdir)/$(debian-package)
+ rm -rf $(outdir)/./usr
+ ar p $< data.tar.gz | \
+ tar -C $(outdir) -zvxf - '*.pfa'
+ touch $(addprefix $(outdir)/, $(addsuffix .bla,$(SAUTER_FONTS)))
+ cp `find $(outdir)/usr/ -name '*.pfa'` $(outdir)/
+
+
+redhat-package=lilypond-$(TOPLEVEL_VERSION)-1.i386.rpm
+$(outdir)/$(redhat-package):
+ wget --passive-ftp -P $(outdir) ftp://ftp.lilypond.org/pub/LilyPond/binaries/RedHat-9/$(redhat-package)
+
+get-rpm-pfa: $(outdir)/$(redhat-package)
+ cd $(outdir) ; rm -rf usr/ # (root alert!)
+ cd $(outdir) ; rpm2cpio $(redhat-package) | cpio -uid '*.pfa'
+ touch $(addprefix $(outdir)/, $(addsuffix .bla,$(SAUTER_FONTS)))
+ cp `find $(outdir)/usr/ -name '*.pfa'` $(outdir)/
+
+# change this dependency
+get-pfa: get-rpm-pfa
+
##
## todo: this also depends on .tfm, FIXME.
-$(outdir)/%.afm $(outdir)/%.enc $(outdir)/%.tex $(outdir)/%.dep: $(outdir)/%.log $(outdir)/%.tfm
+$(outdir)/%.afm $(outdir)/%.enc $(outdir)/%.tex $(outdir)/%list.ly $(outdir)/%.dep: $(outdir)/%.log $(outdir)/%.tfm
$(PYTHON) $(buildscript-dir)/mf-to-table.py --package=$(topdir) --outdir=$(outdir) --dep $(outdir)/$(<F:.log=.dep) --afm $(outdir)/$(<F:.log=.afm) --enc $(outdir)/$(<F:.log=.enc) --tex $(outdir)/$(<F:.log=.tex) --ly $(outdir)/$(<F:.log=list.ly) $<
fontdir: $(addprefix $(outdir)/, lilypond.map lilypond.sfd private-fonts fonts.scale fonts.dir)
pfa: afm $(PFA_FILES) fontdir
pfb: afm $(PFB_FILES) fontdir
-# needed for web documentation
-$(SAUTER_FONTS:%=$(outdir)/%.pfa):
- $(foreach i, $(SAUTER_FONTS), \
- $(MFTRACE) -I $(outdir)/ --pfa --simplify --keep-trying $(i) && mv $(i).pfa $(outdir)/ && ) true
-$(SAUTER_FONTS:%=$(outdir)/%.pfb):
- $(foreach i, $(SAUTER_FONTS), \
- $(MFTRACE) -I $(outdir)/ --pfa --pfb --simplify --keep-trying $(i) && mv $(i).pfb $(i).pfa $(outdir)/ && ) true
+
+# stupid trick to have separate rules for each PFA font ;
+# otherwise building PFAs is all-or-nothing.
+$(SAUTER_FONTS:%=$(outdir)/%.bla):
+ $(foreach i, $@, touch $i && ) true
+
+$(outdir)/%.pfa: $(outdir)/%.bla
+ $(MFTRACE) -I $(outdir)/ --pfa --simplify --keep-trying $(notdir $(basename $@)) && mv $(notdir $@) $(outdir)/
+