scripts/showSamples.sh
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Sun May 11 23:43:52 2014 +0200 (2014-05-11)
changeset 3320 78af1c99bc6d
parent 3022 8c8041e70203
permissions -rwxr-xr-x
scripts/functions: add target_endian_le and target_endian_be

We currently define target_endian_el and target_endian_eb to be the
tuple extension depending on endianness, defined to be respectively
'el' or 'eb' according to the endianness.

Some architecture do not use 'el' or 'eb', but use 'le' or 'be'.

Provide that as well, as two new variables: target_endian_le and
target_endian_be.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Cody P Schafer <dev@codyps.com>
     1 #!/bin/sh
     2 # Yes, this is supposed to be a POSIX-compliant shell script.
     3 
     4 # Parses all samples on the command line, and for each of them, prints
     5 # the versions of the main tools
     6 
     7 # Use tools discovered by ./configure
     8 . "${CT_LIB_DIR}/paths.sh"
     9 
    10 [ "$1" = "-v" ] && opt="$1" && shift
    11 [ "$1" = "-w" ] && opt="$1" && shift
    12 [ "$1" = "-W" ] && opt="$1" && shift
    13 
    14 # GREP_OPTIONS screws things up.
    15 export GREP_OPTIONS=
    16 
    17 # Dump a single sample
    18 # Note: we use the specific .config.sample config file
    19 dump_single_sample() {
    20     local verbose=0
    21     local wiki=0
    22     local complibs
    23     [ "$1" = "-v" ] && verbose=1 && shift
    24     [ "$1" = "-w" ] && wiki=1 && shift
    25     local sample="$1"
    26     case "${sample}" in
    27         current)
    28             sample_type="l"
    29             sample="$( ${CT_NG} show-tuple )"
    30             ;;
    31         *)  if [ -f "${CT_TOP_DIR}/samples/${sample}/crosstool.config" ]; then
    32                 sample_top="${CT_TOP_DIR}"
    33                 sample_type="L"
    34             else
    35                 sample_top="${CT_LIB_DIR}"
    36                 sample_type="G"
    37             fi
    38             ;;
    39     esac
    40     . $(pwd)/.config.sample
    41     if [ ${wiki} -eq 0 ]; then
    42         width=14
    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
    49                 cross)  ;;
    50                 canadian)
    51                     printf "    %-*s : %s\n" ${width} "Host" "${CT_HOST}"
    52                     ;;
    53             esac
    54             printf "    %-*s : %s\n" ${width} "OS" "${CT_KERNEL}${CT_KERNEL_VERSION:+-}${CT_KERNEL_VERSION}"
    55             if [    -n "${CT_GMP}"              \
    56                  -o -n "${CT_MPFR}"             \
    57                  -o -n "${CT_PPL}"              \
    58                  -o -n "${CT_CLOOG}"            \
    59                  -o -n "${CT_MPC}"              \
    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}"    \
    67                ]; then
    68                 printf "    %-*s :" ${width} "Companion libs"
    69                 complibs=1
    70             fi
    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             [ "${CT_CC_LANG_GOLANG}" = "y"  ] && printf ",Go"
    87             [ -n "${CT_CC_LANG_OTHERS}"     ] && printf ",${CT_CC_LANG_OTHERS}"
    88             printf ")\n"
    89             printf  "    %-*s : %s (threads: %s)\n" ${width} "C library" "${CT_LIBC}${CT_LIBC_VERSION:+-}${CT_LIBC_VERSION}" "${CT_THREADS}"
    90             printf  "    %-*s :" ${width} "Tools"
    91             [ "${CT_TOOL_sstrip}"   ] && printf " sstrip"
    92             [ "${CT_DEBUG_dmalloc}" ] && printf " dmalloc-${CT_DMALLOC_VERSION}"
    93             [ "${CT_DEBUG_duma}"    ] && printf " duma-${CT_DUMA_VERSION}"
    94             [ "${CT_DEBUG_gdb}"     ] && printf " gdb-${CT_GDB_VERSION}"
    95             [ "${CT_DEBUG_ltrace}"  ] && printf " ltrace-${CT_LTRACE_VERSION}"
    96             [ "${CT_DEBUG_strace}"  ] && printf " strace-${CT_STRACE_VERSION}"
    97             printf "\n"
    98         fi
    99     else
   100         case "${CT_TOOLCHAIN_TYPE}" in
   101             cross)
   102                 printf "| ''${sample}''  | "
   103                 ;;
   104             canadian)
   105                 printf "| ''"
   106                 printf "${sample}" |sed -r -e 's/.*,//'
   107                 printf "''  | ${CT_HOST}  "
   108                 ;;
   109             *)          ;;
   110         esac
   111         printf "|  "
   112         [ "${CT_EXPERIMENTAL}" = "y" ] && printf "**X**"
   113         [ -f "${sample_top}/samples/${sample}/broken" ] && printf "**B**"
   114         printf "  |  ''${CT_KERNEL}''  |"
   115         if [ "${CT_KERNEL}" != "bare-metal" ];then
   116             if [ "${CT_KERNEL_LINUX_HEADERS_USE_CUSTOM_DIR}" = "y" ]; then
   117                 printf "  //custom//  "
   118             else
   119                 printf "  ${CT_KERNEL_VERSION}  "
   120             fi
   121         fi
   122         printf "|  ${CT_BINUTILS_VERSION}  "
   123         printf "|  ''${CT_CC}''  "
   124         printf "|  ${CT_CC_VERSION}  "
   125         printf "|  ''${CT_LIBC}''  |"
   126         if [ "${CT_LIBC}" != "none" ]; then
   127             printf "  ${CT_LIBC_VERSION}  "
   128         fi
   129         printf "|  ${CT_THREADS:-none}  "
   130         printf "|  ${CT_ARCH_FLOAT}  "
   131         printf "|  C"
   132         [ "${CT_CC_LANG_CXX}" = "y"     ] && printf ", C++"
   133         [ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ", Fortran"
   134         [ "${CT_CC_LANG_JAVA}" = "y"    ] && printf ", Java"
   135         [ "${CT_CC_LANG_ADA}" = "y"     ] && printf ", ADA"
   136         [ "${CT_CC_LANG_OBJC}" = "y"    ] && printf ", Objective-C"
   137         [ "${CT_CC_LANG_OBJCXX}" = "y"  ] && printf ", Objective-C++"
   138         [ -n "${CT_CC_LANG_OTHERS}"     ] && printf "\\\\\\\\ Others: ${CT_CC_LANG_OTHERS}"
   139         printf "  "
   140         ( . "${sample_top}/samples/${sample}/reported.by"
   141           if [ -n "${reporter_name}" ]; then
   142               if [ -n "${reporter_url}" ]; then
   143                   printf "|  [[${reporter_url}|${reporter_name}]]  "
   144               else
   145                   printf "|  ${reporter_name}  "
   146               fi
   147           else
   148               printf "|  (//unknown//)  "
   149           fi
   150         )
   151         sample_updated="$( hg log -l 1 --template '{date|shortdate}' "${sample_top}/samples/${sample}" )"
   152         printf "|  ${sample_updated}  "
   153         echo "|"
   154     fi
   155 }
   156 
   157 if [ "${opt}" = "-w" -a ${#} -eq 0 ]; then
   158     printf "^ %s  |||||||||||||||\n" "$( date "+%Y%m%d.%H%M %z" )"
   159     printf "^ Target  "
   160     printf "^ Host  "
   161     printf "^  Status  "
   162     printf "^  Kernel headers\\\\\\\\ version  ^"
   163     printf "^  binutils\\\\\\\\ version  "
   164     printf "^  C compiler\\\\\\\\ version  ^"
   165     printf "^  C library\\\\\\\\ version  ^"
   166     printf "^  Threading\\\\\\\\ model  "
   167     printf "^  Floating point\\\\\\\\ support  "
   168     printf "^  Languages  "
   169     printf "^  Initially\\\\\\\\ reported by  "
   170     printf "^  Last\\\\\\\\ updated  "
   171     echo   "^"
   172     exit 0
   173 elif [ "${opt}" = "-W" ]; then
   174     printf "^ Total: ${#} samples  || **X**: sample uses features marked as being EXPERIMENTAL.\\\\\\\\ **B**: sample is currently BROKEN. |||||||||||||"
   175     echo   ""
   176     exit 0
   177 fi
   178 
   179 for sample in "${@}"; do
   180     ( dump_single_sample ${opt} "${sample}" )
   181 done