aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Ravnborg <sam@mars.ravnborg.org>2005-12-26 17:34:03 -0500
committerSam Ravnborg <sam@mars.ravnborg.org>2005-12-26 17:34:03 -0500
commit752625cff3eba81cbc886988d5b420064c033948 (patch)
tree10281d9345281b3d118aa8b29b3fb21e1ea10655
parent54e08a2392e99ba9e48ce1060e0b52a39118419c (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--Makefile10
-rw-r--r--scripts/kconfig/util.c2
2 files changed, 7 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index 922c7633797f..d3598ef3c777 100644
--- a/Makefile
+++ b/Makefile
@@ -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
482include .config 482include .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.
491include/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
493include/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
494else 496else
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;