summaryrefslogtreecommitdiffstats
path: root/toolchain/helpers.mk
diff options
context:
space:
mode:
authorThomas De Schampheleire <thomas.de_schampheleire@nokia.com>2017-02-07 22:56:42 +0100
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2017-04-05 21:27:33 +0200
commita2596422d762eeb7902b62821d4c7a26fa1f958b (patch)
tree5b918e8e2f2f6b93a4b813f990a29483c2a15dea /toolchain/helpers.mk
parentba6bac138331cea449592f877e558f84176a70bf (diff)
downloadbuildroot-a2596422d762eeb7902b62821d4c7a26fa1f958b.tar.gz
buildroot-a2596422d762eeb7902b62821d4c7a26fa1f958b.zip
toolchain helpers: introduce function relpath_prefix
The helper function copy_toolchain_sysroot has some logic to transform a path into a number of '../' components based on the depth of that path. As this same logic will be needed in another place in a subsequent patch, extract it into a separate helper relpath_prefix. Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'toolchain/helpers.mk')
-rw-r--r--toolchain/helpers.mk25
1 files changed, 20 insertions, 5 deletions
diff --git a/toolchain/helpers.mk b/toolchain/helpers.mk
index 719c42087e..21db9d7f0c 100644
--- a/toolchain/helpers.mk
+++ b/toolchain/helpers.mk
@@ -122,11 +122,7 @@ copy_toolchain_sysroot = \
cp -a $${SYSROOT_DIR}/usr/include $(STAGING_DIR)/usr ; \
fi ; \
mkdir -p `dirname $(STAGING_DIR)/$${ARCH_SUBDIR}` ; \
- relpath="./" ; \
- nbslashs=`printf $${ARCH_SUBDIR} | sed 's%[^/]%%g' | wc -c` ; \
- for slash in `seq 1 $${nbslashs}` ; do \
- relpath=$${relpath}"../" ; \
- done ; \
+ relpath="$(call relpath_prefix,$${ARCH_SUBDIR})./" ; \
ln -s $${relpath} $(STAGING_DIR)/$${ARCH_SUBDIR} ; \
echo "Symlinking $(STAGING_DIR)/$${ARCH_SUBDIR} -> $${relpath}" ; \
fi ; \
@@ -419,3 +415,22 @@ check_toolchain_ssp = \
gen_gdbinit_file = \
mkdir -p $(STAGING_DIR)/usr/share/buildroot/ ; \
echo "set sysroot $(STAGING_DIR)" > $(STAGING_DIR)/usr/share/buildroot/gdbinit
+
+# Given a path, determine the relative prefix (../) needed to return to the
+# root level. Note that the last component is treated as a file component; use a
+# trailing slash to force treating it as a directory. Examples:
+# relpath_prefix(lib32) = ""
+# relpath_prefix(lib32/octeon2) = "../"
+# relpath_prefix(lib32/octeon2/) = "../../"
+#
+# $1: input path
+define relpath_prefix
+$$( \
+ prefix="" ; \
+ nbslashs=`printf $1 | sed 's%[^/]%%g' | wc -c` ; \
+ for slash in `seq 1 $${nbslashs}` ; do \
+ prefix=$${prefix}"../" ; \
+ done ; \
+ printf "$$prefix" ; \
+)
+endef
OpenPOWER on IntegriCloud