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
next prev parent 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.