support for nonint_oldconfig
authorMarc Fiuczynski <mef@cs.princeton.edu>
Tue, 3 Apr 2007 00:33:37 +0000 (00:33 +0000)
committerMarc Fiuczynski <mef@cs.princeton.edu>
Tue, 3 Apr 2007 00:33:37 +0000 (00:33 +0000)
scripts/kconfig/Makefile
scripts/kconfig/conf.c

index 5760e05..4b8e437 100644 (file)
@@ -23,6 +23,9 @@ oldconfig: $(obj)/conf
 silentoldconfig: $(obj)/conf
        $< -s arch/$(ARCH)/Kconfig
 
+nonint_oldconfig: $(obj)/conf
+       $< -b arch/$(ARCH)/Kconfig
+
 update-po-config: $(obj)/kxgettext
        xgettext --default-domain=linux \
           --add-comments --keyword=_ --keyword=N_ \
index 10eeae5..0ce7f4c 100644 (file)
@@ -5,6 +5,7 @@
 
 #include <ctype.h>
 #include <stdlib.h>
+#include <stdio.h>
 #include <string.h>
 #include <unistd.h>
 #include <time.h>
@@ -20,6 +21,7 @@ enum {
        ask_all,
        ask_new,
        ask_silent,
+       dont_ask,
        set_default,
        set_yes,
        set_mod,
@@ -36,6 +38,8 @@ static struct menu *rootEntry;
 
 static char nohelp_text[] = N_("Sorry, no help available for this option yet.\n");
 
+static int return_value = 0;
+
 static void strip(char *str)
 {
        char *p = str;
@@ -116,6 +120,12 @@ static void conf_askvalue(struct symbol *sym, const char *def)
                fflush(stdout);
                fgets_check_stream(line, 128, stdin);
                return;
+       case dont_ask:
+               if (!sym_has_value(sym)) {
+                       fprintf(stderr,"CONFIG_%s\n",sym->name);
+                       return_value++;
+               }
+               return;
        case set_default:
                printf("%s\n", def);
                return;
@@ -360,6 +370,10 @@ static int conf_choice(struct menu *menu)
                        printf("?");
                printf("]: ");
                switch (input_mode) {
+               case dont_ask:
+                       cnt = def;
+                       printf("%d\n", cnt);
+                       break;
                case ask_new:
                case ask_silent:
                        if (!is_new) {
@@ -496,7 +510,10 @@ static void check_conf(struct menu *menu)
                        if (!conf_cnt++)
                                printf(_("*\n* Restart config...\n*\n"));
                        rootEntry = menu_get_parent_menu(menu);
-                       conf(rootEntry);
+                       if (input_mode == dont_ask)
+                               fprintf(stderr,"CONFIG_%s\n",sym->name);
+                       else
+                               conf(rootEntry);
                }
        }
 
@@ -515,6 +532,9 @@ int main(int ac, char **av)
                case 'o':
                        input_mode = ask_new;
                        break;
+               case 'b':
+                       input_mode = dont_ask;
+                       break;
                case 's':
                        input_mode = ask_silent;
                        valid_stdin = isatty(0) && isatty(1) && isatty(2);
@@ -579,6 +599,7 @@ int main(int ac, char **av)
                }
        case ask_all:
        case ask_new:
+       case dont_ask:
                conf_read(NULL);
                break;
        case set_no:
@@ -617,10 +638,10 @@ int main(int ac, char **av)
        do {
                conf_cnt = 0;
                check_conf(&rootmenu);
-       } while (conf_cnt);
+       } while ((conf_cnt) && (input_mode != dont_ask));
        if (conf_write(NULL)) {
                fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n"));
                return 1;
        }
-       return 0;
+       return return_value;
 }