Commit df0c1259 authored by Thomas De Schampheleire's avatar Thomas De Schampheleire Committed by Thomas Petazzoni
Browse files

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: default avatarThomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent 77e26972
Loading
Loading
Loading
Loading
+22 −7
Original line number Diff line number Diff line
@@ -492,22 +492,37 @@ config BR2_TOOLCHAIN_EXTERNAL_CUSTOM

endchoice

choice
	prompt "Toolchain origin"

config BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD
	bool "Download toolchain automatically"
	default y
	depends on !BR2_TOOLCHAIN_EXTERNAL_CUSTOM
	bool "Toolchain to be downloaded and installed"
	help
	  Select this option if you want Buildroot to download and install the
	  toolchain. If you have selected a custom toolchain, specify the URL
	  in BR2_TOOLCHAIN_EXTERNAL_URL.

config BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED
	bool "Pre-installed toolchain"
	help
	  When enabled, Buildroot will automatically download and
	  install the selected external toolchain. When disabled,
	  Buildroot will use a pre-installed toolchain.
	  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
	string "Toolchain path"
	default "/path/to/toolchain/usr"
	depends on !BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD
	depends on BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED
	help
	  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
	string "Toolchain prefix"
	depends on BR2_TOOLCHAIN_EXTERNAL_CUSTOM
+6 −0
Original line number Diff line number Diff line
@@ -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_SOURCE=microblaze-unknown-linux-gnu.tgz
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
# $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE) rule would override the main
# $(DL_DIR) rule
ifeq (,$(TOOLCHAIN_EXTERNAL_SOURCE))
TOOLCHAIN_EXTERNAL_SOURCE=none
endif
endif

# Special handling for Blackfin toolchain, because of the split in two
# tarballs, and the organization of tarball contents. The tarballs