[Mesa-dev] [PATCH 3/3] glsl/build: Build libglcpp and libglslcore in builtin_compiler

Matt Turner mattst88 at gmail.com
Sat Jan 19 01:21:38 PST 2013


And reuse them if not cross compiling.

v2: Simplify libglcpp.la by making sure a native one is always in
    src/glsl/. Fixes a problem when linking egl_gallium.la.
---
 src/glsl/Makefile.am                  |   52 ++++++++++++---------------------
 src/glsl/builtin_compiler/Makefile.am |   27 +++++++++-------
 2 files changed, 34 insertions(+), 45 deletions(-)

diff --git a/src/glsl/Makefile.am b/src/glsl/Makefile.am
index f97dc21..058d8ae 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.
 
-if CROSS_COMPILING
 SUBDIRS = builtin_compiler
-endif
 
 AM_CPPFLAGS = \
 	-I$(top_srcdir)/include \
@@ -45,7 +43,7 @@ TESTS_ENVIRONMENT= \
 	export PYTHON2=$(PYTHON2); \
 	export PYTHON_FLAGS=$(PYTHON_FLAGS);
 
-noinst_LTLIBRARIES = libglcpp.la libglsl.la
+noinst_LTLIBRARIES = libglsl.la libglcpp.la
 check_PROGRAMS =					\
 	glcpp/glcpp					\
 	glsl_test					\
@@ -74,22 +72,31 @@ tests_ralloc_test_LDADD =				\
 	$(top_builddir)/src/gtest/libgtest.la		\
 	$(PTHREAD_LIBS)
 
+if CROSS_COMPILING
 libglcpp_la_SOURCES =					\
 	glcpp/glcpp-lex.c				\
 	glcpp/glcpp-parse.c				\
 	$(LIBGLCPP_FILES)
+else
+libglcpp_la_LIBADD = builtin_compiler/libglcpp.la
+endif
 
 glcpp_glcpp_SOURCES =					\
 	glcpp/glcpp.c					\
 	$(top_srcdir)/src/mesa/program/prog_hash_table.c
 glcpp_glcpp_LDADD = libglcpp.la
 
-libglsl_la_SOURCES =					\
+libglsl_la_SOURCES = builtin_function.cpp
+libglsl_la_LIBADD = libglcpp.la
+if CROSS_COMPILING
+libglsl_la_SOURCES +=					\
 	glsl_lexer.cpp					\
 	glsl_parser.cpp					\
-	$(LIBGLSL_FILES)				\
-	builtin_function.cpp
-libglsl_la_LIBADD = libglcpp.la
+	$(LIBGLSL_FILES)
+else
+libglsl_la_LIBADD +=					\
+	builtin_compiler/libglslcore.la
+endif
 
 glsl_test_SOURCES = \
 	$(top_srcdir)/src/mesa/main/hash_table.c \
@@ -101,27 +108,6 @@ glsl_test_SOURCES = \
 
 glsl_test_LDADD = libglsl.la
 
-if CROSS_COMPILING
-BUILTIN_COMPILER = builtin_compiler/builtin_compiler$(BUILD_EXEEXT)
-else
-BUILTIN_COMPILER = builtincompiler$(BUILD_EXEEXT)
-
-noinst_PROGRAMS = builtincompiler
-noinst_LTLIBRARIES += libglslcore.la
-
-libglslcore_la_SOURCES =				\
-	glsl_lexer.cpp					\
-	glsl_parser.cpp					\
-	$(LIBGLSL_FILES)
-builtincompiler_SOURCES = \
-	$(top_srcdir)/src/mesa/main/hash_table.c	\
-	$(top_srcdir)/src/mesa/program/prog_hash_table.c\
-	$(top_srcdir)/src/mesa/program/symbol_table.c	\
-	$(top_srcdir)/src/glsl/builtin_compiler/builtin_stubs.cpp \
-	$(GLSL_COMPILER_CXX_FILES)
-builtincompiler_LDADD = libglslcore.la libglcpp.la
-endif
-
 # We write our own rules for yacc and lex below. We'd rather use automake,
 # but automake makes it especially difficult for a number of reasons:
 #
@@ -174,13 +160,13 @@ glcpp/glcpp-lex.c: glcpp/glcpp-lex.l
 # dependency rules.
 BUILT_SOURCES =						\
 	glsl_parser.cpp					\
-	glcpp/glcpp-parse.c
+	glsl_lexer.cpp					\
+	glcpp/glcpp-parse.c				\
+	glcpp/glcpp-lex.c
 CLEANFILES =						\
 	glcpp/glcpp-parse.h				\
-	glcpp/glcpp-lex.c				\
 	glsl_parser.h					\
-	glsl_lexer.cpp					\
 	$(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)
-	$(AM_V_GEN) $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/builtins/tools/generate_builtins.py $(builddir)/$(BUILTIN_COMPILER) > builtin_function.cpp || rm -f builtin_function.cpp
+builtin_function.cpp: $(srcdir)/builtins/profiles/* $(srcdir)/builtins/ir/* $(srcdir)/builtins/glsl/* $(srcdir)/builtins/tools/generate_builtins.py $(srcdir)/builtins/tools/texture_builtins.py $(builddir)/builtin_compiler/builtin_compiler$(BUILD_EXEEXT)
+	$(AM_V_GEN) $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/builtins/tools/generate_builtins.py $(builddir)/builtin_compiler/builtin_compiler$(BUILD_EXEEXT) > builtin_function.cpp || rm -f builtin_function.cpp
diff --git a/src/glsl/builtin_compiler/Makefile.am b/src/glsl/builtin_compiler/Makefile.am
index a025556..1a863b2 100644
--- a/src/glsl/builtin_compiler/Makefile.am
+++ b/src/glsl/builtin_compiler/Makefile.am
@@ -43,17 +43,20 @@ AM_CXXFLAGS = $(AM_CFLAGS)
 include ../Makefile.sources
 
 noinst_PROGRAMS = builtin_compiler
+noinst_LTLIBRARIES = libglslcore.la libglcpp.la
+
+libglcpp_la_SOURCES =					\
+	$(LIBGLCPP_GENERATED_FILES)			\
+	$(LIBGLCPP_FILES)
+
+libglslcore_la_SOURCES =				\
+	$(BUILTIN_COMPILER_GENERATED_CXX_FILES)		\
+	$(LIBGLSL_FILES)
 
 builtin_compiler_SOURCES = \
-	$(GLSL_BUILDDIR)/glcpp/glcpp-lex.c \
-	$(GLSL_BUILDDIR)/glcpp/glcpp-parse.c \
-	$(LIBGLCPP_FILES) \
-	$(GLSL_BUILDDIR)/glsl_lexer.cpp \
-	$(GLSL_BUILDDIR)/glsl_parser.cpp \
-	$(LIBGLSL_FILES) \
-	$(LIBGLSL_CXX_FILES) \
-	$(top_srcdir)/src/mesa/main/hash_table.c \
-	$(top_srcdir)/src/mesa/program/prog_hash_table.c \
-	$(top_srcdir)/src/mesa/program/symbol_table.c \
-	$(GLSL_COMPILER_CXX_FILES) \
-	builtin_stubs.cpp
+	$(top_srcdir)/src/mesa/main/hash_table.c	\
+	$(top_srcdir)/src/mesa/program/prog_hash_table.c\
+	$(top_srcdir)/src/mesa/program/symbol_table.c	\
+	$(BUILTIN_COMPILER_CXX_FILES)			\
+	$(GLSL_COMPILER_CXX_FILES)
+builtin_compiler_LDADD = libglslcore.la libglcpp.la
-- 
1.7.8.6



More information about the mesa-dev mailing list