e.Depends ('lilypond.texi', epss)
e.Command ('lilypond-internals.texi', LILYPOND_BIN,
- ('(cd $$(dirname $TARGET) && \
+ ('(cd ${TARGET.dir} && \
LILYPONDPREFIX=%(LILYPONDPREFIX)s %(LILYPOND_BIN)s ' \
+ verbose_opt (env, ' --verbose') \
+ ' ' + os.path.join (env['srcdir'], 'ly/generate-documentation')\
##MAKEINFO = env['MAKEINFO']
# TODO: purl (ugh?), symlinks
verbose = verbose_opt (env, ' --verbose')
-a = ('makeinfo -I%(reldir)s -I$$(dirname $SOURCE)'\
- + ' --output=%(out)s/lilypond'\
+a = ('makeinfo -I%(reldir)s -I${SOURCE.dir}'\
+ + ' --output=${TARGET.dir}'\
+ ' --css-include=%(docdir)s/texinfo.css'\
+ ' --html%(verbose)s'\
+ ' $SOURCE &&' \
- + ' makeinfo -I%(reldir)s -I$$(dirname $SOURCE)' \
+ + ' makeinfo -I%(reldir)s -I${SOURCE.dir}' \
+ ' --output=$TARGET' \
+ ' --css-include=%(docdir)s/texinfo.css' \
+ ' --html --no-split --no-headers %(verbose)s' \
+ ' $SOURCE') % vars ()
e.Command ('lilypond/lilypond.html', 'lilypond.texi', a)
-
-# TODO: purl (ugh?), symlinks
-a = ('makeinfo -I%(reldir)s -I$$(dirname $SOURCE)'\
- + ' --output=%(out)s/lilypond-internals' \
- + ' --css-include=%(docdir)s/texinfo.css' \
- + ' --html%(verbose)s'\
- + ' $SOURCE &&' \
- + ' makeinfo -I%(reldir)s -I$$(dirname $SOURCE)' \
- + ' --output=$TARGET' \
- + ' --css-include=%(docdir)s/texinfo.css' \
- + ' --html --no-split --no-headers %(verbose)s' \
- + ' $SOURCE') % vars ()
e.Command ('lilypond-internals/lilypond-internals.html',
- 'lilypond-internals.texi',
- a)
+ 'lilypond-internals.texi', a)
e.Alias ('doc', texis)
e.Alias ('doc', dvis)
# put your favourite stuff in custom.py
opts = Options ('custom.py', ARGUMENTS)
-#opts = Options (None, ARGUMENTS)
+#opts = Options (['config.cache', 'custom.py'], ARGUMENTS)
opts.Add ('prefix', 'Install prefix', '/usr/')
opts.Add ('out', 'Output directory', 'out-scons')
opts.Add ('build', 'Build directory', '.')
env = Environment (options = opts)
+opts.Update (env)
+#opts.Save ('config.cache', env)
+
+
env.CacheDir (os.path.join (env['build'], '=build-cache'))
#ugh
## TEXINFO_PAPERSIZE_OPTION= $(if $(findstring $(PAPERSIZE),a4),,-t @afourpaper)
env['TEXINFO_PAPERSIZE_OPTION'] = '-t @afourpaper'
-#FIXME: ./python isn't sconsed yet, add scrdir/python for lilylib.py ...
env.Append (PYTHONPATH = [os.path.join (outdir, 'usr/lib/python'),
os.path.join (srcdir, 'buildscripts'),
os.path.join (srcdir, 'python')])
# huh, aha?
+# GS_FONTPATH, GS_LIB?
env.Append (ENV = { 'PYTHONPATH' : string.join (env['PYTHONPATH'],
os.pathsep) } )
+# UGHR, lilypond.py uses lilypond-bin from PATH
+env.Append (ENV = { 'PATH' : os.path.join (outdir, 'usr/bin') })
-# GS_FONTPATH, GS_LIB?
SConscript ('buildscripts/builder.py')
#subdirs = ['mf',]
map (mkdir, string.split (dir, os.sep))
#srcdir = os.getcwd ()
def symlink (src, dst):
+ os.chdir (absbuild)
dir = os.path.dirname (dst)
mkdirs (dir)
if src[0] == '#':
frm = os.path.join (srcdir, src[1:])
else:
- depth = len (string.split (dir))
+ print 'dst: ' + dst
+ depth = len (string.split (dir, '/'))
+ print 'depth: ' + `depth`
frm = os.path.join ('../' * depth, src, out)
+ print 'cwd: ' + `os.getcwd ()`
+ print 'frm: ' + frm
+ print 'dst: ' + dst
os.symlink (frm, os.path.basename (dst))
- os.chdir (srcdir)
map (lambda x: symlink (x[0], os.path.join (prefix, x[1])),
(('python', 'lib/lilypond/python'),
+ # UGHR, lilypond.py uses lilypond-bin from PATH
+ ('lily', 'bin'),
('#mf', 'share/lilypond/fonts/mf'),
- ('mf', 'share/lilypond/fonts/amf'),
+ ('mf', 'share/lilypond/fonts/afm'),
('mf', 'share/lilypond/fonts/tfm'),
('mf', 'share/lilypond/fonts/type1'),
('#tex', 'share/lilypond/tex/source'),
('#scm', 'share/lilypond/scm'),
('#ps', 'share/lilypond/ps'),
('elisp', 'share/lilypond/elisp')))
+ os.chdir (srcdir)
if env['debugging']:
- prefix = os.path.join (outdir, 'usr')
+ prefix = os.path.join (out, 'usr')
if not os.path.exists (prefix):
symlink_tree (prefix)
+ os.popen ('kpsexpand \$TEXMF').read ()[:-1] + '}' })
verbose = verbose_opt (env, ' --verbose')
-a = (r'''rm -f $$(grep -LF '\lilypondend' $$(dirname $TARGET)/lily-*.tex 2>/dev/null); ''' \
+a = (r'''rm -f $$(grep -LF '\lilypondend' ${TARGET.dir}/lily-*.tex 2>/dev/null); ''' \
+ 'LILYPONDPREFIX=%(LILYPONDPREFIX)s '\
+ '%(PYTHON)s %(LILYPOND_BOOK)s%(verbose)s'\
- + ' --include=$$(dirname $TARGET) %(LILYPOND_BOOK_INCLUDES)s'\
+ + ' --include=${TARGET.dir} %(LILYPOND_BOOK_INCLUDES)s'\
+ r""" --process='%(LILYPOND_BIN)s %(LILYPOND_BOOK_INCLUDES)s'"""\
- + ' --output=$$(dirname $TARGET) --format=%(LILYPOND_BOOK_FORMAT)s\
+ + ' --output=${TARGET.dir} --format=%(LILYPOND_BOOK_FORMAT)s\
%(LILYPOND_BOOK_FLAGS)s\
$SOURCE') % vars ()
tely2texi = Builder (action = a, suffix = '.texi', src_suffix = '.tely')
env.Append (BUILDERS = {'Tely2texi': tely2texi})
TEXINFO_PAPERSIZE_OPTION = env['TEXINFO_PAPERSIZE_OPTION']
-a = '(cd $$(dirname $TARGET) &&\
- texi2dvi --batch %(TEXINFO_PAPERSIZE_OPTION)s $$(basename $SOURCE))' % vars ()
+a = '(cd ${TARGET.dir} &&\
+ texi2dvi --batch %(TEXINFO_PAPERSIZE_OPTION)s ${SOURCE.file})' % vars ()
texi2dvi = Builder (action = a, suffix = '.dvi', src_suffix = '.texi')
env.Append (BUILDERS = {'Texi2dvi': texi2dvi})
verbose = verbose_opt (env, ' --verbose')
a = ('LILYPONDPREFIX=%(LILYPONDPREFIX)s '\
+ '%(PYTHON)s %(ABC2LY_PY)s%(verbose)s'\
- + ' --include=$$(dirname $TARGET)'\
- + ' --output=$$(dirname $TARGET)/$$(basename $TARGET .ly)'\
+ + ' --include=${TARGET.dir}'\
+ + ' --output=${TARGET.base}'\
+ ' $SOURCE') % vars ()
abc2ly = Builder (action = a, suffix = '.ly', src_suffix = '.abc')
env.Append (BUILDERS = {'Abc2ly': abc2ly})
source + map (lambda x: base + x, src_suffixes))
#outdir = os.path.join (env['build'], reldir, env['out'])
-outdir = '$$(dirname $TARGET)'
+outdir = '${TARGET.dir}'
scrdir = env['srcdir']
#MFINPUTS = '.:' + str (Dir ('#/mf'))
-#MFINPUTS = '.:$$(dirname $SOURCE)'
-a = ('(cd $$(dirname $TARGET) &&'\
-# + ' MFINPUTS=.:$$(dirname $SOURCE)'\
- + ' MFINPUTS=.:$$(dirname $SOURCE):%(srcdir)s/$$(dirname $SOURCE)'\
+#MFINPUTS = '.:${SOURCE.dir}'
+a = ('(cd ${TARGET.dir} &&'\
+# + ' MFINPUTS=.:${SOURCE.dir}'\
+ + ' MFINPUTS=.:${SOURCE.dir}:%(srcdir)s/${SOURCE.dir}'\
+ ' mf "\\mode:=%(MFMODE)s; nonstopmode;'\
- + ' input $$(basename $SOURCE);" ' \
+ + ' input ${SOURCE.filebase};" ' \
+ ' | grep -v "@\|>>")') % vars ()
tfm = Builder (action = a, suffix = '.tfm', src_suffix = '.mf',
# emitter = lambda t, s, e: add_suffixes (t, s, e, ['.log'], []))
#verbose = verbose_opt (env, ' --verbose')
verbose = ''
a = ('%(PYTHON)s %(MF_TO_TABLE_PY)s%(verbose)s'\
- + ' --outdir=$$(dirname $TARGET)'\
- + ' --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)list.ly'\
- + ' $$(dirname $TARGET)/$$(basename $SOURCE)') % vars ()
+ + ' --outdir=${TARGET.dir}'\
+ + ' --afm=${TARGET.base}.afm' \
+ + ' --enc=${TARGET.base}.enc' \
+ + ' --tex=${TARGET.base}' \
+ + ' --ly=${TARGET.base}list.ly'\
+ + ' ${TARGET.base}.log') % vars ()
afm = Builder (action = a, suffix = '.afm', src_suffix = '.log',
emitter = add_enc_ly_tex_target)
env.Append (BUILDERS = {'AFM': afm})
xpfa = Builder (action = ('MFINPUTS=.:' + str (Dir ('#/mf')) \
+ ' mftrace -I %(outdir)s --pfa' \
+ ' --simplify --keep-trying' \
- + ' $$(basename $SOURCE .mf) ' \
- + ' && mv $$(basename $TARGET) $TARGET') % vars (),
+ + ' ${SOURCE.filebase} ' \
+ + ' && mv ${TARGET.filebase} $TARGET') % vars (),
suffix = '.pfa',
src_suffix = '.mf',
emitter = add_enc_src)
mfdir = os.path.join (here, reldir)
outdir = os.path.join (env['build'], reldir, env['out'])
encoding = encoding_opt (target)
- command = ('(cd $$(dirname $TARGET) && '
- + ' MFINPUTS=.:$$(dirname $TARGET):' + mfdir\
+ command = ('(cd ${TARGET.dir} && '
+ + ' MFINPUTS=.:${TARGET.dir}:' + mfdir\
+ ' mftrace --pfa --simplify --keep-trying%(verbose)s'\
- + ' --include=$$(dirname $TARGET)'\
+ + ' --include=${TARGET.dir}'\
+ ' %(encoding)s %(mf)s)') % vars ()
return os.system (command)