Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCHv3 19/20] package: package-based implementation of source, external-deps and legal-info
Date: Thu, 10 Oct 2013 23:33:03 +0200	[thread overview]
Message-ID: <20131010233303.783bfd6d@skate> (raw)
In-Reply-To: <5256E2BC.8020503@mind.be>

Arnout,

Thanks a lot for your review!

On Thu, 10 Oct 2013 19:24:12 +0200, Arnout Vandecappelle wrote:
> > @@ -310,9 +308,6 @@ endif
> >   include package/Makefile.in
> >   include support/dependencies/dependencies.mk
> >
> 
>   You could remove this empty line as well.

Right.

> > -# all targets depend on the crosscompiler and it's prerequisites
> > -$(TARGETS_ALL): __real_tgt_%: $(BASE_TARGETS) %
> > +PACKAGES_CLEAN:=$(patsubst %,%-clean,$(PACKAGES))
> 
>   Can you make these match the coding style? PACKAGES_CLEAN = ...

Yes, certainly.

> > +PACKAGES_SOURCE:=$(patsubst %,%-all-source,$(PACKAGES) $(BASE_TARGETS))
> 
>   BASE_TARGETS is just "toolchain", right? And that is already part of 
> the dependencies of PACKAGES, right? So why is that still needed here?

Yes, BASE_TARGETS is just toolchain now. However no, "toolchain" is not
yet part of the dependencies of all packages. This is something the
patch series from Fabio Porcedda is doing, and I don't want to solve
all problems in this patch set :)

The main reason I've kept BASE_TARGETS for now is because I knew Fabio
would be cleaning up that further with his patch set.

> > +PACKAGES_EXTERNAL_DEPS:=$(patsubst %,%-all-external-deps,$(PACKAGES) $(BASE_TARGETS))
> > +PACKAGES_DIRCLEAN:=$(patsubst %,%-dirclean,$(PACKAGES))
> 
>   The PACKAGES_DIRCLEAN is really redundant, it is only used to define 
> them as .PHONY but that is not done for e.g. -build.

True, will remove.

> > +PACKAGES_LEGAL_INFO:=$(patsubst %,%-all-legal-info,$(PACKAGES) $(BASE_TARGETS))
> >
> >   dirs: $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
> >   	$(HOST_DIR) $(BINARIES_DIR) $(STAMP_DIR)
> > @@ -386,12 +358,13 @@ $(BUILD_DIR)/buildroot-config/auto.conf: $(BUILDROOT_CONFIG)
> >
> >   prepare: $(BUILD_DIR)/buildroot-config/auto.conf
> >
> > -world: $(BASE_TARGETS) $(TARGETS_ALL)
> > +world: $(BASE_TARGETS) $(PACKAGES) $(TARGETS)
> >
> >   .PHONY: all world toolchain dirs clean distclean source outputmakefile \
> >   	legal-info legal-info-prepare legal-info-clean printvars \
> > -	$(BASE_TARGETS) $(TARGETS) $(TARGETS_ALL) \
> > -	$(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE) $(TARGETS_LEGAL_INFO) \
> > +	$(BASE_TARGETS) $(PACKAGES) $(TARGETS) \
> > +	$(PACKAGES_CLEAN) $(PACKAGES_DIRCLEAN) $(PACKAGES_SOURCE) $(PACKAGES_LEGAL_INFO) \
> > +	$(PACKAGES_EXTERNAL_DEPS) \
> >   	$(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
> >   	$(HOST_DIR) $(BINARIES_DIR) $(STAMP_DIR)
> >
> > @@ -562,10 +535,10 @@ target-post-image:
> >   toolchain-eclipse-register:
> >   	./support/scripts/eclipse-register-toolchain `readlink -f $(O)` $(notdir $(TARGET_CROSS)) $(BR2_ARCH)
> >
> > -source: dirs $(TARGETS_SOURCE) $(HOST_SOURCE)
> > +source: dirs $(PACKAGES_SOURCE)
> >
> >   external-deps:
> > -	@$(MAKE) -Bs DL_MODE=SHOW_EXTERNAL_DEPS $(EXTRAMAKEARGS) source | sort -u
> > +	@$(MAKE) -s $(EXTRAMAKEARGS) $(PACKAGES_EXTERNAL_DEPS) | sort -u
> >
> >   legal-info-clean:
> >   	@rm -fr $(LEGAL_INFO_DIR)
> > @@ -580,7 +553,7 @@ legal-info-prepare: $(LEGAL_INFO_DIR)
> >   	@cp $(BUILDROOT_CONFIG) $(LEGAL_INFO_DIR)/buildroot.config
> >
> >   legal-info: dirs legal-info-clean legal-info-prepare $(REDIST_SOURCES_DIR) \
> > -		$(TARGETS_LEGAL_INFO)
> > +		$(PACKAGES_LEGAL_INFO)
> >   	@cat support/legal-info/README.header >>$(LEGAL_REPORT)
> >   	@if [ -r $(LEGAL_WARNINGS) ]; then \
> >   		cat support/legal-info/README.warnings-header \
> > @@ -590,7 +563,7 @@ legal-info: dirs legal-info-clean legal-info-prepare $(REDIST_SOURCES_DIR) \
> >   	@rm -f $(LEGAL_WARNINGS)
> >
> >   show-targets:
> > -	@echo $(TARGETS)
> > +	@echo $(BASE_TARGETS) $(PACKAGES) $(TARGETS)
> >
> >   else # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
> >
> > diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> > index a46457c..bd6169c 100644
> > --- a/package/pkg-generic.mk
> > +++ b/package/pkg-generic.mk
> > @@ -424,6 +424,20 @@ endif
> >   $(1)-show-depends:
> >   			@echo $$($(2)_DEPENDENCIES)
> >
> > +$(1)-all-source: 	$(foreach p,$($(2)_DEPENDENCIES),$(p)-all-source) $(1)-source
> > +
> > +$(1)-external-deps:
> > +ifneq ($$($(2)_SOURCE),)
> > +			@echo $$($(2)_SOURCE)
> > +endif
> > +ifneq ($$($(2)_EXTRA_DOWNLOADS),y)
> > +			@echo $$($(2)_EXTRA_DOWNLOADS)
> > +endif
> 
>   While you're at it, you could add $(2)_PATCH.

Ahh, yes, true. I thought about it at some point, and then forgot.

>   Are the double dollars really needed? They're not used in -all-source 
> so why would you use them here...

I'll check that, maybe not.

> > -TARGETS += $(1)
> > +PACKAGES += $(1)
> >   PACKAGES_PERMISSIONS_TABLE += $$($(2)_PERMISSIONS)$$(sep)
> >   PACKAGES_DEVICES_TABLE += $$($(2)_DEVICES)$$(sep)
> >   PACKAGES_USERS += $$($(2)_USERS)$$(sep)
> 
>   Shouldn't you do something similar in fs/ ? Otherwise 'make source' 
> will not download e.g. mtd.

That's a weakness of this patch series. I believe I might need to
convert the fs/ stuff to packages (after all they are packages that
have dependencies, and install something in the images/ directory), so
that the legal-info/source/external-deps logic works for them as well,
without doing hacks. What do you think about this?

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

  reply	other threads:[~2013-10-10 21:33 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-08 18:16 [Buildroot] [PATCHv3 00/20] Toolchain updates: package infra, musl support, Linaro updates, glibc fixes Thomas Petazzoni
2013-10-08 18:16 ` [Buildroot] [PATCHv3 01/20] glibc: both eglibc and glibc need host-gawk Thomas Petazzoni
2013-10-08 21:18   ` Peter Korsgaard
2013-10-08 18:16 ` [Buildroot] [PATCHv3 02/20] glibc: fix glibc build by creating an empty gnu/stubs.h Thomas Petazzoni
2013-10-08 21:19   ` Peter Korsgaard
2013-10-08 18:17 ` [Buildroot] [PATCHv3 03/20] package: add a <pkg>_EXTRA_DOWNLOADS variable Thomas Petazzoni
2013-10-08 21:32   ` Peter Korsgaard
2013-10-08 21:55     ` Thomas Petazzoni
2013-10-09  9:29       ` Peter Korsgaard
2013-10-09 11:51         ` Thomas Petazzoni
2013-10-09 12:31           ` Peter Korsgaard
2013-10-09 13:23             ` Thomas Petazzoni
2013-10-08 18:17 ` [Buildroot] [PATCHv3 04/20] toolchain: introduce a virtual package Thomas Petazzoni
2013-10-09  8:26   ` Fabio Porcedda
2013-10-09  9:02     ` Thomas Petazzoni
2013-10-09 12:59       ` Fabio Porcedda
2013-10-09 13:31         ` Thomas Petazzoni
2013-10-09 13:41           ` Fabio Porcedda
2013-10-09 10:46   ` Peter Korsgaard
2013-10-09 11:49     ` Thomas Petazzoni
2013-10-09 12:33       ` Peter Korsgaard
2013-10-08 18:17 ` [Buildroot] [PATCHv3 05/20] toolchain-buildroot: convert to the package infrastructure Thomas Petazzoni
2013-10-09 13:20   ` Peter Korsgaard
2013-10-09 14:04   ` Thomas De Schampheleire
2013-10-09 14:35     ` Peter Korsgaard
2013-10-08 18:17 ` [Buildroot] [PATCHv3 06/20] toolchain-external: " Thomas Petazzoni
2013-10-09 13:20   ` Peter Korsgaard
2013-10-08 18:17 ` [Buildroot] [PATCHv3 07/20] dependencies: remove useless targets Thomas Petazzoni
2013-10-09 13:21   ` Peter Korsgaard
2013-10-08 18:17 ` [Buildroot] [PATCHv3 08/20] toolchain-external: conditionalize the installation of libraries Thomas Petazzoni
2013-10-09 13:21   ` Peter Korsgaard
2013-10-08 18:17 ` [Buildroot] [PATCHv3 09/20] toolchain: modify the wildcard logic for shared libraries copying Thomas Petazzoni
2013-10-09 13:21   ` Peter Korsgaard
2013-10-08 18:17 ` [Buildroot] [PATCHv3 10/20] toolchain: fix the helpers.mk comment Thomas Petazzoni
2013-10-09 13:24   ` Peter Korsgaard
2013-10-09 13:58   ` Thomas De Schampheleire
2013-10-08 18:17 ` [Buildroot] [PATCHv3 11/20] toolchain: do not check largefile, wchar, IPv6 and locale for glibc toolchains Thomas Petazzoni
2013-10-09 13:25   ` Peter Korsgaard
2013-10-08 18:17 ` [Buildroot] [PATCHv3 12/20] toolchain-external: add support for musl C library Thomas Petazzoni
2013-10-09 14:01   ` Peter Korsgaard
2013-10-08 18:17 ` [Buildroot] [PATCHv3 13/20] toolchain-external: improve help text of some options Thomas Petazzoni
2013-10-09 14:03   ` Peter Korsgaard
2013-10-09 14:11     ` Thomas Petazzoni
2013-10-08 18:17 ` [Buildroot] [PATCHv3 14/20] busybox: add patches to fix build with the musl C library Thomas Petazzoni
2013-10-09 14:33   ` Peter Korsgaard
2013-10-08 18:17 ` [Buildroot] [PATCHv3 15/20] toolchain-external: update Linaro ARM toolchain Thomas Petazzoni
2013-10-08 18:17 ` [Buildroot] [PATCHv3 16/20] toolchain-external: update Linaro AArch64 toolchain Thomas Petazzoni
2013-10-08 18:17 ` [Buildroot] [PATCHv3 17/20] toolchain-external: improve target library copy logic Thomas Petazzoni
2013-10-08 18:17 ` [Buildroot] [PATCHv3 18/20] toolchain-external: fix Linaro ARM toolchain support Thomas Petazzoni
2013-10-08 18:17 ` [Buildroot] [PATCHv3 19/20] package: package-based implementation of source, external-deps and legal-info Thomas Petazzoni
2013-10-10 17:24   ` Arnout Vandecappelle
2013-10-10 21:33     ` Thomas Petazzoni [this message]
2013-10-10 22:38       ` Arnout Vandecappelle
2013-10-11  7:20         ` Thomas Petazzoni
2013-10-11  8:10           ` Arnout Vandecappelle
2013-10-11  8:00       ` Fabio Porcedda
2013-10-08 18:17 ` [Buildroot] [PATCHv3 20/20] package: remove useless SHOW_EXTERNAL_DEPS support Thomas Petazzoni
2013-10-10 17:27   ` 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=20131010233303.783bfd6d@skate \
    --to=thomas.petazzoni@free-electrons.com \
    --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