[Buildroot] [PATCH v8 08/10] external-toolchain: check if a buildroot SDK has already been relocated
Wolfgang Grandegger
wg at grandegger.com
Thu Jul 20 14:35:19 UTC 2017
The location of the buildroot SDK is stored in the file "sdk-location"
in "share/buildroot". If it's content does not match the current
SDK location, ask the user to run the script "relocate-sdk.sh" in the
top directory once. The external toolchain may be a pre-installed one
in a directory that is not writeable by us. Therefore, we can't run
the script directly.
Signed-off-by: Wolfgang Grandegger <wg at grandegger.com>
---
toolchain/helpers.mk | 16 ++++++++++++++++
toolchain/toolchain-external/pkg-toolchain-external.mk | 1 +
2 files changed, 17 insertions(+)
diff --git a/toolchain/helpers.mk b/toolchain/helpers.mk
index e9e36d2..96fc4c8 100644
--- a/toolchain/helpers.mk
+++ b/toolchain/helpers.mk
@@ -484,3 +484,19 @@ define simplify_symlink
ln -sf "$${DOTS}$${REL_DEST}" "$${FULL_SRC}" ; \
)
endef
+
+#
+# Check if it's a buildroot toolchain and if it's already relocatable by
+# reading and testing the toolchain location file
+#
+# $1: toolchain installation directory
+#
+define check_buildroot_sdk_relocated
+ if [ -r $(1)/share/buildroot/sdk-location ]; then \
+ sdkroot="$(1)"; \
+ if [ "`cat $(1)/share/buildroot/sdk-location`" != "$${sdkroot}" ]; then \
+ echo "Please relocate the buildroot SDK by executing \"$${sdkroot}/relocate-sdk.sh\" once!" ; \
+ exit 1 ; \
+ fi \
+ fi
+endef
diff --git a/toolchain/toolchain-external/pkg-toolchain-external.mk b/toolchain/toolchain-external/pkg-toolchain-external.mk
index 3263199..9762e81 100644
--- a/toolchain/toolchain-external/pkg-toolchain-external.mk
+++ b/toolchain/toolchain-external/pkg-toolchain-external.mk
@@ -529,6 +529,7 @@ endif
# matches the configuration provided in Buildroot: ABI, C++ support,
# kernel headers version, type of C library and all C library features.
define $(2)_CONFIGURE_CMDS
+ $$(Q)$$(call check_buildroot_sdk_relocated,$$(TOOLCHAIN_EXTERNAL_INSTALL_DIR))
$$(Q)$$(call check_cross_compiler_exists,$$(TOOLCHAIN_EXTERNAL_CC))
$$(Q)$$(call check_unusable_toolchain,$$(TOOLCHAIN_EXTERNAL_CC))
$$(Q)SYSROOT_DIR="$$(call toolchain_find_sysroot,$$(TOOLCHAIN_EXTERNAL_CC))" ; \
--
2.7.4
More information about the buildroot
mailing list