Commit 752625cff3eba81cbc886988d5b420064c033948

Authored by Sam Ravnborg
1 parent 54e08a2392

kbuild: always run 'make silentoldconfig' when tree is cleaned

If the file .kconfig.d is missing then make sure to run
'make silentoldconfig', since we have no way to detect if
a Kconfig file has been updated.

-kconfig.d is created by kconfig and is removed as part
of 'make clean' so the situation is likely to occur in reality.

Jan Beulich <JBeulich@novell.com> reported this bug.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>

Showing 2 changed files with 7 additions and 5 deletions Side-by-side Diff

... ... @@ -477,18 +477,20 @@
477 477  
478 478 # Read in dependencies to all Kconfig* files, make sure to run
479 479 # oldconfig if changes are detected.
480   --include .config.cmd
  480 +-include .kconfig.d
481 481  
482 482 include .config
483 483  
484 484 # If .config needs to be updated, it will be done via the dependency
485 485 # that autoconf has on .config.
486 486 # To avoid any implicit rule to kick in, define an empty command
487   -.config: ;
  487 +.config .kconfig.d: ;
488 488  
489 489 # If .config is newer than include/linux/autoconf.h, someone tinkered
490   -# with it and forgot to run make oldconfig
491   -include/linux/autoconf.h: .config
  490 +# with it and forgot to run make oldconfig.
  491 +# If kconfig.d is missing then we are probarly in a cleaned tree so
  492 +# we execute the config step to be sure to catch updated Kconfig files
  493 +include/linux/autoconf.h: .kconfig.d .config
492 494 $(Q)mkdir -p include/linux
493 495 $(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig
494 496 else
scripts/kconfig/util.c
... ... @@ -33,7 +33,7 @@
33 33 FILE *out;
34 34  
35 35 if (!name)
36   - name = ".config.cmd";
  36 + name = ".kconfig.d";
37 37 out = fopen("..config.tmp", "w");
38 38 if (!out)
39 39 return 1;