# -*-python-*- import glob import os import string import sys here = os.getcwd () reldir = str (Dir ('.').srcnode ()) os.chdir (reldir) #mf_sources = reduce (+, mf_sources = reduce (lambda x, y: x + y, map (glob.glob, ('feta[0-9]*.mf', 'feta-braces-[a-z].mf', 'feta-din*[0-9].mf', 'feta-nummer*[0-9].mf', 'parmesan[0-9]*.mf',))) os.chdir (here) Import ('env') MFMODE = env['MFMODE'] #ugh outdir = os.path.join (env['build'], reldir, env['out']) tfm = Builder (action = ('(cd ' + outdir + ' && ' \ + 'MFINPUTS=.:' + str (Dir ('#/mf')) \ + ' mf "\\mode:=%(MFMODE)s; nonstopmode; ' \ + ' input $$(basename $SOURCE);" ' \ + ' | grep -v "@\|>>")') % vars (), suffix = '.tfm', src_suffix = '.mf') # How do do multiple targets? log = Builder (action = ('(cd ' + outdir + ' && ' \ + 'MFINPUTS=.:' + str (Dir ('#/mf')) \ + ' mf "\\mode:=%(MFMODE)s; nonstopmode; ' \ + ' input $$(basename $SOURCE);" ' \ + ' | grep -v "@\|>>")') % vars (), suffix = '.log', src_suffix = '.mf') # How do do multiple targets? enc = Builder (action = ('(cd ' + outdir + ' && ' \ + 'MFINPUTS=.:' + str (Dir ('#/mf')) \ + ' mf "\\mode:=%(MFMODE)s; nonstopmode; ' \ + ' input $$(basename $SOURCE);" ' \ + ' | grep -v "@\|>>")') % vars (), suffix = '.enc', src_suffix = '.mf') # How do do multiple targets? ly = Builder (action = ('(cd ' + outdir + ' && ' \ + 'MFINPUTS=.:' + str (Dir ('#/mf')) \ + ' mf "\\mode:=%(MFMODE)s; nonstopmode; ' \ + ' input $$(basename $SOURCE);" ' \ + ' | grep -v "@\|>>")') % vars (), suffix = '.ly', src_suffix = '.mf') # How do do multiple targets? tex = Builder (action = ('(cd ' + outdir + ' && ' \ + 'MFINPUTS=.:' + str (Dir ('#/mf')) \ + ' mf "\\mode:=%(MFMODE)s; nonstopmode; ' \ + ' input $$(basename $SOURCE);" ' \ + ' | grep -v "@\|>>")') % vars (), suffix = '.tex', src_suffix = '.mf') afm = Builder (action = (sys.executable + ' buildscripts/mf-to-table.py ' \ + ' --package=. --outdir=%(outdir)s '\ + ' --afm %(outdir)s/$$(basename $TARGET .afm).afm' \ + ' --enc %(outdir)s/$$(basename $TARGET .afm).enc' \ + ' --tex %(outdir)s/$$(basename $TARGET .afm).tex' \ + ' --ly %(outdir)s/$$(basename $TARGET .afm).ly'\ + ' %(outdir)s/$$(basename $SOURCE)') % vars (), suffix = '.afm', src_suffix = '.log') # UGH, should fix --output option for mftrace pfa = Builder (action = ('mftrace -I%(outdir)s --pfa --simplify --keep-trying'\ + ' $$(basename $SOURCE .mf) ' \ + ' && mv $$(basename $TARGET) $TARGET') % vars (), suffix = '.pfa', src_suffix = '.mf') xpfa = Builder (action = ('mftrace -I%(outdir)s --pfa --simplify --keep-trying'\ + ' $$(basename $SOURCE .log) ' \ + ' && mv $$(basename $TARGET) $TARGET') % vars (), suffix = '.pfa', src_suffix = '.log') e = env.Copy (BUILDERS = {'Tfm' : tfm, 'Log' : log, 'Enc' : enc, 'Ly' : ly, 'Tex' : tex, 'Afm' : afm, 'Pfa' : pfa}, MFINPUTS = '#/mf') #mf_sources = ('feta16.mf',) sources = map (lambda x: os.path.splitext (x)[0], mf_sources) t = map (e.Tfm, sources) a = map (e.Afm, sources) p = map (e.Pfa, sources) #ugh? w = map (e.Log, sources) x = map (e.Enc, sources) y = map (e.Ly, sources) z = map (e.Tex, sources) #map (lambda x: e.Depends (x + '.log', x + '.mf'), sources) #map (lambda x: e.Depends (x + '.afm', x + '.log'), sources) #map (lambda x: e.Depends (x + '.pfa', x + '.log'), sources) tfmdir = os.path.join (env['lilypondprefix'], 'fonts/tfm') afmdir = os.path.join (env['lilypondprefix'], 'afm') pfadir = os.path.join (env['lilypondprefix'], 'fonts/type1') ti = env.Install (tfmdir, t) ai = env.Install (afmdir, a) pi = env.Install (pfadir, p) env.Alias ('install', tfmdir) env.Alias ('install', afmdir) env.Alias ('install', pfadir)