From cc949a9fd031c51e1106f47c138357c16d1e6c2e Mon Sep 17 00:00:00 2001 From: David Kastrup Date: Tue, 27 May 2014 12:15:14 +0200 Subject: [PATCH] Revert "Generate a .pe script for one design size at a time." This reverts commit 366316fd6be846c2050be6b1b3955b261026187e. See for the rationale --- mf/GNUmakefile | 74 +++++++++++++++---------- scripts/build/gen-emmentaler-scripts.py | 54 +++++++++--------- 2 files changed, 72 insertions(+), 56 deletions(-) diff --git a/mf/GNUmakefile b/mf/GNUmakefile index 0172275c6d..9da619c823 100644 --- a/mf/GNUmakefile +++ b/mf/GNUmakefile @@ -30,6 +30,7 @@ BRACES = a b c d e f g h i OTF_FILES = $(STAFF_SIZES:%=$(outdir)/emmentaler-%.otf) \ $(outdir)/emmentaler-brace.otf +PE_SCRIPTS = $(STAFF_SIZES:%=$(outdir)/emmentaler-%.pe) OTF_TABLES = $(STAFF_SIZES:%=$(outdir)/feta%.otf-table) \ $(BRACES:%=$(outdir)/feta-braces-%.otf-table) SVG_FILES = $(OTF_FILES:%.otf=%.svg) @@ -51,6 +52,22 @@ $(outdir)/emmentaler-brace.otf-table: $(BRACES:%=$(outdir)/feta-braces-%.otf-tab $(outdir)/emmentaler-brace.otf-gtable: $(BRACES:%=$(outdir)/feta-braces-%.otf-gtable) echo '(design_size . 20)' > $@ + + +## ugh -- we want this to prevent failing -j2 compiles. +define FETAxx-PREREQUISITES + + +$(outdir)/feta$(i).otf-table: $(outdir)/feta$(i).lisp \ + $(outdir)/feta-noteheads$(i).lisp \ + $(outdir)/feta-flags$(i).lisp \ + $(outdir)/parmesan$(i).lisp \ + $(outdir)/parmesan-noteheads$(i).lisp \ + $(outdir)/feta-alphabet$(i).lisp +endef + +$(eval $(foreach i,$(STAFF_SIZES),$(FETAxx-PREREQUISITES))) + $(outdir)/%.otf-table: $(outdir)/%.lisp cat $< $(if $(findstring brace,$<),,$(subst feta,parmesan,$<)) \ $(if $(findstring brace,$<),,$(subst feta,parmesan-noteheads,$<)) \ @@ -65,13 +82,18 @@ $(outdir)/emmentaler-brace.otf: $(outdir)/emmentaler-brace.subfonts \ $(outdir)/emmentaler-brace.otf-gtable \ $(outdir)/emmentaler-brace.pe +$(outdir)/emmentaler-brace.otf\ + $(outdir)/emmentaler-brace.svg\ + $(outdir)/emmentaler-brace.woff: $(BRACES:%=$(outdir)/feta-braces-%.pfb) + $(outdir)/emmentaler-brace.fontname: printf 'emmentaler-brace' > $@ $(outdir)/emmentaler-brace.subfonts: echo $(subst .mf,,$(call src-wildcard,feta-braces-[a-z].mf)) > $@ -$(outdir)/emmentaler-%.genpe: $(buildscript-dir)/gen-emmentaler-scripts - $< --dir=$(outdir) --design-size=$(patsubst emmentaler-%.genpe,%,$(notdir $@)) +$(PE_SCRIPTS): $(buildscript-dir)/gen-emmentaler-scripts + $< --dir=$(outdir) + # Generate emmentaler-*.pe scripts first, and *.otf, *.svg, *.woff files last, # so that normally these files aren't regenerated on a subsequent call to make. @@ -101,20 +123,16 @@ INSTALLATION_OUT_FILES2 = $(SVG_FILES) $(WOFF_FILES) export MFINPUTS := .:$(MFINPUTS) -# A few rules here generate multiple files from one command line. For -# treating this case, we only declare one output explicitly, and use a -# dummy rules for the other outputs. The dummy rule uses -# $(UPDATE_TARGET) so the order of writing in the real command does -# not confuse make. -UPDATE_TARGET = if test -f $@; then touch $@ ; fi - # only for fonts which # # 1. are mentioned in font.scm # # 2. are not included with teTeX # -$(outdir)/%.lisp: $(outdir)/%.log $(outdir)/%.tfm +$(outdir)/%.lisp \ +$(outdir)/%.otf-gtable \ +$(outdir)/%.enc \ +$(outdir)/%.pe: $(outdir)/%.log $(outdir)/%.tfm $(buildscript-dir)/mf-to-table \ --global-lisp=$(outdir)/$('$(shell cd $(outdir); pwd)'' > $@ - -$(outdir)/CenturySchL-Roma.otf: $(NCSB_SOURCE_FILES) \ +$(NCSB_OTFS): $(NCSB_SOURCE_FILES) \ $(auxscript-dir)/pfx2ttf.fontforge $(foreach i, $(basename $(NCSB_SOURCE_FILES)), \ $(FONTFORGE) -script $(auxscript-dir)/pfx2ttf.fontforge \ $(i).pfb $(i).afm $(outdir)/ && ) true - -$(addprefix $(outdir)/,CenturySchL-Ital.otf \ - CenturySchL-Bold.otf \ - CenturySchL-BoldItal.otf): $(outdir)/CenturySchL-Roma.otf - $(UPDATE_TARGET) +# eof diff --git a/scripts/build/gen-emmentaler-scripts.py b/scripts/build/gen-emmentaler-scripts.py index 935baafca4..9f645b5929 100644 --- a/scripts/build/gen-emmentaler-scripts.py +++ b/scripts/build/gen-emmentaler-scripts.py @@ -6,26 +6,25 @@ import os (options, files) = \ getopt.getopt (sys.argv[1:], - '', - ['dir=', 'design-size=']) + '', + ['dir=']) + -design_size = 0 outdir = '' for opt in options: o = opt[0] a = opt[1] if o == '--dir': outdir = a - elif o == '--design-size': - design_size = int(a) else: print o raise getopt.error - -name = 'Emmentaler' -filename = name.lower () -script = '''#!@FONTFORGE@ +# Ugh +for design_size in [11,13,14,16,18,20,23,26]: + name = 'Emmentaler' + filename = name.lower () + script = '''#!@FONTFORGE@ New(); @@ -81,33 +80,32 @@ Generate("%(filename)s-%(design_size)d.svg"); Generate("%(filename)s-%(design_size)d.woff"); ''' % vars() -basename = '%s-%d' % (filename, design_size) -path = os.path.join (outdir, basename + '.genpe') -open (path, 'w').write (script) + basename = '%s-%d' % (filename, design_size) + path = os.path.join (outdir, basename + '.pe') + open (path, 'w').write (script) -subfonts = ['feta%(design_size)d', - 'feta-noteheads%(design_size)d', - 'feta-flags%(design_size)d', - 'parmesan%(design_size)d', - 'parmesan-noteheads%(design_size)d', - 'feta-alphabet%(design_size)d'] + subfonts = ['feta%(design_size)d', + 'feta-noteheads%(design_size)d', + 'feta-flags%(design_size)d', + 'parmesan%(design_size)d', + 'parmesan-noteheads%(design_size)d', + 'feta-alphabet%(design_size)d'] -ns = [] -for s in subfonts: - ns.append ('%s' % (s % vars())) + ns = [] + for s in subfonts: + ns.append ('%s' % (s % vars())) -subfonts_str = ' '.join (ns) + subfonts_str = ' '.join (ns) -open (os.path.join (outdir, '%(filename)s-%(design_size)d.subfonts' % vars()), 'w').write (subfonts_str) + open (os.path.join (outdir, '%(filename)s-%(design_size)d.subfonts' % vars()), 'w').write (subfonts_str) -path = os.path.join (outdir, '%s-%d.dep' % (filename, design_size)) + path = os.path.join (outdir, '%s-%d.dep' % (filename, design_size)) -deps = r'''%(filename)s-%(design_size)d.otf: $(outdir)/feta%(design_size)d.pfb \ + deps = r'''%(filename)s-%(design_size)d.otf: $(outdir)/feta%(design_size)d.pfb \ $(outdir)/parmesan%(design_size)d.pfb \ $(outdir)/feta-alphabet%(design_size)d.pfb feta%(design_size)d.otf-table \ feta%(design_size)d.otf-gtable ''' % vars() + open (path, 'w').write (deps) -open (path, 'w').write (deps) - -open (os.path.join (outdir, basename + '.fontname'), 'w').write ("%s-%d" % (name, design_size)) + open (os.path.join (outdir, basename + '.fontname'), 'w').write ("%s-%d" % (name, design_size)) -- 2.39.2