diff options
author | Sam Ravnborg <sam@mars.ravnborg.org> | 2005-12-26 17:34:03 -0500 |
---|---|---|
committer | Sam Ravnborg <sam@mars.ravnborg.org> | 2005-12-26 17:34:03 -0500 |
commit | 752625cff3eba81cbc886988d5b420064c033948 (patch) | |
tree | 10281d9345281b3d118aa8b29b3fb21e1ea10655 | |
parent | 54e08a2392e99ba9e48ce1060e0b52a39118419c (diff) |
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>
-rw-r--r-- | Makefile | 10 | ||||
-rw-r--r-- | scripts/kconfig/util.c | 2 |
2 files changed, 7 insertions, 5 deletions
@@ -477,18 +477,20 @@ ifeq ($(dot-config),1) | |||
477 | 477 | ||
478 | # Read in dependencies to all Kconfig* files, make sure to run | 478 | # Read in dependencies to all Kconfig* files, make sure to run |
479 | # oldconfig if changes are detected. | 479 | # oldconfig if changes are detected. |
480 | -include .config.cmd | 480 | -include .kconfig.d |
481 | 481 | ||
482 | include .config | 482 | include .config |
483 | 483 | ||
484 | # If .config needs to be updated, it will be done via the dependency | 484 | # If .config needs to be updated, it will be done via the dependency |
485 | # that autoconf has on .config. | 485 | # that autoconf has on .config. |
486 | # To avoid any implicit rule to kick in, define an empty command | 486 | # To avoid any implicit rule to kick in, define an empty command |
487 | .config: ; | 487 | .config .kconfig.d: ; |
488 | 488 | ||
489 | # If .config is newer than include/linux/autoconf.h, someone tinkered | 489 | # If .config is newer than include/linux/autoconf.h, someone tinkered |
490 | # with it and forgot to run make oldconfig | 490 | # with it and forgot to run make oldconfig. |
491 | include/linux/autoconf.h: .config | 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 | $(Q)mkdir -p include/linux | 494 | $(Q)mkdir -p include/linux |
493 | $(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig | 495 | $(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig |
494 | else | 496 | else |
diff --git a/scripts/kconfig/util.c b/scripts/kconfig/util.c index 1fa4c0b801b3..a711007ebe30 100644 --- a/scripts/kconfig/util.c +++ b/scripts/kconfig/util.c | |||
@@ -33,7 +33,7 @@ int file_write_dep(const char *name) | |||
33 | FILE *out; | 33 | FILE *out; |
34 | 34 | ||
35 | if (!name) | 35 | if (!name) |
36 | name = ".config.cmd"; | 36 | name = ".kconfig.d"; |
37 | out = fopen("..config.tmp", "w"); | 37 | out = fopen("..config.tmp", "w"); |
38 | if (!out) | 38 | if (!out) |
39 | return 1; | 39 | return 1; |