diff options
author | Patrick Georgi <pgeorgi@google.com> | 2015-02-24 10:52:14 +0100 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2015-03-09 13:33:33 +0100 |
commit | b706288d95824f09de15b7d6343ef169b010ff3e (patch) | |
tree | 9cd34ac30b9e5b26c5c98a4f8b1996c2fce31901 /util/crossgcc | |
parent | bd295300619fb3f6040e00d8100a0b688b9651c1 (diff) |
crossgcc: Unify tool tests, add check for g++ or clang
Change-Id: I406f5cfc61bc87ccc2c0b9283b4fbb8cef8dfc1b
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-on: http://review.coreboot.org/8522
Tested-by: build bot (Jenkins)
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'util/crossgcc')
-rwxr-xr-x | util/crossgcc/buildgcc | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/util/crossgcc/buildgcc b/util/crossgcc/buildgcc index 8ddeea0f46..7221b8326a 100755 --- a/util/crossgcc/buildgcc +++ b/util/crossgcc/buildgcc @@ -93,14 +93,20 @@ normalize_dirs() perl -pi -e "s,/lib64,/lib," $DESTDIR$TARGETDIR/lib/*.la } -searchgnu() +searchtool() { # $1 short name - # result: GNU version of that tool on stdout - # or no output if no GNU version was found + # $2 search string + # $3 soft fail if set + # result: file name of that tool on stdout + # or no output if nothing suitable was found + search=GNU + if [ -n "$2" ]; then + search="$2" + fi for i in "$1" "g$1" "gnu$1"; do if test -x "`which $i 2>/dev/null`"; then - if test `$i --version 2>/dev/null |grep -c GNU` \ + if test `$i --version 2>/dev/null |grep -c "$search"` \ -gt 0; then echo $i return @@ -110,7 +116,7 @@ searchgnu() # A workaround for OSX 10.9 and some BSDs, whose nongnu # patch and tar also work. if [ $UNAME = "Darwin" -o $UNAME = "FreeBSD" -o $UNAME = "NetBSD" ]; then - if [ $1 != "make" ]; then + if [ "$1" = "patch" -o "$1" = "tar" ]; then if test -x "`which $1 2>/dev/null`"; then echo $1 return @@ -118,20 +124,19 @@ searchgnu() fi fi printf "${RED}ERROR:${red} Missing toolchain: $1${NC}\n" >&2 - exit 1 + [ -z "$3" ] && exit 1 + false } -TAR=`searchgnu tar` || exit $? -PATCH=`searchgnu patch` || exit $? -MAKE=`searchgnu make` || exit $? - -searchgnu m4 > /dev/null -searchgnu bison > /dev/null +TAR=`searchtool tar` || exit $? +PATCH=`searchtool patch` || exit $? +MAKE=`searchtool make` || exit $? -if ! flex --version > /dev/null 2> /dev/null; then - printf "${RED}ERROR:${red} Missing toolchain: flex${NC}\n" >&2 - exit 1 -fi +searchtool m4 > /dev/null +searchtool bison > /dev/null +searchtool flex flex > /dev/null +searchtool g++ "Free Software Foundation" nofail > /dev/null || \ +searchtool clang "clang version" cleanup() { |