summaryrefslogtreecommitdiffstats
path: root/toolchain/helpers.mk
diff options
context:
space:
mode:
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