From 42807a75818524c5a6a3b4b5045e912b0dbc8e83 Mon Sep 17 00:00:00 2001
From: Joakim Bech <joakim.bech@linaro.org>
Date: Fri, 27 Jan 2017 10:43:28 +0100
Subject: [PATCH] toolchain: Parallel download and no re-download

Signed-off-by: Joakim Bech <joakim.bech@linaro.org>
Reviewed-by : Jerome Forissier <jerome.forissier@linaro.org>
---
 toolchain.mk | 34 ++++++++++++++++++++++------------
 1 file changed, 22 insertions(+), 12 deletions(-)

diff --git a/toolchain.mk b/toolchain.mk
index 1a6953e..7e6b4a0 100644
--- a/toolchain.mk
+++ b/toolchain.mk
@@ -21,16 +21,26 @@ LEGACY_AARCH64_CROSS_COMPILE    ?= $(LEGACY_AARCH64_PATH)/bin/aarch64-linux-gnu-
 LEGACY_AARCH64_GCC_VERSION      ?= gcc-linaro-aarch64-linux-gnu-4.9-2014.08_linux
 LEGACY_SRC_AARCH64_GCC          ?= http://releases.linaro.org/archive/14.08/components/toolchain/binaries/${LEGACY_AARCH64_GCC_VERSION}.tar.xz
 
-toolchains:
-	mkdir -p $(AARCH32_PATH)
-	curl -L $(SRC_AARCH32_GCC) -o $(TOOLCHAIN_ROOT)/$(AARCH32_GCC_VERSION).tar.xz
-	tar xf $(TOOLCHAIN_ROOT)/$(AARCH32_GCC_VERSION).tar.xz -C $(AARCH32_PATH) --strip-components=1
-
-	mkdir -p $(AARCH64_PATH)
-	curl -L $(SRC_AARCH64_GCC) -o $(TOOLCHAIN_ROOT)/$(AARCH64_GCC_VERSION).tar.xz
-	tar xf $(TOOLCHAIN_ROOT)/$(AARCH64_GCC_VERSION).tar.xz -C $(AARCH64_PATH) --strip-components=1
-
-	mkdir -p $(LEGACY_AARCH64_PATH)
-	curl -L $(LEGACY_SRC_AARCH64_GCC) -o $(TOOLCHAIN_ROOT)/$(LEGACY_AARCH64_GCC_VERSION).tar.xz
-	tar xf $(TOOLCHAIN_ROOT)/$(LEGACY_AARCH64_GCC_VERSION).tar.xz -C $(LEGACY_AARCH64_PATH) --strip-components=1
+toolchains: aarch32 aarch64 aarch64-legacy
+
+aarch32:
+	if [ ! -d "$(AARCH32_PATH)" ]; then \
+		mkdir -p $(AARCH32_PATH); \
+		curl -L $(SRC_AARCH32_GCC) -o $(TOOLCHAIN_ROOT)/$(AARCH32_GCC_VERSION).tar.xz; \
+		tar xf $(TOOLCHAIN_ROOT)/$(AARCH32_GCC_VERSION).tar.xz -C $(AARCH32_PATH) --strip-components=1; \
+	fi
+
+aarch64:
+	if [ ! -d "$(AARCH64_PATH)" ]; then \
+		mkdir -p $(AARCH64_PATH); \
+		curl -L $(SRC_AARCH64_GCC) -o $(TOOLCHAIN_ROOT)/$(AARCH64_GCC_VERSION).tar.xz; \
+		tar xf $(TOOLCHAIN_ROOT)/$(AARCH64_GCC_VERSION).tar.xz -C $(AARCH64_PATH) --strip-components=1; \
+	fi
+
+aarch64-legacy:
+	if [ ! -d "$(LEGACY_AARCH64_PATH)" ]; then \
+		mkdir -p $(LEGACY_AARCH64_PATH); \
+		curl -L $(LEGACY_SRC_AARCH64_GCC) -o $(TOOLCHAIN_ROOT)/$(LEGACY_AARCH64_GCC_VERSION).tar.xz; \
+		tar xf $(TOOLCHAIN_ROOT)/$(LEGACY_AARCH64_GCC_VERSION).tar.xz -C $(LEGACY_AARCH64_PATH) --strip-components=1; \
+	fi
 
-- 
GitLab