scripts/showSamples.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Jan 22 23:20:18 2011 +0100 (2011-01-22)
changeset 2305 2ed26c646568
parent 1846 4220dec659c6
child 2409 15f5f431ec9e
permissions -rwxr-xr-x
scripts: create the makeinfo wrapper before we set PATH

If we set PATH to the tools wrappers before we create the
makeinfo wrapper, then we may well wrap an existing wrapper
from a previous run.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
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@1808
    19
    local complibs
yann@474
    20
    [ "$1" = "-v" ] && verbose=1 && shift
yann@560
    21
    [ "$1" = "-w" ] && wiki=1 && shift
yann@74
    22
    local width="$1"
yann@74
    23
    local sample="$2"
yann@1788
    24
    case "${sample}" in
yann@1788
    25
        current)
yann@1788
    26
            sample_type="l"
yann@1789
    27
            sample="${current_tuple}"
yann@1789
    28
            width="${#sample}"
yann@1804
    29
            . $(pwd)/.config
yann@1788
    30
            ;;
yann@1788
    31
        *)  if [ -f "${CT_TOP_DIR}/samples/${sample}/crosstool.config" ]; then
yann@1788
    32
                sample_top="${CT_TOP_DIR}"
yann@1876
    33
                sample_type="L"
yann@1788
    34
            else
yann@1788
    35
                sample_top="${CT_LIB_DIR}"
yann@1876
    36
                sample_type="G"
yann@1788
    37
            fi
yann@1788
    38
            . "${sample_top}/samples/${sample}/crosstool.config"
yann@1788
    39
            ;;
yann@1788
    40
    esac
yann@560
    41
    if [ -z "${wiki}" ]; then
yann@1808
    42
        t_width=14
yann@1682
    43
        printf "%-*s  [%s" ${width} "${sample}" "${sample_type}"
yann@825
    44
        [ -f "${sample_top}/samples/${sample}/broken" ] && printf "B" || printf " "
yann@825
    45
        [ "${CT_EXPERIMENTAL}" = "y" ] && printf "X" || printf " "
yann@825
    46
        echo "]"
yann@560
    47
        if [ ${verbose} -ne 0 ]; then
yann@1427
    48
            case "${CT_TOOLCHAIN_TYPE}" in
yann@1427
    49
                cross)  ;;
yann@1427
    50
                canadian)
yann@1519
    51
                    printf "    %-*s : %s\n" ${t_width} "Host" "${CT_HOST}"
yann@1427
    52
                    ;;
yann@1427
    53
            esac
yann@1519
    54
            printf "    %-*s : %s\n" ${t_width} "OS" "${CT_KERNEL}${CT_KERNEL_VERSION:+-}${CT_KERNEL_VERSION}"
yann@1845
    55
            if [    -n "${CT_GMP}"              \
yann@1845
    56
                 -o -n "${CT_MPFR}"             \
yann@1845
    57
                 -o -n "${CT_PPL}"              \
yann@1845
    58
                 -o -n "${CT_CLOOG}"            \
yann@1845
    59
                 -o -n "${CT_MPC}"              \
yann@1845
    60
                 -o -n "${CT_LIBELF}"           \
yann@1846
    61
                 -o -n "${CT_GMP_TARGET}"       \
yann@1846
    62
                 -o -n "${CT_MPFR_TARGET}"      \
yann@1846
    63
                 -o -n "${CT_PPL_TARGET}"       \
yann@1846
    64
                 -o -n "${CT_CLOOG_TARGET}"     \
yann@1846
    65
                 -o -n "${CT_MPC_TARGET}"       \
yann@1846
    66
                 -o -n "${CT_LIBELF_TARGET}"    \
yann@1808
    67
               ]; then
yann@1808
    68
                printf "    %-*s :" ${t_width} "Companion libs"
yann@1808
    69
                complibs=1
yann@807
    70
            fi
yann@1846
    71
            [ -z "${CT_GMP}"    -a -z "${CT_GMP_TARGET}"    ] || printf " gmp-%s"       "${CT_GMP_VERSION}"
yann@1846
    72
            [ -z "${CT_MPFR}"   -a -z "${CT_MPFR_TARGET}"   ] || printf " mpfr-%s"      "${CT_MPFR_VERSION}"
yann@1846
    73
            [ -z "${CT_PPL}"    -a -z "${CT_PPL_TARGET}"    ] || printf " ppl-%s"       "${CT_PPL_VERSION}"
yann@1846
    74
            [ -z "${CT_CLOOG}"  -a -z "${CT_CLOOG_TARGET}"  ] || printf " cloog-ppl-%s" "${CT_CLOOG_VERSION}"
yann@1846
    75
            [ -z "${CT_MPC}"    -a -z "${CT_MPC_TARGET}"    ] || printf " mpc-%s"       "${CT_MPC_VERSION}"
yann@1846
    76
            [ -z "${CT_LIBELF}" -a -z "${CT_LIBELF_TARGET}" ] || printf " libelf-%s"    "${CT_LIBELF_VERSION}"
yann@1808
    77
            [ -z "${complibs}"  ] || printf "\n"
yann@1519
    78
            printf  "    %-*s : %s\n" ${t_width} "binutils" "binutils-${CT_BINUTILS_VERSION}"
yann@1519
    79
            printf  "    %-*s : %s" ${t_width} "C compiler" "${CT_CC}-${CT_CC_VERSION} (C"
yann@642
    80
            [ "${CT_CC_LANG_CXX}" = "y"     ] && printf ",C++"
yann@642
    81
            [ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ",Fortran"
yann@642
    82
            [ "${CT_CC_LANG_JAVA}" = "y"    ] && printf ",Java"
yann@642
    83
            [ "${CT_CC_LANG_ADA}" = "y"     ] && printf ",ADA"
yann@642
    84
            [ "${CT_CC_LANG_OBJC}" = "y"    ] && printf ",Objective-C"
yann@642
    85
            [ "${CT_CC_LANG_OBJCXX}" = "y"  ] && printf ",Objective-C++"
yann@649
    86
            [ -n "${CT_CC_LANG_OTHERS}"     ] && printf ",${CT_CC_LANG_OTHERS}"
yann@1519
    87
            printf ")\n"
yann@1519
    88
            printf  "    %-*s : %s\n" ${t_width} "C library" "${CT_LIBC}${CT_LIBC_VERSION:+-}${CT_LIBC_VERSION}"
yann@1519
    89
            printf  "    %-*s :" ${t_width} "Tools"
yann@1520
    90
            [ "${CT_TOOL_sstrip}"   ] && printf " sstrip"
yann@1520
    91
            [ "${CT_DEBUG_dmalloc}" ] && printf " dmalloc-${CT_DMALLOC_VERSION}"
yann@1520
    92
            [ "${CT_DEBUG_duma}"    ] && printf " duma-${CT_DUMA_VERSION}"
yann@1520
    93
            [ "${CT_DEBUG_gdb}"     ] && printf " gdb-${CT_GDB_VERSION}"
yann@1520
    94
            [ "${CT_DEBUG_ltrace}"  ] && printf " ltrace-${CT_LTRACE_VERSION}"
yann@1520
    95
            [ "${CT_DEBUG_strace}"  ] && printf " strace-${CT_STRACE_VERSION}"
yann@1519
    96
            printf "\n"
yann@560
    97
        fi
yann@560
    98
    else
yann@1658
    99
        case "${CT_TOOLCHAIN_TYPE}" in
yann@1658
   100
            cross)
yann@1658
   101
                printf "| ''${sample}''  | "
yann@1658
   102
                ;;
yann@1658
   103
            canadian)
yann@1658
   104
                printf "| ''"
yann@1658
   105
                printf "${sample}" |sed -r -e 's/.*,//'
yann@1658
   106
                printf "''  | ${CT_HOST}  "
yann@1658
   107
                ;;
yann@1658
   108
            *)          ;;
yann@1658
   109
        esac
yann@828
   110
        printf "|  "
yann@1659
   111
        [ "${CT_EXPERIMENTAL}" = "y" ] && printf "**X**"
yann@1659
   112
        [ -f "${sample_top}/samples/${sample}/broken" ] && printf "**B**"
yann@1427
   113
        printf "  |  ''${CT_KERNEL}''  |"
yann@1026
   114
        if [ "${CT_KERNEL}" != "bare-metal" ];then
yann@1026
   115
            if [ "${CT_KERNEL_LINUX_HEADERS_USE_CUSTOM_DIR}" = "y" ]; then
yann@1026
   116
                printf "  //custom//  "
yann@1026
   117
            else
yann@1026
   118
                printf "  ${CT_KERNEL_VERSION}  "
yann@1026
   119
            fi
yann@722
   120
        fi
yann@642
   121
        printf "|  ${CT_BINUTILS_VERSION}  "
yann@691
   122
        printf "|  ''${CT_CC}''  "
yann@642
   123
        printf "|  ${CT_CC_VERSION}  "
yann@1026
   124
        printf "|  ''${CT_LIBC}''  |"
yann@1026
   125
        if [ "${CT_LIBC}" != "none" ]; then
yann@1026
   126
            printf "  ${CT_LIBC_VERSION}  "
yann@1026
   127
        fi
yann@1026
   128
        printf "|  ${CT_THREADS:-none}  "
yann@642
   129
        printf "|  ${CT_ARCH_FLOAT_HW:+hard}${CT_ARCH_FLOAT_SW:+soft} float  "
yann@649
   130
        printf "|  C"
yann@649
   131
        [ "${CT_CC_LANG_CXX}" = "y"     ] && printf ", C++"
yann@649
   132
        [ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ", Fortran"
yann@649
   133
        [ "${CT_CC_LANG_JAVA}" = "y"    ] && printf ", Java"
yann@649
   134
        [ "${CT_CC_LANG_ADA}" = "y"     ] && printf ", ADA"
yann@649
   135
        [ "${CT_CC_LANG_OBJC}" = "y"    ] && printf ", Objective-C"
yann@649
   136
        [ "${CT_CC_LANG_OBJCXX}" = "y"  ] && printf ", Objective-C++"
yann@649
   137
        [ -n "${CT_CC_LANG_OTHERS}"     ] && printf "\\\\\\\\ Others: ${CT_CC_LANG_OTHERS}"
yann@691
   138
        printf "  "
yann@935
   139
        ( . "${sample_top}/samples/${sample}/reported.by"
yann@935
   140
          if [ -n "${reporter_name}" ]; then
yann@617
   141
              if [ -n "${reporter_url}" ]; then
yann@642
   142
                  printf "|  [[${reporter_url}|${reporter_name}]]  "
yann@617
   143
              else
yann@642
   144
                  printf "|  ${reporter_name}  "
yann@617
   145
              fi
yann@935
   146
          else
yann@935
   147
              printf "|  [[http://ymorin.is-a-geek.org/|YEM]]  "
yann@935
   148
          fi
yann@935
   149
        )
yann@1427
   150
        sample_updated="$( hg log -l 1 --template '{date|shortdate}' "${sample_top}/samples/${sample}" )"
yann@750
   151
        printf "|  ${sample_updated}  "
yann@560
   152
        echo "|"
yann@474
   153
    fi
yann@74
   154
}
yann@74
   155
yann@74
   156
# Get largest sample width
yann@74
   157
width=0
yann@74
   158
for sample in "${@}"; do
yann@74
   159
    [ ${#sample} -gt ${width} ] && width=${#sample}
yann@74
   160
done
yann@74
   161
yann@560
   162
if [ "${opt}" = -w ]; then
yann@1659
   163
    printf "^ %s  |||||||||||||||\n" "$( date "+%Y%m%d.%H%M %z" )"
yann@1658
   164
    printf "^ Target  "
yann@1658
   165
    printf "^ Host  "
yann@828
   166
    printf "^  Status  "
yann@691
   167
    printf "^  Kernel headers\\\\\\\\ version  ^"
yann@851
   168
    printf "^  binutils\\\\\\\\ version  "
yann@691
   169
    printf "^  C compiler\\\\\\\\ version  ^"
yann@851
   170
    printf "^  C library\\\\\\\\ version  ^"
yann@851
   171
    printf "^  Threading\\\\\\\\ model  "
yann@651
   172
    printf "^  Floating point\\\\\\\\ support  "
yann@651
   173
    printf "^  Languages  "
yann@750
   174
    printf "^  Initially\\\\\\\\ reported by  "
yann@750
   175
    printf "^  Last\\\\\\\\ updated  "
yann@642
   176
    echo   "^"
yann@1876
   177
elif [ -z "${opt}" ]; then
yann@1876
   178
    printf "%-*s  Status\n" ${width} "Sample name"
yann@560
   179
fi
yann@724
   180
yann@74
   181
for sample in "${@}"; do
yann@474
   182
    ( dump_single_sample ${opt} ${width} "${sample}" )
yann@1682
   183
done
yann@724
   184
yann@724
   185
if [ "${opt}" = -w ]; then
yann@1659
   186
    printf "^ Total: ${#@} samples  || **X**: sample uses features marked as being EXPERIMENTAL.\\\\\\\\ **B**: sample is curently BROKEN. |||||||||||||"
yann@724
   187
    echo   ""
yann@822
   188
elif [ -z "${opt}" ]; then
yann@1876
   189
    echo '      L (Local)       : sample was found in current directory'
yann@1876
   190
    echo '      G (Global)      : sample was installed with crosstool-NG'
yann@822
   191
    echo '      X (EXPERIMENTAL): sample may use EXPERIMENTAL features'
yann@999
   192
    echo '      B (BROKEN)      : sample is currently broken'
yann@724
   193
fi