From: Arnout Vandecappelle <arnout@mind.be>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v8 RESEND 4/8] Makefile: add support for top-level parallel make
Date: Thu, 24 Oct 2013 00:29:22 +0200 [thread overview]
Message-ID: <52684DC2.2030802@mind.be> (raw)
In-Reply-To: <1382088860-30524-5-git-send-email-fabio.porcedda@gmail.com>
On 18/10/13 11:34, Fabio Porcedda wrote:
> To be able to use top-level parallel make we must not depend in a rule
> on the order of evaluation of the prerequisites, so instead of relyng on
> the left to right ordering of evaluation of the prerequisites add an
> explicit rule to describe the dependencies.
>
> Add explicit rules to describe the following dependency chain:
> $(TARGETS) -> target-finalize -> rootfs-* -> target-post-image
>
> Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
I think this one is ready to go in, so perhaps you can reorder it as
one of the first ones of the series. Although it serves no function
except for the top-level parallel make, so perhaps Peter will object to
committing it on its own.
Regards,
Arnout
> ---
> Makefile | 15 ++++++---------
> fs/common.mk | 4 ++--
> 2 files changed, 8 insertions(+), 11 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index ebecec4..299d34b 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -329,8 +329,6 @@ include boot/common.mk
> include linux/linux.mk
> include system/system.mk
>
> -TARGETS+=target-finalize
> -
> ifeq ($(BR2_ENABLE_LOCALE_PURGE),y)
> TARGETS+=target-purgelocales
> endif
> @@ -347,8 +345,6 @@ endif
>
> include fs/common.mk
>
> -TARGETS+=target-post-image
> -
> TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS))
> TARGETS_SOURCE:=$(patsubst %,%-source,$(TARGETS) $(BASE_TARGETS))
> TARGETS_DIRCLEAN:=$(patsubst %,%-dirclean,$(TARGETS))
> @@ -382,11 +378,12 @@ $(BUILD_DIR)/buildroot-config/auto.conf: $(BUILDROOT_CONFIG)
>
> prepare: $(BUILD_DIR)/buildroot-config/auto.conf
>
> -world: $(TARGETS)
> +world: target-post-image
>
> .PHONY: all world toolchain dirs clean distclean source outputmakefile \
> legal-info legal-info-prepare legal-info-clean printvars \
> - $(BASE_TARGETS) $(TARGETS) \
> + target-finalize target-post-image \
> + $(BASE_TARGETS) $(TARGETS) $(TARGETS_ROOTFS) \
> $(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE) $(TARGETS_LEGAL_INFO) \
> $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
> $(HOST_DIR) $(BINARIES_DIR) $(STAMP_DIR)
> @@ -443,7 +440,7 @@ endif
> STRIP_FIND_CMD += -type f -perm /111
> STRIP_FIND_CMD += -not \( $(call findfileclauses,libpthread*.so* $(call qstrip,$(BR2_STRIP_EXCLUDE_FILES))) \) -print
>
> -target-finalize:
> +target-finalize: $(TARGETS)
> rm -rf $(TARGET_DIR)/usr/include $(TARGET_DIR)/usr/share/aclocal \
> $(TARGET_DIR)/usr/lib/pkgconfig $(TARGET_DIR)/usr/share/pkgconfig \
> $(TARGET_DIR)/usr/lib/cmake $(TARGET_DIR)/usr/share/cmake
> @@ -550,7 +547,7 @@ target-generatelocales: host-localedef
> done
> endif
>
> -target-post-image:
> +target-post-image: target-finalize $(TARGETS_ROOTFS)
> @$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_IMAGE_SCRIPT)), \
> $(call MESSAGE,"Executing post-image script $(s)"); \
> $(s) $(BINARIES_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep))
> @@ -586,7 +583,7 @@ legal-info: dirs legal-info-clean legal-info-prepare $(REDIST_SOURCES_DIR) \
> @rm -f $(LEGAL_WARNINGS)
>
> show-targets:
> - @echo $(TARGETS)
> + @echo $(TARGETS) $(TARGETS_ROOTFS)
>
> else # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
>
> diff --git a/fs/common.mk b/fs/common.mk
> index 4dab7ea..7698c53 100644
> --- a/fs/common.mk
> +++ b/fs/common.mk
> @@ -42,7 +42,7 @@ define ROOTFS_TARGET_INTERNAL
> # extra deps
> ROOTFS_$(2)_DEPENDENCIES += host-fakeroot host-makedevs $$(if $$(BR2_TARGET_ROOTFS_$(2)_LZMA),host-lzma) $$(if $$(BR2_TARGET_ROOTFS_$(2)_LZO),host-lzop) $$(if $$(BR2_TARGET_ROOTFS_$(2)_XZ),host-xz)
>
> -$$(BINARIES_DIR)/rootfs.$(1): $$(ROOTFS_$(2)_DEPENDENCIES)
> +$$(BINARIES_DIR)/rootfs.$(1): target-finalize $$(ROOTFS_$(2)_DEPENDENCIES)
> @$$(call MESSAGE,"Generating root filesystem image rootfs.$(1)")
> $$(foreach hook,$$(ROOTFS_$(2)_PRE_GEN_HOOKS),$$(call $$(hook))$$(sep))
> rm -f $$(FAKEROOT_SCRIPT)
> @@ -86,7 +86,7 @@ rootfs-$(1)-show-depends:
> rootfs-$(1): $$(BINARIES_DIR)/rootfs.$(1) $$(ROOTFS_$(2)_POST_TARGETS)
>
> ifeq ($$(BR2_TARGET_ROOTFS_$(2)),y)
> -TARGETS += rootfs-$(1)
> +TARGETS_ROOTFS += rootfs-$(1)
> endif
> endef
>
>
--
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-23 22:29 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
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 [this message]
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=52684DC2.2030802@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