aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/glsl
diff options
context:
space:
mode:
Diffstat (limited to 'mesalib/src/glsl')
-rw-r--r--mesalib/src/glsl/.gitignore1
-rw-r--r--mesalib/src/glsl/Android.mk2
-rw-r--r--mesalib/src/glsl/Makefile.am48
-rw-r--r--mesalib/src/glsl/SConscript7
-rw-r--r--mesalib/src/glsl/builtin_compiler/.gitignore6
-rw-r--r--mesalib/src/glsl/builtin_compiler/Makefile.am68
-rw-r--r--mesalib/src/glsl/builtin_compiler/builtin_stubs.cpp (renamed from mesalib/src/glsl/builtin_stubs.cpp)0
7 files changed, 92 insertions, 40 deletions
diff --git a/mesalib/src/glsl/.gitignore b/mesalib/src/glsl/.gitignore
index 81240b952..068d4874b 100644
--- a/mesalib/src/glsl/.gitignore
+++ b/mesalib/src/glsl/.gitignore
@@ -4,6 +4,5 @@ glsl_parser.cc
glsl_parser.h
glsl_parser.output
builtin_function.cpp
-builtin_compiler
glsl_test
/Makefile
diff --git a/mesalib/src/glsl/Android.mk b/mesalib/src/glsl/Android.mk
index 87a02f51b..f975d03d1 100644
--- a/mesalib/src/glsl/Android.mk
+++ b/mesalib/src/glsl/Android.mk
@@ -60,7 +60,7 @@ LOCAL_SRC_FILES := \
$(LIBGLCPP_FILES) \
$(LIBGLSL_FILES) \
$(LIBGLSL_CXX_FILES) \
- $(BUILTIN_COMPILER_CXX_FILES) \
+ $(GLSL_SRCDIR)/builtin_compiler/builtin_stubs.cpp \
$(GLSL_COMPILER_CXX_FILES)
LOCAL_C_INCLUDES := \
diff --git a/mesalib/src/glsl/Makefile.am b/mesalib/src/glsl/Makefile.am
index 1ecc0036c..6fb3d2d9d 100644
--- a/mesalib/src/glsl/Makefile.am
+++ b/mesalib/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.
diff --git a/mesalib/src/glsl/SConscript b/mesalib/src/glsl/SConscript
index 6314c7551..89014ee3c 100644
--- a/mesalib/src/glsl/SConscript
+++ b/mesalib/src/glsl/SConscript
@@ -71,9 +71,10 @@ else:
compiler_objs += mesa_objs
builtin_compiler = env.Program(
- target = 'builtin_compiler',
- source = compiler_objs + glsl_sources + \
- source_lists['BUILTIN_COMPILER_CXX_FILES'],
+ target = 'builtin_compiler/builtin_compiler',
+ source = compiler_objs + glsl_sources + [
+ 'builtin_compiler/builtin_stubs.cpp',
+ ]
)
# SCons builtin dependency scanner doesn't detect that glsl_lexer.ll
diff --git a/mesalib/src/glsl/builtin_compiler/.gitignore b/mesalib/src/glsl/builtin_compiler/.gitignore
new file mode 100644
index 000000000..40c551baa
--- /dev/null
+++ b/mesalib/src/glsl/builtin_compiler/.gitignore
@@ -0,0 +1,6 @@
+builtin_compiler
+glcpp-lex.c
+glcpp-parse.c
+glcpp-parse.h
+glcpp-parse.output
+/Makefile
diff --git a/mesalib/src/glsl/builtin_compiler/Makefile.am b/mesalib/src/glsl/builtin_compiler/Makefile.am
new file mode 100644
index 000000000..72032b524
--- /dev/null
+++ b/mesalib/src/glsl/builtin_compiler/Makefile.am
@@ -0,0 +1,68 @@
+# Copyright © 2012 Jon TURNEY
+# Copyright © 2012 Thierry Reding
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+
+CC = @CC_FOR_BUILD@
+CFLAGS = @CFLAGS_FOR_BUILD@
+CPP = @CPP_FOR_BUILD@
+CPPFLAGS = @CPPFLAGS_FOR_BUILD@
+CXX = @CXX_FOR_BUILD@
+CXXFLAGS = @CXXFLAGS_FOR_BUILD@
+LD = @LD_FOR_BUILD@
+LDFLAGS = @LDFLAGS_FOR_BUILD@
+
+AM_CFLAGS = \
+ -I $(top_srcdir)/include \
+ -I $(top_srcdir)/src/mapi \
+ -I $(top_srcdir)/src/mesa \
+ -I $(GLSL_SRCDIR) \
+ -I $(GLSL_SRCDIR)/glcpp \
+ $(DEFINES_FOR_BUILD)
+
+AM_CXXFLAGS = $(AM_CFLAGS)
+
+AM_YFLAGS = -v -d -p "glcpp_parser_"
+AM_LFLAGS = --nounistd -o$(LEX_OUTPUT_ROOT).c
+
+include ../Makefile.sources
+
+noinst_PROGRAMS = builtin_compiler
+
+builtin_compiler_SOURCES = \
+ $(GLSL_SRCDIR)/glcpp/glcpp-lex.l \
+ $(GLSL_SRCDIR)/glcpp/glcpp-parse.y \
+ $(LIBGLCPP_FILES) \
+ $(GLSL_SRCDIR)/glsl_lexer.ll \
+ $(GLSL_SRCDIR)/glsl_parser.cc \
+ $(LIBGLSL_FILES) \
+ $(LIBGLSL_CXX_FILES) \
+ $(top_srcdir)/src/mesa/program/hash_table.c \
+ $(top_srcdir)/src/mesa/program/symbol_table.c \
+ $(GLSL_COMPILER_CXX_FILES) \
+ builtin_stubs.cpp
+
+BUILT_SOURCES = \
+ glcpp-lex.c \
+ glcpp-parse.c \
+ glcpp-parse.h \
+ glsl_lexer.cc
+
+CLEANFILES = $(BUILT_SOURCES)
diff --git a/mesalib/src/glsl/builtin_stubs.cpp b/mesalib/src/glsl/builtin_compiler/builtin_stubs.cpp
index dfa5d324e..dfa5d324e 100644
--- a/mesalib/src/glsl/builtin_stubs.cpp
+++ b/mesalib/src/glsl/builtin_compiler/builtin_stubs.cpp