scripts/addToolsVersion: properly handle .in vs. .in.2
While most components have their version in the .in file, some
have it in the .in.2 (eg. elf2flt).
Currently, to handle this case, we indiscriminately munge both files,
but this is wrong: in the elf2flt case, if we add a binutils version,
we do not want it to be added to elf2flt, and conversely.
So, for each tool, we need to explicitly know what file to munge.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2 # Yes, this is supposed to be a POSIX-compliant shell script.
4 # Parses all samples on the command line, and for each of them, prints
5 # the versions of the main tools
7 # Use tools discovered by ./configure
8 . "${CT_LIB_DIR}/paths.sh"
10 [ "$1" = "-v" ] && opt="$1" && shift
11 [ "$1" = "-w" ] && opt="$1" && shift
12 [ "$1" = "-W" ] && opt="$1" && shift
14 # GREP_OPTIONS screws things up.
17 # Dump a single sample
18 # Note: we use the specific .config.sample config file
19 dump_single_sample() {
23 [ "$1" = "-v" ] && verbose=1 && shift
24 [ "$1" = "-w" ] && wiki=1 && shift
29 sample="$( ${CT_NG} show-tuple )"
31 *) if [ -f "${CT_TOP_DIR}/samples/${sample}/crosstool.config" ]; then
32 sample_top="${CT_TOP_DIR}"
35 sample_top="${CT_LIB_DIR}"
40 . $(pwd)/.config.sample
41 if [ ${wiki} -eq 0 ]; then
43 printf "[%s" "${sample_type}"
44 [ -f "${sample_top}/samples/${sample}/broken" ] && printf "B" || printf "."
45 [ "${CT_EXPERIMENTAL}" = "y" ] && printf "X" || printf "."
46 printf "] %s\n" "${sample}"
47 if [ ${verbose} -ne 0 ]; then
48 case "${CT_TOOLCHAIN_TYPE}" in
51 printf " %-*s : %s\n" ${width} "Host" "${CT_HOST}"
54 printf " %-*s : %s\n" ${width} "OS" "${CT_KERNEL}${CT_KERNEL_VERSION:+-}${CT_KERNEL_VERSION}"
60 -o -n "${CT_LIBELF}" \
61 -o -n "${CT_GMP_TARGET}" \
62 -o -n "${CT_MPFR_TARGET}" \
63 -o -n "${CT_PPL_TARGET}" \
64 -o -n "${CT_CLOOG_TARGET}" \
65 -o -n "${CT_MPC_TARGET}" \
66 -o -n "${CT_LIBELF_TARGET}" \
68 printf " %-*s :" ${width} "Companion libs"
71 [ -z "${CT_GMP}" -a -z "${CT_GMP_TARGET}" ] || printf " gmp-%s" "${CT_GMP_VERSION}"
72 [ -z "${CT_MPFR}" -a -z "${CT_MPFR_TARGET}" ] || printf " mpfr-%s" "${CT_MPFR_VERSION}"
73 [ -z "${CT_PPL}" -a -z "${CT_PPL_TARGET}" ] || printf " ppl-%s" "${CT_PPL_VERSION}"
74 [ -z "${CT_CLOOG}" -a -z "${CT_CLOOG_TARGET}" ] || printf " cloog-ppl-%s" "${CT_CLOOG_VERSION}"
75 [ -z "${CT_MPC}" -a -z "${CT_MPC_TARGET}" ] || printf " mpc-%s" "${CT_MPC_VERSION}"
76 [ -z "${CT_LIBELF}" -a -z "${CT_LIBELF_TARGET}" ] || printf " libelf-%s" "${CT_LIBELF_VERSION}"
77 [ -z "${complibs}" ] || printf "\n"
78 printf " %-*s : %s\n" ${width} "binutils" "binutils-${CT_BINUTILS_VERSION}"
79 printf " %-*s : %s" ${width} "C compiler" "${CT_CC}-${CT_CC_VERSION} (C"
80 [ "${CT_CC_LANG_CXX}" = "y" ] && printf ",C++"
81 [ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ",Fortran"
82 [ "${CT_CC_LANG_JAVA}" = "y" ] && printf ",Java"
83 [ "${CT_CC_LANG_ADA}" = "y" ] && printf ",ADA"
84 [ "${CT_CC_LANG_OBJC}" = "y" ] && printf ",Objective-C"
85 [ "${CT_CC_LANG_OBJCXX}" = "y" ] && printf ",Objective-C++"
86 [ -n "${CT_CC_LANG_OTHERS}" ] && printf ",${CT_CC_LANG_OTHERS}"
88 printf " %-*s : %s (threads: %s)\n" ${width} "C library" "${CT_LIBC}${CT_LIBC_VERSION:+-}${CT_LIBC_VERSION}" "${CT_THREADS}"
89 printf " %-*s :" ${width} "Tools"
90 [ "${CT_TOOL_sstrip}" ] && printf " sstrip"
91 [ "${CT_DEBUG_dmalloc}" ] && printf " dmalloc-${CT_DMALLOC_VERSION}"
92 [ "${CT_DEBUG_duma}" ] && printf " duma-${CT_DUMA_VERSION}"
93 [ "${CT_DEBUG_gdb}" ] && printf " gdb-${CT_GDB_VERSION}"
94 [ "${CT_DEBUG_ltrace}" ] && printf " ltrace-${CT_LTRACE_VERSION}"
95 [ "${CT_DEBUG_strace}" ] && printf " strace-${CT_STRACE_VERSION}"
99 case "${CT_TOOLCHAIN_TYPE}" in
101 printf "| ''${sample}'' | "
105 printf "${sample}" |sed -r -e 's/.*,//'
106 printf "'' | ${CT_HOST} "
111 [ "${CT_EXPERIMENTAL}" = "y" ] && printf "**X**"
112 [ -f "${sample_top}/samples/${sample}/broken" ] && printf "**B**"
113 printf " | ''${CT_KERNEL}'' |"
114 if [ "${CT_KERNEL}" != "bare-metal" ];then
115 if [ "${CT_KERNEL_LINUX_HEADERS_USE_CUSTOM_DIR}" = "y" ]; then
116 printf " //custom// "
118 printf " ${CT_KERNEL_VERSION} "
121 printf "| ${CT_BINUTILS_VERSION} "
122 printf "| ''${CT_CC}'' "
123 printf "| ${CT_CC_VERSION} "
124 printf "| ''${CT_LIBC}'' |"
125 if [ "${CT_LIBC}" != "none" ]; then
126 printf " ${CT_LIBC_VERSION} "
128 printf "| ${CT_THREADS:-none} "
129 printf "| ${CT_ARCH_FLOAT} "
131 [ "${CT_CC_LANG_CXX}" = "y" ] && printf ", C++"
132 [ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ", Fortran"
133 [ "${CT_CC_LANG_JAVA}" = "y" ] && printf ", Java"
134 [ "${CT_CC_LANG_ADA}" = "y" ] && printf ", ADA"
135 [ "${CT_CC_LANG_OBJC}" = "y" ] && printf ", Objective-C"
136 [ "${CT_CC_LANG_OBJCXX}" = "y" ] && printf ", Objective-C++"
137 [ -n "${CT_CC_LANG_OTHERS}" ] && printf "\\\\\\\\ Others: ${CT_CC_LANG_OTHERS}"
139 ( . "${sample_top}/samples/${sample}/reported.by"
140 if [ -n "${reporter_name}" ]; then
141 if [ -n "${reporter_url}" ]; then
142 printf "| [[${reporter_url}|${reporter_name}]] "
144 printf "| ${reporter_name} "
147 printf "| (//unknown//) "
150 sample_updated="$( hg log -l 1 --template '{date|shortdate}' "${sample_top}/samples/${sample}" )"
151 printf "| ${sample_updated} "
156 if [ "${opt}" = "-w" -a ${#} -eq 0 ]; then
157 printf "^ %s |||||||||||||||\n" "$( date "+%Y%m%d.%H%M %z" )"
161 printf "^ Kernel headers\\\\\\\\ version ^"
162 printf "^ binutils\\\\\\\\ version "
163 printf "^ C compiler\\\\\\\\ version ^"
164 printf "^ C library\\\\\\\\ version ^"
165 printf "^ Threading\\\\\\\\ model "
166 printf "^ Floating point\\\\\\\\ support "
167 printf "^ Languages "
168 printf "^ Initially\\\\\\\\ reported by "
169 printf "^ Last\\\\\\\\ updated "
172 elif [ "${opt}" = "-W" ]; then
173 printf "^ Total: ${#} samples || **X**: sample uses features marked as being EXPERIMENTAL.\\\\\\\\ **B**: sample is currently BROKEN. |||||||||||||"
178 for sample in "${@}"; do
179 ( dump_single_sample ${opt} "${sample}" )