From fac798284cd22a03ffe44132730be8779928b3d0 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sun, 11 Jul 2004 12:51:43 +0000 Subject: [PATCH] Scons fixes. --- Documentation/user/SConscript | 23 ++++------------- SConstruct | 27 +++++++++++++++----- buildscripts/builder.py | 48 +++++++++++++++++------------------ 3 files changed, 49 insertions(+), 49 deletions(-) diff --git a/Documentation/user/SConscript b/Documentation/user/SConscript index 9740453d45..8e6e137ac5 100644 --- a/Documentation/user/SConscript +++ b/Documentation/user/SConscript @@ -40,7 +40,7 @@ epss = map (e.Png2eps, png_stems) 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')\ @@ -59,32 +59,19 @@ srcdir = env['srcdir'] ##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) diff --git a/SConstruct b/SConstruct index e9adef066b..4a715c730b 100644 --- a/SConstruct +++ b/SConstruct @@ -56,7 +56,7 @@ env = Environment () # 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', '.') @@ -81,6 +81,10 @@ Help (opts.GenerateHelpText (env)) env = Environment (options = opts) +opts.Update (env) +#opts.Save ('config.cache', env) + + env.CacheDir (os.path.join (env['build'], '=build-cache')) #ugh @@ -351,15 +355,16 @@ env['MAKEINFO_PATH'] = ['.', '#/Documentation/user', ## 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',] @@ -410,19 +415,26 @@ def symlink_tree (prefix): 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'), @@ -431,8 +443,9 @@ def symlink_tree (prefix): ('#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) diff --git a/buildscripts/builder.py b/buildscripts/builder.py index abd8ecd276..16b3c0db20 100644 --- a/buildscripts/builder.py +++ b/buildscripts/builder.py @@ -51,20 +51,20 @@ env.Append (ENV = {'TEXMF' : '{' + LILYPONDPREFIX + ',' \ + 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}) @@ -100,8 +100,8 @@ env.Append (BUILDERS = {'LilyPond': lilypond}) 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}) @@ -123,15 +123,15 @@ def add_suffixes (target, source, env, target_suffixes, src_suffixes): 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'], [])) @@ -142,12 +142,12 @@ MF_TO_TABLE_PY = env['MF_TO_TABLE_PY'] #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}) @@ -167,8 +167,8 @@ def encoding_opt (target): 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) @@ -183,10 +183,10 @@ def run_mftrace (target, source, env): 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) -- 2.39.2