scripts/showSamples.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Nov 10 19:32:11 2009 +0100 (2009-11-10)
changeset 1622 9ad2a3fd1fcc
parent 1520 e156ab9c7370
child 1657 0da038fd747b
permissions -rwxr-xr-x
scripts: output renumbered patches in a new directory

When renumbering patches, the original patches get removed and replaced
with the new ones. This can be annoying to loose the original patches.
Fix this by putting the new patchs in a directory of their own.
yann@1188
     1
#!/bin/sh
yann@1188
     2
# Yes, this is supposed to be a POSIX-compliant shell script.
yann@74
     3
yann@74
     4
# Parses all samples on the command line, and for each of them, prints
yann@74
     5
# the versions of the main tools
yann@74
     6
yann@1188
     7
# Use tools discovered by ./configure
yann@1188
     8
. "${CT_LIB_DIR}/paths.mk"
yann@1188
     9
yann@560
    10
[ "$1" = "-v" ] && opt="$1" && shift
yann@560
    11
[ "$1" = "-w" ] && opt="$1" && shift
yann@474
    12
yann@74
    13
# GREP_OPTIONS screws things up.
yann@74
    14
export GREP_OPTIONS=
yann@74
    15
yann@74
    16
# Dump a single sample
yann@74
    17
dump_single_sample() {
yann@474
    18
    local verbose=0
yann@474
    19
    [ "$1" = "-v" ] && verbose=1 && shift
yann@560
    20
    [ "$1" = "-w" ] && wiki=1 && shift
yann@74
    21
    local width="$1"
yann@74
    22
    local sample="$2"
yann@182
    23
    if [ -f "${CT_TOP_DIR}/samples/${sample}/crosstool.config" ]; then
yann@182
    24
        sample_top="${CT_TOP_DIR}"
yann@822
    25
        sample_type="l"
yann@182
    26
    else
yann@182
    27
        sample_top="${CT_LIB_DIR}"
yann@822
    28
        sample_type="g"
yann@182
    29
    fi
yann@560
    30
    . "${sample_top}/samples/${sample}/crosstool.config"
yann@560
    31
    if [ -z "${wiki}" ]; then
yann@1521
    32
        t_width=13
yann@1023
    33
        printf "    %-*s  [%s" ${width} "${sample}" "${sample_type}"
yann@825
    34
        [ -f "${sample_top}/samples/${sample}/broken" ] && printf "B" || printf " "
yann@825
    35
        [ "${CT_EXPERIMENTAL}" = "y" ] && printf "X" || printf " "
yann@825
    36
        echo "]"
yann@560
    37
        if [ ${verbose} -ne 0 ]; then
yann@1427
    38
            case "${CT_TOOLCHAIN_TYPE}" in
yann@1427
    39
                cross)  ;;
yann@1427
    40
                canadian)
yann@1519
    41
                    printf "    %-*s : %s\n" ${t_width} "Host" "${CT_HOST}"
yann@1427
    42
                    ;;
yann@1427
    43
            esac
yann@1519
    44
            printf "    %-*s : %s\n" ${t_width} "OS" "${CT_KERNEL}${CT_KERNEL_VERSION:+-}${CT_KERNEL_VERSION}"
yann@807
    45
            if [ "${CT_GMP_MPFR}" = "y" ]; then
yann@1519
    46
                printf    "    %-*s : %s\n" ${t_width} "GMP/MPFR" "gmp-${CT_GMP_VERSION} / mpfr-${CT_MPFR_VERSION}"
yann@807
    47
            fi
yann@1521
    48
            if [ "${CT_PPL_CLOOG_MPC}" = "y" ]; then
yann@1521
    49
                printf    "    %-*s : %s\n" ${t_width} "PPL/CLOOG/MPC" "ppl-${CT_PPL_VERSION} / cloog-${CT_CLOOG_VERSION} / mpc-${CT_MPC_VERSION}"
yann@1521
    50
            fi
yann@1519
    51
            printf  "    %-*s : %s\n" ${t_width} "binutils" "binutils-${CT_BINUTILS_VERSION}"
yann@1519
    52
            printf  "    %-*s : %s" ${t_width} "C compiler" "${CT_CC}-${CT_CC_VERSION} (C"
yann@642
    53
            [ "${CT_CC_LANG_CXX}" = "y"     ] && printf ",C++"
yann@642
    54
            [ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ",Fortran"
yann@642
    55
            [ "${CT_CC_LANG_JAVA}" = "y"    ] && printf ",Java"
yann@642
    56
            [ "${CT_CC_LANG_ADA}" = "y"     ] && printf ",ADA"
yann@642
    57
            [ "${CT_CC_LANG_OBJC}" = "y"    ] && printf ",Objective-C"
yann@642
    58
            [ "${CT_CC_LANG_OBJCXX}" = "y"  ] && printf ",Objective-C++"
yann@649
    59
            [ -n "${CT_CC_LANG_OTHERS}"     ] && printf ",${CT_CC_LANG_OTHERS}"
yann@1519
    60
            printf ")\n"
yann@1519
    61
            printf  "    %-*s : %s\n" ${t_width} "C library" "${CT_LIBC}${CT_LIBC_VERSION:+-}${CT_LIBC_VERSION}"
yann@1519
    62
            printf  "    %-*s :" ${t_width} "Tools"
yann@1520
    63
            [ "${CT_TOOL_libelf}"   ] && printf " libelf-${CT_LIBELF_VERSION}"
yann@1520
    64
            [ "${CT_TOOL_sstrip}"   ] && printf " sstrip"
yann@1520
    65
            [ "${CT_DEBUG_dmalloc}" ] && printf " dmalloc-${CT_DMALLOC_VERSION}"
yann@1520
    66
            [ "${CT_DEBUG_duma}"    ] && printf " duma-${CT_DUMA_VERSION}"
yann@1520
    67
            [ "${CT_DEBUG_gdb}"     ] && printf " gdb-${CT_GDB_VERSION}"
yann@1520
    68
            [ "${CT_DEBUG_ltrace}"  ] && printf " ltrace-${CT_LTRACE_VERSION}"
yann@1520
    69
            [ "${CT_DEBUG_strace}"  ] && printf " strace-${CT_STRACE_VERSION}"
yann@1519
    70
            printf "\n"
yann@560
    71
        fi
yann@560
    72
    else
yann@642
    73
        printf "| ''${sample}''  "
yann@828
    74
        printf "|  "
yann@828
    75
        [ "${CT_EXPERIMENTAL}" = "y" ] && printf "X"
yann@828
    76
        [ -f "${sample_top}/samples/${sample}/broken" ] && printf "B"
yann@1427
    77
        printf '  |  '
yann@1427
    78
        case "${CT_TOOLCHAIN_TYPE}" in
yann@1427
    79
            cross)      ;;
yann@1427
    80
            canadian)   printf "${CT_HOST}";;
yann@1427
    81
            *)          ;;
yann@1427
    82
        esac
yann@1427
    83
        printf "  |  ''${CT_KERNEL}''  |"
yann@1026
    84
        if [ "${CT_KERNEL}" != "bare-metal" ];then
yann@1026
    85
            if [ "${CT_KERNEL_LINUX_HEADERS_USE_CUSTOM_DIR}" = "y" ]; then
yann@1026
    86
                printf "  //custom//  "
yann@1026
    87
            else
yann@1026
    88
                printf "  ${CT_KERNEL_VERSION}  "
yann@1026
    89
            fi
yann@722
    90
        fi
yann@642
    91
        printf "|  ${CT_BINUTILS_VERSION}  "
yann@691
    92
        printf "|  ''${CT_CC}''  "
yann@642
    93
        printf "|  ${CT_CC_VERSION}  "
yann@1026
    94
        printf "|  ''${CT_LIBC}''  |"
yann@1026
    95
        if [ "${CT_LIBC}" != "none" ]; then
yann@1026
    96
            printf "  ${CT_LIBC_VERSION}  "
yann@1026
    97
        fi
yann@1026
    98
        printf "|  ${CT_THREADS:-none}  "
yann@642
    99
        printf "|  ${CT_ARCH_FLOAT_HW:+hard}${CT_ARCH_FLOAT_SW:+soft} float  "
yann@649
   100
        printf "|  C"
yann@649
   101
        [ "${CT_CC_LANG_CXX}" = "y"     ] && printf ", C++"
yann@649
   102
        [ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ", Fortran"
yann@649
   103
        [ "${CT_CC_LANG_JAVA}" = "y"    ] && printf ", Java"
yann@649
   104
        [ "${CT_CC_LANG_ADA}" = "y"     ] && printf ", ADA"
yann@649
   105
        [ "${CT_CC_LANG_OBJC}" = "y"    ] && printf ", Objective-C"
yann@649
   106
        [ "${CT_CC_LANG_OBJCXX}" = "y"  ] && printf ", Objective-C++"
yann@649
   107
        [ -n "${CT_CC_LANG_OTHERS}"     ] && printf "\\\\\\\\ Others: ${CT_CC_LANG_OTHERS}"
yann@691
   108
        printf "  "
yann@935
   109
        ( . "${sample_top}/samples/${sample}/reported.by"
yann@935
   110
          if [ -n "${reporter_name}" ]; then
yann@617
   111
              if [ -n "${reporter_url}" ]; then
yann@642
   112
                  printf "|  [[${reporter_url}|${reporter_name}]]  "
yann@617
   113
              else
yann@642
   114
                  printf "|  ${reporter_name}  "
yann@617
   115
              fi
yann@935
   116
          else
yann@935
   117
              printf "|  [[http://ymorin.is-a-geek.org/|YEM]]  "
yann@935
   118
          fi
yann@935
   119
        )
yann@1427
   120
        sample_updated="$( hg log -l 1 --template '{date|shortdate}' "${sample_top}/samples/${sample}" )"
yann@750
   121
        printf "|  ${sample_updated}  "
yann@560
   122
        echo "|"
yann@474
   123
    fi
yann@74
   124
}
yann@74
   125
yann@74
   126
# Get largest sample width
yann@74
   127
width=0
yann@74
   128
for sample in "${@}"; do
yann@74
   129
    [ ${#sample} -gt ${width} ] && width=${#sample}
yann@74
   130
done
yann@74
   131
yann@560
   132
if [ "${opt}" = -w ]; then
yann@828
   133
    echo "^ @@DATE@@  ^ |||||||||||||"
yann@642
   134
    printf "^ Target "
yann@828
   135
    printf "^  Status  "
yann@1427
   136
    printf "^  Host  "
yann@691
   137
    printf "^  Kernel headers\\\\\\\\ version  ^"
yann@851
   138
    printf "^  binutils\\\\\\\\ version  "
yann@691
   139
    printf "^  C compiler\\\\\\\\ version  ^"
yann@851
   140
    printf "^  C library\\\\\\\\ version  ^"
yann@851
   141
    printf "^  Threading\\\\\\\\ model  "
yann@651
   142
    printf "^  Floating point\\\\\\\\ support  "
yann@651
   143
    printf "^  Languages  "
yann@750
   144
    printf "^  Initially\\\\\\\\ reported by  "
yann@750
   145
    printf "^  Last\\\\\\\\ updated  "
yann@642
   146
    echo   "^"
yann@560
   147
fi
yann@724
   148
yann@74
   149
for sample in "${@}"; do
yann@474
   150
    ( dump_single_sample ${opt} ${width} "${sample}" )
yann@74
   151
done
yann@724
   152
yann@724
   153
if [ "${opt}" = -w ]; then
yann@850
   154
    printf "^ Total: ${#@} samples  | ''X'': sample uses features marked as being EXPERIMENTAL.\\\\\\\\ ''B'': sample is curently BROKEN. |||||||||||||"
yann@724
   155
    echo   ""
yann@822
   156
elif [ -z "${opt}" ]; then
yann@822
   157
    echo '      l (local)       : sample was found in current directory'
yann@822
   158
    echo '      g (global)      : sample was installed with crosstool-NG'
yann@822
   159
    echo '      X (EXPERIMENTAL): sample may use EXPERIMENTAL features'
yann@999
   160
    echo '      B (BROKEN)      : sample is currently broken'
yann@724
   161
fi