diff mbox series

[for-4.1] Makefile: Fix "make install" when "make all" needs work

Message ID 20190712055935.23061-1-armbru@redhat.com
State New
Headers show
Series [for-4.1] Makefile: Fix "make install" when "make all" needs work | expand

Commit Message

Markus Armbruster July 12, 2019, 5:59 a.m. UTC
Until recently, target install used to recurse into target directories
in its recipe: it ran make install in a for-loop.  Since target
install depends on target all, this trivially ensured we run the
sub-make install only after completing target all.

Commit 1338a4b "Makefile: Reuse all's recursion machinery for clean
and install" moved the target recursion to dependencies.  That's good
(the commit message explains why), but I forgot to add dependencies to
ensure make runs the sub-make install only after completing target
all.  Do that now.

Fixes: 1338a4b72659ce08eacb9de0205fe16202a22d9c
Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reported-by: Guenter Roeck <linux@roeck-us.net>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 Makefile | 1 +
 1 file changed, 1 insertion(+)

Comments

Daniel P. Berrangé July 12, 2019, 8:27 a.m. UTC | #1
On Fri, Jul 12, 2019 at 07:59:35AM +0200, Markus Armbruster wrote:
> Until recently, target install used to recurse into target directories
> in its recipe: it ran make install in a for-loop.  Since target
> install depends on target all, this trivially ensured we run the
> sub-make install only after completing target all.
> 
> Commit 1338a4b "Makefile: Reuse all's recursion machinery for clean
> and install" moved the target recursion to dependencies.  That's good
> (the commit message explains why), but I forgot to add dependencies to
> ensure make runs the sub-make install only after completing target
> all.  Do that now.
> 
> Fixes: 1338a4b72659ce08eacb9de0205fe16202a22d9c
> Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
> Reported-by: Guenter Roeck <linux@roeck-us.net>
> Tested-by: Guenter Roeck <linux@roeck-us.net>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  Makefile | 1 +
>  1 file changed, 1 insertion(+)

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>

Regards,
Daniel
Stefano Garzarella July 12, 2019, 9:09 a.m. UTC | #2
On Fri, Jul 12, 2019 at 07:59:35AM +0200, Markus Armbruster wrote:
> Until recently, target install used to recurse into target directories
> in its recipe: it ran make install in a for-loop.  Since target
> install depends on target all, this trivially ensured we run the
> sub-make install only after completing target all.
> 
> Commit 1338a4b "Makefile: Reuse all's recursion machinery for clean
> and install" moved the target recursion to dependencies.  That's good
> (the commit message explains why), but I forgot to add dependencies to
> ensure make runs the sub-make install only after completing target
> all.  Do that now.
> 
> Fixes: 1338a4b72659ce08eacb9de0205fe16202a22d9c
> Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
> Reported-by: Guenter Roeck <linux@roeck-us.net>
> Tested-by: Guenter Roeck <linux@roeck-us.net>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  Makefile | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/Makefile b/Makefile
> index 1fcbaed62c..09b77e8a7b 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -522,6 +522,7 @@ $(ROM_DIRS_RULES):
>  recurse-all: $(addsuffix /all, $(TARGET_DIRS) $(ROM_DIRS))
>  recurse-clean: $(addsuffix /clean, $(TARGET_DIRS) $(ROM_DIRS))
>  recurse-install: $(addsuffix /install, $(TARGET_DIRS))
> +$(addsuffix /install, $(TARGET_DIRS)): all
>  
>  $(BUILD_DIR)/version.o: $(SRC_PATH)/version.rc config-host.h
>  	$(call quiet-command,$(WINDRES) -I$(BUILD_DIR) -o $@ $<,"RC","version.o")

Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Mark Cave-Ayland July 12, 2019, 7:43 p.m. UTC | #3
On 12/07/2019 06:59, Markus Armbruster wrote:

> Until recently, target install used to recurse into target directories
> in its recipe: it ran make install in a for-loop.  Since target
> install depends on target all, this trivially ensured we run the
> sub-make install only after completing target all.
> 
> Commit 1338a4b "Makefile: Reuse all's recursion machinery for clean
> and install" moved the target recursion to dependencies.  That's good
> (the commit message explains why), but I forgot to add dependencies to
> ensure make runs the sub-make install only after completing target
> all.  Do that now.
> 
> Fixes: 1338a4b72659ce08eacb9de0205fe16202a22d9c
> Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
> Reported-by: Guenter Roeck <linux@roeck-us.net>
> Tested-by: Guenter Roeck <linux@roeck-us.net>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  Makefile | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/Makefile b/Makefile
> index 1fcbaed62c..09b77e8a7b 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -522,6 +522,7 @@ $(ROM_DIRS_RULES):
>  recurse-all: $(addsuffix /all, $(TARGET_DIRS) $(ROM_DIRS))
>  recurse-clean: $(addsuffix /clean, $(TARGET_DIRS) $(ROM_DIRS))
>  recurse-install: $(addsuffix /install, $(TARGET_DIRS))
> +$(addsuffix /install, $(TARGET_DIRS)): all
>  
>  $(BUILD_DIR)/version.o: $(SRC_PATH)/version.rc config-host.h
>  	$(call quiet-command,$(WINDRES) -I$(BUILD_DIR) -o $@ $<,"RC","version.o")
> 

I've just tried this on my faster workstation and it now works fine with all of -j2,
-j4 and -j8.

Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>


ATB,

Mark.
diff mbox series

Patch

diff --git a/Makefile b/Makefile
index 1fcbaed62c..09b77e8a7b 100644
--- a/Makefile
+++ b/Makefile
@@ -522,6 +522,7 @@  $(ROM_DIRS_RULES):
 recurse-all: $(addsuffix /all, $(TARGET_DIRS) $(ROM_DIRS))
 recurse-clean: $(addsuffix /clean, $(TARGET_DIRS) $(ROM_DIRS))
 recurse-install: $(addsuffix /install, $(TARGET_DIRS))
+$(addsuffix /install, $(TARGET_DIRS)): all
 
 $(BUILD_DIR)/version.o: $(SRC_PATH)/version.rc config-host.h
 	$(call quiet-command,$(WINDRES) -I$(BUILD_DIR) -o $@ $<,"RC","version.o")