This breaks cross-compilation because builtin_function.cpp needs to be built with the native compiler, instead of the cross compiler.
I see there is a python program too. Is this native program unavoidable? Jose On Sat, 2011-01-08 at 21:53 -0800, Kenneth Graunke wrote: > Now that this works with both make and SCons, builtin_function.cpp no > longer needs to live in the repository. > --- > src/glsl/.gitignore | 1 + > src/glsl/Makefile | 16 +- > src/glsl/SConscript | 24 +- > src/glsl/builtin_function.cpp |13637 > -------------------------- > src/glsl/builtins/tools/generate_builtins.py | 11 +- > 7 files changed, 78 insertions(+), 13687 deletions(-) > > glsl/builtin_function.cpp -> deleted > glsl/builtins/tools/builtin_function.cpp -> renamed as glsl/builtin_stubs.cpp > > diff --git a/src/glsl/.gitignore b/src/glsl/.gitignore > index 4c21231..162ed42 100644 > --- a/src/glsl/.gitignore > +++ b/src/glsl/.gitignore > @@ -1,2 +1,3 @@ > glsl_compiler > glsl_parser.output > +builtin_function.cpp > diff --git a/src/glsl/Makefile b/src/glsl/Makefile > index 86a577e..93b3bc3 100644 > --- a/src/glsl/Makefile > +++ b/src/glsl/Makefile > @@ -133,10 +133,11 @@ default: depend lib$(LIBNAME).a $(APPS) > lib$(LIBNAME).a: $(OBJECTS) Makefile $(TOP)/src/glsl/Makefile.template > $(MKLIB) -cplusplus -o $(LIBNAME) -static $(OBJECTS) > > -depend: $(ALL_SOURCES) Makefile > +DEPEND_SOURCES=$(subst builtin_function.cpp,,$(ALL_SOURCES)) > +depend: $(DEPEND_SOURCES) Makefile > rm -f depend > touch depend > - $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDES) $(ALL_SOURCES) 2> /dev/null > + $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDES) $(DEPEND_SOURCES) 2> /dev/null > > # Remove .o and backup files > clean: > @@ -174,13 +175,12 @@ glcpp/glcpp-lex.c: glcpp/glcpp-lex.l > glcpp/glcpp-parse.c: glcpp/glcpp-parse.y > bison -v -o "$@" --defines=glcpp/glcpp-parse.h $< > > -builtins: builtin_function.cpp builtins/profiles/* builtins/ir/* > builtins/tools/generate_builtins.py > builtins/tools/texture_builtins.py > +BUILTIN_OBJECTS = $(subst builtin_function,builtin_stubs,$(OBJECTS)) > $(GLSL2_OBJECTS) > +builtin_function.cpp: builtins/profiles/* builtins/ir/* > builtins/tools/generate_builtins.py > builtins/tools/texture_builtins.py $(BUILTIN_OBJECTS) > @echo Bootstrapping the compiler... > - cp builtins/tools/builtin_function.cpp . > - make glsl_compiler > + $(APP_CXX) $(INCLUDES) $(CFLAGS) $(LDFLAGS) $(BUILTIN_OBJECTS) > $(TALLOC_LIBS) -o > builtin_compiler > @echo Regenerating builtin_function.cpp... > - $(PYTHON2) $(PYTHON_FLAGS) builtins/tools/generate_builtins.py > > builtin_function.cpp > - @echo Rebuilding the real compiler... > - make glsl_compiler > + $(PYTHON2) $(PYTHON_FLAGS) builtins/tools/generate_builtins.py > $(PWD)/builtin_compiler > > builtin_function.cpp > + rm builtin_compiler builtin_stubs.o > > -include depend > diff --git a/src/glsl/SConscript b/src/glsl/SConscript > index f179721..5a0d396 100644 > --- a/src/glsl/SConscript > +++ b/src/glsl/SConscript > @@ -2,6 +2,8 @@ import common > > Import('*') > > +from sys import executable as python_cmd > + > env = env.Clone() > > env.Prepend(CPPPATH = [ > @@ -20,7 +22,6 @@ sources = [ > 'ast_function.cpp', > 'ast_to_hir.cpp', > 'ast_type.cpp', > - 'builtin_function.cpp', > 'glsl_lexer.cpp', > 'glsl_parser.cpp', > 'glsl_parser_extras.cpp', > @@ -79,9 +80,28 @@ sources = [ > 'strtod.c', > ] > > +env.Prepend(LIBS = ['talloc']) > +env.Append(CPPPATH = ['#/src/glsl']) > + > +builtin_compiler = env.Program( > + target = 'builtin_compiler', > + source = sources + ['main.cpp', 'builtin_stubs.cpp', > + '../mesa/program/hash_table.c', > + '../mesa/program/symbol_table.c'], > +) > + > +env.CodeGenerate( > + target = 'builtin_function.cpp', > + script = 'builtins/tools/generate_builtins.py', > + source = builtin_compiler, > + command = python_cmd + ' $SCRIPT $SOURCE > $TARGET' > +) > + > +env.Depends('builtin_function.cpp', ['builtins/tools/generate_builtins.py', > 'builtins/tools/texture_builtins.py'] + Glob('builtins/ir/*')) > + > glsl = env.ConvenienceLibrary( > target = 'glsl', > - source = sources, > + source = sources + [ 'builtin_function.cpp' ], > ) > > Export('glsl') > diff --git a/src/glsl/builtins/tools/generate_builtins.py > b/src/glsl/builtins/tools/generate_builtins.py > index e2de9db..8b11338 100755 > --- a/src/glsl/builtins/tools/generate_builtins.py > +++ b/src/glsl/builtins/tools/generate_builtins.py > @@ -5,12 +5,20 @@ import re > from glob import glob > from os import path > from subprocess import Popen, PIPE > +from sys import argv > > # Local module: generator for texture lookup builtins > from texture_builtins import generate_texture_functions > > builtins_dir = path.join(path.dirname(path.abspath(__file__)), "..") > > +# Get the path to the standalone GLSL compiler > +if len(argv) != 2: > + print "Usage:", argv[0], "<path to compiler>" > + sys.exit(1) > + > +compiler = argv[1] > + > # Read the files in builtins/ir/*...add them to the supplied dictionary. > def read_ir_files(fs): > for filename in glob(path.join(path.join(builtins_dir, 'ir'), '*')): > @@ -47,8 +55,7 @@ def write_function_definitions(): > print stringify(v), ';' > > def run_compiler(args): > - compiler_path = path.join(path.join(builtins_dir, '..'), 'glsl_compiler') > - command = [compiler_path, '--dump-lir'] + args > + command = [compiler, '--dump-lir'] + args > p = Popen(command, 1, stdout=PIPE, shell=False) > output = p.communicate()[0] > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev