scripts/showSamples.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Thu Jun 11 21:47:19 2009 +0000 (2009-06-11)
branch1.4
changeset 1451 25d050084e98
parent 1026 f9f8d8f1d6d8
child 1427 231251d0110c
permissions -rwxr-xr-x
populate: fix installing dynamic linker 'ld.so'

The dynamic linker, ld.so, needs the execute bit to be set.
Detect tht the library being installed is in fact ld.so and
install it with 0755 instead of 0644.

Fix detecting src == dst.

Use a simpler command to copy src -> dst.

Also change echo to printf, get rid of 'echo -n', which is
highly non-portable.


-------- diffstat follows --------
/trunk/scripts/populate.in | 76 43 33 0 +++++++++++++++++++++++++++++-----------------------
1 file changed, 43 insertions(+), 33 deletions(-)
(transplanted from d7ddcb75e0f703e2ba6d17169167356389224870)
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@1023
    32
        printf "    %-*s  [%s" ${width} "${sample}" "${sample_type}"
yann@825
    33
        [ -f "${sample_top}/samples/${sample}/broken" ] && printf "B" || printf " "
yann@825
    34
        [ "${CT_EXPERIMENTAL}" = "y" ] && printf "X" || printf " "
yann@825
    35
        echo "]"
yann@560
    36
        if [ ${verbose} -ne 0 ]; then
yann@850
    37
            echo    "    OS        : ${CT_KERNEL}${CT_KERNEL_VERSION:+-}${CT_KERNEL_VERSION}"
yann@807
    38
            if [ "${CT_GMP_MPFR}" = "y" ]; then
yann@807
    39
                echo    "    GMP/MPFR  : gmp-${CT_GMP_VERSION} / mpfr-${CT_MPFR_VERSION}"
yann@807
    40
            fi
yann@560
    41
            echo    "    binutils  : binutils-${CT_BINUTILS_VERSION}"
yann@642
    42
            printf  "    C compiler: ${CT_CC}-${CT_CC_VERSION} (C"
yann@642
    43
            [ "${CT_CC_LANG_CXX}" = "y"     ] && printf ",C++"
yann@642
    44
            [ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ",Fortran"
yann@642
    45
            [ "${CT_CC_LANG_JAVA}" = "y"    ] && printf ",Java"
yann@642
    46
            [ "${CT_CC_LANG_ADA}" = "y"     ] && printf ",ADA"
yann@642
    47
            [ "${CT_CC_LANG_OBJC}" = "y"    ] && printf ",Objective-C"
yann@642
    48
            [ "${CT_CC_LANG_OBJCXX}" = "y"  ] && printf ",Objective-C++"
yann@649
    49
            [ -n "${CT_CC_LANG_OTHERS}"     ] && printf ",${CT_CC_LANG_OTHERS}"
yann@560
    50
            echo    ")"
yann@850
    51
            echo    "    C library : ${CT_LIBC}${CT_LIBC_VERSION:+-}${CT_LIBC_VERSION}"
yann@642
    52
            printf  "    Tools     :"
yann@642
    53
            [ "${CT_LIBELF}"  ] && printf " libelf-${CT_LIBELF_VERSION}"
yann@642
    54
            [ "${CT_SSTRIP}"  ] && printf " sstrip"
yann@642
    55
            [ "${CT_DMALLOC}" ] && printf " dmalloc-${CT_DMALLOC_VERSION}"
yann@642
    56
            [ "${CT_DUMA}"    ] && printf " duma-${CT_DUMA_VERSION}"
yann@642
    57
            [ "${CT_GDB}"     ] && printf " gdb-${CT_GDB_VERSION}"
yann@642
    58
            [ "${CT_LTRACE}"  ] && printf " ltrace-${CT_LTRACE_VERSION}"
yann@642
    59
            [ "${CT_STRACE}"  ] && printf " strace-${CT_STRACE_VERSION}"
yann@560
    60
            echo
yann@560
    61
        fi
yann@560
    62
    else
yann@642
    63
        printf "| ''${sample}''  "
yann@828
    64
        printf "|  "
yann@828
    65
        [ "${CT_EXPERIMENTAL}" = "y" ] && printf "X"
yann@828
    66
        [ -f "${sample_top}/samples/${sample}/broken" ] && printf "B"
yann@828
    67
        printf '  '
yann@1026
    68
        printf "|  ''${CT_KERNEL}''  |"
yann@1026
    69
        if [ "${CT_KERNEL}" != "bare-metal" ];then
yann@1026
    70
            if [ "${CT_KERNEL_LINUX_HEADERS_USE_CUSTOM_DIR}" = "y" ]; then
yann@1026
    71
                printf "  //custom//  "
yann@1026
    72
            else
yann@1026
    73
                printf "  ${CT_KERNEL_VERSION}  "
yann@1026
    74
            fi
yann@722
    75
        fi
yann@642
    76
        printf "|  ${CT_BINUTILS_VERSION}  "
yann@691
    77
        printf "|  ''${CT_CC}''  "
yann@642
    78
        printf "|  ${CT_CC_VERSION}  "
yann@1026
    79
        printf "|  ''${CT_LIBC}''  |"
yann@1026
    80
        if [ "${CT_LIBC}" != "none" ]; then
yann@1026
    81
            printf "  ${CT_LIBC_VERSION}  "
yann@1026
    82
        fi
yann@1026
    83
        printf "|  ${CT_THREADS:-none}  "
yann@642
    84
        printf "|  ${CT_ARCH_FLOAT_HW:+hard}${CT_ARCH_FLOAT_SW:+soft} float  "
yann@649
    85
        printf "|  C"
yann@649
    86
        [ "${CT_CC_LANG_CXX}" = "y"     ] && printf ", C++"
yann@649
    87
        [ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ", Fortran"
yann@649
    88
        [ "${CT_CC_LANG_JAVA}" = "y"    ] && printf ", Java"
yann@649
    89
        [ "${CT_CC_LANG_ADA}" = "y"     ] && printf ", ADA"
yann@649
    90
        [ "${CT_CC_LANG_OBJC}" = "y"    ] && printf ", Objective-C"
yann@649
    91
        [ "${CT_CC_LANG_OBJCXX}" = "y"  ] && printf ", Objective-C++"
yann@649
    92
        [ -n "${CT_CC_LANG_OTHERS}"     ] && printf "\\\\\\\\ Others: ${CT_CC_LANG_OTHERS}"
yann@691
    93
        printf "  "
yann@935
    94
        ( . "${sample_top}/samples/${sample}/reported.by"
yann@935
    95
          if [ -n "${reporter_name}" ]; then
yann@617
    96
              if [ -n "${reporter_url}" ]; then
yann@642
    97
                  printf "|  [[${reporter_url}|${reporter_name}]]  "
yann@617
    98
              else
yann@642
    99
                  printf "|  ${reporter_name}  "
yann@617
   100
              fi
yann@935
   101
          else
yann@935
   102
              printf "|  [[http://ymorin.is-a-geek.org/|YEM]]  "
yann@935
   103
          fi
yann@935
   104
        )
yann@750
   105
        sample_updated=$(date -u "+%Y%m%d"                                                  \
yann@750
   106
                              -d "$(LC_ALL=C svn info ${sample_top}/samples/${sample}       \
yann@1188
   107
                                    |GREP_OPTIONS= "${grep}" -E '^Last Changed Date:'       \
yann@1188
   108
                                    |"${sed}" -r -e 's/^[^:]+: //;'                         \
yann@750
   109
                                            -e 's/^(.+:.. [+-][[:digit:]]{4}) \(.+\)$/\1/;' \
yann@750
   110
                                   )"                                                       \
yann@750
   111
                        )
yann@750
   112
        printf "|  ${sample_updated}  "
yann@560
   113
        echo "|"
yann@474
   114
    fi
yann@74
   115
}
yann@74
   116
yann@74
   117
# Get largest sample width
yann@74
   118
width=0
yann@74
   119
for sample in "${@}"; do
yann@74
   120
    [ ${#sample} -gt ${width} ] && width=${#sample}
yann@74
   121
done
yann@74
   122
yann@560
   123
if [ "${opt}" = -w ]; then
yann@828
   124
    echo "^ @@DATE@@  ^ |||||||||||||"
yann@642
   125
    printf "^ Target "
yann@828
   126
    printf "^  Status  "
yann@691
   127
    printf "^  Kernel headers\\\\\\\\ version  ^"
yann@851
   128
    printf "^  binutils\\\\\\\\ version  "
yann@691
   129
    printf "^  C compiler\\\\\\\\ version  ^"
yann@851
   130
    printf "^  C library\\\\\\\\ version  ^"
yann@851
   131
    printf "^  Threading\\\\\\\\ model  "
yann@651
   132
    printf "^  Floating point\\\\\\\\ support  "
yann@651
   133
    printf "^  Languages  "
yann@750
   134
    printf "^  Initially\\\\\\\\ reported by  "
yann@750
   135
    printf "^  Last\\\\\\\\ updated  "
yann@642
   136
    echo   "^"
yann@560
   137
fi
yann@724
   138
yann@74
   139
for sample in "${@}"; do
yann@474
   140
    ( dump_single_sample ${opt} ${width} "${sample}" )
yann@74
   141
done
yann@724
   142
yann@724
   143
if [ "${opt}" = -w ]; then
yann@850
   144
    printf "^ Total: ${#@} samples  | ''X'': sample uses features marked as being EXPERIMENTAL.\\\\\\\\ ''B'': sample is curently BROKEN. |||||||||||||"
yann@724
   145
    echo   ""
yann@822
   146
elif [ -z "${opt}" ]; then
yann@822
   147
    echo '      l (local)       : sample was found in current directory'
yann@822
   148
    echo '      g (global)      : sample was installed with crosstool-NG'
yann@822
   149
    echo '      X (EXPERIMENTAL): sample may use EXPERIMENTAL features'
yann@999
   150
    echo '      B (BROKEN)      : sample is currently broken'
yann@724
   151
fi