diff options
author | Kenneth Graunke <kenneth@whitecape.org> | 2011-03-01 15:04:04 -0800 |
---|---|---|
committer | Kenneth Graunke <kenneth@whitecape.org> | 2011-03-01 15:49:29 -0800 |
commit | 8be58df67a3d3cc682407f10badcb92a1c988e65 (patch) | |
tree | ac643eba6dcb2a7a014fe052df20634a41248062 | |
parent | 80ec97af79530dc053770d218cd55ac7dbd74736 (diff) |
scons: Use Flex and Bison to generate lexer/parser files.
This gets it building again here; I'll leave it up to the SCons
maintainers to make further improvements.
-rw-r--r-- | src/glsl/SConscript | 19 | ||||
-rw-r--r-- | src/mesa/SConscript | 8 |
2 files changed, 21 insertions, 6 deletions
diff --git a/src/glsl/SConscript b/src/glsl/SConscript index 7c6b6ae8c4..10abab6f94 100644 --- a/src/glsl/SConscript +++ b/src/glsl/SConscript @@ -11,18 +11,29 @@ env.Prepend(CPPPATH = [ '#src/mapi', '#src/mesa', '#src/glsl', + '#src/glsl/glcpp', ]) +env.Append(YACCFLAGS = '-d') + +parser_env = env.Clone(); +parser_env.Append(YACCFLAGS = ['--defines=src/glsl/glsl_parser.h', '-p', '_mesa_glsl_']) + +glcpp_lexer = env.CFile('glcpp/glcpp-lex.c', 'glcpp/glcpp-lex.l') +glcpp_parser = env.CFile('glcpp/glcpp-parse.c', 'glcpp/glcpp-parse.y') +glsl_lexer = parser_env.CXXFile('glsl_lexer.cpp', 'glsl_lexer.ll') +glsl_parser = parser_env.CXXFile('glsl_parser.cpp', 'glsl_parser.yy') + sources = [ - 'glcpp/glcpp-lex.c', - 'glcpp/glcpp-parse.c', + glcpp_lexer, + glcpp_parser[0], 'glcpp/pp.c', 'ast_expr.cpp', 'ast_function.cpp', 'ast_to_hir.cpp', 'ast_type.cpp', - 'glsl_lexer.cpp', - 'glsl_parser.cpp', + glsl_lexer, + glsl_parser[0], 'glsl_parser_extras.cpp', 'glsl_types.cpp', 'glsl_symbol_table.cpp', diff --git a/src/mesa/SConscript b/src/mesa/SConscript index d65750b93e..acbf86ebd2 100644 --- a/src/mesa/SConscript +++ b/src/mesa/SConscript @@ -214,15 +214,17 @@ statetracker_sources = [ 'state_tracker/st_texture.c', ] +env.Append(YACCFLAGS = '-d') +program_lex = env.CFile('program/lex.yy.c', 'program/program_lexer.l') +program_parse = env.CFile('program/program_parse.tab.c', + 'program/program_parse.y') program_sources = [ 'program/arbprogparse.c', 'program/hash_table.c', 'program/ir_to_mesa.cpp', - 'program/lex.yy.c', 'program/nvfragparse.c', 'program/nvvertparse.c', 'program/program.c', - 'program/program_parse.tab.c', 'program/program_parse_extra.c', 'program/prog_cache.c', 'program/prog_execute.c', @@ -237,6 +239,8 @@ program_sources = [ 'program/programopt.c', 'program/sampler.cpp', 'program/symbol_table.c', + program_lex, + program_parse[0], ] mesa_sources = ( |