toolchain-external.mk: fix ARCH_SUBDIR calculation
authorVicente Olivert Riera <Vincent.Riera@imgtec.com>
Thu, 27 Oct 2016 15:33:42 +0000 (16:33 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Fri, 28 Oct 2016 12:28:49 +0000 (14:28 +0200)
commitd2da85c396ba6aad88a698ade4b0ccd8c6c9e8e2
tree780a725e75ac22f908ec9d45c90c455a67b3c493
parent7c740bf9c5937cc93746ac0300cb33b8aeb6abf6
toolchain-external.mk: fix ARCH_SUBDIR calculation

ARCH_SUBDIR is computed based on the value of ARCH_SYSROOT_DIR and
SYSROOT_DIR. For nested toolchains ARCH_SYSROOT_DIR is a subdir of
SYSROOT_DIR, so a sed command like this one...

  sed -r -e "s:^${SYSROOT_DIR}(.*)/$:\1:"

...basically removes the leading SYSROOT_DIR part from ARCH_SYSROOT_DIR.

But, for side-by-side sysroot toolchains ARCH_SYSROOT_DIR and
SYSROOT_DIR are at the same level, so the above sed command doesn't
make any effect.

This patch therefore improves the calculation of ARCH_SUBDIR to
clearly handle the three possible cases:

 - There is a single sysroot, or the selected architecture sysroot is
   the main one (i.e SYSROOT_DIR == ARCH_SYSROOT_DIR). In this case,
   ARCH_SUBDIR is empty.

 - There are side-by-side sysroots, such as
   SYSROOT_DIR=.../sysroot/mips-r2-hard/ and
   ARCH_SYSROOT_DIR=.../sysroot/mipsel-r2-hard/.

 - The arch-sysroot is nested, such as SYSROOT_DIR=.../sysroot and
   ARCH_SYSROOT_DIR=.../sysroot/armv4t/

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
[Thomas: improve the logic to handle the SYSROOT_DIR==ARCH_SYSROOT_DIR
case.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
toolchain/toolchain-external/toolchain-external.mk