toolchain-external: allow downloading a custom toolchain

This patch adds the possibility to download a custom external
toolchain, in addition to the existing support of preinstalled custom
external toolchains.

With the modified configuration, the user is presented with the
following options:
- Toolchain type: Buildroot toolchain | External toolchain | Ct-ng toolchain

In case of External toolchain:
- Toolchain: the CodeSourcery toolchains | Custom toolchain
- Toolchain origin: Toolchain to be downloaded and installed | Pre-installed toolchain

In case of Toolchain to be downloaded, the user is presented with:
- Toolchain URL
In case of Pre-installed toolchain, the users sees:
- Toolchain Path

For CodeSourcery toolchains, the toolchain URL field is not used (the
URLs are directly coded in ext-tool.mk).

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Thomas De Schampheleire 2012-06-22 07:42:38 +02:00 committed by Thomas Petazzoni
parent 77e2697218
commit df0c125994
2 changed files with 28 additions and 7 deletions

View File

@ -492,22 +492,37 @@ config BR2_TOOLCHAIN_EXTERNAL_CUSTOM
endchoice endchoice
choice
prompt "Toolchain origin"
config BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD config BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD
bool "Download toolchain automatically" bool "Toolchain to be downloaded and installed"
default y
depends on !BR2_TOOLCHAIN_EXTERNAL_CUSTOM
help help
When enabled, Buildroot will automatically download and Select this option if you want Buildroot to download and install the
install the selected external toolchain. When disabled, toolchain. If you have selected a custom toolchain, specify the URL
Buildroot will use a pre-installed toolchain. in BR2_TOOLCHAIN_EXTERNAL_URL.
config BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED
bool "Pre-installed toolchain"
help
Select this option if you want to use a pre-installed toolchain.
Specify the path to this toolchain in BR2_TOOLCHAIN_EXTERNAL_PATH.
endchoice
config BR2_TOOLCHAIN_EXTERNAL_PATH config BR2_TOOLCHAIN_EXTERNAL_PATH
string "Toolchain path" string "Toolchain path"
default "/path/to/toolchain/usr" default "/path/to/toolchain/usr"
depends on !BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD depends on BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED
help help
Path to where the external toolchain is installed. Path to where the external toolchain is installed.
config BR2_TOOLCHAIN_EXTERNAL_URL
string "Toolchain URL"
depends on BR2_TOOLCHAIN_EXTERNAL_CUSTOM && BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD
help
URL of the custom toolchain tarball to download and install.
config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX
string "Toolchain prefix" string "Toolchain prefix"
depends on BR2_TOOLCHAIN_EXTERNAL_CUSTOM depends on BR2_TOOLCHAIN_EXTERNAL_CUSTOM

View File

@ -252,11 +252,17 @@ else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEBE_V2),y)
TOOLCHAIN_EXTERNAL_SITE=http://git.xilinx.com/?p=xldk/microblaze_v2.0.git;a=blob;h=71e031ae990e063a5718f90d30cf97ad85e2f565;hb=569081301f0f1d8d3b24335a364e8ff1774190d4;f= TOOLCHAIN_EXTERNAL_SITE=http://git.xilinx.com/?p=xldk/microblaze_v2.0.git;a=blob;h=71e031ae990e063a5718f90d30cf97ad85e2f565;hb=569081301f0f1d8d3b24335a364e8ff1774190d4;f=
TOOLCHAIN_EXTERNAL_SOURCE=microblaze-unknown-linux-gnu.tgz TOOLCHAIN_EXTERNAL_SOURCE=microblaze-unknown-linux-gnu.tgz
else else
# Custom toolchain
TOOLCHAIN_EXTERNAL_SITE=$(dir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL)))
TOOLCHAIN_EXTERNAL_SOURCE=$(notdir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL)))
# A value must be set (even if unused), otherwise the # A value must be set (even if unused), otherwise the
# $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE) rule would override the main # $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE) rule would override the main
# $(DL_DIR) rule # $(DL_DIR) rule
ifeq (,$(TOOLCHAIN_EXTERNAL_SOURCE))
TOOLCHAIN_EXTERNAL_SOURCE=none TOOLCHAIN_EXTERNAL_SOURCE=none
endif endif
endif
# Special handling for Blackfin toolchain, because of the split in two # Special handling for Blackfin toolchain, because of the split in two
# tarballs, and the organization of tarball contents. The tarballs # tarballs, and the organization of tarball contents. The tarballs