aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorGravatar Guido Martínez <guido@vanguardiasur.com.ar>2015-07-17 00:33:07 +0200
committerGravatar Thomas Petazzoni <thomas.petazzoni@free-electrons.com>2015-07-18 11:31:38 +0200
commit1e9f60471622ec48f4df9ffe09e6cbca3a3ca6aa (patch)
treed49aa9b24e078fef6cbddc6edf71a7f241d2a12e /Makefile
parentabf422ae0a523ac24bcd07aec6748bc9d2f706bc (diff)
downloadbuildroot-1e9f60471622ec48f4df9ffe09e6cbca3a3ca6aa.tar.gz
buildroot-1e9f60471622ec48f4df9ffe09e6cbca3a3ca6aa.tar.bz2
Makefile: fix performance regression caused by the umask handling
Commit bee5745c introduced an extra level of 'make' when the umask is different from 0022. However, when several targets were specified on the command line, a new make instance would be called for each target. This introduces a huge performance overhead when many targets are specified on the command line. To fix this, use the same approach as used in the mkmakefile script: an addition target on which the MAKECMDGOALS depend, so that this target is run only once. Note that the mkmakefile script contains a special exception for Makefile, because the Makefile in the output directory is generated. Since the top-level Makefile is not generated, this exception is not needed here. While we're at it, also fix the whitespace in the UMASK assignment. Signed-off-by: Guido Martínez <guido@vanguardiasur.com.ar> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> [yann.morin.1998@free.fr: aggregate patches from Arnout and Guido] Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile12
1 files changed, 6 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index 168d62a3a2..8b9c5d9141 100644
--- a/Makefile
+++ b/Makefile
@@ -25,15 +25,15 @@
#--------------------------------------------------------------
# Trick for always running with a fixed umask
-UMASK=0022
+UMASK = 0022
ifneq ($(shell umask),$(UMASK))
-.PHONY: all $(MAKECMDGOALS)
+.PHONY: _all $(MAKECMDGOALS)
-all:
- @umask $(UMASK) && $(MAKE) --no-print-directory
+$(MAKECMDGOALS): _all
+ @:
-$(MAKECMDGOALS):
- @umask $(UMASK) && $(MAKE) --no-print-directory $@
+_all:
+ @umask $(UMASK) && $(MAKE) --no-print-directory $(MAKECMDGOALS)
else # umask