scripts/build/tools/sstrip.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Jun 16 18:08:14 2007 +0000 (2007-06-16)
changeset 161 be4484f10ac7
parent 154 cbead170f5e7
child 204 1d9231eecc9b
permissions -rw-r--r--
Add a function to print each component's filename: this eases building the tarball of the generated toolchain.
Hard-link the libfloat tarball instead of soft-link: this also eases building the afore-mentioned tarball.
     1 # This will build and install sstrip to run on host and sstrip target files
     2 
     3 is_enabled="${CT_SSTRIP}"
     4 
     5 case "${CT_SSTRIP_FROM}" in
     6     ELFkickers)
     7         do_print_filename() {
     8             echo "ELFkickers-${CT_SSTRIP_ELFKICKERS_VERSION}"
     9         }
    10         do_tools_sstrip_get() {
    11             CT_GetFile "ELFkickers-${CT_SSTRIP_ELFKICKERS_VERSION}"     \
    12                        http://www.muppetlabs.com/~breadbox/pub/software
    13         }
    14         do_tools_sstrip_extract() {
    15             CT_ExtractAndPatch "ELFkickers-${CT_SSTRIP_ELFKICKERS_VERSION}"
    16         }
    17         do_tools_sstrip_build() {
    18             CT_DoStep INFO "Installing sstrip"
    19             mkdir -p "${CT_BUILD_DIR}/build-strip"
    20             cd "${CT_BUILD_DIR}/build-strip"
    21             ( cd "${CT_SRC_DIR}/ELFkickers-${CT_SSTRIP_ELFKICKERS_VERSION}/sstrip"; tar cf - . ) |tar xf -
    22 
    23             CT_DoLog EXTRA "Building sstrip"
    24             make CC="${CT_CC_NATIVE}" sstrip 2>&1 |CT_DoLog ALL
    25             
    26             CT_DoLog EXTRA "Installing sstrip"
    27             install -m 755 sstrip "${CT_PREFIX_DIR}/bin/${CT_TARGET}-sstrip" 2>&1 |CT_DoLog ALL
    28 
    29             CT_EndStep
    30         }
    31     ;;
    32 
    33     buildroot)
    34         sstrip_url='http://buildroot.uclibc.org/cgi-bin/viewcvs.cgi/trunk/buildroot/toolchain/sstrip/sstrip.c'
    35         do_print_filename() {
    36             echo "sstrip.c"
    37         }
    38         do_tools_sstrip_get() {
    39             # With this one, we must handle the download by ourselves,
    40             # we can't leave the job to the classic CT_GetFile.
    41             if [ -f "${CT_TARBALLS_DIR}/sstrip.c" ]; then
    42                 return 0
    43             fi
    44             CT_Pushd "${CT_TARBALLS_DIR}"
    45             CT_DoLog EXTRA "Retrieving \"sstrip\" (from buildroot's svn)"
    46             http_data=`lynx -dump "${sstrip_url}"`
    47             link=`echo -en "${http_data}"                           \
    48                   |egrep '\[[[:digit:]]+\]download'                 \
    49                   |sed -r -e 's/.*\[([[:digit:]]+)\]download.*/\1/;'`
    50             rev_url=`echo -en "${http_data}"                        \
    51                      |egrep '^ *8\.'                                \
    52                      |sed -r -e 's/^ *'${link}'\. +(.+)$/\1/;'`
    53             CT_DoGetFile "${rev_url}" 2>&1 |CT_DoLog ALL
    54             mv sstrip.c?* sstrip.c
    55             CT_Popd
    56         }
    57         do_tools_sstrip_extract() {
    58             # We'll let buildroot guys take care of sstrip maintenance and patching.
    59             mkdir -p "${CT_SRC_DIR}/sstrip"
    60             cp -v "${CT_TARBALLS_DIR}/sstrip.c" "${CT_SRC_DIR}/sstrip" |CT_DoLog ALL
    61         }
    62         do_tools_sstrip_build() {
    63             CT_DoStep INFO "Installing sstrip"
    64             mkdir -p "${CT_BUILD_DIR}/build-sstrip"
    65             cd "${CT_BUILD_DIR}/build-sstrip"
    66 
    67             CT_DoLog EXTRA "Building sstrip"
    68             ${CT_CC_NATIVE} -Wall -o sstrip "${CT_SRC_DIR}/sstrip/sstrip.c" 2>&1 |CT_DoLog ALL
    69 
    70             CT_DoLog EXTRA "Installing sstrip"
    71             install -m 755 sstrip "${CT_PREFIX_DIR}/bin/${CT_TARGET}-sstrip" 2>&1 |CT_DoLog ALL
    72 
    73             CT_EndStep
    74         }
    75     ;;
    76 
    77     *)  do_print_filename() {
    78             :
    79         }
    80         do_tools_sstrip_get() {
    81             :
    82         }
    83         do_tools_sstrip_extract() {
    84             :
    85         }
    86         do_tools_sstrip_build() {
    87             :
    88         }
    89     ;;
    90 esac