3 STEPMAKE_TEMPLATES
=metafont
install install-out
4 LOCALSTEPMAKE_TEMPLATES
=asciifont
6 include $(depth
)/make
/stepmake.make
8 AF_FILES
= $(wildcard *.af
)
10 EXTRA_DIST_FILES
+= README feta.
tex
12 # We don't use $(MF_FILES), because there's more .mf cruft here
13 FETA_MF_FILES
= $(wildcard feta
[0-9]*.mf
)\
14 $(wildcard feta-braces
*[0-9].mf
)\
15 $(wildcard feta-din
*[0-9].mf
)\
16 $(wildcard feta-nummer
*[0-9].mf
)\
17 $(wildcard parmesan
[0-9]*.mf
)
19 FETA_FONTS
= $(FETA_MF_FILES
:.mf
=)
21 XPM_FONTS
= feta20 feta-din10 feta-nummer10 feta-braces20 parmesan20
23 LOG_FILES
= $(FETA_MF_FILES
:%.mf
=$(outdir
)/%.log
)
24 TEXTABLES
= $(FETA_MF_FILES
:%.mf
=$(outdir
)/%.
tex)
25 AFM_FILES
= $(FETA_MF_FILES
:%.mf
=$(outdir
)/%.afm
) \
26 $(AF_FILES
:%.af
=$(outdir
)/%.afm
)
27 ENC_FILES
= $(TEXTABLES
:.
tex=.enc
)
28 TFM_FILES
= $(FETA_MF_FILES
:%.mf
=$(outdir
)/%.tfm
)
31 ENCODING_FILE
=$(findstring $(<:.mf
=.enc
), $(FETA_MF_FILES
:.mf
=.enc
))
32 MFTRACE_FLAGS
=$(if
$(ENCODING_FILE
),--encoding
$(ENCODING_FILE
),)
34 # Make tfm files first, log files last,
35 # so that normally log files aren't made twice
36 ALL_GEN_FILES
= $(TFM_FILES
) $(TEXTABLES
) $(AFM_FILES
) $(TFM_FILES
) $(LOG_FILES
) $(ENC_FILES
)
38 #PRE_INSTALL=$(MAKE) "$(ALL_GEN_FILES)"
39 INSTALLATION_DIR
=$(local_lilypond_datadir
)/fonts
/source
40 INSTALLATION_FILES
=$(MF_FILES
) $(AF_FILES
)
42 INSTALLATION_OUT_SUFFIXES
=1 2 3 4 5
44 INSTALLATION_OUT_DIR1
=$(local_lilypond_datadir
)/tex
45 INSTALLATION_OUT_FILES1
=$(TEXTABLES
)
47 INSTALLATION_OUT_DIR2
=$(local_lilypond_datadir
)/fonts
/afm
48 INSTALLATION_OUT_FILES2
=$(AFM_FILES
)
50 INSTALLATION_OUT_DIR3
=$(local_lilypond_datadir
)/fonts
/tfm
51 INSTALLATION_OUT_FILES3
=$(TFM_FILES
)
53 SAUTER_FONTS
= cmbxti7 cmbxti8 cmbxti12 cmbxti14 \
54 cmcsc7 cmcsc12 cmtt17 cmbx14 cmbx17 cmtt6 cmbx6 cmbx5 cmbxti5 \
57 ALL_FONTS
= $(FETA_FONTS
) $(SAUTER_FONTS
)
60 PFA_FILES
= $(ALL_FONTS
:%=$(outdir
)/%.pfa
)
61 PFB_FILES
= $(PFA_FILES
:%.pfa
=%.pfb
)
63 ALL_GEN_FILES
+= $(PFA_FILES
) $(outdir
)/lilypond.map
$(outdir
)/fonts.scale
64 INSTALLATION_OUT_DIR4
=$(local_lilypond_datadir
)/fonts
/type1
65 INSTALLATION_OUT_FILES4
=$(PFA_FILES
) $(outdir
)/fonts.scale
67 INSTALLATION_OUT_DIR5
=$(local_lilypond_datadir
)/dvips
/
68 INSTALLATION_OUT_FILES5
=$(outdir
)/lilypond.map
70 export MFINPUTS
:=.
:$(MFINPUTS
)
72 default
: $(ALL_GEN_FILES
)
75 ## todo: this also depends on .tfm, FIXME.
76 $(outdir
)/%.afm
$(outdir
)/%.enc
$(outdir
)/%.
tex $(outdir
)/%.dep
: $(outdir
)/%.log
$(outdir
)/%.tfm
77 $(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
) $<
79 fontdir
: $(addprefix $(outdir
)/, lilypond.map lilypond.sfd private-fonts fonts.scale fonts.
dir)
82 mapentry
=$(1) $(shell fgrep FontName
$(outdir
)/$(1).afm | sed
-e
's/FontName *//') <$(1).pfaX
84 map
= $(foreach a
,$(2),$(call
$(1),$(a
)))
85 $(outdir
)/lilypond.xmap
: $(AFM_FILES
)
86 echo
'$(call map,mapentry,$(ALL_FONTS))' | \
87 tr
'X' '\n' | sed
-e
's/^ *//'> $@
89 # using shell for loop seems most robust
90 $(outdir
)/lilypond.map
: $(AFM_FILES
)
91 for i in
$(FETA_FONTS
); do echo
$$i $$(fgrep FontName
$(outdir
)/$$i.afm | sed
-e
's/FontName *//') '<'$$i.pfa
; done
> $@
92 for i in
$(SAUTER_FONTS
); do echo
"$$i $$i <$$i.pfa"; done
>> $@
95 $(outdir
)/fonts.scale
: $(PFA_FILES
)
96 # cd $(outdir) && echo $(FETA_MF_FILES:.mf=.pfa) $(FETA_MF_FILES:.mf=.pfb) | $(PYTHON) $(topdir)/buildscripts/make-font-dir.py > $(@F)
97 cd
$(outdir
) && echo
*.pfa
*.pfb |
$(PYTHON
) $(topdir
)/buildscripts
/make-font-dir.py
> $(@F
)
99 $(outdir
)/fonts.
dir: $(outdir
)/fonts.scale
100 cd
$(outdir
) && mkfontdir
103 $(outdir
)/lilypond.sfd
:
104 # cd $(outdir) && echo sketch $(FETA_MF_FILES:.mf=.pfa) | $(PYTHON) $(topdir)/buildscripts/make-font-dir.py > $(@F)
105 cd
$(outdir
) && echo sketch
*.pfa |
$(PYTHON
) $(topdir
)/buildscripts
/make-font-dir.py
> $(@F
)
108 SODIPODI_FONTS
= parmesan20 feta-braces0 feta-nummer10 feta20
109 $(outdir
)/private-fonts
:
110 cd
$(outdir
) && echo sodipodi
$(SODIPODI_FONTS
:%=%.pfa
) |
$(PYTHON
) $(topdir
)/buildscripts
/make-font-dir.py
> $(@F
)
113 rm -f mfplain.mem mfplain.log
117 pfa
: afm
$(PFA_FILES
) fontdir
118 pfb
: afm
$(PFB_FILES
) fontdir
120 # needed for web documentation
121 $(SAUTER_FONTS
:%=$(outdir
)/%.pfa
):
122 $(foreach i
, $(SAUTER_FONTS
), \
123 $(MFTRACE
) -I
$(outdir
)/ --pfa
--simplify
--keep-trying
$(i
) && mv
$(i
).pfa
$(outdir
)/ && ) true
124 $(SAUTER_FONTS
:%=$(outdir
)/%.pfb
):
125 $(foreach i
, $(SAUTER_FONTS
), \
126 $(MFTRACE
) -I
$(outdir
)/ --pfa
--pfb
--simplify
--keep-trying
$(i
) && mv
$(i
).pfb
$(i
).pfa
$(outdir
)/ && ) true