diff options
author | Thierry Reding <[email protected]> | 2012-10-19 14:03:01 +0200 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2012-11-01 18:18:21 -0700 |
commit | 9948a33653088c2b9409f12924857643989657a5 (patch) | |
tree | 3b81d0caf60245caaa27cbbfd4edbb1518a82cbb /src/glsl/Makefile.am | |
parent | 8d3fb1be6bd61e59fa241d6422419119956b7d90 (diff) |
build: Don't cross-compile GLSL builtin compiler
The builtin_compiler binary is used during the build process to generate
code for the builtin GLSL functions. Since this binary needs to be run
on the build host, it must not be cross-compiled.
This patch fixes the build system to compile a second version of the
source files and the builtin_compiler binary itself for the build
system. It does so by defining the CC_FOR_BUILD and CXX_FOR_BUILD
variables, which are searched for by the configure script and point to
the location of native C and C++ compilers.
In order for this to work properly, builtin_function.cpp is removed
from BUILT_SOURCES, otherwise the build system would try to generate it
before having had a chance to descend into the builtin_compiler
subdirectory. With the builtin_compiler and glsl_compiler now being
generated at different stages, the build instructions for glsl_compiler
can be simplified a bit.
Signed-off-by: Thierry Reding <[email protected]>
Acked-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/glsl/Makefile.am')
-rw-r--r-- | src/glsl/Makefile.am | 48 |
1 files changed, 13 insertions, 35 deletions
diff --git a/src/glsl/Makefile.am b/src/glsl/Makefile.am index 1ecc0036c90..6fb3d2d9dc7 100644 --- a/src/glsl/Makefile.am +++ b/src/glsl/Makefile.am @@ -19,9 +19,7 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE. - -# builtin_compiler is built before libglsl to generate builtin_function.cpp for libglsl. -# For this to work, a dummy version of builtin_function.cpp, builtin_stubs.cpp, is used. +SUBDIRS = builtin_compiler glcpp AM_CPPFLAGS = \ -I$(top_srcdir)/include \ @@ -38,32 +36,23 @@ AM_LFLAGS = --nounistd -o$(LEX_OUTPUT_ROOT).c include Makefile.sources -noinst_LTLIBRARIES = libglslcommon.la libglsl.la -noinst_PROGRAMS = glsl_compiler glsl_test builtin_compiler +noinst_LTLIBRARIES = libglsl.la +noinst_PROGRAMS = glsl_compiler glsl_test -# common sources for builtin_compiler and libglsl -libglslcommon_la_SOURCES = \ +libglsl_la_SOURCES = \ glsl_lexer.ll \ glsl_parser.cc \ $(LIBGLSL_FILES) \ - $(LIBGLSL_CXX_FILES) - -libglslcommon_la_LIBADD = glcpp/libglcpp.la - -# common sources for builtin_compiler and glsl_compiler -GLSL2_SOURCES = \ - $(top_srcdir)/src/mesa/program/hash_table.c \ - $(top_srcdir)/src/mesa/program/symbol_table.c \ - $(GLSL_COMPILER_CXX_FILES) - -libglsl_la_SOURCES = \ + $(LIBGLSL_CXX_FILES) \ builtin_function.cpp -libglsl_la_LIBADD = libglslcommon.la +libglsl_la_LIBADD = glcpp/libglcpp.la libglsl_la_LDFLAGS = glsl_compiler_SOURCES = \ - $(GLSL2_SOURCES) + $(top_srcdir)/src/mesa/program/hash_table.c \ + $(top_srcdir)/src/mesa/program/symbol_table.c \ + $(GLSL_COMPILER_CXX_FILES) glsl_compiler_LDADD = libglsl.la @@ -76,12 +65,6 @@ glsl_test_SOURCES = \ glsl_test_LDADD = libglsl.la -builtin_compiler_SOURCES = \ - $(GLSL2_SOURCES) \ - builtin_stubs.cpp - -builtin_compiler_LDADD = libglslcommon.la - # automake <=1.11 and automake >=1.12 have different conventions for naming C++ header files # made by yacc. To work with both, we write our own rule rather than using automake's. # When (if) we require automake >=1.12 in configure.ac, this can be removed, and we can use @@ -89,16 +72,11 @@ builtin_compiler_LDADD = libglslcommon.la glsl_parser.cc glsl_parser.h: glsl_parser.yy $(AM_V_GEN) $(YACC) -v -o glsl_parser.cc -p "_mesa_glsl_" --defines=glsl_parser.h $< -BUILT_SOURCES = glsl_parser.h builtin_function.cpp -CLEANFILES = glsl_lexer.cc glsl_parser.cc $(BUILT_SOURCES) - -builtin_function.cpp: $(srcdir)/builtins/profiles/* $(srcdir)/builtins/ir/* $(srcdir)/builtins/glsl/* $(srcdir)/builtins/tools/generate_builtins.py $(srcdir)/builtins/tools/texture_builtins.py builtin_compiler$(EXEEXT) - $(AM_V_GEN) $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/builtins/tools/generate_builtins.py ./builtin_compiler > builtin_function.cpp || rm -f builtin_function.cpp - -glcpp/libglcpp.la: - cd glcpp ; $(MAKE) $(AM_MAKEFLAGS) +BUILT_SOURCES = glsl_parser.h +CLEANFILES = glsl_lexer.cc glsl_parser.cc $(BUILT_SOURCES) builtin_function.cpp -SUBDIRS = glcpp +builtin_function.cpp: $(srcdir)/builtins/profiles/* $(srcdir)/builtins/ir/* $(srcdir)/builtins/glsl/* $(srcdir)/builtins/tools/generate_builtins.py $(srcdir)/builtins/tools/texture_builtins.py builtin_compiler/builtin_compiler$(BUILD_EXEEXT) + $(AM_V_GEN) $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/builtins/tools/generate_builtins.py builtin_compiler/builtin_compiler$(BUILD_EXEEXT) > builtin_function.cpp || rm -f builtin_function.cpp # Provide compatibility with scripts for the old Mesa build system for # a while by putting a link to the library in the current directory. |