aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Yann E. MORIN <yann.morin.1998@free.fr>2019-07-29 22:20:00 +0200
committerGravatar Peter Korsgaard <peter@korsgaard.com>2019-08-04 00:13:37 +0200
commitfa037acee09f8c74be2f4eb047a1ac1ea7f677f0 (patch)
tree27ec385526b3314e1e4856754ee87c1bba26b218
parentedf32b021cd6f2a539423c8965981b17aa5025f6 (diff)
downloadbuildroot-fa037acee09f8c74be2f4eb047a1ac1ea7f677f0.tar.gz
buildroot-fa037acee09f8c74be2f4eb047a1ac1ea7f677f0.tar.bz2
core: allow br2-external trees to provide pre-configured toolchains
Since we have a choice for the pre-configured pre-built toolchains, there is no possbility for a br2-external to provide its own. The only solution so far for defconfigs in br2-external trees is to use BR2_TOOLCHAIN_EXTERNAL_CUSTOM and define all the bits by itself... This is not so convemient, so offer a way for br2-external trees to provide such pre-configured toolchains. To allow for this, we now scan each br2-external tree and look for a specific file, provides.toolchains.in. We generate a kconfig file that sources each such file, and that generated file is sourced from within the toolchain choice, thus making the toolchains from a br2-external tree possible and available in the same location as the ones known to Buildroot: Toolchain ---> Toolchain type (External toolchain) ---> Toolchain ---> (X) Arm ARM 2019.03 ( ) Linaro ARM 2018.05 ( ) Custom toolchain *** Toolchains from my-br2-ext-tree: *** ( ) My custom ARM toolchain *** Toolchains from another-br2-ext-tree: *** ( ) Another custom ARM toolchain ( ) A third custom ARM toolchain Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Vadim Kochan <vadim4j@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
-rwxr-xr-xsupport/scripts/br2-external9
-rw-r--r--toolchain/toolchain-external/Config.in5
2 files changed, 13 insertions, 1 deletions
diff --git a/support/scripts/br2-external b/support/scripts/br2-external
index da315d5c1d..b08b77bd33 100755
--- a/support/scripts/br2-external
+++ b/support/scripts/br2-external
@@ -157,6 +157,7 @@ do_kconfig() {
items=(
paths
menus
+ toolchains
)
for br2 in "${items[@]}"; do
@@ -196,6 +197,14 @@ do_kconfig() {
fi
printf '\n'
} >>"${outputdir}/.br2-external.in.menus"
+
+ if [ -f "${br2_ext}/provides/toolchains.in" ]; then
+ printf 'comment "Toolchains from: %s"\n' "${br2_desc}"
+ printf 'source "%s/provides/toolchains.in"\n' "${br2_ext}"
+ printf '\n'
+ else
+ printf '# No toolchain from: %s\n\n' "${br2_desc}"
+ fi >>"${outputdir}/.br2-external.in.toolchains"
done
printf 'endmenu\n' >>"${outputdir}/.br2-external.in.menus"
diff --git a/toolchain/toolchain-external/Config.in b/toolchain/toolchain-external/Config.in
index d234c1c552..128bea257e 100644
--- a/toolchain/toolchain-external/Config.in
+++ b/toolchain/toolchain-external/Config.in
@@ -47,9 +47,12 @@ source "toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Confi
# Kept last, so it remains the non-default choice, unless there isn't
# any available toolchain profile for the currently selected
-# architecture.
+# architecture, but before toolchains from br2-external trees.
source "toolchain/toolchain-external/toolchain-external-custom/Config.in"
+# Toolchains from br2-external trees, if any
+source "$BR2_BASE_DIR/.br2-external.in.toolchains"
+
endchoice
choice