summaryrefslogtreecommitdiff
path: root/util/crossgcc/buildgcc
diff options
context:
space:
mode:
authorStefan Reinauer <stefan.reinauer@coreboot.org>2015-06-09 14:52:22 -0700
committerStefan Reinauer <stefan.reinauer@coreboot.org>2015-06-10 06:05:39 +0200
commit5dd2635af91d4db22196eab172325f11230a2cf1 (patch)
tree7a2b72b0028b7ba4f9f66c35d66a77f94bb12f1e /util/crossgcc/buildgcc
parent05bbc9208a755c332580136a32d8f89db2ecbc19 (diff)
buildgcc: Reorder main program
This groups all tasks happening in the main program, orders them according to their dependencies and adds comments on the various tasks. Change-Id: Ib62bd213977cbc3307ef62e9a7e64515563968c1 Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-on: http://review.coreboot.org/10490 Reviewed-by: Alexander Couzens <lynxis@fe80.eu> Tested-by: build bot (Jenkins)
Diffstat (limited to 'util/crossgcc/buildgcc')
-rwxr-xr-xutil/crossgcc/buildgcc60
1 files changed, 36 insertions, 24 deletions
diff --git a/util/crossgcc/buildgcc b/util/crossgcc/buildgcc
index ca2e089fd9..83b9d822f7 100755
--- a/util/crossgcc/buildgcc
+++ b/util/crossgcc/buildgcc
@@ -530,17 +530,15 @@ case "$TARGETARCH" in
*) printf "${red}WARNING: Unsupported architecture $TARGETARCH.${NC}\n\n"; ;;
esac
+# Figure out which packages to build
+
if [ "$BUILDCLANG" -eq 0 ]; then
-echo "Target architecture is now $TARGETARCH"
-NAME="${TARGETARCH} cross"
-PACKAGES="GMP MPFR MPC LIBELF BINUTILS GCC IASL"
+ echo "Target architecture is now $TARGETARCH"
+ NAME="${TARGETARCH} cross"
+ PACKAGES="GMP MPFR MPC LIBELF BINUTILS GCC IASL"
else
-NAME=clang
-PACKAGES="LLVM CFE CRT CTE"
-fi
-
-if [ "$clean" = "1" ]; then
- cleanup
+ NAME=clang
+ PACKAGES="LLVM CFE CRT CTE"
fi
if [ $SKIPGDB -eq 1 ]; then
@@ -556,23 +554,13 @@ else
PACKAGES="$PACKAGES GDB"
fi
-# coreboot does not like the GOLD linker
-# USE_GOLD="--enable-gold"
-USE_GOLD=""
-GCC_OPTIONS="--enable-lto"
+# This initial cleanup is useful when updating the toolchain script.
-printf "Downloading tar balls ... \n"
-mkdir -p tarballs
-for P in $PACKAGES; do
- download $P
-done
-printf "Downloaded tar balls ... ${green}ok${NC}\n"
+if [ "$clean" = "1" ]; then
+ cleanup
+fi
-printf "Unpacking and patching ... \n"
-for P in $PACKAGES; do
- unpack_and_patch $P || exit 1
-done
-printf "Unpacked and patched ... ${green}ok${NC}\n"
+# Set up host compiler and flags needed for various OSes
if [[ "$PACKAGES" == *GCC* ]]; then
CC=cc
@@ -603,12 +591,36 @@ if [ "$USECCACHE" = 1 ]; then
CC="ccache $CC"
fi
+# coreboot does not like the GOLD linker
+# USE_GOLD="--enable-gold"
+USE_GOLD=""
+GCC_OPTIONS="--enable-lto"
+
+# Prepare target directory for building GCC
+# (dependencies must be in the PATH)
mkdir -p $DESTDIR$TARGETDIR/bin
export PATH=$DESTDIR$TARGETDIR/bin:$PATH
+# Download, unpack, patch and build all packages
+
+printf "Downloading tar balls ... \n"
+mkdir -p tarballs
+for P in $PACKAGES; do
+ download $P
+done
+printf "Downloaded tar balls ... ${green}ok${NC}\n"
+
+printf "Unpacking and patching ... \n"
+for P in $PACKAGES; do
+ unpack_and_patch $P || exit 1
+done
+printf "Unpacked and patched ... ${green}ok${NC}\n"
+
+printf "Building packages ... \n"
for package in $PACKAGES; do
build $package
done
+printf "Packages built ... ${green}ok${NC}\n"
# Adding git information of current tree to target directory
# for reproducibility