Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Arnout Vandecappelle <arnout@mind.be>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v2 2/3] package: fix generic extract target for top-level parallel make
Date: Thu, 22 Aug 2013 17:59:04 +0200	[thread overview]
Message-ID: <52163548.2020108@mind.be> (raw)
In-Reply-To: <CAHkwnC_6k4tY_KRudG7yWp1gOi5WZnYKDwWv2gh_xBtCQhJesQ@mail.gmail.com>

On 22/08/13 09:44, Fabio Porcedda wrote:
> On Wed, Aug 21, 2013 at 9:24 PM, Arnout Vandecappelle <arnout@mind.be> wrote:
>> On 18/07/13 11:12, Fabio Porcedda wrote:
>>>
[snip]
>>>
>>>    $(1)-patch:           $(1)-extract $$($(2)_TARGET_PATCH)
>>>
>>> -$(1)-extract:          $(1)-source \
>>> -                       $$($(2)_TARGET_EXTRACT)
>>> +$$($(2)_TARGET_EXTRACT):       $$($(2)_TARGET_SOURCE)
>>> +$(1)-extract:                  $$($(2)_TARGET_EXTRACT)
>>>
>>>    $(1)-depends:         $$($(2)_DEPENDENCIES)
>>>
>>>
>>
>>   On second observation, I don't really like this change, because it makes
>> the extract and patch parts asymmetrical with the others. I would prefer one
>> patch that changes it for all the targets. But then, the behaviour does
>> change, because rebuilding one package will also trigger a rebuild of the
>> packages that depend on it. Which may be a good thing, of course...
>
> Do you mean a single patch that changes all the targets? IMHO the
> patch becomes too complex, but if is the preferred way i'm fine with
> that.

  Yes. I estimate it will modify about 50 lines, so I don't see a problem.

>
> To be able to change the others targets i need to add stamp file for
> every target inside $$($(2)_DEPENDENCIES,
> i need to do that because a file cannot depends on a non existing file.

  That's not true. Take the following Makefile:

----------------
%.source:
	touch $@

%.extract: %.source
	touch $@

%.config: %.extract
	touch $@

%.build: %.config
	touch $@

X_DEPS = y z

x.config: $(X_DEPS)
x: x.build

Y_DEPS = z

y.config: $(Y_DEPS)
y: y.build

z.config: $(Z_DEPS)
z: z.build

.PRECIOUS: %.source %.extract
----------------

  Type 'make x', and all the build, config, extract, source files will be 
touched in the right order.

  The .PRECIOUS line may not be needed in practice, I added it here 
because there are no explicit rules involving *.source and *.extract, 
therefore these files will be deleted after a successful build.


> If there is any chance that such modification is going to be accepted
> i restart to work on the second part.
>
>>   Also, I think it would be nicer / clearer to put these dependencies in the
>> %-rules at the top of the file, rather than specifying them per package.
>
> Do you mean to put together all those rules between the %-rules
> section and inner-generic-package function?
> or to scatter them in the %-rules section?

  No, I mean to do it like the example above: use the % rules to specify 
the dependencies between the stamp files, rather than an explicit rule 
for each package.

  Regards,
  Arnout


>
> Best regards
>


-- 
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

  reply	other threads:[~2013-08-22 15:59 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-18  9:12 [Buildroot] [PATCH v2 0/3] Fix for top-level parallel make part 1 Fabio Porcedda
2013-07-18  9:12 ` [Buildroot] [PATCH v2 1/3] package/Makefile.in: add a way to don't force jobs in sub-make Fabio Porcedda
2013-08-21 19:17   ` Arnout Vandecappelle
2013-07-18  9:12 ` [Buildroot] [PATCH v2 2/3] package: fix generic extract target for top-level parallel make Fabio Porcedda
2013-08-21 19:24   ` Arnout Vandecappelle
2013-08-22  7:44     ` Fabio Porcedda
2013-08-22 15:59       ` Arnout Vandecappelle [this message]
2013-08-23 11:31         ` Fabio Porcedda
2013-08-26  8:29         ` Fabio Porcedda
2013-08-27  6:01           ` Arnout Vandecappelle
2013-08-28  8:26             ` Fabio Porcedda
2013-08-23  7:36     ` Thomas Petazzoni
2013-08-23  8:00       ` Fabio Porcedda
2013-08-23 11:14         ` Thomas Petazzoni
2013-07-18  9:12 ` [Buildroot] [PATCH v2 3/3] package: fix generic patch " Fabio Porcedda
2013-07-18  9:38 ` [Buildroot] [PATCH v2 0/3] Fix for top-level parallel make part 1 Thomas Petazzoni
2013-07-19 15:41   ` Fabio Porcedda
2013-07-27 11:18     ` Thomas Petazzoni
2013-07-30  9:34       ` Fabio Porcedda
2013-07-30 10:01         ` Thomas Petazzoni
2013-07-30 10:16           ` Fabio Porcedda
2013-07-30 11:29             ` Thomas Petazzoni
2013-08-12 16:48               ` Arnout Vandecappelle
2013-08-20 12:14                 ` Fabio Porcedda
2013-08-20 17:35                   ` 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=52163548.2020108@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