From patchwork Fri Jun 22 05:42:38 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas De Schampheleire X-Patchwork-Id: 166508 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from whitealder.osuosl.org (whitealder.osuosl.org [140.211.166.138]) by ozlabs.org (Postfix) with ESMTP id AAE78B6F77 for ; Fri, 22 Jun 2012 15:45:58 +1000 (EST) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id B55718CA8B; Fri, 22 Jun 2012 05:45:45 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id B2NkxayR85hC; Fri, 22 Jun 2012 05:45:43 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id 164EB8A3B6; Fri, 22 Jun 2012 05:45:35 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (whitealder.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 91ECA8F753 for ; Fri, 22 Jun 2012 05:43:36 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 374D38CA30 for ; Fri, 22 Jun 2012 05:43:36 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nPSAmqXchh+k for ; Fri, 22 Jun 2012 05:43:26 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-ee0-f43.google.com (mail-ee0-f43.google.com [74.125.83.43]) by whitealder.osuosl.org (Postfix) with ESMTPS id 9CA228C978 for ; Fri, 22 Jun 2012 05:43:25 +0000 (UTC) Received: by mail-ee0-f43.google.com with SMTP id e50so809805eek.16 for ; Thu, 21 Jun 2012 22:43:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:content-type:mime-version:content-transfer-encoding:subject :x-mercurial-node:message-id:in-reply-to:references:user-agent:date :from:to:cc; bh=oebzX8PEREyTu8jLGA53oDp8vx+h0wq0Qhm7wrIuEd0=; b=LqnJhUdAj6bcBVOfz3+XcAOfkngDHMKIy5oDy3n41qS6FMqFLZGT9nYeftJt+7VLur YYkNib0Mw/H6Vdb5aQSJiJik/yBrB8Z7TEEJsilKhD9A8M5Ec9wQUIwbGlWSYWl8ZWWt 9iQYJjrR80uAgi0ofCAStrzOgfRB37pEPQvmDk+uiAvxJml6VHgyUTN2uQ5h+8sNkbMW 5/3BxYleWEgKBxcqOI3hDmOhIy79leN11fsNTrpNUdSzPD4oIyeyye4p3o3T6vGyhEeh ZA4sODnyEHpt6oLsoh+8Er2nHag+XIcAOP0iFNL/DnqL/aipuIfdXnxLBQtEYBvJ7LNv OIRg== Received: by 10.14.47.3 with SMTP id s3mr171169eeb.127.1340343805184; Thu, 21 Jun 2012 22:43:25 -0700 (PDT) Received: from [127.0.1.1] (d54C62EEB.access.telenet.be. [84.198.46.235]) by mx.google.com with ESMTPS id c51sm109212458eei.12.2012.06.21.22.43.23 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 21 Jun 2012 22:43:24 -0700 (PDT) MIME-Version: 1.0 X-Mercurial-Node: e1ec959a929032d75c76c9ecd46484bd5e46a84f Message-Id: In-Reply-To: References: User-Agent: Mercurial-patchbomb/2.0.2 Date: Fri, 22 Jun 2012 07:42:38 +0200 From: Thomas De Schampheleire To: buildroot@busybox.net Subject: [Buildroot] [PATCH 5 of 6 resend] toolchain-external: allow downloading a custom toolchain X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: buildroot-bounces@busybox.net Sender: buildroot-bounces@busybox.net 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 Acked-by: Arnout Vandecappelle (Essensium/Mind) --- This feature was proposed previously [1] with some comments by Thomas Petazzoni. At that time, the proposed split was to have 'custom pre- installed toolchain' and 'custom downloadable toolchain' sit alongside the CodeSourcery ones, as such providing a clear distinction between pre-installed and downloaded custom toolchains. However, during implementation I felt that this structure makes the code more complex than it needs to be and so I choose for an alternative solution that IMO still creates a clear distinction. Any comments are of course welcome. [1] http://lists.busybox.net/pipermail/buildroot/2011-September/045912.html toolchain/toolchain-external/Config.in | 29 ++++++++++++++++++++++------- toolchain/toolchain-external/ext-tool.mk | 6 ++++++ 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/toolchain/toolchain-external/Config.in b/toolchain/toolchain-external/Config.in --- a/toolchain/toolchain-external/Config.in +++ b/toolchain/toolchain-external/Config.in @@ -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 - 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 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 + 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 diff --git a/toolchain/toolchain-external/ext-tool.mk b/toolchain/toolchain-external/ext-tool.mk --- a/toolchain/toolchain-external/ext-tool.mk +++ b/toolchain/toolchain-external/ext-tool.mk @@ -252,11 +252,17 @@ else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_XILI 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