#
# Copyright © 2012 Jon TURNEY
# Copyright (C) 2015 Intel Corporation
#
# 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.

EXTRA_DIST += glsl/tests glsl/glcpp/tests glsl/README	\
	glsl/TODO glsl/glcpp/README			\
	glsl/glsl_lexer.ll				\
	glsl/glsl_parser.yy				\
	glsl/ir_expression_operation.py			\
	glsl/glcpp/glcpp-lex.l				\
	glsl/glcpp/glcpp-parse.y			\
	SConscript.glsl

TESTS += glsl/glcpp/tests/glcpp-test			\
	glsl/glcpp/tests/glcpp-test-cr-lf		\
	glsl/tests/blob-test				\
	glsl/tests/cache-test				\
	glsl/tests/general-ir-test			\
	glsl/tests/optimization-test			\
	glsl/tests/sampler-types-test			\
	glsl/tests/uniform-initializer-test             \
	glsl/tests/warnings-test

TESTS_ENVIRONMENT= \
	export PYTHON2=$(PYTHON2); \
	export PYTHON_FLAGS=$(PYTHON_FLAGS);

check_PROGRAMS +=					\
	glsl/glcpp/glcpp				\
	glsl/glsl_test					\
	glsl/tests/blob-test				\
	glsl/tests/cache-test				\
	glsl/tests/general-ir-test			\
	glsl/tests/sampler-types-test			\
	glsl/tests/uniform-initializer-test

noinst_PROGRAMS = glsl_compiler

glsl_tests_blob_test_SOURCES =				\
	glsl/tests/blob_test.c
glsl_tests_blob_test_LDADD =				\
	glsl/libglsl.la

glsl_tests_cache_test_SOURCES =				\
	glsl/tests/cache_test.c
glsl_tests_cache_test_CFLAGS =				\
	$(PTHREAD_CFLAGS)
glsl_tests_cache_test_LDADD =				\
	glsl/libglsl.la					\
	$(PTHREAD_LIBS)

glsl_tests_general_ir_test_SOURCES =			\
	glsl/tests/array_refcount_test.cpp 		\
	glsl/tests/builtin_variable_test.cpp		\
	glsl/tests/invalidate_locations_test.cpp	\
	glsl/tests/general_ir_test.cpp			\
	glsl/tests/opt_add_neg_to_sub_test.cpp		\
	glsl/tests/varyings_test.cpp
glsl_tests_general_ir_test_CFLAGS =			\
	$(PTHREAD_CFLAGS)
glsl_tests_general_ir_test_LDADD =			\
	$(top_builddir)/src/gtest/libgtest.la		\
	glsl/libglsl.la		\
	glsl/libstandalone.la				\
	$(top_builddir)/src/libglsl_util.la		\
	$(PTHREAD_LIBS)

glsl_tests_uniform_initializer_test_SOURCES =		\
	glsl/tests/copy_constant_to_storage_tests.cpp	\
	glsl/tests/set_uniform_initializer_tests.cpp	\
	glsl/tests/uniform_initializer_utils.cpp	\
	glsl/tests/uniform_initializer_utils.h
glsl_tests_uniform_initializer_test_CFLAGS =		\
	$(PTHREAD_CFLAGS)
glsl_tests_uniform_initializer_test_LDADD =		\
	$(top_builddir)/src/gtest/libgtest.la		\
	glsl/libglsl.la		\
	$(top_builddir)/src/libglsl_util.la		\
	$(PTHREAD_LIBS)

glsl_tests_sampler_types_test_SOURCES =			\
	glsl/tests/sampler_types_test.cpp
glsl_tests_sampler_types_test_CFLAGS =			\
	$(PTHREAD_CFLAGS)
glsl_tests_sampler_types_test_LDADD =			\
	$(top_builddir)/src/gtest/libgtest.la		\
	glsl/libglsl.la					\
	$(top_builddir)/src/libglsl_util.la		\
	$(PTHREAD_LIBS)

noinst_LTLIBRARIES += glsl/libglsl.la glsl/libglcpp.la glsl/libstandalone.la

glsl_libglcpp_la_LIBADD =				\
	$(top_builddir)/src/util/libmesautil.la
glsl_libglcpp_la_SOURCES =				\
	glsl/glcpp/glcpp-lex.c				\
	glsl/glcpp/glcpp-parse.c			\
	glsl/glcpp/glcpp-parse.h			\
	$(LIBGLCPP_FILES)

glsl_glcpp_glcpp_SOURCES =				\
	glsl/glcpp/glcpp.c
glsl_glcpp_glcpp_LDADD =				\
	glsl/libglcpp.la	\
	$(top_builddir)/src/libglsl_util.la		\
	-lm

glsl_libglsl_la_LIBADD = \
	nir/libnir.la \
	glsl/libglcpp.la

glsl_libglsl_la_SOURCES =				\
	$(LIBGLSL_GENERATED_FILES)			\
	$(LIBGLSL_FILES)

glsl_libstandalone_la_SOURCES = \
	$(GLSL_COMPILER_CXX_FILES)

glsl_libstandalone_la_LIBADD =				\
	glsl/libglsl.la					\
	$(top_builddir)/src/libglsl_util.la		\
	$(top_builddir)/src/util/libmesautil.la		\
	$(PTHREAD_LIBS)

glsl_compiler_SOURCES = \
	glsl/main.cpp

glsl_compiler_LDADD = \
	glsl/libstandalone.la

glsl_glsl_test_SOURCES = \
	glsl/test.cpp \
	glsl/test_optpass.cpp \
	glsl/test_optpass.h

glsl_glsl_test_LDADD =					\
	glsl/libglsl.la					\
	glsl/libstandalone.la				\
	$(top_builddir)/src/libglsl_util.la		\
	$(PTHREAD_LIBS)

# 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:
#
#  * < automake-1.12 generates .h files from .yy and .ypp files, but
#    >=automake-1.12 generates .hh and .hpp files respectively. There's no
#    good way of making a project that uses C++ yacc files compatible with
#    both versions of automake. Strong work automake developers.
#
#  * Since we're generating code from .l/.y files in a subdirectory (glcpp/)
#    we'd like the resulting generated code to also go in glcpp/ for purposes
#    of distribution. Automake gives no way to do this.
#
#  * Since we're building multiple yacc parsers into one library (and via one
#    Makefile) we have to use per-target YFLAGS. Using per-target YFLAGS causes
#    automake to name the resulting generated code as <library-name>_filename.c.
#    Frankly, that's ugly and we don't want a libglcpp_glcpp_parser.h file.

# In order to make build output print "LEX" and "YACC", we reproduce the
# automake variables below.

AM_V_LEX = $(am__v_LEX_$(V))
am__v_LEX_ = $(am__v_LEX_$(AM_DEFAULT_VERBOSITY))
am__v_LEX_0 = @echo "  LEX     " $@;
am__v_LEX_1 =

AM_V_YACC = $(am__v_YACC_$(V))
am__v_YACC_ = $(am__v_YACC_$(AM_DEFAULT_VERBOSITY))
am__v_YACC_0 = @echo "  YACC    " $@;
am__v_YACC_1 =

YACC_GEN = $(AM_V_YACC)$(YACC) $(YFLAGS)
LEX_GEN = $(AM_V_LEX)$(LEX) $(LFLAGS)

glsl/glsl_parser.cpp glsl/glsl_parser.h: glsl/glsl_parser.yy
	$(MKDIR_GEN)
	$(YACC_GEN) -o $@ -p "_mesa_glsl_" --defines=$(builddir)/glsl/glsl_parser.h $(srcdir)/glsl/glsl_parser.yy

glsl/glsl_lexer.cpp: glsl/glsl_lexer.ll
	$(MKDIR_GEN)
	$(LEX_GEN) -o $@ $(srcdir)/glsl/glsl_lexer.ll

glsl/glcpp/glcpp-parse.c glsl/glcpp/glcpp-parse.h: glsl/glcpp/glcpp-parse.y
	$(MKDIR_GEN)
	$(YACC_GEN) -o $@ -p "glcpp_parser_" --defines=$(builddir)/glsl/glcpp/glcpp-parse.h $(srcdir)/glsl/glcpp/glcpp-parse.y

glsl/glcpp/glcpp-lex.c: glsl/glcpp/glcpp-lex.l
	$(MKDIR_GEN)
	$(LEX_GEN) -o $@ $(srcdir)/glsl/glcpp/glcpp-lex.l

glsl/ir_expression_operation.h: glsl/ir_expression_operation.py
	$(MKDIR_GEN)
	$(PYTHON_GEN) $(srcdir)/glsl/ir_expression_operation.py enum > $@ || ($(RM) $@; false)

glsl/ir_expression_operation_constant.h: glsl/ir_expression_operation.py
	$(MKDIR_GEN)
	$(PYTHON_GEN) $(srcdir)/glsl/ir_expression_operation.py constant > $@ || ($(RM) $@; false)

glsl/ir_expression_operation_strings.h: glsl/ir_expression_operation.py
	$(MKDIR_GEN)
	$(PYTHON_GEN) $(srcdir)/glsl/ir_expression_operation.py strings > $@ || ($(RM) $@; false)

# Only the parsers (specifically the header files generated at the same time)
# need to be in BUILT_SOURCES. Though if we list the parser headers YACC is
# called for the .c/.cpp file and the .h files. By listing the .c/.cpp files
# YACC is only executed once for each parser. The rest of the generated code
# will be created at the appropriate times according to standard automake
# dependency rules.
BUILT_SOURCES +=					\
	glsl/glsl_parser.cpp				\
	glsl/glsl_lexer.cpp				\
	glsl/ir_expression_operation.h			\
	glsl/ir_expression_operation_constant.h		\
	glsl/ir_expression_operation_strings.h		\
	glsl/glcpp/glcpp-parse.c			\
	glsl/glcpp/glcpp-lex.c
CLEANFILES +=						\
	glsl/glcpp/glcpp-parse.h			\
	glsl/glsl_parser.h				\
	glsl/glsl_parser.cpp				\
	glsl/glsl_lexer.cpp				\
	glsl/ir_expression_operation.h			\
	glsl/ir_expression_operation_constant.h		\
	glsl/ir_expression_operation_strings.h		\
	glsl/glcpp/glcpp-parse.c			\
	glsl/glcpp/glcpp-lex.c

clean-local:
	$(RM) -r subtest-cr subtest-cr-lf subtest-lf subtest-lf-cr

dist-hook:
	$(RM) glsl/glcpp/tests/*.out
	$(RM) glsl/glcpp/tests/subtest*/*.out
