From 67553f3cd38a91abbde421d680a674593f489c81 Mon Sep 17 00:00:00 2001 From: a1batross Date: Sat, 6 May 2023 20:11:49 +0200 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D0=BB(=D0=B0)=20?= =?UTF-8?q?'ce-generate-config.sh'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ce-generate-config.sh | 68 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 ce-generate-config.sh diff --git a/ce-generate-config.sh b/ce-generate-config.sh new file mode 100644 index 0000000..499bf11 --- /dev/null +++ b/ce-generate-config.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +set -e + +C_CONFIG="etc/config/c++.defaults.properties" +FORT_CONFIG="etc/config/fortran.defaults.properties" + +# reset our changes +sudo -Hu compiler-explorer git checkout $C_CONFIG $FORT_CONFIG + +ce_compilers="elcc11911" +fe_compilers="elfortran11911" + +cs_compilers="" +fs_compilers="" + +maxver=0 + +for i in /opt/mcst/*; do + name="$(echo $i | rev | cut -d/ -f1 | rev)" + + if [[ $name != lcc-1* ]]; then + echo "Ignoring $name, doesn't look like compiler..." + continue + fi + + if [ ! -d /opt/mcst/$name ]; then + echo "Ignoring $name, not a directory..." + fi + + version=$(echo $name | grep -oE "1\.[0-9]+\.[0-9]+") + dotless_ver=$(echo $version | tr -d '.') + + if [[ $name == *e2k-* ]]; then + echo "Found elbrus cross $name" + compiler="e" + if [[ $dotless_ver -gt $f_default ]]; then + maxver=$dotless_ver + fi + elif [[ $name == *e90-r1000* ]]; then + echo "Found sparc cross $name" + compiler="s" + else + echo "Ignoring $name, unknown architecture..." + continue + fi + + echo "compiler.${compiler}lcc${dotless_ver}.semver=${version}" >> $C_CONFIG + echo "compiler.${compiler}lcc${dotless_ver}.exe=/opt/mcst/${name}/bin/lcc" >> $C_CONFIG + + echo "compiler.${compiler}lfortran${dotless_ver}.semver=${version}" >> $FORT_CONFIG + echo "compiler.${compiler}lfortran${dotless_ver}.exe=/opt/mcst/${name}/bin/lfortran" >> $FORT_CONFIG + + if [[ $compiler == e ]]; then + ce_compilers="elcc${dotless_ver}:${ce_compilers}" + fe_compilers="elfortran${dotless_ver}:${fe_compilers}" + elif [[ $compiler == s ]]; then + cs_compilers="slcc${dotless_ver}:${cs_compilers}" + fs_compilers="slfortran${dotless_ver}:${fs_compilers}" + fi +done + +echo "defaultCompiler=elcc$maxver" >> $C_CONFIG +echo "defaultCompiler=elfortran$maxver" >> $FORT_CONFIG +echo "group.slcc.compilers=${cs_compilers}" >> $C_CONFIG +echo "group.elcc.compilers=${ce_compilers}" >> $C_CONFIG +echo "group.slfortran.compilers=${fs_compilers}" >> $FORT_CONFIG +echo "group.elfortran.compilers=${fe_compilers}" >> $FORT_CONFIG