sylware / nyanlinux (public) (License: AFFERO GPLv3) (since 2019-09-09) (hash sha1)
scripts for a lean, from scratch, amd hardware, linux distro

/builders/x86-mesa-amd-sh/contrib/compiler_glsl.sh (13248b670895ccfd6fe37201d4a8ef8db7d8b0e7) (10185 bytes) (mode 100644) (type blob)

printf "\tbuilding glsl compiler sub-components-->\n"
mkdir -p $build_dir/src/compiler/glsl/glcpp

#===============================================================================

$bison \
-o $build_dir/src/compiler/glsl/glcpp/glcpp-parse.c \
-p glcpp_parser_ \
--defines=$build_dir/src/compiler/glsl/glcpp/glcpp-parse.h \
$src_dir/src/compiler/glsl/glcpp/glcpp-parse.y  &
#------------------------------------------------------------------------------
$flex \
-o $build_dir/src/compiler/glsl/glcpp/glcpp-lex.c \
$src_dir/src/compiler/glsl/glcpp/glcpp-lex.l &

wait

#===============================================================================

libglcpp_files="\
$src_dir/src/compiler/glsl/glcpp/pp.c \
$src_dir/src/compiler/glsl/glcpp/pp_standalone_scaffolding.c \
$build_dir/src/compiler/glsl/glcpp/glcpp-lex.c \
$build_dir/src/compiler/glsl/glcpp/glcpp-parse.c \
"

for f in $libglcpp_files
do
	libglcpp_obj_dir=$(dirname $f)
	libglcpp_obj_dir=$build_dir/${libglcpp_obj_dir#*/src/}
	mkdir -p $libglcpp_obj_dir

	libglcpp_obj="$libglcpp_obj_dir/$(basename $f .c).o"
	libglcpp_a="$libglcpp_a $libglcpp_obj"

	$cco_slib -o $libglcpp_obj $f \
		-I$src_dir/src/compiler/glsl/glcpp \
		-I$src_dir/src/mapi \
		-I$src_dir/src/main \
		-I$src_dir/src/mesa \
		-I$src_dir/src \
		-I$src_dir/include \
		\
		$cco_slib_common_trailer &
done

wait

$ar $build_dir/libglcpp.a $libglcpp_a

#===============================================================================

$bison \
-o $build_dir/src/compiler/glsl/glsl_parser.cpp \
-p _mesa_glsl_ \
--defines=$build_dir/src/compiler/glsl/glsl_parser.h \
$src_dir/src/compiler/glsl/glsl_parser.yy &
#------------------------------------------------------------------------------
$flex \
-o $build_dir/src/compiler/glsl/glsl_lexer.cpp \
$src_dir/src/compiler/glsl/glsl_lexer.ll &
#------------------------------------------------------------------------------
export PYTHONPATH=$mako
$python3 $src_dir/src/compiler/glsl/ir_expression_operation.py constant \
>$build_dir/src/compiler/glsl/ir_expression_operation_constant.h &
#------------------------------------------------------------------------------
$python3 $src_dir/src/compiler/glsl/ir_expression_operation.py strings \
>$build_dir/src/compiler/glsl/ir_expression_operation_strings.h &
unset PYTHONPATH
#------------------------------------------------------------------------------
$python3 $src_dir/src/util/xxd.py \
$src_dir/src/compiler/glsl/float64.glsl \
$build_dir/src/compiler/glsl/float64_glsl.h \
-n float64_source &
#------------------------------------------------------------------------------

wait

#===============================================================================

libglsl_c_files="\
$src_dir/src/compiler/glsl/gl_nir_lower_atomics.c \
$src_dir/src/compiler/glsl/gl_nir_lower_images.c \
$src_dir/src/compiler/glsl/gl_nir_lower_buffers.c \
$src_dir/src/compiler/glsl/gl_nir_lower_samplers.c \
$src_dir/src/compiler/glsl/gl_nir_lower_samplers_as_deref.c \
$src_dir/src/compiler/glsl/gl_nir_link_atomics.c \
$src_dir/src/compiler/glsl/gl_nir_link_uniform_initializers.c \
$src_dir/src/compiler/glsl/gl_nir_link_uniform_blocks.c \
$src_dir/src/compiler/glsl/gl_nir_link_uniforms.c \
$src_dir/src/compiler/glsl/gl_nir_link_xfb.c \
$src_dir/src/compiler/glsl/gl_nir_linker.c \
"

# c++ toolchain is Hell (slow/kludgy/insane/etc)
libglsl_cxx_files="\
$build_dir/src/compiler/glsl/glsl_parser.cpp \
$build_dir/src/compiler/glsl/glsl_lexer.cpp \
$src_dir/src/compiler/glsl/ast_array_index.cpp \
$src_dir/src/compiler/glsl/ast_expr.cpp \
$src_dir/src/compiler/glsl/ast_function.cpp \
$src_dir/src/compiler/glsl/ast_to_hir.cpp \
$src_dir/src/compiler/glsl/ast_type.cpp \
$src_dir/src/compiler/glsl/builtin_functions.cpp \
$src_dir/src/compiler/glsl/builtin_types.cpp \
$src_dir/src/compiler/glsl/builtin_variables.cpp \
$src_dir/src/compiler/glsl/generate_ir.cpp \
$src_dir/src/compiler/glsl/glsl_parser_extras.cpp \
$src_dir/src/compiler/glsl/glsl_symbol_table.cpp \
$src_dir/src/compiler/glsl/glsl_to_nir.cpp \
$src_dir/src/compiler/glsl/hir_field_selection.cpp \
$src_dir/src/compiler/glsl/ir_array_refcount.cpp \
$src_dir/src/compiler/glsl/ir_basic_block.cpp \
$src_dir/src/compiler/glsl/ir_builder.cpp \
$src_dir/src/compiler/glsl/ir_clone.cpp \
$src_dir/src/compiler/glsl/ir_constant_expression.cpp \
$src_dir/src/compiler/glsl/ir.cpp \
$src_dir/src/compiler/glsl/ir_equals.cpp \
$src_dir/src/compiler/glsl/ir_expression_flattening.cpp \
$src_dir/src/compiler/glsl/ir_function_can_inline.cpp \
$src_dir/src/compiler/glsl/ir_function_detect_recursion.cpp \
$src_dir/src/compiler/glsl/ir_function.cpp \
$src_dir/src/compiler/glsl/ir_hierarchical_visitor.cpp \
$src_dir/src/compiler/glsl/ir_hv_accept.cpp \
$src_dir/src/compiler/glsl/ir_print_visitor.cpp \
$src_dir/src/compiler/glsl/ir_reader.cpp \
$src_dir/src/compiler/glsl/ir_rvalue_visitor.cpp \
$src_dir/src/compiler/glsl/ir_set_program_inouts.cpp \
$src_dir/src/compiler/glsl/ir_validate.cpp \
$src_dir/src/compiler/glsl/ir_variable_refcount.cpp \
$src_dir/src/compiler/glsl/linker.cpp \
$src_dir/src/compiler/glsl/linker_util.cpp \
$src_dir/src/compiler/glsl/link_atomics.cpp \
$src_dir/src/compiler/glsl/link_functions.cpp \
$src_dir/src/compiler/glsl/link_interface_blocks.cpp \
$src_dir/src/compiler/glsl/link_uniforms.cpp \
$src_dir/src/compiler/glsl/link_uniform_initializers.cpp \
$src_dir/src/compiler/glsl/link_uniform_block_active_visitor.cpp \
$src_dir/src/compiler/glsl/link_uniform_blocks.cpp \
$src_dir/src/compiler/glsl/link_varyings.cpp \
$src_dir/src/compiler/glsl/loop_analysis.cpp \
$src_dir/src/compiler/glsl/loop_unroll.cpp \
$src_dir/src/compiler/glsl/lower_blend_equation_advanced.cpp \
$src_dir/src/compiler/glsl/lower_buffer_access.cpp \
$src_dir/src/compiler/glsl/lower_builtins.cpp \
$src_dir/src/compiler/glsl/lower_const_arrays_to_uniforms.cpp \
$src_dir/src/compiler/glsl/lower_cs_derived.cpp \
$src_dir/src/compiler/glsl/lower_discard.cpp \
$src_dir/src/compiler/glsl/lower_discard_flow.cpp \
$src_dir/src/compiler/glsl/lower_distance.cpp \
$src_dir/src/compiler/glsl/lower_if_to_cond_assign.cpp \
$src_dir/src/compiler/glsl/lower_instructions.cpp \
$src_dir/src/compiler/glsl/lower_int64.cpp \
$src_dir/src/compiler/glsl/lower_jumps.cpp \
$src_dir/src/compiler/glsl/lower_mat_op_to_vec.cpp \
$src_dir/src/compiler/glsl/lower_offset_array.cpp \
$src_dir/src/compiler/glsl/lower_packed_varyings.cpp \
$src_dir/src/compiler/glsl/lower_precision.cpp \
$src_dir/src/compiler/glsl/lower_named_interface_blocks.cpp \
$src_dir/src/compiler/glsl/lower_packing_builtins.cpp \
$src_dir/src/compiler/glsl/lower_subroutine.cpp \
$src_dir/src/compiler/glsl/lower_tess_level.cpp \
$src_dir/src/compiler/glsl/lower_texture_projection.cpp \
$src_dir/src/compiler/glsl/lower_variable_index_to_cond_assign.cpp \
$src_dir/src/compiler/glsl/lower_vec_index_to_cond_assign.cpp \
$src_dir/src/compiler/glsl/lower_vec_index_to_swizzle.cpp \
$src_dir/src/compiler/glsl/lower_vector.cpp \
$src_dir/src/compiler/glsl/lower_vector_derefs.cpp \
$src_dir/src/compiler/glsl/lower_vector_insert.cpp \
$src_dir/src/compiler/glsl/lower_vertex_id.cpp \
$src_dir/src/compiler/glsl/lower_output_reads.cpp \
$src_dir/src/compiler/glsl/lower_shared_reference.cpp \
$src_dir/src/compiler/glsl/lower_ubo_reference.cpp \
$src_dir/src/compiler/glsl/lower_xfb_varying.cpp \
$src_dir/src/compiler/glsl/opt_algebraic.cpp \
$src_dir/src/compiler/glsl/opt_array_splitting.cpp \
$src_dir/src/compiler/glsl/opt_conditional_discard.cpp \
$src_dir/src/compiler/glsl/opt_constant_folding.cpp \
$src_dir/src/compiler/glsl/opt_constant_propagation.cpp \
$src_dir/src/compiler/glsl/opt_constant_variable.cpp \
$src_dir/src/compiler/glsl/opt_copy_propagation_elements.cpp \
$src_dir/src/compiler/glsl/opt_dead_builtin_variables.cpp \
$src_dir/src/compiler/glsl/opt_dead_builtin_varyings.cpp \
$src_dir/src/compiler/glsl/opt_dead_code.cpp \
$src_dir/src/compiler/glsl/opt_dead_code_local.cpp \
$src_dir/src/compiler/glsl/opt_dead_functions.cpp \
$src_dir/src/compiler/glsl/opt_flatten_nested_if_blocks.cpp \
$src_dir/src/compiler/glsl/opt_flip_matrices.cpp \
$src_dir/src/compiler/glsl/opt_function_inlining.cpp \
$src_dir/src/compiler/glsl/opt_if_simplification.cpp \
$src_dir/src/compiler/glsl/opt_minmax.cpp \
$src_dir/src/compiler/glsl/opt_rebalance_tree.cpp \
$src_dir/src/compiler/glsl/opt_redundant_jumps.cpp \
$src_dir/src/compiler/glsl/opt_structure_splitting.cpp \
$src_dir/src/compiler/glsl/opt_swizzle.cpp \
$src_dir/src/compiler/glsl/opt_tree_grafting.cpp \
$src_dir/src/compiler/glsl/opt_vectorize.cpp \
$src_dir/src/compiler/glsl/propagate_invariance.cpp \
$src_dir/src/compiler/glsl/s_expression.cpp \
$src_dir/src/compiler/glsl/string_to_uint_map.cpp \
$src_dir/src/compiler/glsl/serialize.cpp \
$src_dir/src/compiler/glsl/shader_cache.cpp \
"

#------------------------------------------------------------------------------

for f in $libglsl_c_files
do
	libglsl_c_obj_dir=$(dirname $f)
	libglsl_c_obj_dir=$build_dir/${libglsl_c_obj_dir#*/src/}
	mkdir -p $libglsl_c_obj_dir

	libglsl_c_obj="$libglsl_c_obj_dir/$(basename $f .c).o"
	libglsl_a="$libglsl_a $libglsl_c_obj"

	$cco_slib -o $libglsl_c_obj $f \
		-I$build_dir/src/compiler/nir \
		-I$src_dir/src/compiler/nir \
		-I$src_dir/src/compiler \
		-I$src_dir/src/gallium/include \
		-I$src_dir/src/mapi \
		-I$src_dir/src/mesa \
		-I$src_dir/src \
		-I$src_dir/include \
		\
		$cco_slib_common_trailer &
done

for f in $libglsl_cxx_files
do
	libglsl_cxx_obj_dir=$(dirname $f)
	libglsl_cxx_obj_dir=$build_dir/${libglsl_cxx_obj_dir#*/src/}
	mkdir -p $libglsl_cxx_obj_dir

	libglsl_cxx_obj="$libglsl_cxx_obj_dir/$(basename $f .cpp).o"
	libglsl_a="$libglsl_a $libglsl_cxx_obj"

	$cxxo_slib -o $libglsl_cxx_obj $f \
		-I$build_dir/src/compiler/glsl \
		-I$build_dir/src/compiler/nir \
		-I$build_dir/src/compiler \
		-I$src_dir/src/compiler/nir \
		-I$src_dir/src/compiler/glsl \
		-I$src_dir/src/compiler \
		-I$src_dir/src/gallium/include \
		-I$src_dir/src/mapi \
		-I$src_dir/src/mesa \
		-I$src_dir/src \
		-I$src_dir/include \
		\
		$cxxo_slib_common_trailer &
done

wait

$ar $build_dir/libglsl.a $libglsl_a
printf "\t<--glsl compiler sub-components built\n"


Mode Type Size Ref File
100644 blob 5 8eba6c8dd4dcaf6166bd22285ed34625f38a84ff .gitignore
100755 blob 2487 533016d4902080b22ae5dc5352802ebdd0d78b16 01-x86_64-nyan-linux-gnu.sh
100755 blob 4254 31fdc18cc3e6c6cfd8444fa404f7e82f849bad56 02-nyan-cross-core.sh
100755 blob 3549 7f1362bad6786a6818ce7a7d613d0dc11f611fb9 03-nyan-cross-x11.sh
100755 blob 12534 f9036d33f9f159ea2421ce1a1ebf7067f0f695c1 04-bootstrap-conf.sh
100755 blob 671 5f6bc5de83a883da3a7f0d4a37e1d0ef51c08561 10-sdk-conf.sh
100755 blob 2201 83fa9bf5bddbecb88db53779e324b9f270b1080e 11-sdk.sh
100755 blob 2826 090b622caebd38755ef1e57a9cf0f4f673b22a8e 12-desktop.sh
100755 blob 129 08460f0dece90701f01cbf7d710609ecbb3d56e0 13-beyond.sh
100644 blob 1075 1b5314b511d4c6dc7eb4db36a21dd47ba5a00a9d INSTALL
100644 blob 30 c9b735fa1332286f4b3f5f81fa10527fd7506b6e LICENSE
100644 blob 1973 6aa180fc473777d9ca6b155cbf9b973065cdd77a README
040000 tree - a0e0b5892f7f1553c5372222f0b6bb2ab34795a3 builders
100644 blob 2986 43344438bb4d817ff81f1890de1097f627c6d6c4 conf.sh
040000 tree - 317962325b26fefabb04d8e26db40eae9e5b8d62 files
100755 blob 351 6af534903b47d67a8dcb71653e7a0e1c1a4dfda4 pkg-build
100755 blob 289 7f5fbdbb712f274d04a036b9c486cbc9cf581be6 pkg-build-target
100644 blob 915 a7f21134dbc05d0e8227eaee366856b8171832a4 sdk.sh
100755 blob 5001 ef66a8b35dbba08f4397c2163cf2e7559207783a x86.sh
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/sylware/nyanlinux

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/sylware/nyanlinux

Clone this repository using git:
git clone git://git.rocketgit.com/user/sylware/nyanlinux

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main