Changes in tools/toolchain.sh [40c0483:c7c3508] in mainline


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • tools/toolchain.sh

    r40c0483 rc7c3508  
    1 #!/bin/sh
     1#! /bin/bash
    22
    33#
     
    103103        echo
    104104       
    105         if [ -z "$1" ] || [ "$1" = "all" ] ; then
    106                 PLATFORMS='amd64 arm32 arm64 ia32 ia64 mips32 mips32eb ppc32 riscv64 sparc64'
     105        if [ -z "$1" ] || [ "$1" == "all" ] ; then
     106                PLATFORMS=("amd64" "arm32" "arm64" "ia32" "ia64" "mips32" "mips32eb" "ppc32" "riscv64" "sparc64")
    107107        else
    108                 PLATFORMS="$1"
     108                PLATFORMS=("$1")
    109109        fi
    110110       
     
    114114        fi
    115115
    116         for i in $PLATFORMS
     116        for i in "${PLATFORMS[@]}"
    117117        do
    118118                PLATFORM="$i"
     
    121121
    122122                echo "== $PLATFORM =="
    123                 test_app_version "Binutils" "ld" "GNU ld (.*) \([.0-9]*\)" "$BINUTILS_VERSION"
    124                 test_app_version "GCC" "gcc" "gcc version \([.0-9]*\)" "$GCC_VERSION"
    125                 test_app_version "GDB" "gdb" "GNU gdb (.*)[[:space:]]\+\([.0-9]*\)" "$GDB_VERSION"
     123                test_app_version "Binutils" "ld" "GNU\ ld\ \(GNU\ Binutils\)\ ((\.|[0-9])+)" "$BINUTILS_VERSION"
     124                test_app_version "GCC" "gcc" "gcc\ version\ ((\.|[0-9])+)" "$GCC_VERSION"
     125                test_app_version "GDB" "gdb" "GNU\ gdb\ \(GDB\)\s+((\.|[0-9])+)" "$GDB_VERSION"
    126126        done
    127127
     
    140140                echo "- $PKGNAME is missing"
    141141        else
    142                 VERSION=`${APP} -v 2>&1 | sed -n "s:^${REGEX}.*:\1:p"`
    143 
    144                 if [ -z "$VERSION" ]; then
    145                         echo "- $PKGNAME Unexpected output"
    146                         return 1
    147                 fi
    148 
    149                 if [ "$INS_VERSION" = "$VERSION" ]; then
    150                         echo "+ $PKGNAME is uptodate ($INS_VERSION)"
    151                 else
    152                         echo "- $PKGNAME ($VERSION) is outdated ($INS_VERSION)"
    153                 fi
     142                {
     143                        OUT=$(${APP} -v 2>&1)
     144                } &> /dev/null
     145
     146                if [[ "$OUT" =~ $REGEX ]]; then
     147                VERSION="${BASH_REMATCH[1]}"
     148                if [ "$INS_VERSION" = "$VERSION" ]; then
     149                        echo "+ $PKGNAME is uptodate ($INS_VERSION)"
     150                else
     151                        echo "- $PKGNAME ($VERSION) is outdated ($INS_VERSION)"
     152                fi
     153            else
     154                echo "- $PKGNAME Unexpected output"
     155            fi
    154156        fi
    155157}
     
    158160
    159161change_title() {
    160         printf "\e]0;$1\a"
     162        echo -en "\e]0;$1\a"
    161163}
    162164
     
    169171        fi
    170172
    171         printf "${TM} "
     173        echo -n "${TM} "
    172174        change_title "${TM}"
    173175        sleep 1
     
    220222        OUTSIDE="$1"
    221223        BASE="$2"
    222         ORIGINAL="$PWD"
     224        ORIGINAL="`pwd`"
     225
     226        mkdir -p "${OUTSIDE}"
     227
     228        cd "${OUTSIDE}"
     229        check_error $? "Unable to change directory to ${OUTSIDE}."
     230        ABS_OUTSIDE="`pwd`"
    223231
    224232        cd "${BASE}"
    225233        check_error $? "Unable to change directory to ${BASE}."
    226         ABS_BASE="$PWD"
     234        ABS_BASE="`pwd`"
     235
    227236        cd "${ORIGINAL}"
    228237        check_error $? "Unable to change directory to ${ORIGINAL}."
    229238
    230         mkdir -p "${OUTSIDE}"
    231         cd "${OUTSIDE}"
    232         check_error $? "Unable to change directory to ${OUTSIDE}."
    233 
    234         while [ "${#PWD}" -gt "${#ABS_BASE}" ]; do
    235                 cd ..
    236         done
    237 
    238         if [ "$PWD" = "$ABS_BASE" ]; then
     239        BASE_LEN="${#ABS_BASE}"
     240        OUTSIDE_TRIM="${ABS_OUTSIDE:0:${BASE_LEN}}"
     241
     242        if [ "${OUTSIDE_TRIM}" == "${ABS_BASE}" ] ; then
    239243                echo
    240244                echo "CROSS_PREFIX cannot reside within the working directory."
     
    242246                exit 5
    243247        fi
    244 
    245         cd "${ORIGINAL}"
    246         check_error $? "Unable to change directory to ${ORIGINAL}."
    247248}
    248249
     
    344345                mkdir -p "${WORKDIR}/sysroot/include"
    345346                mkdir "${WORKDIR}/sysroot/lib"
    346                 ARCH="$PLATFORM"
    347                 if [ "$ARCH" = "mips32eb" ]; then
    348                         ARCH=mips32
    349                 fi
    350 
    351347                cp -r -L -t "${WORKDIR}/sysroot/include" \
    352348                        ${SRCDIR}/../abi/include/* \
    353                         ${SRCDIR}/../uspace/lib/c/arch/${ARCH}/include/* \
     349                        ${SRCDIR}/../uspace/lib/c/arch/${PLATFORM}/include/* \
    354350                        ${SRCDIR}/../uspace/lib/c/include/*
    355351                check_error $? "Failed to create build sysroot."
Note: See TracChangeset for help on using the changeset viewer.