TA dev kit: Clang support
Updates ta/mk/ta_dev_kit.mk and other makefiles so that the COMPILER
variable can be used when building TAs: make COMPILER=clang ...
Signed-off-by: Jerome Forissier <jerome@forissier.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
diff --git a/Makefile b/Makefile
index acc0edf..a41218c 100644
--- a/Makefile
+++ b/Makefile
@@ -69,6 +69,7 @@
endif
endif
+SCRIPTS_DIR := scripts
include core/core.mk
diff --git a/core/arch/arm/arm.mk b/core/arch/arm/arm.mk
index da54f54..5defb32 100644
--- a/core/arch/arm/arm.mk
+++ b/core/arch/arm/arm.mk
@@ -207,6 +207,8 @@
ta-mk-file-export-add-ta_arm32 += CROSS_COMPILE ?= arm-linux-gnueabihf-_nl_
ta-mk-file-export-add-ta_arm32 += CROSS_COMPILE32 ?= $$(CROSS_COMPILE)_nl_
ta-mk-file-export-add-ta_arm32 += CROSS_COMPILE_ta_arm32 ?= $$(CROSS_COMPILE32)_nl_
+ta-mk-file-export-add-ta_arm32 += COMPILER ?= gcc_nl_
+ta-mk-file-export-add-ta_arm32 += COMPILER_ta_arm32 ?= $$(COMPILER)_nl_
endif
ifneq ($(filter ta_arm64,$(ta-targets)),)
@@ -235,6 +237,8 @@
ta-mk-file-export-add-ta_arm64 += CROSS_COMPILE64 ?= $$(CROSS_COMPILE)_nl_
ta-mk-file-export-add-ta_arm64 += CROSS_COMPILE_ta_arm64 ?= $$(CROSS_COMPILE64)_nl_
+ta-mk-file-export-add-ta_arm64 += COMPILER ?= gcc_nl_
+ta-mk-file-export-add-ta_arm64 += COMPILER_ta_arm64 ?= $$(COMPILER)_nl_
endif
# Set cross compiler prefix for each submodule
diff --git a/mk/clang.mk b/mk/clang.mk
index de20746..44cdd15 100644
--- a/mk/clang.mk
+++ b/mk/clang.mk
@@ -23,7 +23,7 @@
AR$(sm) := $(ccache-cmd)llvm-ar
NM$(sm) := llvm-nm
-OBJCOPY$(sm) := ./scripts/llvm-objcopy-wrapper
+OBJCOPY$(sm) := $(SCRIPTS_DIR)/llvm-objcopy-wrapper
# llvm-objdump:
# - Does not support mixed 32-bit ARM and Thumb instructions
diff --git a/ta/mk/ta_dev_kit.mk b/ta/mk/ta_dev_kit.mk
index 2a81cbe..04a4f94 100644
--- a/ta/mk/ta_dev_kit.mk
+++ b/ta/mk/ta_dev_kit.mk
@@ -105,7 +105,8 @@
endif
endif
-include $(ta-dev-kit-dir$(sm))/mk/gcc.mk
+SCRIPTS_DIR := $(ta-dev-kit-dir)/scripts
+include $(ta-dev-kit-dir$(sm))/mk/$(COMPILER_$(sm)).mk
include $(ta-dev-kit-dir$(sm))/mk/compile.mk
ifneq ($(user-ta-uuid),)
diff --git a/ta/ta.mk b/ta/ta.mk
index 3a811e3..dde7be6 100644
--- a/ta/ta.mk
+++ b/ta/ta.mk
@@ -156,7 +156,7 @@
$(eval $(call copy-file, $(f), $(out-dir)/export-$(sm)/lib,lib)))
# Copy .mk files
-ta-mkfiles = mk/compile.mk mk/subdir.mk mk/gcc.mk mk/cleandirs.mk \
+ta-mkfiles = mk/compile.mk mk/subdir.mk mk/gcc.mk mk/clang.mk mk/cleandirs.mk \
ta/arch/$(ARCH)/link.mk ta/arch/$(ARCH)/link_shlib.mk \
ta/mk/ta_dev_kit.mk
@@ -192,7 +192,7 @@
$(eval $(call copy-file, $(f), $(out-dir)/export-$(sm)/keys)))
# Copy the scripts
-ta-scripts = scripts/sign.py scripts/symbolize.py
+ta-scripts = scripts/sign.py scripts/symbolize.py scripts/llvm-objcopy-wrapper
$(foreach f, $(ta-scripts), \
$(eval $(call copy-file, $(f), $(out-dir)/export-$(sm)/scripts)))