# shared source lists for Makefile, SConscript, and Android.mk

GLSL_SRCDIR = $(top_srcdir)/src/glsl
GLSL_BUILDDIR = $(top_builddir)/src/glsl

# libglcpp

LIBGLCPP_FILES = \
	$(GLSL_SRCDIR)/glcpp/pp.c

LIBGLCPP_GENERATED_FILES = \
	$(GLSL_BUILDDIR)/glcpp/glcpp-lex.c \
	$(GLSL_BUILDDIR)/glcpp/glcpp-parse.c

# libglsl

LIBGLSL_FILES = \
	$(GLSL_SRCDIR)/strtod.c \
	$(GLSL_SRCDIR)/ralloc.c

LIBGLSL_CXX_FILES = \
	$(GLSL_SRCDIR)/ast_expr.cpp \
	$(GLSL_SRCDIR)/ast_function.cpp \
	$(GLSL_SRCDIR)/ast_to_hir.cpp \
	$(GLSL_SRCDIR)/ast_type.cpp \
	$(GLSL_SRCDIR)/builtin_variables.cpp \
	$(GLSL_SRCDIR)/glsl_parser_extras.cpp \
	$(GLSL_SRCDIR)/glsl_types.cpp \
	$(GLSL_SRCDIR)/glsl_symbol_table.cpp \
	$(GLSL_SRCDIR)/hir_field_selection.cpp \
	$(GLSL_SRCDIR)/ir_basic_block.cpp \
	$(GLSL_SRCDIR)/ir_builder.cpp \
	$(GLSL_SRCDIR)/ir_clone.cpp \
	$(GLSL_SRCDIR)/ir_constant_expression.cpp \
	$(GLSL_SRCDIR)/ir.cpp \
	$(GLSL_SRCDIR)/ir_expression_flattening.cpp \
	$(GLSL_SRCDIR)/ir_function_can_inline.cpp \
	$(GLSL_SRCDIR)/ir_function_detect_recursion.cpp \
	$(GLSL_SRCDIR)/ir_function.cpp \
	$(GLSL_SRCDIR)/ir_hierarchical_visitor.cpp \
	$(GLSL_SRCDIR)/ir_hv_accept.cpp \
	$(GLSL_SRCDIR)/ir_import_prototypes.cpp \
	$(GLSL_SRCDIR)/ir_print_visitor.cpp \
	$(GLSL_SRCDIR)/ir_reader.cpp \
	$(GLSL_SRCDIR)/ir_rvalue_visitor.cpp \
	$(GLSL_SRCDIR)/ir_set_program_inouts.cpp \
	$(GLSL_SRCDIR)/ir_validate.cpp \
	$(GLSL_SRCDIR)/ir_variable_refcount.cpp \
	$(GLSL_SRCDIR)/linker.cpp \
	$(GLSL_SRCDIR)/link_functions.cpp \
	$(GLSL_SRCDIR)/link_uniforms.cpp \
	$(GLSL_SRCDIR)/link_uniform_initializers.cpp \
	$(GLSL_SRCDIR)/loop_analysis.cpp \
	$(GLSL_SRCDIR)/loop_controls.cpp \
	$(GLSL_SRCDIR)/loop_unroll.cpp \
	$(GLSL_SRCDIR)/lower_clip_distance.cpp \
	$(GLSL_SRCDIR)/lower_discard.cpp \
	$(GLSL_SRCDIR)/lower_discard_flow.cpp \
	$(GLSL_SRCDIR)/lower_if_to_cond_assign.cpp \
	$(GLSL_SRCDIR)/lower_instructions.cpp \
	$(GLSL_SRCDIR)/lower_jumps.cpp \
	$(GLSL_SRCDIR)/lower_mat_op_to_vec.cpp \
	$(GLSL_SRCDIR)/lower_noise.cpp \
	$(GLSL_SRCDIR)/lower_texture_projection.cpp \
	$(GLSL_SRCDIR)/lower_variable_index_to_cond_assign.cpp \
	$(GLSL_SRCDIR)/lower_vec_index_to_cond_assign.cpp \
	$(GLSL_SRCDIR)/lower_vec_index_to_swizzle.cpp \
	$(GLSL_SRCDIR)/lower_vector.cpp \
	$(GLSL_SRCDIR)/lower_output_reads.cpp \
	$(GLSL_SRCDIR)/lower_ubo_reference.cpp \
	$(GLSL_SRCDIR)/opt_algebraic.cpp \
	$(GLSL_SRCDIR)/opt_array_splitting.cpp \
	$(GLSL_SRCDIR)/opt_constant_folding.cpp \
	$(GLSL_SRCDIR)/opt_constant_propagation.cpp \
	$(GLSL_SRCDIR)/opt_constant_variable.cpp \
	$(GLSL_SRCDIR)/opt_copy_propagation.cpp \
	$(GLSL_SRCDIR)/opt_copy_propagation_elements.cpp \
	$(GLSL_SRCDIR)/opt_dead_code.cpp \
	$(GLSL_SRCDIR)/opt_dead_code_local.cpp \
	$(GLSL_SRCDIR)/opt_dead_functions.cpp \
	$(GLSL_SRCDIR)/opt_function_inlining.cpp \
	$(GLSL_SRCDIR)/opt_if_simplification.cpp \
	$(GLSL_SRCDIR)/opt_noop_swizzle.cpp \
	$(GLSL_SRCDIR)/opt_redundant_jumps.cpp \
	$(GLSL_SRCDIR)/opt_structure_splitting.cpp \
	$(GLSL_SRCDIR)/opt_swizzle_swizzle.cpp \
	$(GLSL_SRCDIR)/opt_tree_grafting.cpp \
	$(GLSL_SRCDIR)/s_expression.cpp

# glsl_compiler

GLSL_COMPILER_CXX_FILES = \
	$(GLSL_SRCDIR)/standalone_scaffolding.cpp \
	$(GLSL_SRCDIR)/main.cpp

# builtin_compiler
#
# This is built before libglsl to generate builtin_funciton.cpp for libglsl.
# For this to work, a dummy version of builtin_function.cpp,
# builtin_stubs.cpp, is used.

BUILTIN_COMPILER_CXX_FILES = \
	$(GLSL_SRCDIR)/builtin_stubs.cpp

BUILTIN_COMPILER_GENERATED_CXX_FILES = \
	$(GLSL_BUILDDIR)/glsl_lexer.cc \
	$(GLSL_BUILDDIR)/glsl_parser.cc

# libglsl generated sources
LIBGLSL_GENERATED_CXX_FILES = \
	$(BUILTIN_COMPILER_GENERATED_CXX_FILES) \
	$(GLSL_BUILDDIR)/builtin_function.cpp