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