glcpp: Add test involving token pasting of INTEGER tokens.
[mesa.git] / src / glsl / Makefile.am
index 5728a8b63da3cc47f4046fbb4aa769eb04ef3092..ea7617685dc753cb3e453c79733e3b7192be6375 100644 (file)
@@ -1,12 +1,11 @@
-# Copyright © 2010 Intel Corporation
-# All Rights Reserved.
+# Copyright © 2012 Jon TURNEY
 #
 # 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
-# on the rights to use, copy, modify, merge, publish, distribute, sub
-# license, 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 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
 #
 # 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 NON-INFRINGEMENT.  IN NO EVENT SHALL
-# AUTHORS, COPYRIGHT HOLDERS, AND/OR THEIR SUPPLIERS 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.
-
-AUTOMAKE_OPTIONS = foreign
-AM_CPPFLAGS = -I mesa
-
-SUBDIRS = glcpp
-
-bin_PROGRAMS = glsl
-
-glsl_LDADD = ./glcpp/libglcpp.la
-glsl_LDFLAGS = @LDFLAGS@ $(talloc_LIBS)
-glsl_SOURCES = \
-       main.cpp \
-       builtin_types.h \
-       glsl_types.cpp \
-       glsl_parser.ypp glsl_lexer.lpp glsl_parser_extras.cpp \
-       ast_expr.cpp ast_to_hir.cpp ast_function.cpp ast_type.cpp \
-       ir.cpp hir_field_selection.cpp builtin_function.cpp \
-       ir_print_visitor.cpp ir_variable.cpp ir_function.cpp \
-       ir_basic_block.cpp \
-       ir_basic_block.h \
-       ir_clone.cpp \
-       ir_constant_expression.cpp \
-       ir_constant_folding.cpp \
-       ir_constant_variable.cpp \
-       ir_copy_propagation.cpp \
-       ir_copy_propagation.h \
-       ir_dead_code.cpp \
-       ir_dead_code.h \
-       ir_dead_code_local.cpp \
-       ir_expression_flattening.cpp \
-       ir_function_can_inline.cpp \
-       ir_function_inlining.cpp \
-       ir_if_simplification.cpp \
-       ir_optimization.h \
-       ir_reader.cpp s_expression.cpp \
-       ir_hv_accept.cpp \
-       ir_hierarchical_visitor.h \
-       ir_hierarchical_visitor.cpp \
-       ir_swizzle_swizzle.cpp \
-       ir_to_mesa.cpp \
-       ir_to_mesa.h \
-       ir_validate.cpp \
-       ir_vec_index_to_swizzle.cpp \
-       linker.cpp
-
-BUILT_SOURCES = glsl_parser.h glsl_parser.cpp glsl_lexer.cpp
-CLEANFILES = $(BUILT_SOURCES)
-
-builtin_function.cpp: builtins/*/*
-       ./builtins/tools/generate_builtins.pl > builtin_function.cpp
-glsl_parser.h: glsl_parser.cpp
-
-.lpp.cpp:
-       $(LEXCOMPILE) --outfile="$@" $<
+# 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.
+
+SUBDIRS = builtin_compiler glcpp
+
+AM_CPPFLAGS = \
+       -I$(top_srcdir)/include \
+       -I$(top_srcdir)/src/mapi \
+       -I$(top_srcdir)/src/mesa/ \
+       $(LIBRARY_INCLUDES) \
+       $(DEFINES) \
+       $(LIBRARY_DEFINES) \
+       $(API_DEFINES)
+AM_CFLAGS = $(VISIBILITY_CFLAGS)
+AM_CXXFLAGS = $(VISIBILITY_CXXFLAGS)
+
+AM_LFLAGS = --nounistd -o$(LEX_OUTPUT_ROOT).c
+
+include Makefile.sources
+
+noinst_LTLIBRARIES = libglsl.la
+noinst_PROGRAMS = glsl_compiler glsl_test
+
+libglsl_la_SOURCES = \
+       glsl_lexer.ll \
+       glsl_parser.cc \
+       $(LIBGLSL_FILES) \
+       builtin_function.cpp
+
+libglsl_la_LIBADD = glcpp/libglcpp.la
+libglsl_la_LDFLAGS =
+
+glsl_compiler_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
+
+glsl_test_SOURCES = \
+       $(top_srcdir)/src/mesa/program/hash_table.c \
+       $(top_srcdir)/src/mesa/program/symbol_table.c \
+       $(GLSL_SRCDIR)/standalone_scaffolding.cpp \
+       test.cpp \
+       test_optpass.cpp
+
+glsl_test_LDADD = libglsl.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
+# the automake rule.
+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
+CLEANFILES = glsl_lexer.cc glsl_parser.cc $(BUILT_SOURCES) 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 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.
+all-local: libglsl.la
+       ln -f .libs/libglsl.a .
+
+CLEANFILES += libglsl.a