9 reldir = str (Dir ('.').srcnode ())
11 #mf_sources = reduce (+,
12 mf_sources = reduce (lambda x, y: x + y,
15 'feta-braces-[a-z].mf',
17 'feta-nummer*[0-9].mf',
18 'parmesan[0-9]*.mf',)))
22 MFMODE = env['MFMODE']
24 outdir = os.path.join (env['build'], reldir, env['out'])
25 tfm = Builder (action = ('(cd ' + outdir + ' && ' \
26 + 'MFINPUTS=.:' + str (Dir ('#/mf')) \
27 + ' mf "\\mode:=%(MFMODE)s; nonstopmode; ' \
28 + ' input $$(basename $SOURCE);" ' \
29 + ' | grep -v "@\|>>")') % vars (),
33 # How do do multiple targets?
34 log = Builder (action = ('(cd ' + outdir + ' && ' \
35 + 'MFINPUTS=.:' + str (Dir ('#/mf')) \
36 + ' mf "\\mode:=%(MFMODE)s; nonstopmode; ' \
37 + ' input $$(basename $SOURCE);" ' \
38 + ' | grep -v "@\|>>")') % vars (),
42 # How do do multiple targets?
43 enc = Builder (action = ('(cd ' + outdir + ' && ' \
44 + 'MFINPUTS=.:' + str (Dir ('#/mf')) \
45 + ' mf "\\mode:=%(MFMODE)s; nonstopmode; ' \
46 + ' input $$(basename $SOURCE);" ' \
47 + ' | grep -v "@\|>>")') % vars (),
51 # How do do multiple targets?
52 ly = Builder (action = ('(cd ' + outdir + ' && ' \
53 + 'MFINPUTS=.:' + str (Dir ('#/mf')) \
54 + ' mf "\\mode:=%(MFMODE)s; nonstopmode; ' \
55 + ' input $$(basename $SOURCE);" ' \
56 + ' | grep -v "@\|>>")') % vars (),
60 # How do do multiple targets?
61 tex = Builder (action = ('(cd ' + outdir + ' && ' \
62 + 'MFINPUTS=.:' + str (Dir ('#/mf')) \
63 + ' mf "\\mode:=%(MFMODE)s; nonstopmode; ' \
64 + ' input $$(basename $SOURCE);" ' \
65 + ' | grep -v "@\|>>")') % vars (),
69 afm = Builder (action = (sys.executable
70 + ' buildscripts/mf-to-table.py ' \
71 + ' --package=. --outdir=%(outdir)s '\
72 + ' --afm %(outdir)s/$$(basename $TARGET .afm).afm' \
73 + ' --enc %(outdir)s/$$(basename $TARGET .afm).enc' \
74 + ' --tex %(outdir)s/$$(basename $TARGET .afm).tex' \
75 + ' --ly %(outdir)s/$$(basename $TARGET .afm).ly'\
76 + ' %(outdir)s/$$(basename $SOURCE)') % vars (),
80 # UGH, should fix --output option for mftrace
81 pfa = Builder (action = ('mftrace -I%(outdir)s --pfa --simplify --keep-trying'\
82 + ' $$(basename $SOURCE .mf) ' \
83 + ' && mv $$(basename $TARGET) $TARGET') % vars (),
88 xpfa = Builder (action = ('mftrace -I%(outdir)s --pfa --simplify --keep-trying'\
89 + ' $$(basename $SOURCE .log) ' \
90 + ' && mv $$(basename $TARGET) $TARGET') % vars (),
94 e = env.Copy (BUILDERS = {'Tfm' : tfm,
95 'Log' : log, 'Enc' : enc, 'Ly' : ly, 'Tex' : tex,
96 'Afm' : afm, 'Pfa' : pfa},
99 #mf_sources = ('feta16.mf',)
100 sources = map (lambda x: os.path.splitext (x)[0], mf_sources)
102 t = map (e.Tfm, sources)
103 a = map (e.Afm, sources)
104 p = map (e.Pfa, sources)
107 w = map (e.Log, sources)
108 x = map (e.Enc, sources)
109 y = map (e.Ly, sources)
110 z = map (e.Tex, sources)
112 #map (lambda x: e.Depends (x + '.log', x + '.mf'), sources)
113 #map (lambda x: e.Depends (x + '.afm', x + '.log'), sources)
114 #map (lambda x: e.Depends (x + '.pfa', x + '.log'), sources)
116 tfmdir = os.path.join (env['lilypondprefix'], 'fonts/tfm')
117 afmdir = os.path.join (env['lilypondprefix'], 'afm')
118 pfadir = os.path.join (env['lilypondprefix'], 'fonts/type1')
119 ti = env.Install (tfmdir, t)
120 ai = env.Install (afmdir, a)
121 pi = env.Install (pfadir, p)
122 env.Alias ('install', tfmdir)
123 env.Alias ('install', afmdir)
124 env.Alias ('install', pfadir)