From: Arnout Vandecappelle <arnout@mind.be>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v8 RESEND 1/8] package: add base dependency to every package
Date: Thu, 24 Oct 2013 12:37:21 +0200 [thread overview]
Message-ID: <5268F861.6050803@mind.be> (raw)
In-Reply-To: <CAHkwnC_3oA+DKkUxVweB0Xt5wqWt11epFujXvmStEu25hGQNOA@mail.gmail.com>
On 24/10/13 09:41, Fabio Porcedda wrote:
> Hi Arnout,
> thanks for reviewing the patch set.
>
> On Wed, Oct 23, 2013 at 11:12 PM, Arnout Vandecappelle <arnout@mind.be> wrote:
>> On 18/10/13 11:34, Fabio Porcedda wrote:
>>>
>>> Move "dependencies" "dirs" "prepare" dependencies from "toolchain" to
>>> every package.
>>> This way we can build correctly every package right after the clean
>>> stage.
>>> As example with this commit we can build successfully the glibc right
>>> after the clean stage:
>>> make clean glibc
>>>
>>> This is also a step forward supporting top-level parallel make.
>>>
>>> Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com>
>>
>>
>> Although this is one of the most useful patches of the series, it is also
>> the one that introduces the circular dependency. So although it looks good,
>> I'm not ready to ack it.
>
> I've found a work around:
>
> $$($(2)_TARGET_SOURCE) $$($(2)_TARGET_RSYNC): | dirs prepare
>
> # to prevent circular dependency
> ifneq ($(1),$(DEPENDENCIES_HOST_PREREQ))
> $$($(2)_TARGET_SOURCE) $$($(2)_TARGET_RSYNC): | dependencies
> endif
>
> What do you think about that?
Looks good except that it's incorrect :-) If HOST_PREREQ contains both
ccache and sstrip (not to mention tar or xz), the condition won't match.
You can try something like:
ifeq ($(filter $(1),$(DEPENDENCIES_HOST_PREREQ)),)
[Just noticed now that Thomas gave the same answer.]
>
>>
>>> ---
>>> package/pkg-generic.mk | 2 ++
>>> toolchain/toolchain/toolchain.mk | 3 +--
>>> 2 files changed, 3 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
>>> index 4bba4b5..1e7154e 100644
>>> --- a/package/pkg-generic.mk
>>> +++ b/package/pkg-generic.mk
>>> @@ -385,6 +385,8 @@ $(1)-install-host: $(1)-build
>>> $$($(2)_TARGET_INSTALL_HOST)
>>> $(1)-build: $(1)-configure \
>>> $$($(2)_TARGET_BUILD)
>>>
>>> +$$($(2)_TARGET_SOURCE) $$($(2)_TARGET_RSYNC): | dependencies dirs prepare
>>
>>
>> Is there any reason why you changed the order here?
>
> The order whit top-level parallel make does not matter, it's just that
> i was thinking that it's the right logical order:
> 1: dependencies: requisite
> 2: dirs: create empty directories
> 3. prepare: add something to the empty directories
>
> But now i understand that is "dirs prepare dependencies" or "dirs
> dependencies prepare" because dirs can require host-ccache and so
You mean dependencies can require host-ccache, right? And host-ccache
depends on both dirs and prepare itself... So I do think the original
order is more logical.
Regards,
Arnout
> directories,
> nevertheless this does not matter anymore.
[snip]
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
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: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
next prev parent reply other threads:[~2013-10-24 10:37 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-18 9:34 [Buildroot] [PATCH v8 RESEND 0/8] Add support for top-level parallel make Fabio Porcedda
2013-10-18 9:34 ` [Buildroot] [PATCH v8 RESEND 1/8] package: add base dependency to every package Fabio Porcedda
2013-10-23 21:12 ` Arnout Vandecappelle
2013-10-24 7:41 ` Fabio Porcedda
2013-10-24 8:22 ` Thomas De Schampheleire
2013-10-25 8:09 ` Fabio Porcedda
2013-10-24 10:37 ` Arnout Vandecappelle [this message]
2013-10-25 8:07 ` Fabio Porcedda
2013-10-25 8:12 ` Arnout Vandecappelle
2013-10-25 8:45 ` Fabio Porcedda
2013-10-29 8:36 ` Fabio Porcedda
2013-10-29 9:35 ` Thomas De Schampheleire
2013-10-29 11:06 ` Fabio Porcedda
2013-10-18 9:34 ` [Buildroot] [PATCH v8 RESEND 2/8] package: add toolchain dependency to every target package Fabio Porcedda
2013-10-23 21:53 ` Arnout Vandecappelle
2013-10-27 17:55 ` Thomas Petazzoni
2013-10-28 8:01 ` Arnout Vandecappelle
2013-11-05 9:41 ` Fabio Porcedda
2013-10-18 9:34 ` [Buildroot] [PATCH v8 RESEND 3/8] package: add support for top-level parallel make Fabio Porcedda
2013-10-23 22:19 ` Arnout Vandecappelle
2013-11-11 9:36 ` Fabio Porcedda
2013-10-18 9:34 ` [Buildroot] [PATCH v8 RESEND 4/8] Makefile: " Fabio Porcedda
2013-10-23 22:29 ` Arnout Vandecappelle
2013-11-11 12:54 ` Fabio Porcedda
2013-10-23 22:40 ` Arnout Vandecappelle
2013-11-11 12:26 ` Fabio Porcedda
2013-10-18 9:34 ` [Buildroot] [PATCH v8 RESEND 5/8] glibc: " Fabio Porcedda
2013-10-23 22:48 ` Arnout Vandecappelle
2013-11-11 12:47 ` Fabio Porcedda
2013-10-18 9:34 ` [Buildroot] [PATCH v8 RESEND 6/8] uclibc: " Fabio Porcedda
2013-10-23 22:49 ` Arnout Vandecappelle
2013-11-11 12:50 ` Fabio Porcedda
2013-10-18 9:34 ` [Buildroot] [PATCH v8 RESEND 7/8] package: enable jobserver for recursive make Fabio Porcedda
2013-10-18 9:34 ` [Buildroot] [PATCH v8 RESEND 8/8] Makefile: enable top-level parallel make Fabio Porcedda
2013-10-23 21:09 ` [Buildroot] [PATCH v8 RESEND 0/8] Add support for " Arnout Vandecappelle
2013-11-11 13:49 ` Thomas Petazzoni
2013-11-12 8:39 ` Fabio Porcedda
2013-11-13 13:40 ` Fabio Porcedda
2013-11-13 20:05 ` Arnout Vandecappelle
2013-11-14 9:15 ` Fabio Porcedda
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=5268F861.6050803@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