diff options
author | Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> | 2017-02-07 22:56:42 +0100 |
---|---|---|
committer | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2017-04-05 21:27:33 +0200 |
commit | a2596422d762eeb7902b62821d4c7a26fa1f958b (patch) | |
tree | 5b918e8e2f2f6b93a4b813f990a29483c2a15dea /toolchain | |
parent | ba6bac138331cea449592f877e558f84176a70bf (diff) | |
download | buildroot-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')
-rw-r--r-- | toolchain/helpers.mk | 25 |
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 |