[patch] kbuild: add automatic updateconfig target

maximilian attems
2006-01-18T19:41:15Z

From: Bastian Blank <waldi@debian.org>

current hack for daily build linux-2.6-git is quite ugly:
yes "n" | make oldconfig

belows target helps to build git snapshots in a more automated way,
setting the new options to their default.

Signed-off-by: maximilian attems <maks@sternwelten.at>

diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index 5760e05..5bf2718 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -23,6 +23,9 @@ oldconfig: $(obj)/conf
silentoldconfig: $(obj)/conf
$< -s arch/$(ARCH)/Kconfig

+updateconfig: $(obj)/conf
+ $< -U arch/$(ARCH)/Kconfig
+
update-po-config: $(obj)/kxgettext
xgettext --default-domain=linux \
--add-comments --keyword=_ --keyword=N_ \
@@ -74,6 +77,7 @@ help:
@echo ' xconfig - Update current config utilising a QT based front-end'
@echo ' gconfig - Update current config utilising a GTK based front-end'
@echo ' oldconfig - Update current config utilising a provided .config as base'
+ @echo ' updateconfig - Update current config in an automated way'
@echo ' randconfig - New config with random answer to all options'
@echo ' defconfig - New config with default answer to all options'
@echo ' allmodconfig - New config selecting modules when possible'
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
index 10eeae5..4e7b6a1 100644
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -24,7 +24,8 @@ enum {
set_yes,
set_mod,
set_no,
- set_random
+ set_random,
+ update_default,
} input_mode = ask_all;
char *defconfig_file;

@@ -117,6 +118,7 @@ static void conf_askvalue(struct symbol
fgets_check_stream(line, 128, stdin);
return;
case set_default:
+ case update_default:
printf("%s\n", def);
return;
default:
@@ -390,6 +392,7 @@ static int conf_choice(struct menu *menu
case set_yes:
case set_mod:
case set_no:
+ case update_default:
cnt = def;
printf("%d\n", cnt);
break;
@@ -544,6 +547,9 @@ int main(int ac, char **av)
input_mode = set_random;
srandom(time(NULL));
break;
+ case 'U':
+ input_mode = update_default;
+ break;
case 'h':
case '?':
printf("%s [-o|-s] config\n", av[0]);
@@ -568,6 +574,7 @@ int main(int ac, char **av)
}
break;
case ask_silent:
+ case update_default:
if (stat(".config", &tmpstat)) {
printf(_("***\n"
"*** You have not yet configured your kernel!\n"