X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2FSConscript;h=2da49d683a212c8ea217e720d2f7a85e89133931;hb=9458fa215af0294e9c38d62cc3a237a85fe50509;hp=224b8a4236550116bf79716edc9db37498d2dae3;hpb=df1ebcb1da4b94c15e4708af96c1585a6dbaf74e;p=lilypond.git diff --git a/lily/SConscript b/lily/SConscript index 224b8a4236..2da49d683a 100644 --- a/lily/SConscript +++ b/lily/SConscript @@ -1,18 +1,29 @@ # -*-python-*- Import ('env') -sources = env['src_glob'] (env, '*.cc') + ['parser.yy', 'lexer.ll'] -includes = env['src_glob'] (env, 'include/*.hh') + outdir = Dir ('.').abspath +cc_sources = env['src_glob'] (env, '*.cc') +sources = cc_sources + ['parser.yy', 'lexer.ll'] +includes = env['src_glob'] (env, 'include/*.hh') e = env.Copy () -e.Append (YACCFLAGS = '-d') e.Append (CPPPATH = [outdir, '#/lily/include', '#/flower/include']) +e.Append (LEXFLAGS = ['-Cfe', '-p', '-p']) + +# SCons builds parser.cc and parser.hh automagically with this but +# keeps removing and rebuilding parser.cc because it wants parser.hpp. +# e.Append (YACCFLAGS = '-d') +# e.Depends ('lexer.cc', 'parser.cc') +# e.Depends ('my-lily-lexer.o', 'parser.cc') +# e.Depends ('my-lily-parser.o', 'parser.cc') -e.Depends ('lexer.cc', 'parser.cc') -e.Depends ('my-lily-lexer.o', 'parser.cc') -e.Depends ('my-lily-parser.o', 'parser.cc') -map (e.Precious, ['parser.cc', 'lexer.cc', 'parser.hh']) +# Adding an explicit Builder works well, we do not even need to list +# header dependencies. +HH = Builder (action = 'bison -d -o ${TARGET.base}.cc $SOURCE', + suffix = '.hh', src_suffix = '.yy') +e.Append (BUILDERS = {'HH' : HH}) +e.HH ('parser.hh', 'parser.yy') e.Append (LIBS = ['flower']) e.ParseConfig ('guile-config link') @@ -21,5 +32,5 @@ lily = e.Program (name, sources) env.Install (env['bindir'], lily) env.Alias ('install', env['bindir']) -#po = e.PO (sources + includes) -#env.Alias ('po', po) +po = env.Command ('lilypond.po', cc_sources + includes, env['pocommand']) +env.Alias ('po-update', po)