Commit 752625cff3eba81cbc886988d5b420064c033948
1 parent
54e08a2392
Exists in
master
and in
7 other branches
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
Makefile
... | ... | @@ -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 |