Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Arnout Vandecappelle <arnout@mind.be>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 2 of 5 RFC] dependencies: add function suitable-host-package
Date: Tue, 15 Nov 2011 23:22:18 +0000	[thread overview]
Message-ID: <201111152322.18743.arnout@mind.be> (raw)
In-Reply-To: <59ff6675857a8c1c280b.1320911667@devws108>

On Thursday 10 November 2011 19:31:54 Thomas De Schampheleire wrote:
> Sometimes, buildroot needs a certain host tool to do its job, e.g. tar. In
> many cases, we expect this tool to be present on the host system, but this is
> not always the case. Or maybe, the version on the host system is not
> suitable, and we need a more recent one.
> 
> In some of these cases, instead of bailing out, buildroot could build the
> package first (but only if the existing system package is not suitable).
> 
> To aid in detecting if a host package is suitable or not, this patch adds a
> function suitable-host-package. When called with parameter foo, it will
> execute check-host-foo.sh, or if absent, make function check-host-foo. These
> should return either the path to the suitable host package, or the empty
> string if no suitable package can be found.
> The rules to determine whether something is suitable or not is left to the
> check-host-foo(.sh) function and depends on foo.
> 
> An example usage of suitable-host-package is:
> DEPENDENCIES_HOST_PREREQ += $(if $(call suitable-host-package,foo),,host-foo)
> 
> To avoid cluttering the existing dependencies.mk file, it includes any
> check-host-foo.mk file. These files can be used to hold the appropriate
> functions or definitions.

While you're at it, perhaps move the toolchain/dependencies directory to 
support/dependencies?  And also it can be included from the top-level
Makefile instead of the toolchain makefiles.  Not that this is in any way
related to this patch :-)

> 
> Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>

Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

[ I just realized that I agree with Thomas DS's conclusion that we should 
use Reviewed-by, not Acked-by... So my previous Acks should be Reviews.]

> 
> ---
>  toolchain/dependencies/dependencies.mk |  10 ++++++++++
>  1 files changed, 10 insertions(+), 0 deletions(-)
> 
> diff --git a/toolchain/dependencies/dependencies.mk b/toolchain/dependencies/dependencies.mk
> --- a/toolchain/dependencies/dependencies.mk
> +++ b/toolchain/dependencies/dependencies.mk
> @@ -6,6 +6,16 @@
>  ######################################################################
>  
>  DEPENDENCIES_HOST_PREREQ:=
> +
> +# suitable-host-pkg: calls check-host-$(1).sh shell script if it exists,
> +# otherwise calls check-host-$(1) make function. This script/function
> +# should return the path to the suitable host tool, or nothing if no
> +# suitable tool was found.
> +define suitable-host-package
> +$(if $(wildcard toolchain/dependencies/check-host-$(1).sh),$(shell toolchain/dependencies/check-host-$(1).sh),$(call check-host-$(1)))

 I would remove the possibility of having check-host-xxx as a function
unless there is a use case for it.  It's fairly easy to add later, and this
function becomes much more readable without it:
+$(shell toolchain/dependencies/check-host-$(1).sh)

> +endef
> +include toolchain/dependencies/check-host-*.mk
> +
>  ifeq ($(BR2_STRIP_sstrip),y)
>  DEPENDENCIES_HOST_PREREQ+=host-sstrip
>  endif
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
> 

-- 
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  31BB CF53 8660 6F88 345D  54CC A836 5879 20D7 CF43
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20111115/738a076b/attachment-0001.html>

  reply	other threads:[~2011-11-15 23:22 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-10 19:31 [Buildroot] [PATCH 0 of 5 RFC] dependencies: some improvements Thomas De Schampheleire
2011-11-10 19:31 ` [Buildroot] [PATCH 1 of 5 RFC] dependencies: check core dependencies before anything else Thomas De Schampheleire
2011-11-15 22:43   ` Arnout Vandecappelle
2011-11-17 22:20   ` Peter Korsgaard
2011-11-10 19:31 ` [Buildroot] [PATCH 2 of 5 RFC] dependencies: add function suitable-host-package Thomas De Schampheleire
2011-11-15 23:22   ` Arnout Vandecappelle [this message]
2011-11-10 19:31 ` [Buildroot] [PATCH 3 of 5 RFC] dependencies: build a host-tar if no suitable tar can be found Thomas De Schampheleire
2011-11-15 23:31   ` Arnout Vandecappelle
2011-11-10 19:32 ` [Buildroot] [PATCH 4 of 5 RFC] dependencies: remove unused lzma checking scripts Thomas De Schampheleire
2011-11-15 22:57   ` Arnout Vandecappelle
2011-11-17 22:20   ` Peter Korsgaard
2011-11-10 19:32 ` [Buildroot] [PATCH 5 of 5 RFC] dirs and dependencies should be executed before every package Thomas De Schampheleire
2011-11-15 23:52   ` Arnout Vandecappelle

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201111152322.18743.arnout@mind.be \
    --to=arnout@mind.be \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox