scripts/showSamples.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Thu Oct 09 19:17:49 2008 +0000 (2008-10-09)
changeset 914 0b164a321177
parent 850 ef8549b58b6f
child 935 e175e3538310
permissions -rwxr-xr-x
Remove CT_BROKEN.
Only one component is actually BROKEN (libelf), make it depend on EXPERIMENTAL, but state BROKEN in the prompt.
ltrace (which depends on libelf) is now marked as EXPERIMENTAL, with the reference to the BROKEN libelf in the help entry.

/trunk/docs/overview.txt | 6 0 6 0 ------
/trunk/config/debug/ltrace.in | 7 4 3 0 ++++---
/trunk/config/global/ct-behave.in | 8 0 8 0 --------
/trunk/config/tools/libelf.in | 5 3 2 0 +++--
4 files changed, 7 insertions(+), 19 deletions(-)
yann@74
     1
#!/bin/bash
yann@74
     2
yann@74
     3
# Parses all samples on the command line, and for each of them, prints
yann@74
     4
# the versions of the main tools
yann@74
     5
yann@560
     6
[ "$1" = "-v" ] && opt="$1" && shift
yann@560
     7
[ "$1" = "-w" ] && opt="$1" && shift
yann@474
     8
yann@74
     9
# GREP_OPTIONS screws things up.
yann@74
    10
export GREP_OPTIONS=
yann@74
    11
yann@74
    12
# Dump a single sample
yann@74
    13
dump_single_sample() {
yann@474
    14
    local verbose=0
yann@474
    15
    [ "$1" = "-v" ] && verbose=1 && shift
yann@560
    16
    [ "$1" = "-w" ] && wiki=1 && shift
yann@74
    17
    local width="$1"
yann@74
    18
    local sample="$2"
yann@182
    19
    if [ -f "${CT_TOP_DIR}/samples/${sample}/crosstool.config" ]; then
yann@182
    20
        sample_top="${CT_TOP_DIR}"
yann@822
    21
        sample_type="l"
yann@182
    22
    else
yann@182
    23
        sample_top="${CT_LIB_DIR}"
yann@822
    24
        sample_type="g"
yann@182
    25
    fi
yann@560
    26
    . "${sample_top}/samples/${sample}/crosstool.config"
yann@560
    27
    if [ -z "${wiki}" ]; then
yann@825
    28
        printf "  %-*s  [%s" ${width} "${sample}" "${sample_type}"
yann@825
    29
        [ -f "${sample_top}/samples/${sample}/broken" ] && printf "B" || printf " "
yann@825
    30
        [ "${CT_EXPERIMENTAL}" = "y" ] && printf "X" || printf " "
yann@825
    31
        echo "]"
yann@560
    32
        if [ ${verbose} -ne 0 ]; then
yann@850
    33
            echo    "    OS        : ${CT_KERNEL}${CT_KERNEL_VERSION:+-}${CT_KERNEL_VERSION}"
yann@807
    34
            if [ "${CT_GMP_MPFR}" = "y" ]; then
yann@807
    35
                echo    "    GMP/MPFR  : gmp-${CT_GMP_VERSION} / mpfr-${CT_MPFR_VERSION}"
yann@807
    36
            fi
yann@560
    37
            echo    "    binutils  : binutils-${CT_BINUTILS_VERSION}"
yann@642
    38
            printf  "    C compiler: ${CT_CC}-${CT_CC_VERSION} (C"
yann@642
    39
            [ "${CT_CC_LANG_CXX}" = "y"     ] && printf ",C++"
yann@642
    40
            [ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ",Fortran"
yann@642
    41
            [ "${CT_CC_LANG_JAVA}" = "y"    ] && printf ",Java"
yann@642
    42
            [ "${CT_CC_LANG_ADA}" = "y"     ] && printf ",ADA"
yann@642
    43
            [ "${CT_CC_LANG_OBJC}" = "y"    ] && printf ",Objective-C"
yann@642
    44
            [ "${CT_CC_LANG_OBJCXX}" = "y"  ] && printf ",Objective-C++"
yann@649
    45
            [ -n "${CT_CC_LANG_OTHERS}"     ] && printf ",${CT_CC_LANG_OTHERS}"
yann@560
    46
            echo    ")"
yann@850
    47
            echo    "    C library : ${CT_LIBC}${CT_LIBC_VERSION:+-}${CT_LIBC_VERSION}"
yann@642
    48
            printf  "    Tools     :"
yann@642
    49
            [ "${CT_LIBELF}"  ] && printf " libelf-${CT_LIBELF_VERSION}"
yann@642
    50
            [ "${CT_SSTRIP}"  ] && printf " sstrip"
yann@642
    51
            [ "${CT_DMALLOC}" ] && printf " dmalloc-${CT_DMALLOC_VERSION}"
yann@642
    52
            [ "${CT_DUMA}"    ] && printf " duma-${CT_DUMA_VERSION}"
yann@642
    53
            [ "${CT_GDB}"     ] && printf " gdb-${CT_GDB_VERSION}"
yann@642
    54
            [ "${CT_LTRACE}"  ] && printf " ltrace-${CT_LTRACE_VERSION}"
yann@642
    55
            [ "${CT_STRACE}"  ] && printf " strace-${CT_STRACE_VERSION}"
yann@560
    56
            echo
yann@560
    57
        fi
yann@560
    58
    else
yann@642
    59
        printf "| ''${sample}''  "
yann@828
    60
        printf "|  "
yann@828
    61
        [ "${CT_EXPERIMENTAL}" = "y" ] && printf "X"
yann@828
    62
        [ -f "${sample_top}/samples/${sample}/broken" ] && printf "B"
yann@828
    63
        printf '  '
yann@723
    64
        printf "|  ''${CT_KERNEL}''  "
yann@722
    65
        if [ "${CT_KERNEL_LINUX_HEADERS_USE_CUSTOM_DIR}" = "y" ]; then
yann@722
    66
            printf "|  //custom//  "
yann@722
    67
        else
yann@723
    68
            printf "|  ${CT_KERNEL_VERSION}  "
yann@722
    69
        fi
yann@642
    70
        printf "|  ${CT_BINUTILS_VERSION}  "
yann@691
    71
        printf "|  ''${CT_CC}''  "
yann@642
    72
        printf "|  ${CT_CC_VERSION}  "
yann@642
    73
        printf "|  ''${CT_LIBC}''  "
yann@642
    74
        printf "|  ${CT_LIBC_VERSION}  "
yann@642
    75
        printf "|  ${CT_THREADS_NPTL:+NPTL}${CT_THREADS_LINUXTHREADS:+linuxthreads}${CT_THREADS_NONE:+none}  "
yann@642
    76
        printf "|  ${CT_ARCH_FLOAT_HW:+hard}${CT_ARCH_FLOAT_SW:+soft} float  "
yann@649
    77
        printf "|  C"
yann@649
    78
        [ "${CT_CC_LANG_CXX}" = "y"     ] && printf ", C++"
yann@649
    79
        [ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ", Fortran"
yann@649
    80
        [ "${CT_CC_LANG_JAVA}" = "y"    ] && printf ", Java"
yann@649
    81
        [ "${CT_CC_LANG_ADA}" = "y"     ] && printf ", ADA"
yann@649
    82
        [ "${CT_CC_LANG_OBJC}" = "y"    ] && printf ", Objective-C"
yann@649
    83
        [ "${CT_CC_LANG_OBJCXX}" = "y"  ] && printf ", Objective-C++"
yann@649
    84
        [ -n "${CT_CC_LANG_OTHERS}"     ] && printf "\\\\\\\\ Others: ${CT_CC_LANG_OTHERS}"
yann@691
    85
        printf "  "
yann@560
    86
        if [ -f "${sample_top}/samples/${sample}/reported.by" ]; then
yann@617
    87
            ( . "${sample_top}/samples/${sample}/reported.by"
yann@617
    88
              if [ -n "${reporter_url}" ]; then
yann@642
    89
                  printf "|  [[${reporter_url}|${reporter_name}]]  "
yann@617
    90
              else
yann@642
    91
                  printf "|  ${reporter_name}  "
yann@617
    92
              fi
yann@560
    93
            )
yann@560
    94
        else
yann@642
    95
            printf "|  [[http://ymorin.is-a-geek.org/|YEM]]  "
yann@560
    96
        fi
yann@750
    97
        sample_updated=$(date -u "+%Y%m%d"                                                  \
yann@750
    98
                              -d "$(LC_ALL=C svn info ${sample_top}/samples/${sample}       \
yann@750
    99
                                    |GREP_OPTIONS= egrep '^Last Changed Date:'              \
yann@750
   100
                                    |sed -r -e 's/^[^:]+: //;'                              \
yann@750
   101
                                            -e 's/^(.+:.. [+-][[:digit:]]{4}) \(.+\)$/\1/;' \
yann@750
   102
                                   )"                                                       \
yann@750
   103
                        )
yann@750
   104
        printf "|  ${sample_updated}  "
yann@560
   105
        echo "|"
yann@474
   106
    fi
yann@74
   107
}
yann@74
   108
yann@74
   109
# Get largest sample width
yann@74
   110
width=0
yann@74
   111
for sample in "${@}"; do
yann@74
   112
    [ ${#sample} -gt ${width} ] && width=${#sample}
yann@74
   113
done
yann@74
   114
yann@560
   115
if [ "${opt}" = -w ]; then
yann@828
   116
    echo "^ @@DATE@@  ^ |||||||||||||"
yann@642
   117
    printf "^ Target "
yann@828
   118
    printf "^  Status  "
yann@691
   119
    printf "^  Kernel headers\\\\\\\\ version  ^"
yann@851
   120
    printf "^  binutils\\\\\\\\ version  "
yann@691
   121
    printf "^  C compiler\\\\\\\\ version  ^"
yann@851
   122
    printf "^  C library\\\\\\\\ version  ^"
yann@851
   123
    printf "^  Threading\\\\\\\\ model  "
yann@651
   124
    printf "^  Floating point\\\\\\\\ support  "
yann@651
   125
    printf "^  Languages  "
yann@750
   126
    printf "^  Initially\\\\\\\\ reported by  "
yann@750
   127
    printf "^  Last\\\\\\\\ updated  "
yann@642
   128
    echo   "^"
yann@560
   129
fi
yann@724
   130
yann@74
   131
for sample in "${@}"; do
yann@474
   132
    ( dump_single_sample ${opt} ${width} "${sample}" )
yann@74
   133
done
yann@724
   134
yann@724
   135
if [ "${opt}" = -w ]; then
yann@850
   136
    printf "^ Total: ${#@} samples  | ''X'': sample uses features marked as being EXPERIMENTAL.\\\\\\\\ ''B'': sample is curently BROKEN. |||||||||||||"
yann@724
   137
    echo   ""
yann@822
   138
elif [ -z "${opt}" ]; then
yann@822
   139
    echo '      l (local)       : sample was found in current directory'
yann@822
   140
    echo '      g (global)      : sample was installed with crosstool-NG'
yann@822
   141
    echo '      X (EXPERIMENTAL): sample may use EXPERIMENTAL features'
yann@822
   142
    echo '      B (BORKEN)      : sample is currently broken'
yann@724
   143
fi