output_env.sh (4021B)
1 #! /usr/bin/env sh 2 3 # output_env.sh 4 # 5 # Copyright The Mbed TLS Contributors 6 # SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 7 # 8 # Purpose 9 # 10 # To print out all the relevant information about the development environment. 11 # 12 # This includes: 13 # - architecture of the system 14 # - type and version of the operating system 15 # - version of make and cmake 16 # - version of armcc, clang, gcc-arm and gcc compilers 17 # - version of libc, clang, asan and valgrind if installed 18 # - version of gnuTLS and OpenSSL 19 20 print_version() 21 { 22 BIN="$1" 23 shift 24 ARGS="$1" 25 shift 26 VARIANT="$1" 27 shift 28 29 if [ -n "$VARIANT" ]; then 30 VARIANT=" ($VARIANT)" 31 fi 32 33 if ! type "$BIN" > /dev/null 2>&1; then 34 echo " * ${BIN##*/}$VARIANT: Not found." 35 return 0 36 fi 37 38 BIN=`which "$BIN"` 39 VERSION_STR=`$BIN $ARGS 2>&1` 40 41 # Apply all filters 42 while [ $# -gt 0 ]; do 43 FILTER="$1" 44 shift 45 VERSION_STR=`echo "$VERSION_STR" | $FILTER` 46 done 47 48 if [ -z "$VERSION_STR" ]; then 49 VERSION_STR="Version could not be determined." 50 fi 51 52 echo " * ${BIN##*/}$VARIANT: ${BIN} : ${VERSION_STR} " 53 } 54 55 echo "** Platform:" 56 echo 57 58 if [ `uname -s` = "Linux" ]; then 59 echo "Linux variant" 60 lsb_release -d -c 61 else 62 echo "Unknown Unix variant" 63 fi 64 65 echo 66 67 print_version "uname" "-a" "" 68 69 echo 70 echo 71 echo "** Tool Versions:" 72 echo 73 74 print_version "make" "--version" "" "head -n 1" 75 echo 76 77 print_version "cmake" "--version" "" "head -n 1" 78 echo 79 80 if [ "${RUN_ARMCC:-1}" -ne 0 ]; then 81 : "${ARMC6_CC:=armclang}" 82 print_version "$ARMC6_CC" "--vsn" "" "head -n 2" 83 echo 84 fi 85 86 print_version "arm-none-eabi-gcc" "--version" "" "head -n 1" 87 echo 88 89 print_version "gcc" "--version" "" "head -n 1" 90 echo 91 92 if [ -n "${GCC_EARLIEST+set}" ]; then 93 print_version "${GCC_EARLIEST}" "--version" "" "head -n 1" 94 else 95 echo " GCC_EARLIEST : Not configured." 96 fi 97 echo 98 99 if [ -n "${GCC_LATEST+set}" ]; then 100 print_version "${GCC_LATEST}" "--version" "" "head -n 1" 101 else 102 echo " GCC_LATEST : Not configured." 103 fi 104 echo 105 106 print_version "clang" "--version" "" "head -n 2" 107 echo 108 109 if [ -n "${CLANG_EARLIEST+set}" ]; then 110 print_version "${CLANG_EARLIEST}" "--version" "" "head -n 2" 111 else 112 echo " CLANG_EARLIEST : Not configured." 113 fi 114 echo 115 116 if [ -n "${CLANG_LATEST+set}" ]; then 117 print_version "${CLANG_LATEST}" "--version" "" "head -n 2" 118 else 119 echo " CLANG_LATEST : Not configured." 120 fi 121 echo 122 123 print_version "ldd" "--version" "" "head -n 1" 124 echo 125 126 print_version "valgrind" "--version" "" 127 echo 128 129 print_version "gdb" "--version" "" "head -n 1" 130 echo 131 132 print_version "perl" "--version" "" "head -n 2" "grep ." 133 echo 134 135 print_version "python" "--version" "" "head -n 1" 136 echo 137 138 print_version "python3" "--version" "" "head -n 1" 139 echo 140 141 # Find the installed version of Pylint. Installed as a distro package this can 142 # be pylint3 and as a PEP egg, pylint. In test scripts We prefer pylint over 143 # pylint3 144 if type pylint >/dev/null 2>/dev/null; then 145 print_version "pylint" "--version" "" "sed /^.*config/d" "grep pylint" 146 elif type pylint3 >/dev/null 2>/dev/null; then 147 print_version "pylint3" "--version" "" "sed /^.*config/d" "grep pylint" 148 else 149 echo " * pylint or pylint3: Not found." 150 fi 151 echo 152 153 : ${OPENSSL:=openssl} 154 print_version "$OPENSSL" "version" "default" 155 echo 156 157 if [ -n "${OPENSSL_NEXT+set}" ]; then 158 print_version "$OPENSSL_NEXT" "version" "next" 159 else 160 echo " * openssl (next): Not configured." 161 fi 162 echo 163 164 : ${GNUTLS_CLI:=gnutls-cli} 165 print_version "$GNUTLS_CLI" "--version" "default" "head -n 1" 166 echo 167 168 : ${GNUTLS_SERV:=gnutls-serv} 169 print_version "$GNUTLS_SERV" "--version" "default" "head -n 1" 170 echo 171 172 echo " * Installed asan versions:" 173 if type dpkg-query >/dev/null 2>/dev/null; then 174 if ! dpkg-query -f '${Status} ${Package}: ${Version}\n' -W 'libasan*' | 175 awk '$3 == "installed" && $4 !~ /-/ {print $4, $5}' | 176 grep . 177 then 178 echo " No asan versions installed." 179 fi 180 else 181 echo " Unable to determine the asan version without dpkg." 182 fi 183 echo