2013-03-28 07:30:28

by Li Guang

[permalink] [raw]
Subject: [PATCH] Makefile: allow no update .config build

if we pull some commits from other git repo
which bring in a few CONFIG_* options, then
we have to build all again, but we do assure
these options are not interesting for us,
so the long waiting build will be offending.
this change help us to avoid all-build.

Signed-off-by: liguang <[email protected]>
---
Makefile | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/Makefile b/Makefile
index 54d2b2a..d10e505 100644
--- a/Makefile
+++ b/Makefile
@@ -106,6 +106,12 @@ ifeq ("$(origin W)", "command line")
export KBUILD_ENABLE_EXTRA_GCC_CHECKS := $(W)
endif

+# KBUILD_NCU is set to do not update .config even
+# a few new CONFIG_* options appeared
+ifeq ("$(origin NCU)", "command line")
+ KBUILD_NCU := $(NCU)
+endif
+
# That's our default target when none is given on the command line
PHONY := _all
_all:
@@ -540,8 +546,10 @@ $(KCONFIG_CONFIG) include/config/auto.conf.cmd: ;
# with it and forgot to run make oldconfig.
# if auto.conf.cmd is missing then we are probably in a cleaned tree so
# we execute the config step to be sure to catch updated Kconfig files
+ifneq ($(KBUILD_NCU), 1)
include/config/%.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd
$(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig
+endif # $(KBUILD_NCU)
else
# external modules needs include/generated/autoconf.h and include/config/auto.conf
# but do not care if they are up-to-date. Use auto.conf to trigger the test
@@ -1157,6 +1165,7 @@ help:
@echo ' 2: warnings which occur quite often but may still be relevant'
@echo ' 3: more obscure warnings, can most likely be ignored'
@echo ' Multiple levels can be combined with W=12 or W=123'
+ @echo ' make NCU=1 [targets] no .config udate'
@echo ''
@echo 'Execute "make" or "make all" to build all targets marked with [*] '
@echo 'For further info see the ./README file'
--
1.7.2.5


2013-03-28 18:14:07

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH] Makefile: allow no update .config build

On 03/28/13 00:28, liguang wrote:
> if we pull some commits from other git repo
> which bring in a few CONFIG_* options, then
> we have to build all again, but we do assure
> these options are not interesting for us,
> so the long waiting build will be offending.
> this change help us to avoid all-build.
>
> Signed-off-by: liguang <[email protected]>
> ---
> Makefile | 9 +++++++++
> 1 files changed, 9 insertions(+), 0 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 54d2b2a..d10e505 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -106,6 +106,12 @@ ifeq ("$(origin W)", "command line")
> export KBUILD_ENABLE_EXTRA_GCC_CHECKS := $(W)
> endif
>
> +# KBUILD_NCU is set to do not update .config even
> +# a few new CONFIG_* options appeared
> +ifeq ("$(origin NCU)", "command line")
> + KBUILD_NCU := $(NCU)
> +endif
> +
> # That's our default target when none is given on the command line
> PHONY := _all
> _all:
> @@ -540,8 +546,10 @@ $(KCONFIG_CONFIG) include/config/auto.conf.cmd: ;
> # with it and forgot to run make oldconfig.
> # if auto.conf.cmd is missing then we are probably in a cleaned tree so
> # we execute the config step to be sure to catch updated Kconfig files
> +ifneq ($(KBUILD_NCU), 1)
> include/config/%.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd
> $(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig
> +endif # $(KBUILD_NCU)
> else
> # external modules needs include/generated/autoconf.h and include/config/auto.conf
> # but do not care if they are up-to-date. Use auto.conf to trigger the test
> @@ -1157,6 +1165,7 @@ help:
> @echo ' 2: warnings which occur quite often but may still be relevant'
> @echo ' 3: more obscure warnings, can most likely be ignored'
> @echo ' Multiple levels can be combined with W=12 or W=123'
> + @echo ' make NCU=1 [targets] no .config udate'

update

> @echo ''
> @echo 'Execute "make" or "make all" to build all targets marked with [*] '
> @echo 'For further info see the ./README file'
>


--
~Randy

2013-03-29 00:44:12

by Li Guang

[permalink] [raw]
Subject: Re: [PATCH] Makefile: allow no update .config build

在 2013-03-28四的 10:13 -0700,Randy Dunlap写道:
> On 03/28/13 00:28, liguang wrote:
> > if we pull some commits from other git repo
> > which bring in a few CONFIG_* options, then
> > we have to build all again, but we do assure
> > these options are not interesting for us,
> > so the long waiting build will be offending.
> > this change help us to avoid all-build.
> >
> > Signed-off-by: liguang <[email protected]>
> > ---
> > Makefile | 9 +++++++++
> > 1 files changed, 9 insertions(+), 0 deletions(-)
> >
> > diff --git a/Makefile b/Makefile
> > index 54d2b2a..d10e505 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -106,6 +106,12 @@ ifeq ("$(origin W)", "command line")
> > export KBUILD_ENABLE_EXTRA_GCC_CHECKS := $(W)
> > endif
> >
> > +# KBUILD_NCU is set to do not update .config even
> > +# a few new CONFIG_* options appeared
> > +ifeq ("$(origin NCU)", "command line")
> > + KBUILD_NCU := $(NCU)
> > +endif
> > +
> > # That's our default target when none is given on the command line
> > PHONY := _all
> > _all:
> > @@ -540,8 +546,10 @@ $(KCONFIG_CONFIG) include/config/auto.conf.cmd: ;
> > # with it and forgot to run make oldconfig.
> > # if auto.conf.cmd is missing then we are probably in a cleaned tree so
> > # we execute the config step to be sure to catch updated Kconfig files
> > +ifneq ($(KBUILD_NCU), 1)
> > include/config/%.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd
> > $(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig
> > +endif # $(KBUILD_NCU)
> > else
> > # external modules needs include/generated/autoconf.h and include/config/auto.conf
> > # but do not care if they are up-to-date. Use auto.conf to trigger the test
> > @@ -1157,6 +1165,7 @@ help:
> > @echo ' 2: warnings which occur quite often but may still be relevant'
> > @echo ' 3: more obscure warnings, can most likely be ignored'
> > @echo ' Multiple levels can be combined with W=12 or W=123'
> > + @echo ' make NCU=1 [targets] no .config udate'
>
> update

OK, I'll update.

Thanks!

>
> > @echo ''
> > @echo 'Execute "make" or "make all" to build all targets marked with [*] '
> > @echo 'For further info see the ./README file'
> >
>
>