diff mbox series

[6/6] kbuild: check clean srctree even earlier

Message ID 20190822044613.5349-6-yamada.masahiro@socionext.com
State Accepted
Commit 36de077b20d05321466f8eaba0ae01b9b18ad93c
Headers show
Series [1/6] kbuild: remove 'Using ... as source for kernel' message | expand

Commit Message

Masahiro Yamada Aug. 22, 2019, 4:46 a.m. UTC
Move the outputmakefile target to the leftmost in the prerequisite list
so that this is checked first. There is no guarantee that Make runs the
prerequisites from left to right, but at least the released versions of
GNU Make work like that when the parallel build option is not given.

Of course, when the parallel option -j given, other targets will be run
simultaneously but it is nice to show the error as early as possible.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

---

 Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

-- 
2.17.1

Comments

Masahiro Yamada Aug. 29, 2019, 4:25 p.m. UTC | #1
On Thu, Aug 22, 2019 at 1:46 PM Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
>

> Move the outputmakefile target to the leftmost in the prerequisite list

> so that this is checked first. There is no guarantee that Make runs the

> prerequisites from left to right,


Looks like this is guaranteed.

I did not know POSIX defined this.


I will reword the commit log as follows:


"
kbuild: check clean srctree even earlier

Move the outputmakefile target to the leftmost in the prerequisite list
so that this is checked first. GNU Make processes the prerequisites
left to right.

GNU Make will keep to stick to this behavior, and it seems even
POSIX standard, according to this:
https://lists.gnu.org/archive/html/bug-make/2019-08/msg00030.html

The POSIX standard of make is available here:
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html

Of course, when the parallel option -j given, other targets will be run
simultaneously but it is nice to show the error as early as possible.
"




> but at least the released versions of

> GNU Make work like that when the parallel build option is not given.

>

> Of course, when the parallel option -j given, other targets will be run

> simultaneously but it is nice to show the error as early as possible.

>

> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

> ---

>

>  Makefile | 6 +++---

>  1 file changed, 3 insertions(+), 3 deletions(-)

>

> diff --git a/Makefile b/Makefile

> index 960df4d35b15..089983a8a028 100644

> --- a/Makefile

> +++ b/Makefile

> @@ -581,10 +581,10 @@ ifdef config-build

>  include arch/$(SRCARCH)/Makefile

>  export KBUILD_DEFCONFIG KBUILD_KCONFIG CC_VERSION_TEXT

>

> -config: scripts_basic outputmakefile FORCE

> +config: outputmakefile scripts_basic FORCE

>         $(Q)$(MAKE) $(build)=scripts/kconfig $@

>

> -%config: scripts_basic outputmakefile FORCE

> +%config: outputmakefile scripts_basic FORCE

>         $(Q)$(MAKE) $(build)=scripts/kconfig $@

>

>  else #!config-build

> @@ -1123,7 +1123,7 @@ scripts: scripts_basic scripts_dtc

>

>  PHONY += prepare archprepare

>

> -archprepare: archheaders archscripts scripts include/config/kernel.release outputmakefile \

> +archprepare: outputmakefile archheaders archscripts scripts include/config/kernel.release \

>         asm-generic $(version_h) $(autoksyms_h) include/generated/utsrelease.h

>

>  prepare0: archprepare

> --

> 2.17.1

>



-- 
Best Regards
Masahiro Yamada
diff mbox series

Patch

diff --git a/Makefile b/Makefile
index 960df4d35b15..089983a8a028 100644
--- a/Makefile
+++ b/Makefile
@@ -581,10 +581,10 @@  ifdef config-build
 include arch/$(SRCARCH)/Makefile
 export KBUILD_DEFCONFIG KBUILD_KCONFIG CC_VERSION_TEXT
 
-config: scripts_basic outputmakefile FORCE
+config: outputmakefile scripts_basic FORCE
 	$(Q)$(MAKE) $(build)=scripts/kconfig $@
 
-%config: scripts_basic outputmakefile FORCE
+%config: outputmakefile scripts_basic FORCE
 	$(Q)$(MAKE) $(build)=scripts/kconfig $@
 
 else #!config-build
@@ -1123,7 +1123,7 @@  scripts: scripts_basic scripts_dtc
 
 PHONY += prepare archprepare
 
-archprepare: archheaders archscripts scripts include/config/kernel.release outputmakefile \
+archprepare: outputmakefile archheaders archscripts scripts include/config/kernel.release \
 	asm-generic $(version_h) $(autoksyms_h) include/generated/utsrelease.h
 
 prepare0: archprepare