Makefile: update Makefile [1/1]

PD#SWPL-61282

Problem:
update Makefile

Solution:
change BUILD_DIR to support both ARM64 and ARM
update toolchain target

Verify:
ad401_a113l

Signed-off-by: Kelvin Zhang <kelvin.zhang@amlogic.com>
Change-Id: I49377367394bafbfbe408b011ce9f4b5277b181b
diff --git a/Makefile b/Makefile
index 645f5f1..db8893d 100755
--- a/Makefile
+++ b/Makefile
@@ -29,7 +29,7 @@
 sign_tool_DIR	:= $(PRJDIR)/tools/sign_tool
 adnl_DIR	:= $(PRJDIR)/tools/adnl
 
-BUILD_DIR		:= $(PRJDIR)/output/$(BOARD)-$(PRODUCT)
+BUILD_DIR		:= $(PRJDIR)/output/$(ARCH)-$(BOARD)-$(PRODUCT)
 docs_BUILD_DIR		:= $(PRJDIR)/output/docs
 bootloader_BUILD_DIR	:= $(BUILD_DIR)/$(BOOT)
 kernel_BUILD_DIR	:= $(BUILD_DIR)/$(KERNEL)
@@ -53,7 +53,7 @@
 
 SDK_BASE	:= $(PRJDIR)
 toolchain_DIR	:= $(build_DIR)/toolchains/$(COMPILER)-$(TOOLCHAIN_KEYWORD)
-CROSSTOOL	:= $(build_DIR)/toolchains/$(COMPILER)*$(TOOLCHAIN_KEYWORD)*.tar.xz
+CROSSTOOL	:= $(build_DIR)/toolchains/$(COMPILER)*$(TOOLCHAIN_KEYWORD)
 PATH		:= $(toolchain_DIR)/bin:$(PATH)
 
 #xtensa toolchain option by soc name
@@ -218,7 +218,7 @@
 ifndef PRODUCT
 	$(error PRODUCT is not set, Please execute source scripts/env.sh)
 endif
-	@ $(call MESSAGE,"Building $(BOARD) \($(SOC)\) $(PRODUCT)")
+	@ $(call MESSAGE,"Building $(ARCH) $(SOC) $(BOARD) $(PRODUCT)")
 
 .PHONY: docs
 docs:
@@ -255,17 +255,22 @@
 endif
 	@ if [[ "$(TOOLCHAIN_KEYWORD)-$(COMPILER)" != "xt-xcc" ]]; then \
 		if [ ! -d $($@_DIR) ]; then \
-			$(call MESSAGE,"Preparing $@"); \
+			$(call MESSAGE,"Extracting $@"); \
 			mkdir -p $($@_DIR); \
-			tar -xf $(CROSSTOOL) -C $($@_DIR) --strip-components=1; \
-			touch $($@_DIR); \
 		fi; \
-		if ( find $(CROSSTOOL) -newer $($@_DIR) | grep -q $(CROSSTOOL) ); then \
+		if ( find $(CROSSTOOL).tar.xz -newer $($@_DIR) | grep -q $(CROSSTOOL).tar.xz ); then \
 			$(call MESSAGE,"Updating $@"); \
 			rm -rf $($@_DIR)/*; \
-			tar -xf $(CROSSTOOL) -C $($@_DIR) --strip-components=1; \
+			tar -xf $(CROSSTOOL).tar.xz -C $($@_DIR) --strip-components=1; \
 			touch $($@_DIR); \
 		fi; \
+		if [ -f $(CROSSTOOL).patch ]; then \
+			cd $(build_DIR)/toolchains; \
+			if patch -N -f -s --dry-run -p0 < $(CROSSTOOL).patch >/dev/null; then \
+				$(call MESSAGE,"Preparing $@"); \
+				patch -s -p0 < $(CROSSTOOL).patch; \
+			fi; \
+		fi; \
 	fi
 
 .PHONY: menuconfig