All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/15] Kconfig generalization
@ 2010-09-11 15:51 Arnaud Lacombe
  2010-09-11 15:51 ` [PATCH 01/15] kconfig: replace a `switch()' statement by a more flexible `if()' statement Arnaud Lacombe
                   ` (17 more replies)
  0 siblings, 18 replies; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-11 15:51 UTC (permalink / raw)
  To: Sam Ravnborg, Michal Marek; +Cc: linux-kbuild, Arnaud Lacombe

Hi Sam, Michal,

You'll find hereafter the series for kconfig generalization and interfaces
changes with the rest of the kernel.

A quick summary of the serie is:
 - patch 1 -> 3: handles the CONFIG_ prefix, its build time definition and its
mention in help text.
 - patch 4: handles the reference to the 'kernel' keyword in various strings.
 - patch 5: takes care of the "linux" domain name used to get translation
   informations.
 - patch 6 -> 15 handles the mainmenu syntax changes and related.

This series is available in the git repository at:

 git://github.com/lacombar/linux-2.6.git kbuild-generic-v5

Comments welcome !

Thanks in advance,
 - Arnaud

Arnaud Lacombe (15):
  kconfig: replace a `switch()' statement by a more flexible `if()'
    statement
  kconfig: rephrase help text not to mention the internal prefix
  kconfig: allow build-time definition of the internal config prefix
  kconfig: rephrase help texts/comments not to include the package name
  kconfig: allow PACKAGE to be defined on the compiler's command-line
  kconfig: implement the `mainmenu' directive
  kconfig: add a symbol string expansion helper
  kconfig: expand by default the rootmenu's prompt
  kconfig: replace KERNELVERSION usage by the mainmenu's prompt
  kconfig: don't emit warning upon rootmenu's prompt redefinition
  kconfig: constify file name
  kconfig: use the file's name of sourced file
  kconfig: expand file names
  kconfig: regen parser
  kbuild: migrate all arch to the kconfig mainmenu upgrade

 Documentation/kbuild/kconfig-language.txt |    3 +-
 Kconfig                                   |   11 +
 arch/alpha/Kconfig                        |    4 -
 arch/arm/Kconfig                          |    7 -
 arch/avr32/Kconfig                        |    7 -
 arch/blackfin/Kconfig                     |    7 -
 arch/cris/Kconfig                         |    7 -
 arch/frv/Kconfig                          |    6 -
 arch/h8300/Kconfig                        |    7 -
 arch/ia64/Kconfig                         |    7 -
 arch/m32r/Kconfig                         |    7 -
 arch/m68k/Kconfig                         |    6 -
 arch/m68knommu/Kconfig                    |    7 -
 arch/microblaze/Kconfig                   |    5 -
 arch/mips/Kconfig                         |    2 -
 arch/mn10300/Kconfig                      |    9 -
 arch/parisc/Kconfig                       |    7 -
 arch/powerpc/Kconfig                      |    6 -
 arch/s390/Kconfig                         |    7 -
 arch/score/Kconfig                        |    5 -
 arch/sh/Kconfig                           |    7 -
 arch/sparc/Kconfig                        |    6 -
 arch/tile/Kconfig                         |    2 -
 arch/um/Kconfig.common                    |    2 -
 arch/x86/Kconfig                          |    3 -
 arch/xtensa/Kconfig                       |    5 -
 scripts/kconfig/Makefile                  |    2 +-
 scripts/kconfig/conf.c                    |   13 +-
 scripts/kconfig/confdata.c                |   77 ++---
 scripts/kconfig/expr.h                    |    2 +-
 scripts/kconfig/gconf.c                   |    8 +-
 scripts/kconfig/lex.zconf.c_shipped       |    5 +-
 scripts/kconfig/lkc.h                     |    6 +
 scripts/kconfig/lkc_proto.h               |    1 +
 scripts/kconfig/mconf.c                   |   64 ++--
 scripts/kconfig/menu.c                    |    4 +-
 scripts/kconfig/nconf.c                   |   73 ++---
 scripts/kconfig/qconf.cc                  |    6 +-
 scripts/kconfig/symbol.c                  |   49 +++
 scripts/kconfig/util.c                    |    7 +-
 scripts/kconfig/zconf.l                   |    5 +-
 scripts/kconfig/zconf.tab.c_shipped       |  547 +++++++++++++++--------------
 scripts/kconfig/zconf.y                   |   18 +-
 43 files changed, 489 insertions(+), 550 deletions(-)
 create mode 100644 Kconfig

-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 01/15] kconfig: replace a `switch()' statement by a more flexible `if()' statement
  2010-09-11 15:51 [PATCH 00/15] Kconfig generalization Arnaud Lacombe
@ 2010-09-11 15:51 ` Arnaud Lacombe
  2010-09-11 15:51 ` [PATCH 02/15] kconfig: rephrase help text not to mention the internal prefix Arnaud Lacombe
                   ` (16 subsequent siblings)
  17 siblings, 0 replies; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-11 15:51 UTC (permalink / raw)
  To: Sam Ravnborg, Michal Marek; +Cc: linux-kbuild, Arnaud Lacombe

With the upcoming dynamical configuration prefix, we can no longer assume that
the prefix will start by a 'C'. As such, we can no longer hardcode this value in
the `case ...:', so replace the `switch() { ... }' statement by a more flexible
'if () { ... }' statement.

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
---
 scripts/kconfig/confdata.c |   19 +++++--------------
 1 files changed, 5 insertions(+), 14 deletions(-)

diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index dc11d51..d9181de 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -221,8 +221,7 @@ load:
 	while (fgets(line, sizeof(line), in)) {
 		conf_lineno++;
 		sym = NULL;
-		switch (line[0]) {
-		case '#':
+		if (line[0] == '#') {
 			if (memcmp(line + 2, "CONFIG_", 7))
 				continue;
 			p = strchr(line + 9, ' ');
@@ -254,12 +253,7 @@ load:
 			default:
 				;
 			}
-			break;
-		case 'C':
-			if (memcmp(line, "CONFIG_", 7)) {
-				conf_warning("unexpected data");
-				continue;
-			}
+		} else if (memcmp(line, "CONFIG_", 7) == 0) {
 			p = strchr(line + 7, '=');
 			if (!p)
 				continue;
@@ -286,12 +280,9 @@ load:
 			}
 			if (conf_set_sym_val(sym, def, def_flags, p))
 				continue;
-			break;
-		case '\r':
-		case '\n':
-			break;
-		default:
-			conf_warning("unexpected data");
+		} else {
+			if (line[0] != '\r' && line[0] != '\n')
+				conf_warning("unexpected data");
 			continue;
 		}
 		if (sym && sym_is_choice_value(sym)) {
-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH 02/15] kconfig: rephrase help text not to mention the internal prefix
  2010-09-11 15:51 [PATCH 00/15] Kconfig generalization Arnaud Lacombe
  2010-09-11 15:51 ` [PATCH 01/15] kconfig: replace a `switch()' statement by a more flexible `if()' statement Arnaud Lacombe
@ 2010-09-11 15:51 ` Arnaud Lacombe
  2010-09-11 15:51 ` [PATCH 03/15] kconfig: allow build-time definition of the internal config prefix Arnaud Lacombe
                   ` (15 subsequent siblings)
  17 siblings, 0 replies; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-11 15:51 UTC (permalink / raw)
  To: Sam Ravnborg, Michal Marek; +Cc: linux-kbuild, Arnaud Lacombe

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
---
 scripts/kconfig/mconf.c |   10 +++++-----
 scripts/kconfig/nconf.c |   12 ++++++------
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c
index d2f6e05..5c3d0c4 100644
--- a/scripts/kconfig/mconf.c
+++ b/scripts/kconfig/mconf.c
@@ -232,7 +232,7 @@ save_config_help[] = N_(
 	"leave this blank.\n"),
 search_help[] = N_(
 	"\n"
-	"Search for CONFIG_ symbols and display their relations.\n"
+	"Search for symbols and display their relations.\n"
 	"Regular expressions are allowed.\n"
 	"Example: search for \"^FOO\"\n"
 	"Result:\n"
@@ -249,7 +249,7 @@ search_help[] = N_(
 	"Selected by: BAR\n"
 	"-----------------------------------------------------------------\n"
 	"o The line 'Prompt:' shows the text used in the menu structure for\n"
-	"  this CONFIG_ symbol\n"
+	"  this symbol\n"
 	"o The 'Defined at' line tell at what file / line number the symbol\n"
 	"  is defined\n"
 	"o The 'Depends on:' line tell what symbols needs to be defined for\n"
@@ -265,9 +265,9 @@ search_help[] = N_(
 	"Only relevant lines are shown.\n"
 	"\n\n"
 	"Search examples:\n"
-	"Examples: USB	=> find all CONFIG_ symbols containing USB\n"
-	"          ^USB => find all CONFIG_ symbols starting with USB\n"
-	"          USB$ => find all CONFIG_ symbols ending with USB\n"
+	"Examples: USB	=> find all symbols containing USB\n"
+	"          ^USB => find all symbols starting with USB\n"
+	"          USB$ => find all symbols ending with USB\n"
 	"\n");
 
 static int indent;
diff --git a/scripts/kconfig/nconf.c b/scripts/kconfig/nconf.c
index 18a215d..b8a9f37 100644
--- a/scripts/kconfig/nconf.c
+++ b/scripts/kconfig/nconf.c
@@ -217,8 +217,8 @@ save_config_help[] = N_(
 "leave this blank.\n"),
 search_help[] = N_(
 "\n"
-"Search for CONFIG_ symbols and display their relations.\n"
-"Regular expressions are allowed.\n"
+"Search for symbols and display their relations. Regular expressions\n"
+"are allowed.\n"
 "Example: search for \"^FOO\"\n"
 "Result:\n"
 "-----------------------------------------------------------------\n"
@@ -234,7 +234,7 @@ search_help[] = N_(
 "Selected by: BAR\n"
 "-----------------------------------------------------------------\n"
 "o The line 'Prompt:' shows the text used in the menu structure for\n"
-"  this CONFIG_ symbol\n"
+"  this symbol\n"
 "o The 'Defined at' line tell at what file / line number the symbol\n"
 "  is defined\n"
 "o The 'Depends on:' line tell what symbols needs to be defined for\n"
@@ -250,9 +250,9 @@ search_help[] = N_(
 "Only relevant lines are shown.\n"
 "\n\n"
 "Search examples:\n"
-"Examples: USB   = > find all CONFIG_ symbols containing USB\n"
-"          ^USB => find all CONFIG_ symbols starting with USB\n"
-"          USB$ => find all CONFIG_ symbols ending with USB\n"
+"Examples: USB   = > find all symbols containing USB\n"
+"          ^USB => find all symbols starting with USB\n"
+"          USB$ => find all symbols ending with USB\n"
 "\n");
 
 struct mitem {
-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH 03/15] kconfig: allow build-time definition of the internal config prefix
  2010-09-11 15:51 [PATCH 00/15] Kconfig generalization Arnaud Lacombe
  2010-09-11 15:51 ` [PATCH 01/15] kconfig: replace a `switch()' statement by a more flexible `if()' statement Arnaud Lacombe
  2010-09-11 15:51 ` [PATCH 02/15] kconfig: rephrase help text not to mention the internal prefix Arnaud Lacombe
@ 2010-09-11 15:51 ` Arnaud Lacombe
  2010-09-11 15:51 ` [PATCH 04/15] kconfig: rephrase help texts/comments not to include the package name Arnaud Lacombe
                   ` (14 subsequent siblings)
  17 siblings, 0 replies; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-11 15:51 UTC (permalink / raw)
  To: Sam Ravnborg, Michal Marek; +Cc: linux-kbuild, Arnaud Lacombe

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
---
 scripts/kconfig/conf.c     |    2 +-
 scripts/kconfig/confdata.c |   48 ++++++++++++++++++++++++-------------------
 scripts/kconfig/lkc.h      |    3 ++
 scripts/kconfig/mconf.c    |   10 ++++----
 scripts/kconfig/menu.c     |    2 +-
 scripts/kconfig/nconf.c    |   12 +++++-----
 6 files changed, 43 insertions(+), 34 deletions(-)

diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
index 6968f5b..b62d020 100644
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -425,7 +425,7 @@ static void check_conf(struct menu *menu)
 		    (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)) {
 			if (input_mode == listnewconfig) {
 				if (sym->name && !sym_is_choice_value(sym)) {
-					printf("CONFIG_%s\n", sym->name);
+					printf("%s%s\n", CONFIG_, sym->name);
 				}
 			} else if (input_mode != oldnoconfig) {
 				if (!conf_cnt++)
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index d9181de..9f3c889 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -222,22 +222,22 @@ load:
 		conf_lineno++;
 		sym = NULL;
 		if (line[0] == '#') {
-			if (memcmp(line + 2, "CONFIG_", 7))
+			if (memcmp(line + 2, CONFIG_, strlen(CONFIG_)))
 				continue;
-			p = strchr(line + 9, ' ');
+			p = strchr(line + 2 + strlen(CONFIG_), ' ');
 			if (!p)
 				continue;
 			*p++ = 0;
 			if (strncmp(p, "is not set", 10))
 				continue;
 			if (def == S_DEF_USER) {
-				sym = sym_find(line + 9);
+				sym = sym_find(line + 2 + strlen(CONFIG_));
 				if (!sym) {
 					sym_add_change_count(1);
 					break;
 				}
 			} else {
-				sym = sym_lookup(line + 9, 0);
+				sym = sym_lookup(line + 2 + strlen(CONFIG_), 0);
 				if (sym->type == S_UNKNOWN)
 					sym->type = S_BOOLEAN;
 			}
@@ -253,8 +253,8 @@ load:
 			default:
 				;
 			}
-		} else if (memcmp(line, "CONFIG_", 7) == 0) {
-			p = strchr(line + 7, '=');
+		} else if (memcmp(line, CONFIG_, strlen(CONFIG_)) == 0) {
+			p = strchr(line + strlen(CONFIG_), '=');
 			if (!p)
 				continue;
 			*p++ = 0;
@@ -265,13 +265,13 @@ load:
 					*p2 = 0;
 			}
 			if (def == S_DEF_USER) {
-				sym = sym_find(line + 7);
+				sym = sym_find(line + strlen(CONFIG_));
 				if (!sym) {
 					sym_add_change_count(1);
 					break;
 				}
 			} else {
-				sym = sym_lookup(line + 7, 0);
+				sym = sym_lookup(line + strlen(CONFIG_), 0);
 				if (sym->type == S_UNKNOWN)
 					sym->type = S_OTHER;
 			}
@@ -397,9 +397,9 @@ static void conf_write_string(bool headerfile, const char *name,
 {
 	int l;
 	if (headerfile)
-		fprintf(out, "#define CONFIG_%s \"", name);
+		fprintf(out, "#define %s%s \"", CONFIG_, name);
 	else
-		fprintf(out, "CONFIG_%s=\"", name);
+		fprintf(out, "%s%s=\"", CONFIG_, name);
 
 	while (1) {
 		l = strcspn(str, "\"\\");
@@ -425,13 +425,14 @@ static void conf_write_symbol(struct symbol *sym, enum symbol_type type,
 		switch (sym_get_tristate_value(sym)) {
 		case no:
 			if (write_no)
-				fprintf(out, "# CONFIG_%s is not set\n", sym->name);
+				fprintf(out, "# %s%s is not set\n",
+				    CONFIG_, sym->name);
 			break;
 		case mod:
-			fprintf(out, "CONFIG_%s=m\n", sym->name);
+			fprintf(out, "%s%s=m\n", CONFIG_, sym->name);
 			break;
 		case yes:
-			fprintf(out, "CONFIG_%s=y\n", sym->name);
+			fprintf(out, "%s%s=y\n", CONFIG_, sym->name);
 			break;
 		}
 		break;
@@ -441,7 +442,7 @@ static void conf_write_symbol(struct symbol *sym, enum symbol_type type,
 	case S_HEX:
 	case S_INT:
 		str = sym_get_string_value(sym);
-		fprintf(out, "CONFIG_%s=%s\n", sym->name, str);
+		fprintf(out, "%s%s=%s\n", CONFIG_, sym->name, str);
 		break;
 	case S_OTHER:
 	case S_UNKNOWN:
@@ -832,14 +833,17 @@ int conf_write_autoconf(void)
 			case no:
 				break;
 			case mod:
-				fprintf(tristate, "CONFIG_%s=M\n", sym->name);
-				fprintf(out_h, "#define CONFIG_%s_MODULE 1\n", sym->name);
+				fprintf(tristate, "%s%s=M\n",
+				    CONFIG_, sym->name);
+				fprintf(out_h, "#define %s%s_MODULE 1\n",
+				    CONFIG_, sym->name);
 				break;
 			case yes:
 				if (sym->type == S_TRISTATE)
-					fprintf(tristate, "CONFIG_%s=Y\n",
-							sym->name);
-				fprintf(out_h, "#define CONFIG_%s 1\n", sym->name);
+					fprintf(tristate,"%s%s=Y\n",
+					    CONFIG_, sym->name);
+				fprintf(out_h, "#define %s%s 1\n",
+				    CONFIG_, sym->name);
 				break;
 			}
 			break;
@@ -849,12 +853,14 @@ int conf_write_autoconf(void)
 		case S_HEX:
 			str = sym_get_string_value(sym);
 			if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) {
-				fprintf(out_h, "#define CONFIG_%s 0x%s\n", sym->name, str);
+				fprintf(out_h, "#define %s%s 0x%s\n",
+				    CONFIG_, sym->name, str);
 				break;
 			}
 		case S_INT:
 			str = sym_get_string_value(sym);
-			fprintf(out_h, "#define CONFIG_%s %s\n", sym->name, str);
+			fprintf(out_h, "#define %s%s %s\n",
+			    CONFIG_, sym->name, str);
 			break;
 		default:
 			break;
diff --git a/scripts/kconfig/lkc.h b/scripts/kconfig/lkc.h
index bdf71bd..1b966bf 100644
--- a/scripts/kconfig/lkc.h
+++ b/scripts/kconfig/lkc.h
@@ -37,6 +37,9 @@ extern "C" {
 #define _(text) gettext(text)
 #define N_(text) (text)
 
+#ifndef CONFIG_
+#define CONFIG_ "CONFIG_"
+#endif
 
 #define TF_COMMAND	0x0001
 #define TF_PARAM	0x0002
diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c
index 5c3d0c4..17ba222 100644
--- a/scripts/kconfig/mconf.c
+++ b/scripts/kconfig/mconf.c
@@ -316,8 +316,8 @@ static void search_conf(void)
 again:
 	dialog_clear();
 	dres = dialog_inputbox(_("Search Configuration Parameter"),
-			      _("Enter CONFIG_ (sub)string to search for "
-				"(with or without \"CONFIG\")"),
+			      _("Enter " CONFIG_ " (sub)string to search for "
+				"(with or without \"" CONFIG_ "\")"),
 			      10, 75, "");
 	switch (dres) {
 	case 0:
@@ -329,10 +329,10 @@ again:
 		return;
 	}
 
-	/* strip CONFIG_ if necessary */
+	/* strip the prefix if necessary */
 	dialog_input = dialog_input_result;
-	if (strncasecmp(dialog_input_result, "CONFIG_", 7) == 0)
-		dialog_input += 7;
+	if (strncasecmp(dialog_input_result, CONFIG_, strlen(CONFIG_)) == 0)
+		dialog_input += strlen(CONFIG_);
 
 	sym_arr = sym_re_search(dialog_input);
 	res = get_relations_str(sym_arr);
diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
index 4fb5902..64da30c 100644
--- a/scripts/kconfig/menu.c
+++ b/scripts/kconfig/menu.c
@@ -566,7 +566,7 @@ void menu_get_ext_help(struct menu *menu, struct gstr *help)
 
 	if (menu_has_help(menu)) {
 		if (sym->name) {
-			str_printf(help, "CONFIG_%s:\n\n", sym->name);
+			str_printf(help, "%s%s:\n\n", CONFIG_, sym->name);
 			str_append(help, _(menu_get_help(menu)));
 			str_append(help, "\n");
 		}
diff --git a/scripts/kconfig/nconf.c b/scripts/kconfig/nconf.c
index b8a9f37..da5e45d 100644
--- a/scripts/kconfig/nconf.c
+++ b/scripts/kconfig/nconf.c
@@ -744,8 +744,8 @@ static void search_conf(void)
 again:
 	dres = dialog_inputbox(main_window,
 			_("Search Configuration Parameter"),
-			_("Enter CONFIG_ (sub)string to search for "
-				"(with or without \"CONFIG\")"),
+			_("Enter " CONFIG_ " (sub)string to search for "
+				"(with or without \"" CONFIG_ "\")"),
 			"", dialog_input_result, 99);
 	switch (dres) {
 	case 0:
@@ -758,10 +758,10 @@ again:
 		return;
 	}
 
-	/* strip CONFIG_ if necessary */
+	/* strip the prefix if necessary */
 	dialog_input = dialog_input_result;
-	if (strncasecmp(dialog_input_result, "CONFIG_", 7) == 0)
-		dialog_input += 7;
+	if (strncasecmp(dialog_input_result, CONFIG_, strlen(CONFIG_)) == 0)
+		dialog_input += strlen(CONFIG_);
 
 	sym_arr = sym_re_search(dialog_input);
 	res = get_relations_str(sym_arr);
@@ -1261,7 +1261,7 @@ static void show_help(struct menu *menu)
 
 	if (menu && menu->sym && menu_has_help(menu)) {
 		if (menu->sym->name) {
-			str_printf(&help, "CONFIG_%s:\n\n", menu->sym->name);
+			str_printf(&help, "%s%s:\n\n", CONFIG_, menu->sym->name);
 			str_append(&help, _(menu_get_help(menu)));
 			str_append(&help, "\n");
 			get_symbol_str(&help, menu->sym);
-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH 04/15] kconfig: rephrase help texts/comments not to include the package name
  2010-09-11 15:51 [PATCH 00/15] Kconfig generalization Arnaud Lacombe
                   ` (2 preceding siblings ...)
  2010-09-11 15:51 ` [PATCH 03/15] kconfig: allow build-time definition of the internal config prefix Arnaud Lacombe
@ 2010-09-11 15:51 ` Arnaud Lacombe
  2010-09-11 20:22   ` Randy Dunlap
  2010-09-17 21:59   ` Michal Marek
  2010-09-11 15:51 ` [PATCH 05/15] kconfig: allow PACKAGE to be defined on the compiler's command-line Arnaud Lacombe
                   ` (13 subsequent siblings)
  17 siblings, 2 replies; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-11 15:51 UTC (permalink / raw)
  To: Sam Ravnborg, Michal Marek; +Cc: linux-kbuild, Arnaud Lacombe

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
---
 scripts/kconfig/conf.c   |   11 +++++------
 scripts/kconfig/gconf.c  |    3 +--
 scripts/kconfig/mconf.c  |   38 ++++++++++++++++++--------------------
 scripts/kconfig/nconf.c  |   43 +++++++++++++++++++------------------------
 scripts/kconfig/qconf.cc |    2 +-
 5 files changed, 44 insertions(+), 53 deletions(-)

diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
index b62d020..5459a38 100644
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -508,8 +508,7 @@ int main(int ac, char **av)
 		name = conf_get_configname();
 		if (stat(name, &tmpstat)) {
 			fprintf(stderr, _("***\n"
-				"*** You have not yet configured your kernel!\n"
-				"*** (missing kernel config file \"%s\")\n"
+				"*** Configuration file \"%s\" not found!\n"
 				"***\n"
 				"*** Please run some configurator (e.g. \"make oldconfig\" or\n"
 				"*** \"make menuconfig\" or \"make xconfig\").\n"
@@ -571,7 +570,7 @@ int main(int ac, char **av)
 			name = getenv("KCONFIG_NOSILENTUPDATE");
 			if (name && *name) {
 				fprintf(stderr,
-					_("\n*** Kernel configuration requires explicit update.\n\n"));
+					_("\n*** The configuration requires explicit update.\n\n"));
 				return 1;
 			}
 		}
@@ -623,11 +622,11 @@ int main(int ac, char **av)
 		 * All other commands are only used to generate a config.
 		 */
 		if (conf_get_changed() && conf_write(NULL)) {
-			fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n"));
+			fprintf(stderr, _("\n*** Error during writing of the configuration.\n\n"));
 			exit(1);
 		}
 		if (conf_write_autoconf()) {
-			fprintf(stderr, _("\n*** Error during update of the kernel configuration.\n\n"));
+			fprintf(stderr, _("\n*** Error during update of the configuration.\n\n"));
 			return 1;
 		}
 	} else if (input_mode == savedefconfig) {
@@ -638,7 +637,7 @@ int main(int ac, char **av)
 		}
 	} else if (input_mode != listnewconfig) {
 		if (conf_write(NULL)) {
-			fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n"));
+			fprintf(stderr, _("\n*** Error during writing of the configuration.\n\n"));
 			exit(1);
 		}
 	}
diff --git a/scripts/kconfig/gconf.c b/scripts/kconfig/gconf.c
index d669882..1636213 100644
--- a/scripts/kconfig/gconf.c
+++ b/scripts/kconfig/gconf.c
@@ -671,8 +671,7 @@ void on_introduction1_activate(GtkMenuItem * menuitem, gpointer user_data)
 {
 	GtkWidget *dialog;
 	const gchar *intro_text = _(
-	    "Welcome to gkc, the GTK+ graphical kernel configuration tool\n"
-	    "for Linux.\n"
+	    "Welcome to gkc, the GTK+ graphical configuration tool\n"
 	    "For each option, a blank box indicates the feature is disabled, a\n"
 	    "check indicates it is enabled, and a dot indicates that it is to\n"
 	    "be compiled as a module.  Clicking on the box will cycle through the three states.\n"
diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c
index 17ba222..037443b 100644
--- a/scripts/kconfig/mconf.c
+++ b/scripts/kconfig/mconf.c
@@ -25,11 +25,9 @@
 static const char mconf_readme[] = N_(
 "Overview\n"
 "--------\n"
-"Some kernel features may be built directly into the kernel.\n"
-"Some may be made into loadable runtime modules.  Some features\n"
-"may be completely removed altogether.  There are also certain\n"
-"kernel parameters which are not really features, but must be\n"
-"entered in as decimal or hexadecimal numbers or possibly text.\n"
+"This interface let you select features and parameters for the build\n"
+"Features can either be built-in, modularized, or ignored. Parameters\n"
+"must be entered in as decimal or hexadecimal numbers or text.\n"
 "\n"
 "Menu items beginning with following braces represent features that\n"
 "  [ ] can be built in or removed\n"
@@ -117,7 +115,7 @@ static const char mconf_readme[] = N_(
 "-----------------------------\n"
 "Menuconfig supports the use of alternate configuration files for\n"
 "those who, for various reasons, find it necessary to switch\n"
-"between different kernel configurations.\n"
+"between different configurations.\n"
 "\n"
 "At the end of the main menu you will find two options.  One is\n"
 "for saving the current configuration to a file of your choosing.\n"
@@ -150,9 +148,9 @@ static const char mconf_readme[] = N_(
 "\n"
 "Optional personality available\n"
 "------------------------------\n"
-"If you prefer to have all of the kernel options listed in a single\n"
-"menu, rather than the default multimenu hierarchy, run the menuconfig\n"
-"with MENUCONFIG_MODE environment variable set to single_menu. Example:\n"
+"If you prefer to have all of the options listed in a single menu, rather\n"
+"than the default multimenu hierarchy, run the menuconfig with\n"
+"MENUCONFIG_MODE environment variable set to single_menu. Example:\n"
 "\n"
 "make MENUCONFIG_MODE=single_menu menuconfig\n"
 "\n"
@@ -207,12 +205,12 @@ load_config_text[] = N_(
 	"last retrieved.  Leave blank to abort."),
 load_config_help[] = N_(
 	"\n"
-	"For various reasons, one may wish to keep several different kernel\n"
+	"For various reasons, one may wish to keep several different\n"
 	"configurations available on a single machine.\n"
 	"\n"
 	"If you have saved a previous configuration in a file other than the\n"
-	"kernel's default, entering the name of the file here will allow you\n"
-	"to modify that configuration.\n"
+	"default one, entering its name here will allow you to modify that\n"
+	"configuration.\n"
 	"\n"
 	"If you are uncertain, then you have probably never used alternate\n"
 	"configuration files. You should therefore leave this blank to abort.\n"),
@@ -221,8 +219,8 @@ save_config_text[] = N_(
 	"as an alternate.  Leave blank to abort."),
 save_config_help[] = N_(
 	"\n"
-	"For various reasons, one may wish to keep different kernel\n"
-	"configurations available on a single machine.\n"
+	"For various reasons, one may wish to keep different configurations\n"
+	"available on a single machine.\n"
 	"\n"
 	"Entering a file name here will allow you to later retrieve, modify\n"
 	"and use the current configuration as an alternate to whatever\n"
@@ -834,7 +832,7 @@ int main(int ac, char **av)
 		if (conf_get_changed())
 			res = dialog_yesno(NULL,
 					   _("Do you wish to save your "
-					     "new kernel configuration?\n"
+					     "new configuration?\n"
 					     "<ESC><ESC> to continue."),
 					   6, 60);
 		else
@@ -846,20 +844,20 @@ int main(int ac, char **av)
 	case 0:
 		if (conf_write(filename)) {
 			fprintf(stderr, _("\n\n"
-				"Error during writing of the kernel configuration.\n"
-				"Your kernel configuration changes were NOT saved."
+				"Error while writing of the configuration.\n"
+				"Your configuration changes were NOT saved."
 				"\n\n"));
 			return 1;
 		}
 	case -1:
 		printf(_("\n\n"
-			"*** End of Linux kernel configuration.\n"
-			"*** Execute 'make' to build the kernel or try 'make help'."
+			"*** End of the configuration.\n"
+			"*** Execute 'make' to start the build or try 'make help'."
 			"\n\n"));
 		break;
 	default:
 		fprintf(stderr, _("\n\n"
-			"Your kernel configuration changes were NOT saved."
+			"Your configuration changes were NOT saved."
 			"\n\n"));
 	}
 
diff --git a/scripts/kconfig/nconf.c b/scripts/kconfig/nconf.c
index da5e45d..6cc3a6e 100644
--- a/scripts/kconfig/nconf.c
+++ b/scripts/kconfig/nconf.c
@@ -15,11 +15,9 @@
 static const char nconf_readme[] = N_(
 "Overview\n"
 "--------\n"
-"Some kernel features may be built directly into the kernel.\n"
-"Some may be made into loadable runtime modules.  Some features\n"
-"may be completely removed altogether.  There are also certain\n"
-"kernel parameters which are not really features, but must be\n"
-"entered in as decimal or hexadecimal numbers or possibly text.\n"
+"This interface let you select features and parameters for the build\n"
+"Features can either be built-in, modularized, or ignored. Parameters\n"
+"must be entered in as decimal or hexadecimal numbers or text.\n"
 "\n"
 "Menu items beginning with following braces represent features that\n"
 "  [ ] can be built in or removed\n"
@@ -95,7 +93,7 @@ static const char nconf_readme[] = N_(
 "-----------------------------\n"
 "nconfig supports the use of alternate configuration files for\n"
 "those who, for various reasons, find it necessary to switch\n"
-"between different kernel configurations.\n"
+"between different configurations.\n"
 "\n"
 "At the end of the main menu you will find two options.  One is\n"
 "for saving the current configuration to a file of your choosing.\n"
@@ -128,9 +126,9 @@ static const char nconf_readme[] = N_(
 "\n"
 "Optional personality available\n"
 "------------------------------\n"
-"If you prefer to have all of the kernel options listed in a single\n"
-"menu, rather than the default multimenu hierarchy, run the nconfig\n"
-"with NCONFIG_MODE environment variable set to single_menu. Example:\n"
+"If you prefer to have all of the options listed in a single menu, rather\n"
+"than the default multimenu hierarchy, run the menuconfig with\n"
+"NCONFIG_MODE environment variable set to single_menu. Example:\n"
 "\n"
 "make NCONFIG_MODE=single_menu nconfig\n"
 "\n"
@@ -185,19 +183,19 @@ setmod_text[] = N_(
 "has been configured as a module.\n"
 "As a result, this feature will be built as a module."),
 nohelp_text[] = N_(
-"There is no help available for this kernel option.\n"),
+"There is no help available for this option.\n"),
 load_config_text[] = N_(
 "Enter the name of the configuration file you wish to load.\n"
 "Accept the name shown to restore the configuration you\n"
 "last retrieved.  Leave blank to abort."),
 load_config_help[] = N_(
 "\n"
-"For various reasons, one may wish to keep several different kernel\n"
+"For various reasons, one may wish to keep several different\n"
 "configurations available on a single machine.\n"
 "\n"
 "If you have saved a previous configuration in a file other than the\n"
-"kernel's default, entering the name of the file here will allow you\n"
-"to modify that configuration.\n"
+"default one, entering its name here will allow you to modify that\n"
+"configuration.\n"
 "\n"
 "If you are uncertain, then you have probably never used alternate\n"
 "configuration files.  You should therefor leave this blank to abort.\n"),
@@ -206,8 +204,8 @@ save_config_text[] = N_(
 "as an alternate.  Leave blank to abort."),
 save_config_help[] = N_(
 "\n"
-"For various reasons, one may wish to keep different kernel\n"
-"configurations available on a single machine.\n"
+"For various reasons, one may wish to keep different configurations\n"
+"available on a single machine.\n"
 "\n"
 "Entering a file name here will allow you to later retrieve, modify\n"
 "and use the current configuration as an alternate to whatever\n"
@@ -681,8 +679,7 @@ static int do_exit(void)
 		return 0;
 	}
 	res = btn_dialog(main_window,
-			_("Do you wish to save your "
-				"new kernel configuration?\n"
+			_("Do you wish to save your new configuration?\n"
 				"<ESC> to cancel and resume nconfig."),
 			2,
 			"   <save>   ",
@@ -701,18 +698,16 @@ static int do_exit(void)
 		if (res)
 			btn_dialog(
 				main_window,
-				_("Error during writing of the kernel "
-				  "configuration.\n"
-				  "Your kernel configuration "
-				  "changes were NOT saved."),
+				_("Error during writing of configuration.\n"
+				  "Your configuration changes were NOT saved."),
 				  1,
 				  "<OK>");
 		else {
 			char buf[1024];
 			snprintf(buf, 1024,
 				_("Configuration written to %s\n"
-				  "End of Linux kernel configuration.\n"
-				  "Execute 'make' to build the kernel or try"
+				  "End of the configuration.\n":
+				  "Execute 'make' to start the build or try"
 				  " 'make help'."), filename);
 			btn_dialog(
 				main_window,
@@ -724,7 +719,7 @@ static int do_exit(void)
 	default:
 		btn_dialog(
 			main_window,
-			_("Your kernel configuration changes were NOT saved."),
+			_("Your configuration changes were NOT saved."),
 			1,
 			"<OK>");
 		break;
diff --git a/scripts/kconfig/qconf.cc b/scripts/kconfig/qconf.cc
index a04e451..fe18f7e 100644
--- a/scripts/kconfig/qconf.cc
+++ b/scripts/kconfig/qconf.cc
@@ -1655,7 +1655,7 @@ void ConfigMainWindow::closeEvent(QCloseEvent* e)
 
 void ConfigMainWindow::showIntro(void)
 {
-	static const QString str = _("Welcome to the qconf graphical kernel configuration tool for Linux.\n\n"
+	static const QString str = _("Welcome to the qconf graphical configuration tool.\n\n"
 		"For each option, a blank box indicates the feature is disabled, a check\n"
 		"indicates it is enabled, and a dot indicates that it is to be compiled\n"
 		"as a module.  Clicking on the box will cycle through the three states.\n\n"
-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH 05/15] kconfig: allow PACKAGE to be defined on the compiler's command-line
  2010-09-11 15:51 [PATCH 00/15] Kconfig generalization Arnaud Lacombe
                   ` (3 preceding siblings ...)
  2010-09-11 15:51 ` [PATCH 04/15] kconfig: rephrase help texts/comments not to include the package name Arnaud Lacombe
@ 2010-09-11 15:51 ` Arnaud Lacombe
  2010-09-11 15:51 ` [PATCH 06/15] kconfig: implement the `mainmenu' directive Arnaud Lacombe
                   ` (12 subsequent siblings)
  17 siblings, 0 replies; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-11 15:51 UTC (permalink / raw)
  To: Sam Ravnborg, Michal Marek; +Cc: linux-kbuild, Arnaud Lacombe

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
---
 scripts/kconfig/lkc.h |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/scripts/kconfig/lkc.h b/scripts/kconfig/lkc.h
index 1b966bf..5d5f187 100644
--- a/scripts/kconfig/lkc.h
+++ b/scripts/kconfig/lkc.h
@@ -31,7 +31,10 @@ extern "C" {
 
 #define SRCTREE "srctree"
 
+#ifndef PACKAGE
 #define PACKAGE "linux"
+#endif
+
 #define LOCALEDIR "/usr/share/locale"
 
 #define _(text) gettext(text)
-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH 06/15] kconfig: implement the `mainmenu' directive
  2010-09-11 15:51 [PATCH 00/15] Kconfig generalization Arnaud Lacombe
                   ` (4 preceding siblings ...)
  2010-09-11 15:51 ` [PATCH 05/15] kconfig: allow PACKAGE to be defined on the compiler's command-line Arnaud Lacombe
@ 2010-09-11 15:51 ` Arnaud Lacombe
  2010-09-19  9:42   ` Sam Ravnborg
  2010-09-11 15:51 ` [PATCH 07/15] kconfig: add a symbol string expansion helper Arnaud Lacombe
                   ` (11 subsequent siblings)
  17 siblings, 1 reply; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-11 15:51 UTC (permalink / raw)
  To: Sam Ravnborg, Michal Marek; +Cc: linux-kbuild, Arnaud Lacombe

If specified, the directive must be placed at the top of the Kconfig file.

We need to change the grammar to make the mainmenu directive set the
`rootmenu' prompt. This reflect how menu_add_prompt() works internally, ie.
set the prompt of the `current_entry', pointing originally to `rootmenu'.

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
---
 Documentation/kbuild/kconfig-language.txt |    3 ++-
 scripts/kconfig/zconf.y                   |   14 +++++++++++---
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/Documentation/kbuild/kconfig-language.txt b/Documentation/kbuild/kconfig-language.txt
index b472e4e..2fe93ca 100644
--- a/Documentation/kbuild/kconfig-language.txt
+++ b/Documentation/kbuild/kconfig-language.txt
@@ -322,7 +322,8 @@ mainmenu:
 	"mainmenu" <prompt>
 
 This sets the config program's title bar if the config program chooses
-to use it.
+to use it. It should be placed at the top of the configuration, before any
+other statement.
 
 
 Kconfig hints
diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y
index 23dfd3b..e9b14efd 100644
--- a/scripts/kconfig/zconf.y
+++ b/scripts/kconfig/zconf.y
@@ -36,7 +36,7 @@ static struct menu *current_menu, *current_entry;
 #define YYERROR_VERBOSE
 #endif
 %}
-%expect 26
+%expect 28
 
 %union
 {
@@ -104,14 +104,15 @@ static struct menu *current_menu, *current_entry;
 %}
 
 %%
-input: stmt_list;
+input: nl start | start;
+
+start: mainmenu_stmt stmt_list | stmt_list;
 
 stmt_list:
 	  /* empty */
 	| stmt_list common_stmt
 	| stmt_list choice_stmt
 	| stmt_list menu_stmt
-	| stmt_list T_MAINMENU prompt nl
 	| stmt_list end			{ zconf_error("unexpected end statement"); }
 	| stmt_list T_WORD error T_EOL	{ zconf_error("unknown statement \"%s\"", $2); }
 	| stmt_list option_name error T_EOL
@@ -342,6 +343,13 @@ if_block:
 	| if_block choice_stmt
 ;
 
+/* mainmenu entry */
+
+mainmenu_stmt: T_MAINMENU prompt nl
+{
+	menu_add_prompt(P_MENU, $2, NULL);
+};
+
 /* menu entry */
 
 menu: T_MENU prompt T_EOL
-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH 07/15] kconfig: add a symbol string expansion helper
  2010-09-11 15:51 [PATCH 00/15] Kconfig generalization Arnaud Lacombe
                   ` (5 preceding siblings ...)
  2010-09-11 15:51 ` [PATCH 06/15] kconfig: implement the `mainmenu' directive Arnaud Lacombe
@ 2010-09-11 15:51 ` Arnaud Lacombe
  2010-09-11 15:51 ` [PATCH 08/15] kconfig: expand by default the rootmenu's prompt Arnaud Lacombe
                   ` (10 subsequent siblings)
  17 siblings, 0 replies; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-11 15:51 UTC (permalink / raw)
  To: Sam Ravnborg, Michal Marek; +Cc: linux-kbuild, Arnaud Lacombe

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
---
 scripts/kconfig/lkc_proto.h |    1 +
 scripts/kconfig/symbol.c    |   49 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 50 insertions(+), 0 deletions(-)

diff --git a/scripts/kconfig/lkc_proto.h b/scripts/kconfig/lkc_proto.h
index 9a948c9..4531bad 100644
--- a/scripts/kconfig/lkc_proto.h
+++ b/scripts/kconfig/lkc_proto.h
@@ -28,6 +28,7 @@ P(symbol_hash,struct symbol *,[SYMBOL_HASHSIZE]);
 
 P(sym_lookup,struct symbol *,(const char *name, int flags));
 P(sym_find,struct symbol *,(const char *name));
+P(sym_expand_string_value,const char *,(const char *in));
 P(sym_re_search,struct symbol **,(const char *pattern));
 P(sym_type_name,const char *,(enum symbol_type type));
 P(sym_calc_value,void,(struct symbol *sym));
diff --git a/scripts/kconfig/symbol.c b/scripts/kconfig/symbol.c
index 943712c..dc5dcf2 100644
--- a/scripts/kconfig/symbol.c
+++ b/scripts/kconfig/symbol.c
@@ -840,6 +840,55 @@ struct symbol *sym_find(const char *name)
 	return symbol;
 }
 
+/*
+ * Expand symbol's names embedded in the string given in argument. Symbols'
+ * name to be expanded shall be prefixed by a '$'. Unknown symbol expands to
+ * the empty string.
+ */
+const char *sym_expand_string_value(const char *in)
+{
+	const char *src;
+	char *res;
+	size_t reslen;
+
+	reslen = strlen(in) + 1;
+	res = malloc(reslen);
+	res[0] = '\0';
+
+	while ((src = strchr(in, '$'))) {
+		char *p, name[SYMBOL_MAXLENGTH];
+		const char *symval = "";
+		struct symbol *sym;
+		size_t newlen;
+
+		strncat(res, in, src - in);
+		src++;
+
+		p = name;
+		while (isalnum(*src) || *src == '_')
+			*p++ = *src++;
+		*p = '\0';
+
+		sym = sym_find(name);
+		if (sym != NULL) {
+			sym_calc_value(sym);
+			symval = sym_get_string_value(sym);
+		}
+
+		newlen = strlen(res) + strlen(symval) + strlen(src);
+		if (newlen > reslen) {
+			reslen = newlen;
+			realloc(res, reslen);
+		}
+
+		strcat(res, symval);
+		in = src;
+	}
+	strcat(res, in);
+
+	return res;
+}
+
 struct symbol **sym_re_search(const char *pattern)
 {
 	struct symbol *sym, **sym_arr = NULL;
-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH 08/15] kconfig: expand by default the rootmenu's prompt
  2010-09-11 15:51 [PATCH 00/15] Kconfig generalization Arnaud Lacombe
                   ` (6 preceding siblings ...)
  2010-09-11 15:51 ` [PATCH 07/15] kconfig: add a symbol string expansion helper Arnaud Lacombe
@ 2010-09-11 15:51 ` Arnaud Lacombe
  2010-09-11 15:57   ` Arnaud Lacombe
  2010-09-11 15:51 ` [PATCH 09/15] kconfig: replace KERNELVERSION usage by the mainmenu's prompt Arnaud Lacombe
                   ` (9 subsequent siblings)
  17 siblings, 1 reply; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-11 15:51 UTC (permalink / raw)
  To: Sam Ravnborg, Michal Marek; +Cc: linux-kbuild, Arnaud Lacombe

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
---
 scripts/kconfig/zconf.y |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y
index e9b14efd..c95e67e 100644
--- a/scripts/kconfig/zconf.y
+++ b/scripts/kconfig/zconf.y
@@ -502,6 +502,10 @@ void conf_parse(const char *name)
 		prop = prop_alloc(P_DEFAULT, modules_sym);
 		prop->expr = expr_alloc_symbol(sym_lookup("MODULES", 0));
 	}
+
+	rootmenu.prompt->text = strdup(_(rootmenu.prompt->text));
+	rootmenu.prompt->text = sym_expand_string_value(rootmenu.prompt->text);
+
 	menu_finalize(&rootmenu);
 	for_all_symbols(i, sym) {
 		if (sym_check_deps(sym))
-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH 09/15] kconfig: replace KERNELVERSION usage by the mainmenu's prompt
  2010-09-11 15:51 [PATCH 00/15] Kconfig generalization Arnaud Lacombe
                   ` (7 preceding siblings ...)
  2010-09-11 15:51 ` [PATCH 08/15] kconfig: expand by default the rootmenu's prompt Arnaud Lacombe
@ 2010-09-11 15:51 ` Arnaud Lacombe
  2010-09-11 16:05   ` Arnaud Lacombe
                     ` (2 more replies)
  2010-09-11 15:51 ` [PATCH 10/15] kconfig: don't emit warning upon rootmenu's prompt redefinition Arnaud Lacombe
                   ` (8 subsequent siblings)
  17 siblings, 3 replies; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-11 15:51 UTC (permalink / raw)
  To: Sam Ravnborg, Michal Marek; +Cc: linux-kbuild, Arnaud Lacombe

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
---
 scripts/kconfig/confdata.c |   12 ++++--------
 scripts/kconfig/gconf.c    |    5 +----
 scripts/kconfig/mconf.c    |    6 +-----
 scripts/kconfig/nconf.c    |    6 +-----
 scripts/kconfig/qconf.cc   |    4 ++--
 5 files changed, 9 insertions(+), 24 deletions(-)

diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index 9f3c889..fbe571a 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -574,8 +574,6 @@ int conf_write(const char *name)
 	if (!out)
 		return 1;
 
-	sym = sym_lookup("KERNELVERSION", 0);
-	sym_calc_value(sym);
 	time(&now);
 	env = getenv("KCONFIG_NOTIMESTAMP");
 	if (env && *env)
@@ -583,10 +581,10 @@ int conf_write(const char *name)
 
 	fprintf(out, _("#\n"
 		       "# Automatically generated make config: don't edit\n"
-		       "# Linux kernel version: %s\n"
+		       "# %s\n"
 		       "%s%s"
 		       "#\n"),
-		     sym_get_string_value(sym),
+		     rootmenu.prompt->text,
 		     use_timestamp ? "# " : "",
 		     use_timestamp ? ctime(&now) : "");
 
@@ -797,15 +795,13 @@ int conf_write_autoconf(void)
 		return 1;
 	}
 
-	sym = sym_lookup("KERNELVERSION", 0);
-	sym_calc_value(sym);
 	time(&now);
 	fprintf(out, "#\n"
 		     "# Automatically generated make config: don't edit\n"
-		     "# Linux kernel version: %s\n"
+		     "# %s\n"
 		     "# %s"
 		     "#\n",
-		     sym_get_string_value(sym), ctime(&now));
+		     rootmenu.prompt->text, ctime(&now));
 	fprintf(tristate, "#\n"
 			  "# Automatically generated - do not edit\n"
 			  "\n");
diff --git a/scripts/kconfig/gconf.c b/scripts/kconfig/gconf.c
index 1636213..7d48a51 100644
--- a/scripts/kconfig/gconf.c
+++ b/scripts/kconfig/gconf.c
@@ -133,7 +133,6 @@ void init_main_window(const gchar * glade_file)
 	GladeXML *xml;
 	GtkWidget *widget;
 	GtkTextBuffer *txtbuf;
-	char title[256];
 	GtkStyle *style;
 
 	xml = glade_xml_new(glade_file, "window1", NULL);
@@ -210,9 +209,7 @@ void init_main_window(const gchar * glade_file)
 					  /*"style", PANGO_STYLE_OBLIQUE, */
 					  NULL);
 
-	sprintf(title, _("Linux Kernel v%s Configuration"),
-		getenv("KERNELVERSION"));
-	gtk_window_set_title(GTK_WINDOW(main_wnd), title);
+	gtk_window_set_title(GTK_WINDOW(main_wnd), rootmenu.prompt->text);
 
 	gtk_widget_show(main_wnd);
 }
diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c
index 037443b..09d7a23 100644
--- a/scripts/kconfig/mconf.c
+++ b/scripts/kconfig/mconf.c
@@ -288,13 +288,9 @@ static void set_config_filename(const char *config_filename)
 {
 	static char menu_backtitle[PATH_MAX+128];
 	int size;
-	struct symbol *sym;
 
-	sym = sym_lookup("KERNELVERSION", 0);
-	sym_calc_value(sym);
 	size = snprintf(menu_backtitle, sizeof(menu_backtitle),
-	                _("%s - Linux Kernel v%s Configuration"),
-		        config_filename, sym_get_string_value(sym));
+	                "%s - %s", config_filename, rootmenu.prompt->text);
 	if (size >= sizeof(menu_backtitle))
 		menu_backtitle[sizeof(menu_backtitle)-1] = '\0';
 	set_dialog_backtitle(menu_backtitle);
diff --git a/scripts/kconfig/nconf.c b/scripts/kconfig/nconf.c
index 6cc3a6e..c7fe9f0 100644
--- a/scripts/kconfig/nconf.c
+++ b/scripts/kconfig/nconf.c
@@ -633,13 +633,9 @@ static char menu_backtitle[PATH_MAX+128];
 static const char *set_config_filename(const char *config_filename)
 {
 	int size;
-	struct symbol *sym;
 
-	sym = sym_lookup("KERNELVERSION", 0);
-	sym_calc_value(sym);
 	size = snprintf(menu_backtitle, sizeof(menu_backtitle),
-			_("%s - Linux Kernel v%s Configuration"),
-			config_filename, sym_get_string_value(sym));
+			"%s - %s", config_filename, rootmenu.prompt->text);
 	if (size >= sizeof(menu_backtitle))
 		menu_backtitle[sizeof(menu_backtitle)-1] = '\0';
 
diff --git a/scripts/kconfig/qconf.cc b/scripts/kconfig/qconf.cc
index fe18f7e..902086f 100644
--- a/scripts/kconfig/qconf.cc
+++ b/scripts/kconfig/qconf.cc
@@ -1274,8 +1274,8 @@ ConfigMainWindow::ConfigMainWindow(void)
 	char title[256];
 
 	QDesktopWidget *d = configApp->desktop();
-	snprintf(title, sizeof(title), _("Linux Kernel v%s Configuration%s"),
-		getenv("KERNELVERSION"),
+	snprintf(title, sizeof(title), "%s%s"),
+		rootmenu.prompt->text,
 #if QT_VERSION < 0x040000
 		" (Qt3)"
 #else
-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH 10/15] kconfig: don't emit warning upon rootmenu's prompt redefinition
  2010-09-11 15:51 [PATCH 00/15] Kconfig generalization Arnaud Lacombe
                   ` (8 preceding siblings ...)
  2010-09-11 15:51 ` [PATCH 09/15] kconfig: replace KERNELVERSION usage by the mainmenu's prompt Arnaud Lacombe
@ 2010-09-11 15:51 ` Arnaud Lacombe
  2010-09-11 15:51 ` [PATCH 11/15] kconfig: constify file name Arnaud Lacombe
                   ` (7 subsequent siblings)
  17 siblings, 0 replies; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-11 15:51 UTC (permalink / raw)
  To: Sam Ravnborg, Michal Marek; +Cc: linux-kbuild, Arnaud Lacombe

This silences the warning printed upon prompt redefinition for the rootmenu.
We will encounter this redefinition when a "mainmenu" statement is specified and
override the default prompt.

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
---
 scripts/kconfig/menu.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
index 64da30c..d629ffd 100644
--- a/scripts/kconfig/menu.c
+++ b/scripts/kconfig/menu.c
@@ -139,7 +139,7 @@ struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *e
 			while (isspace(*prompt))
 				prompt++;
 		}
-		if (current_entry->prompt)
+		if (current_entry->prompt && current_entry != &rootmenu)
 			prop_warn(prop, "prompt redefined");
 		current_entry->prompt = prop;
 	}
-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH 11/15] kconfig: constify file name
  2010-09-11 15:51 [PATCH 00/15] Kconfig generalization Arnaud Lacombe
                   ` (9 preceding siblings ...)
  2010-09-11 15:51 ` [PATCH 10/15] kconfig: don't emit warning upon rootmenu's prompt redefinition Arnaud Lacombe
@ 2010-09-11 15:51 ` Arnaud Lacombe
  2010-09-11 15:51 ` [PATCH 12/15] kconfig: use the file's name of sourced file Arnaud Lacombe
                   ` (6 subsequent siblings)
  17 siblings, 0 replies; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-11 15:51 UTC (permalink / raw)
  To: Sam Ravnborg, Michal Marek; +Cc: linux-kbuild, Arnaud Lacombe

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
---
 scripts/kconfig/expr.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/scripts/kconfig/expr.h b/scripts/kconfig/expr.h
index 6ee2e4f..648c609 100644
--- a/scripts/kconfig/expr.h
+++ b/scripts/kconfig/expr.h
@@ -18,7 +18,7 @@ extern "C" {
 struct file {
 	struct file *next;
 	struct file *parent;
-	char *name;
+	const char *name;
 	int lineno;
 	int flags;
 };
-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH 12/15] kconfig: use the file's name of sourced file
  2010-09-11 15:51 [PATCH 00/15] Kconfig generalization Arnaud Lacombe
                   ` (10 preceding siblings ...)
  2010-09-11 15:51 ` [PATCH 11/15] kconfig: constify file name Arnaud Lacombe
@ 2010-09-11 15:51 ` Arnaud Lacombe
  2010-09-11 15:51 ` [PATCH 13/15] kconfig: expand file names Arnaud Lacombe
                   ` (5 subsequent siblings)
  17 siblings, 0 replies; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-11 15:51 UTC (permalink / raw)
  To: Sam Ravnborg, Michal Marek; +Cc: linux-kbuild, Arnaud Lacombe

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
---
 scripts/kconfig/zconf.l |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/scripts/kconfig/zconf.l b/scripts/kconfig/zconf.l
index d8f7236..e0cbf8e 100644
--- a/scripts/kconfig/zconf.l
+++ b/scripts/kconfig/zconf.l
@@ -304,9 +304,10 @@ void zconf_nextfile(const char *name)
 	memset(buf, 0, sizeof(*buf));
 
 	current_buf->state = YY_CURRENT_BUFFER;
-	yyin = zconf_fopen(name);
+	yyin = zconf_fopen(file->name);
 	if (!yyin) {
-		printf("%s:%d: can't open file \"%s\"\n", zconf_curname(), zconf_lineno(), name);
+		printf("%s:%d: can't open file \"%s\"\n",
+		    zconf_curname(), zconf_lineno(), file->name);
 		exit(1);
 	}
 	yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE));
-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH 13/15] kconfig: expand file names
  2010-09-11 15:51 [PATCH 00/15] Kconfig generalization Arnaud Lacombe
                   ` (11 preceding siblings ...)
  2010-09-11 15:51 ` [PATCH 12/15] kconfig: use the file's name of sourced file Arnaud Lacombe
@ 2010-09-11 15:51 ` Arnaud Lacombe
  2010-09-11 15:51 ` [PATCH 14/15] kconfig: regen parser Arnaud Lacombe
                   ` (4 subsequent siblings)
  17 siblings, 0 replies; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-11 15:51 UTC (permalink / raw)
  To: Sam Ravnborg, Michal Marek; +Cc: linux-kbuild, Arnaud Lacombe

This will allow to use the following construct in source files:

config FOO
    string
    default "foo"

source "$FOO/Kconfig"

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
---
 scripts/kconfig/util.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/scripts/kconfig/util.c b/scripts/kconfig/util.c
index 78b5c04..584390d 100644
--- a/scripts/kconfig/util.c
+++ b/scripts/kconfig/util.c
@@ -12,15 +12,18 @@
 struct file *file_lookup(const char *name)
 {
 	struct file *file;
+	const char *file_name = sym_expand_string_value(name);
 
 	for (file = file_list; file; file = file->next) {
-		if (!strcmp(name, file->name))
+		if (!strcmp(name, file->name)) {
+			free(file_name);
 			return file;
+		}
 	}
 
 	file = malloc(sizeof(*file));
 	memset(file, 0, sizeof(*file));
-	file->name = strdup(name);
+	file->name = file_name;
 	file->next = file_list;
 	file_list = file;
 	return file;
-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH 14/15] kconfig: regen parser
  2010-09-11 15:51 [PATCH 00/15] Kconfig generalization Arnaud Lacombe
                   ` (12 preceding siblings ...)
  2010-09-11 15:51 ` [PATCH 13/15] kconfig: expand file names Arnaud Lacombe
@ 2010-09-11 15:51 ` Arnaud Lacombe
  2010-09-17 22:10   ` Michal Marek
  2010-09-11 15:51 ` [PATCH 15/15] kbuild: migrate all arch to the kconfig mainmenu upgrade Arnaud Lacombe
                   ` (3 subsequent siblings)
  17 siblings, 1 reply; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-11 15:51 UTC (permalink / raw)
  To: Sam Ravnborg, Michal Marek; +Cc: linux-kbuild, Arnaud Lacombe

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
---
 scripts/kconfig/lex.zconf.c_shipped |    5 +-
 scripts/kconfig/zconf.tab.c_shipped |  547 ++++++++++++++++++-----------------
 2 files changed, 286 insertions(+), 266 deletions(-)

diff --git a/scripts/kconfig/lex.zconf.c_shipped b/scripts/kconfig/lex.zconf.c_shipped
index fdc7113..73608a6 100644
--- a/scripts/kconfig/lex.zconf.c_shipped
+++ b/scripts/kconfig/lex.zconf.c_shipped
@@ -2373,9 +2373,10 @@ void zconf_nextfile(const char *name)
 	memset(buf, 0, sizeof(*buf));
 
 	current_buf->state = YY_CURRENT_BUFFER;
-	zconfin = zconf_fopen(name);
+	zconfin = zconf_fopen(file->name);
 	if (!zconfin) {
-		printf("%s:%d: can't open file \"%s\"\n", zconf_curname(), zconf_lineno(), name);
+		printf("%s:%d: can't open file \"%s\"\n",
+		    zconf_curname(), zconf_lineno(), file->name);
 		exit(1);
 	}
 	zconf_switch_to_buffer(zconf_create_buffer(zconfin,YY_BUF_SIZE));
diff --git a/scripts/kconfig/zconf.tab.c_shipped b/scripts/kconfig/zconf.tab.c_shipped
index 32a9eef..fd8e9d8 100644
--- a/scripts/kconfig/zconf.tab.c_shipped
+++ b/scripts/kconfig/zconf.tab.c_shipped
@@ -417,18 +417,18 @@ union yyalloc
 #endif
 
 /* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  3
+#define YYFINAL  11
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   259
+#define YYLAST   277
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  35
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  46
+#define YYNNTS  48
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  110
+#define YYNRULES  113
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  180
+#define YYNSTATES  185
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
@@ -476,73 +476,74 @@ static const yytype_uint8 yytranslate[] =
    YYRHS.  */
 static const yytype_uint16 yyprhs[] =
 {
-       0,     0,     3,     5,     6,     9,    12,    15,    20,    23,
-      28,    33,    37,    39,    41,    43,    45,    47,    49,    51,
-      53,    55,    57,    59,    61,    63,    67,    70,    74,    77,
-      81,    84,    85,    88,    91,    94,    97,   100,   103,   107,
-     112,   117,   122,   128,   132,   133,   137,   138,   141,   145,
-     148,   150,   154,   155,   158,   161,   164,   167,   170,   175,
-     179,   182,   187,   188,   191,   195,   197,   201,   202,   205,
-     208,   211,   215,   218,   220,   224,   225,   228,   231,   234,
-     238,   242,   245,   248,   251,   252,   255,   258,   261,   266,
-     267,   270,   272,   274,   277,   280,   283,   285,   288,   289,
-     292,   294,   298,   302,   306,   309,   313,   317,   319,   321,
-     322
+       0,     0,     3,     6,     8,    11,    13,    14,    17,    20,
+      23,    26,    31,    36,    40,    42,    44,    46,    48,    50,
+      52,    54,    56,    58,    60,    62,    64,    66,    70,    73,
+      77,    80,    84,    87,    88,    91,    94,    97,   100,   103,
+     106,   110,   115,   120,   125,   131,   135,   136,   140,   141,
+     144,   148,   151,   153,   157,   158,   161,   164,   167,   170,
+     173,   178,   182,   185,   190,   191,   194,   198,   200,   204,
+     205,   208,   211,   214,   218,   222,   225,   227,   231,   232,
+     235,   238,   241,   245,   249,   252,   255,   258,   259,   262,
+     265,   268,   273,   274,   277,   279,   281,   284,   287,   290,
+     292,   295,   296,   299,   301,   305,   309,   313,   316,   320,
+     324,   326,   328,   329
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int8 yyrhs[] =
 {
-      36,     0,    -1,    37,    -1,    -1,    37,    39,    -1,    37,
-      53,    -1,    37,    64,    -1,    37,     3,    74,    76,    -1,
-      37,    75,    -1,    37,    25,     1,    30,    -1,    37,    38,
-       1,    30,    -1,    37,     1,    30,    -1,    16,    -1,    18,
-      -1,    19,    -1,    21,    -1,    17,    -1,    22,    -1,    20,
-      -1,    30,    -1,    59,    -1,    68,    -1,    42,    -1,    44,
-      -1,    66,    -1,    25,     1,    30,    -1,     1,    30,    -1,
-      10,    25,    30,    -1,    41,    45,    -1,    11,    25,    30,
-      -1,    43,    45,    -1,    -1,    45,    46,    -1,    45,    47,
-      -1,    45,    72,    -1,    45,    70,    -1,    45,    40,    -1,
-      45,    30,    -1,    19,    73,    30,    -1,    18,    74,    77,
-      30,    -1,    20,    78,    77,    30,    -1,    21,    25,    77,
-      30,    -1,    22,    79,    79,    77,    30,    -1,    23,    48,
-      30,    -1,    -1,    48,    25,    49,    -1,    -1,    33,    74,
-      -1,     7,    80,    30,    -1,    50,    54,    -1,    75,    -1,
-      51,    56,    52,    -1,    -1,    54,    55,    -1,    54,    72,
-      -1,    54,    70,    -1,    54,    30,    -1,    54,    40,    -1,
-      18,    74,    77,    30,    -1,    19,    73,    30,    -1,    17,
-      30,    -1,    20,    25,    77,    30,    -1,    -1,    56,    39,
-      -1,    14,    78,    76,    -1,    75,    -1,    57,    60,    58,
-      -1,    -1,    60,    39,    -1,    60,    64,    -1,    60,    53,
-      -1,     4,    74,    30,    -1,    61,    71,    -1,    75,    -1,
-      62,    65,    63,    -1,    -1,    65,    39,    -1,    65,    64,
-      -1,    65,    53,    -1,     6,    74,    30,    -1,     9,    74,
-      30,    -1,    67,    71,    -1,    12,    30,    -1,    69,    13,
-      -1,    -1,    71,    72,    -1,    71,    30,    -1,    71,    40,
-      -1,    16,    24,    78,    30,    -1,    -1,    74,    77,    -1,
-      25,    -1,    26,    -1,     5,    30,    -1,     8,    30,    -1,
-      15,    30,    -1,    30,    -1,    76,    30,    -1,    -1,    14,
-      78,    -1,    79,    -1,    79,    33,    79,    -1,    79,    27,
-      79,    -1,    29,    78,    28,    -1,    34,    78,    -1,    78,
-      31,    78,    -1,    78,    32,    78,    -1,    25,    -1,    26,
-      -1,    -1,    25,    -1
+      36,     0,    -1,    78,    37,    -1,    37,    -1,    62,    38,
+      -1,    38,    -1,    -1,    38,    40,    -1,    38,    54,    -1,
+      38,    66,    -1,    38,    77,    -1,    38,    25,     1,    30,
+      -1,    38,    39,     1,    30,    -1,    38,     1,    30,    -1,
+      16,    -1,    18,    -1,    19,    -1,    21,    -1,    17,    -1,
+      22,    -1,    20,    -1,    30,    -1,    60,    -1,    70,    -1,
+      43,    -1,    45,    -1,    68,    -1,    25,     1,    30,    -1,
+       1,    30,    -1,    10,    25,    30,    -1,    42,    46,    -1,
+      11,    25,    30,    -1,    44,    46,    -1,    -1,    46,    47,
+      -1,    46,    48,    -1,    46,    74,    -1,    46,    72,    -1,
+      46,    41,    -1,    46,    30,    -1,    19,    75,    30,    -1,
+      18,    76,    79,    30,    -1,    20,    80,    79,    30,    -1,
+      21,    25,    79,    30,    -1,    22,    81,    81,    79,    30,
+      -1,    23,    49,    30,    -1,    -1,    49,    25,    50,    -1,
+      -1,    33,    76,    -1,     7,    82,    30,    -1,    51,    55,
+      -1,    77,    -1,    52,    57,    53,    -1,    -1,    55,    56,
+      -1,    55,    74,    -1,    55,    72,    -1,    55,    30,    -1,
+      55,    41,    -1,    18,    76,    79,    30,    -1,    19,    75,
+      30,    -1,    17,    30,    -1,    20,    25,    79,    30,    -1,
+      -1,    57,    40,    -1,    14,    80,    78,    -1,    77,    -1,
+      58,    61,    59,    -1,    -1,    61,    40,    -1,    61,    66,
+      -1,    61,    54,    -1,     3,    76,    78,    -1,     4,    76,
+      30,    -1,    63,    73,    -1,    77,    -1,    64,    67,    65,
+      -1,    -1,    67,    40,    -1,    67,    66,    -1,    67,    54,
+      -1,     6,    76,    30,    -1,     9,    76,    30,    -1,    69,
+      73,    -1,    12,    30,    -1,    71,    13,    -1,    -1,    73,
+      74,    -1,    73,    30,    -1,    73,    41,    -1,    16,    24,
+      80,    30,    -1,    -1,    76,    79,    -1,    25,    -1,    26,
+      -1,     5,    30,    -1,     8,    30,    -1,    15,    30,    -1,
+      30,    -1,    78,    30,    -1,    -1,    14,    80,    -1,    81,
+      -1,    81,    33,    81,    -1,    81,    27,    81,    -1,    29,
+      80,    28,    -1,    34,    80,    -1,    80,    31,    80,    -1,
+      80,    32,    80,    -1,    25,    -1,    26,    -1,    -1,    25,
+      -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   107,   107,   109,   111,   112,   113,   114,   115,   116,
-     117,   121,   125,   125,   125,   125,   125,   125,   125,   129,
-     130,   131,   132,   133,   134,   138,   139,   145,   153,   159,
-     167,   177,   179,   180,   181,   182,   183,   184,   187,   195,
-     201,   211,   217,   223,   226,   228,   239,   240,   245,   254,
-     259,   267,   270,   272,   273,   274,   275,   276,   279,   285,
-     296,   302,   312,   314,   319,   327,   335,   338,   340,   341,
-     342,   347,   354,   359,   367,   370,   372,   373,   374,   377,
-     385,   392,   399,   405,   412,   414,   415,   416,   419,   427,
-     429,   434,   435,   438,   439,   440,   444,   445,   448,   449,
-     452,   453,   454,   455,   456,   457,   458,   461,   462,   465,
-     466
+       0,   107,   107,   107,   109,   109,   111,   113,   114,   115,
+     116,   117,   118,   122,   126,   126,   126,   126,   126,   126,
+     126,   130,   131,   132,   133,   134,   135,   139,   140,   146,
+     154,   160,   168,   178,   180,   181,   182,   183,   184,   185,
+     188,   196,   202,   212,   218,   224,   227,   229,   240,   241,
+     246,   255,   260,   268,   271,   273,   274,   275,   276,   277,
+     280,   286,   297,   303,   313,   315,   320,   328,   336,   339,
+     341,   342,   343,   348,   355,   362,   367,   375,   378,   380,
+     381,   382,   385,   393,   400,   407,   413,   420,   422,   423,
+     424,   427,   435,   437,   442,   443,   446,   447,   448,   452,
+     453,   456,   457,   460,   461,   462,   463,   464,   465,   466,
+     469,   470,   473,   474
 };
 #endif
 
@@ -557,17 +558,17 @@ static const char *const yytname[] =
   "T_OPTIONAL", "T_PROMPT", "T_TYPE", "T_DEFAULT", "T_SELECT", "T_RANGE",
   "T_OPTION", "T_ON", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL",
   "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_EOL", "T_OR", "T_AND", "T_EQUAL",
-  "T_NOT", "$accept", "input", "stmt_list", "option_name", "common_stmt",
-  "option_error", "config_entry_start", "config_stmt",
+  "T_NOT", "$accept", "input", "start", "stmt_list", "option_name",
+  "common_stmt", "option_error", "config_entry_start", "config_stmt",
   "menuconfig_entry_start", "menuconfig_stmt", "config_option_list",
   "config_option", "symbol_option", "symbol_option_list",
   "symbol_option_arg", "choice", "choice_entry", "choice_end",
   "choice_stmt", "choice_option_list", "choice_option", "choice_block",
-  "if_entry", "if_end", "if_stmt", "if_block", "menu", "menu_entry",
-  "menu_end", "menu_stmt", "menu_block", "source_stmt", "comment",
-  "comment_stmt", "help_start", "help", "depends_list", "depends",
-  "prompt_stmt_opt", "prompt", "end", "nl", "if_expr", "expr", "symbol",
-  "word_opt", 0
+  "if_entry", "if_end", "if_stmt", "if_block", "mainmenu_stmt", "menu",
+  "menu_entry", "menu_end", "menu_stmt", "menu_block", "source_stmt",
+  "comment", "comment_stmt", "help_start", "help", "depends_list",
+  "depends", "prompt_stmt_opt", "prompt", "end", "nl", "if_expr", "expr",
+  "symbol", "word_opt", 0
 };
 #endif
 
@@ -586,35 +587,35 @@ static const yytype_uint16 yytoknum[] =
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint8 yyr1[] =
 {
-       0,    35,    36,    37,    37,    37,    37,    37,    37,    37,
-      37,    37,    38,    38,    38,    38,    38,    38,    38,    39,
-      39,    39,    39,    39,    39,    40,    40,    41,    42,    43,
-      44,    45,    45,    45,    45,    45,    45,    45,    46,    46,
-      46,    46,    46,    47,    48,    48,    49,    49,    50,    51,
-      52,    53,    54,    54,    54,    54,    54,    54,    55,    55,
-      55,    55,    56,    56,    57,    58,    59,    60,    60,    60,
-      60,    61,    62,    63,    64,    65,    65,    65,    65,    66,
-      67,    68,    69,    70,    71,    71,    71,    71,    72,    73,
-      73,    74,    74,    75,    75,    75,    76,    76,    77,    77,
-      78,    78,    78,    78,    78,    78,    78,    79,    79,    80,
-      80
+       0,    35,    36,    36,    37,    37,    38,    38,    38,    38,
+      38,    38,    38,    38,    39,    39,    39,    39,    39,    39,
+      39,    40,    40,    40,    40,    40,    40,    41,    41,    42,
+      43,    44,    45,    46,    46,    46,    46,    46,    46,    46,
+      47,    47,    47,    47,    47,    48,    49,    49,    50,    50,
+      51,    52,    53,    54,    55,    55,    55,    55,    55,    55,
+      56,    56,    56,    56,    57,    57,    58,    59,    60,    61,
+      61,    61,    61,    62,    63,    64,    65,    66,    67,    67,
+      67,    67,    68,    69,    70,    71,    72,    73,    73,    73,
+      73,    74,    75,    75,    76,    76,    77,    77,    77,    78,
+      78,    79,    79,    80,    80,    80,    80,    80,    80,    80,
+      81,    81,    82,    82
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
 static const yytype_uint8 yyr2[] =
 {
-       0,     2,     1,     0,     2,     2,     2,     4,     2,     4,
-       4,     3,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     3,     2,     3,     2,     3,
-       2,     0,     2,     2,     2,     2,     2,     2,     3,     4,
-       4,     4,     5,     3,     0,     3,     0,     2,     3,     2,
-       1,     3,     0,     2,     2,     2,     2,     2,     4,     3,
-       2,     4,     0,     2,     3,     1,     3,     0,     2,     2,
-       2,     3,     2,     1,     3,     0,     2,     2,     2,     3,
-       3,     2,     2,     2,     0,     2,     2,     2,     4,     0,
-       2,     1,     1,     2,     2,     2,     1,     2,     0,     2,
-       1,     3,     3,     3,     2,     3,     3,     1,     1,     0,
-       1
+       0,     2,     2,     1,     2,     1,     0,     2,     2,     2,
+       2,     4,     4,     3,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     3,     2,     3,
+       2,     3,     2,     0,     2,     2,     2,     2,     2,     2,
+       3,     4,     4,     4,     5,     3,     0,     3,     0,     2,
+       3,     2,     1,     3,     0,     2,     2,     2,     2,     2,
+       4,     3,     2,     4,     0,     2,     3,     1,     3,     0,
+       2,     2,     2,     3,     3,     2,     1,     3,     0,     2,
+       2,     2,     3,     3,     2,     2,     2,     0,     2,     2,
+       2,     4,     0,     2,     1,     1,     2,     2,     2,     1,
+       2,     0,     2,     1,     3,     3,     3,     2,     3,     3,
+       1,     1,     0,     1
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -622,158 +623,165 @@ static const yytype_uint8 yyr2[] =
    means the default is an error.  */
 static const yytype_uint8 yydefact[] =
 {
-       3,     0,     0,     1,     0,     0,     0,     0,     0,   109,
-       0,     0,     0,     0,     0,     0,    12,    16,    13,    14,
-      18,    15,    17,     0,    19,     0,     4,    31,    22,    31,
-      23,    52,    62,     5,    67,    20,    84,    75,     6,    24,
-      84,    21,     8,    11,    91,    92,     0,     0,    93,     0,
-     110,     0,    94,     0,     0,     0,   107,   108,     0,     0,
-       0,   100,    95,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    96,     7,    71,    79,    48,    80,    27,
-      29,     0,   104,     0,     0,    64,     0,     0,     9,    10,
-       0,     0,     0,     0,    89,     0,     0,     0,    44,     0,
-      37,    36,    32,    33,     0,    35,    34,     0,     0,    89,
-       0,    56,    57,    53,    55,    54,    63,    51,    50,    68,
-      70,    66,    69,    65,    86,    87,    85,    76,    78,    74,
-      77,    73,    97,   103,   105,   106,   102,   101,    26,    82,
-       0,    98,     0,    98,    98,    98,     0,     0,     0,    83,
-      60,    98,     0,    98,     0,     0,     0,    38,    90,     0,
-       0,    98,    46,    43,    25,     0,    59,     0,    88,    99,
-      39,    40,    41,     0,     0,    45,    58,    61,    42,    47
+       6,     0,    99,     0,     3,     0,     6,     6,    94,    95,
+       0,     1,     0,     0,     0,     0,   112,     0,     0,     0,
+       0,     0,     0,    14,    18,    15,    16,    20,    17,    19,
+       0,    21,     0,     7,    33,    24,    33,    25,    54,    64,
+       8,    69,    22,    87,    78,     9,    26,    87,    23,    10,
+       0,   100,     2,    73,    13,     0,    96,     0,   113,     0,
+      97,     0,     0,     0,   110,   111,     0,     0,     0,   103,
+      98,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    74,    82,    50,    83,    29,    31,     0,   107,     0,
+       0,    66,     0,     0,    11,    12,     0,     0,     0,     0,
+      92,     0,     0,     0,    46,     0,    39,    38,    34,    35,
+       0,    37,    36,     0,     0,    92,     0,    58,    59,    55,
+      57,    56,    65,    53,    52,    70,    72,    68,    71,    67,
+      89,    90,    88,    79,    81,    77,    80,    76,   106,   108,
+     109,   105,   104,    28,    85,     0,   101,     0,   101,   101,
+     101,     0,     0,     0,    86,    62,   101,     0,   101,     0,
+       0,     0,    40,    93,     0,     0,   101,    48,    45,    27,
+       0,    61,     0,    91,   102,    41,    42,    43,     0,     0,
+      47,    60,    63,    44,    49
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,     1,     2,    25,    26,   101,    27,    28,    29,    30,
-      65,   102,   103,   147,   175,    31,    32,   117,    33,    67,
-     113,    68,    34,   121,    35,    69,    36,    37,   129,    38,
-      71,    39,    40,    41,   104,   105,    70,   106,   142,   143,
-      42,    74,   156,    60,    61,    51
+      -1,     3,     4,     5,    32,    33,   107,    34,    35,    36,
+      37,    73,   108,   109,   152,   180,    38,    39,   123,    40,
+      75,   119,    76,    41,   127,    42,    77,     6,    43,    44,
+     135,    45,    79,    46,    47,    48,   110,   111,    78,   112,
+     147,   148,    49,     7,   161,    68,    69,    59
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -80
+#define YYPACT_NINF -89
 static const yytype_int16 yypact[] =
 {
-     -80,     2,   132,   -80,   -13,    -1,    -1,    -2,    -1,     9,
-      33,    -1,    27,    40,    -3,    38,   -80,   -80,   -80,   -80,
-     -80,   -80,   -80,    71,   -80,    77,   -80,   -80,   -80,   -80,
-     -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
-     -80,   -80,   -80,   -80,   -80,   -80,    57,    61,   -80,    63,
-     -80,    76,   -80,    87,   101,   133,   -80,   -80,    -3,    -3,
-     195,    -6,   -80,   136,   149,    39,   104,    65,   150,     5,
-     194,     5,   167,   -80,   176,   -80,   -80,   -80,   -80,   -80,
-     -80,    68,   -80,    -3,    -3,   176,    72,    72,   -80,   -80,
-     177,   187,    78,    -1,    -1,    -3,   196,    72,   -80,   222,
-     -80,   -80,   -80,   -80,   221,   -80,   -80,   205,    -1,    -1,
-     211,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
-     -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
-     -80,   -80,   -80,   -80,   206,   -80,   -80,   -80,   -80,   -80,
-      -3,   223,   209,   223,   197,   223,    72,     7,   210,   -80,
-     -80,   223,   212,   223,   201,    -3,   213,   -80,   -80,   214,
-     215,   223,   208,   -80,   -80,   216,   -80,   217,   -80,   113,
-     -80,   -80,   -80,   218,    -1,   -80,   -80,   -80,   -80,   -80
+       3,     4,   -89,    20,   -89,   100,   -89,     7,   -89,   -89,
+      -8,   -89,    17,     4,    28,     4,    37,    36,     4,    68,
+      87,   -18,    69,   -89,   -89,   -89,   -89,   -89,   -89,   -89,
+     128,   -89,   138,   -89,   -89,   -89,   -89,   -89,   -89,   -89,
+     -89,   -89,   -89,   -89,   -89,   -89,   -89,   -89,   -89,   -89,
+     127,   -89,   -89,   110,   -89,   126,   -89,   136,   -89,   137,
+     -89,   147,   150,   152,   -89,   -89,   -18,   -18,   171,   -14,
+     -89,   153,   157,    34,    67,   180,   233,   220,   207,   220,
+     154,   -89,   -89,   -89,   -89,   -89,   -89,     0,   -89,   -18,
+     -18,   110,    44,    44,   -89,   -89,   163,   174,   182,     4,
+       4,   -18,   194,    44,   -89,   219,   -89,   -89,   -89,   -89,
+     223,   -89,   -89,   203,     4,     4,   215,   -89,   -89,   -89,
+     -89,   -89,   -89,   -89,   -89,   -89,   -89,   -89,   -89,   -89,
+     -89,   -89,   -89,   -89,   -89,   -89,   -89,   -89,   -89,   213,
+     -89,   -89,   -89,   -89,   -89,   -18,   232,   227,   232,    -5,
+     232,    44,    35,   234,   -89,   -89,   232,   235,   232,   224,
+     -18,   236,   -89,   -89,   237,   238,   232,   216,   -89,   -89,
+     240,   -89,   241,   -89,    71,   -89,   -89,   -89,   242,     4,
+     -89,   -89,   -89,   -89,   -89
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-     -80,   -80,   -80,   -80,   122,   -34,   -80,   -80,   -80,   -80,
-     220,   -80,   -80,   -80,   -80,   -80,   -80,   -80,    59,   -80,
-     -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   125,
-     -80,   -80,   -80,   -80,   -80,   183,   219,    22,   142,    -5,
-     147,   192,    69,   -54,   -79,   -80
+     -89,   -89,   255,   267,   -89,    47,   -57,   -89,   -89,   -89,
+     -89,   239,   -89,   -89,   -89,   -89,   -89,   -89,   -89,   130,
+     -89,   -89,   -89,   -89,   -89,   -89,   -89,   -89,   -89,   -89,
+     -89,   181,   -89,   -89,   -89,   -89,   -89,   199,   229,    16,
+     162,    -1,    74,    -7,   103,   -65,   -88,   -89
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    positive, shift that token.  If negative, reduce the rule which
    number is the opposite.  If zero, do what YYDEFACT says.
    If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -82
+#define YYTABLE_NINF -85
 static const yytype_int16 yytable[] =
 {
-      46,    47,     3,    49,    81,    82,    53,   136,   137,     6,
-       7,     8,     9,    10,    11,    12,    13,    43,   146,    14,
-      15,    86,    56,    57,    44,    45,    58,    87,    48,   134,
-     135,    59,   162,   112,    50,    24,   125,   163,   125,   -28,
-      90,   144,   -28,   -28,   -28,   -28,   -28,   -28,   -28,   -28,
-     -28,    91,    54,   -28,   -28,    92,   -28,    93,    94,    95,
-      96,    97,    98,    52,    99,    55,    90,   161,    62,   100,
-     -49,   -49,    63,   -49,   -49,   -49,   -49,    91,    64,   -49,
-     -49,    92,   107,   108,   109,   110,   154,    73,   141,   115,
-      99,    75,   126,    76,   126,   111,   133,    56,    57,    83,
-      84,   169,   140,   151,   -30,    90,    77,   -30,   -30,   -30,
-     -30,   -30,   -30,   -30,   -30,   -30,    91,    78,   -30,   -30,
-      92,   -30,    93,    94,    95,    96,    97,    98,   120,    99,
-     128,    79,    -2,     4,   100,     5,     6,     7,     8,     9,
-      10,    11,    12,    13,    83,    84,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,     7,     8,    23,    10,    11,
-      12,    13,    24,    80,    14,    15,    88,   -81,    90,   179,
-     -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,   -81,    89,
-      24,   -81,   -81,    92,   -81,   -81,   -81,   -81,   -81,   -81,
-     116,   119,    99,   127,   122,    90,   130,   124,   -72,   -72,
-     -72,   -72,   -72,   -72,   -72,   -72,   132,   138,   -72,   -72,
-      92,   155,   158,   159,   160,   118,   123,   139,   131,    99,
-     165,   145,   167,   148,   124,    73,    83,    84,    83,    84,
-     173,   168,    83,    84,   149,   150,   153,   155,    84,   157,
-     164,   174,   166,   170,   171,   172,   176,   177,   178,    66,
-     114,   152,    85,     0,     0,     0,     0,     0,     0,    72
+      10,    87,    88,    53,   141,   142,     1,    64,    65,   160,
+       1,    66,    55,    92,    57,   151,    67,    61,   118,    93,
+      11,   131,     2,   131,   139,   140,    89,    90,   138,     8,
+       9,    89,    90,     2,   -30,    96,   149,    51,   -30,   -30,
+     -30,   -30,   -30,   -30,   -30,   -30,    97,    54,   -30,   -30,
+      98,   -30,    99,   100,   101,   102,   103,   104,    56,   105,
+     167,    91,    58,   166,   106,   168,    60,   -32,    96,    64,
+      65,   -32,   -32,   -32,   -32,   -32,   -32,   -32,   -32,    97,
+     159,   -32,   -32,    98,   -32,    99,   100,   101,   102,   103,
+     104,   121,   105,    62,   132,   174,   132,   106,   146,    70,
+      -5,    12,    89,    90,    13,    14,    15,    16,    17,    18,
+      19,    20,    63,   156,    21,    22,    23,    24,    25,    26,
+      27,    28,    29,   122,   125,    30,   133,    -4,    12,    71,
+      31,    13,    14,    15,    16,    17,    18,    19,    20,    72,
+      51,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+     124,   129,    30,   137,   -84,    96,    81,    31,   -84,   -84,
+     -84,   -84,   -84,   -84,   -84,   -84,    82,    83,   -84,   -84,
+      98,   -84,   -84,   -84,   -84,   -84,   -84,    84,   184,   105,
+      85,    96,    86,    94,   130,   -51,   -51,    95,   -51,   -51,
+     -51,   -51,    97,   143,   -51,   -51,    98,   113,   114,   115,
+     116,     2,    89,    90,   144,   105,   145,   126,    96,   134,
+     117,   -75,   -75,   -75,   -75,   -75,   -75,   -75,   -75,   150,
+     153,   -75,   -75,    98,    13,    14,    15,    16,    17,    18,
+      19,    20,   105,   155,    21,    22,   154,   130,    14,    15,
+     158,    17,    18,    19,    20,    90,   160,    21,    22,   179,
+      31,   163,   164,   165,   173,    89,    90,   162,   128,   170,
+     136,   172,    52,    31,   169,   171,   175,   176,   177,   178,
+     181,   182,   183,    50,   120,    74,    80,   157
 };
 
-static const yytype_int16 yycheck[] =
+static const yytype_uint8 yycheck[] =
 {
-       5,     6,     0,     8,    58,    59,    11,    86,    87,     4,
-       5,     6,     7,     8,     9,    10,    11,    30,    97,    14,
-      15,    27,    25,    26,    25,    26,    29,    33,    30,    83,
-      84,    34,    25,    67,    25,    30,    70,    30,    72,     0,
-       1,    95,     3,     4,     5,     6,     7,     8,     9,    10,
-      11,    12,    25,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    30,    25,    25,     1,   146,    30,    30,
-       5,     6,     1,     8,     9,    10,    11,    12,     1,    14,
-      15,    16,    17,    18,    19,    20,   140,    30,    93,    67,
-      25,    30,    70,    30,    72,    30,    28,    25,    26,    31,
-      32,   155,    24,   108,     0,     1,    30,     3,     4,     5,
+       1,    66,    67,    10,    92,    93,     3,    25,    26,    14,
+       3,    29,    13,    27,    15,   103,    34,    18,    75,    33,
+       0,    78,    30,    80,    89,    90,    31,    32,    28,    25,
+      26,    31,    32,    30,     0,     1,   101,    30,     4,     5,
        6,     7,     8,     9,    10,    11,    12,    30,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    69,    25,
-      71,    30,     0,     1,    30,     3,     4,     5,     6,     7,
-       8,     9,    10,    11,    31,    32,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,     5,     6,    25,     8,     9,
-      10,    11,    30,    30,    14,    15,    30,     0,     1,   174,
-       3,     4,     5,     6,     7,     8,     9,    10,    11,    30,
+      16,    17,    18,    19,    20,    21,    22,    23,    30,    25,
+      25,    68,    25,   151,    30,    30,    30,     0,     1,    25,
+      26,     4,     5,     6,     7,     8,     9,    10,    11,    12,
+     145,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+      23,    75,    25,    25,    78,   160,    80,    30,    99,    30,
+       0,     1,    31,    32,     4,     5,     6,     7,     8,     9,
+      10,    11,    25,   114,    14,    15,    16,    17,    18,    19,
+      20,    21,    22,    76,    77,    25,    79,     0,     1,     1,
+      30,     4,     5,     6,     7,     8,     9,    10,    11,     1,
       30,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      68,    69,    25,    71,    69,     1,    71,    30,     4,     5,
+      76,    77,    25,    79,     0,     1,    30,    30,     4,     5,
        6,     7,     8,     9,    10,    11,    30,    30,    14,    15,
-      16,    14,   143,   144,   145,    68,    69,    30,    71,    25,
-     151,    25,   153,     1,    30,    30,    31,    32,    31,    32,
-     161,    30,    31,    32,    13,    30,    25,    14,    32,    30,
-      30,    33,    30,    30,    30,    30,    30,    30,    30,    29,
-      67,   109,    60,    -1,    -1,    -1,    -1,    -1,    -1,    40
+      16,    17,    18,    19,    20,    21,    22,    30,   179,    25,
+      30,     1,    30,    30,    30,     5,     6,    30,     8,     9,
+      10,    11,    12,    30,    14,    15,    16,    17,    18,    19,
+      20,    30,    31,    32,    30,    25,    24,    77,     1,    79,
+      30,     4,     5,     6,     7,     8,     9,    10,    11,    25,
+       1,    14,    15,    16,     4,     5,     6,     7,     8,     9,
+      10,    11,    25,    30,    14,    15,    13,    30,     5,     6,
+      25,     8,     9,    10,    11,    32,    14,    14,    15,    33,
+      30,   148,   149,   150,    30,    31,    32,    30,    77,   156,
+      79,   158,     7,    30,    30,    30,    30,    30,    30,   166,
+      30,    30,    30,     6,    75,    36,    47,   115
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    symbol of state STATE-NUM.  */
 static const yytype_uint8 yystos[] =
 {
-       0,    36,    37,     0,     1,     3,     4,     5,     6,     7,
-       8,     9,    10,    11,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    25,    30,    38,    39,    41,    42,    43,
-      44,    50,    51,    53,    57,    59,    61,    62,    64,    66,
-      67,    68,    75,    30,    25,    26,    74,    74,    30,    74,
-      25,    80,    30,    74,    25,    25,    25,    26,    29,    34,
-      78,    79,    30,     1,     1,    45,    45,    54,    56,    60,
-      71,    65,    71,    30,    76,    30,    30,    30,    30,    30,
-      30,    78,    78,    31,    32,    76,    27,    33,    30,    30,
-       1,    12,    16,    18,    19,    20,    21,    22,    23,    25,
-      30,    40,    46,    47,    69,    70,    72,    17,    18,    19,
-      20,    30,    40,    55,    70,    72,    39,    52,    75,    39,
-      53,    58,    64,    75,    30,    40,    72,    39,    53,    63,
-      64,    75,    30,    28,    78,    78,    79,    79,    30,    30,
-      24,    74,    73,    74,    78,    25,    79,    48,     1,    13,
-      30,    74,    73,    25,    78,    14,    77,    30,    77,    77,
-      77,    79,    25,    30,    30,    77,    30,    77,    30,    78,
-      30,    30,    30,    77,    33,    49,    30,    30,    30,    74
+       0,     3,    30,    36,    37,    38,    62,    78,    25,    26,
+      76,     0,     1,     4,     5,     6,     7,     8,     9,    10,
+      11,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+      25,    30,    39,    40,    42,    43,    44,    45,    51,    52,
+      54,    58,    60,    63,    64,    66,    68,    69,    70,    77,
+      38,    30,    37,    78,    30,    76,    30,    76,    25,    82,
+      30,    76,    25,    25,    25,    26,    29,    34,    80,    81,
+      30,     1,     1,    46,    46,    55,    57,    61,    73,    67,
+      73,    30,    30,    30,    30,    30,    30,    80,    80,    31,
+      32,    78,    27,    33,    30,    30,     1,    12,    16,    18,
+      19,    20,    21,    22,    23,    25,    30,    41,    47,    48,
+      71,    72,    74,    17,    18,    19,    20,    30,    41,    56,
+      72,    74,    40,    53,    77,    40,    54,    59,    66,    77,
+      30,    41,    74,    40,    54,    65,    66,    77,    28,    80,
+      80,    81,    81,    30,    30,    24,    76,    75,    76,    80,
+      25,    81,    49,     1,    13,    30,    76,    75,    25,    80,
+      14,    79,    30,    79,    79,    79,    81,    25,    30,    30,
+      79,    30,    79,    30,    80,    30,    30,    30,    79,    33,
+      50,    30,    30,    30,    76
 };
 
 #define yyerrok		(yyerrstatus = 0)
@@ -1284,7 +1292,7 @@ yydestruct (yymsg, yytype, yyvaluep)
 
   switch (yytype)
     {
-      case 51: /* "choice_entry" */
+      case 52: /* "choice_entry" */
 
 	{
 	fprintf(stderr, "%s:%d: missing end statement for this entry\n",
@@ -1294,7 +1302,7 @@ yydestruct (yymsg, yytype, yyvaluep)
 };
 
 	break;
-      case 57: /* "if_entry" */
+      case 58: /* "if_entry" */
 
 	{
 	fprintf(stderr, "%s:%d: missing end statement for this entry\n",
@@ -1304,7 +1312,7 @@ yydestruct (yymsg, yytype, yyvaluep)
 };
 
 	break;
-      case 62: /* "menu_entry" */
+      case 64: /* "menu_entry" */
 
 	{
 	fprintf(stderr, "%s:%d: missing end statement for this entry\n",
@@ -1614,39 +1622,39 @@ yyreduce:
   YY_REDUCE_PRINT (yyn);
   switch (yyn)
     {
-        case 8:
+        case 10:
 
     { zconf_error("unexpected end statement"); ;}
     break;
 
-  case 9:
+  case 11:
 
     { zconf_error("unknown statement \"%s\"", (yyvsp[(2) - (4)].string)); ;}
     break;
 
-  case 10:
+  case 12:
 
     {
 	zconf_error("unexpected option \"%s\"", kconf_id_strings + (yyvsp[(2) - (4)].id)->name);
 ;}
     break;
 
-  case 11:
+  case 13:
 
     { zconf_error("invalid statement"); ;}
     break;
 
-  case 25:
+  case 27:
 
     { zconf_error("unknown option \"%s\"", (yyvsp[(1) - (3)].string)); ;}
     break;
 
-  case 26:
+  case 28:
 
     { zconf_error("invalid option"); ;}
     break;
 
-  case 27:
+  case 29:
 
     {
 	struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), 0);
@@ -1656,7 +1664,7 @@ yyreduce:
 ;}
     break;
 
-  case 28:
+  case 30:
 
     {
 	menu_end_entry();
@@ -1664,7 +1672,7 @@ yyreduce:
 ;}
     break;
 
-  case 29:
+  case 31:
 
     {
 	struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), 0);
@@ -1674,7 +1682,7 @@ yyreduce:
 ;}
     break;
 
-  case 30:
+  case 32:
 
     {
 	if (current_entry->prompt)
@@ -1686,7 +1694,7 @@ yyreduce:
 ;}
     break;
 
-  case 38:
+  case 40:
 
     {
 	menu_set_type((yyvsp[(1) - (3)].id)->stype);
@@ -1696,7 +1704,7 @@ yyreduce:
 ;}
     break;
 
-  case 39:
+  case 41:
 
     {
 	menu_add_prompt(P_PROMPT, (yyvsp[(2) - (4)].string), (yyvsp[(3) - (4)].expr));
@@ -1704,7 +1712,7 @@ yyreduce:
 ;}
     break;
 
-  case 40:
+  case 42:
 
     {
 	menu_add_expr(P_DEFAULT, (yyvsp[(2) - (4)].expr), (yyvsp[(3) - (4)].expr));
@@ -1716,7 +1724,7 @@ yyreduce:
 ;}
     break;
 
-  case 41:
+  case 43:
 
     {
 	menu_add_symbol(P_SELECT, sym_lookup((yyvsp[(2) - (4)].string), 0), (yyvsp[(3) - (4)].expr));
@@ -1724,7 +1732,7 @@ yyreduce:
 ;}
     break;
 
-  case 42:
+  case 44:
 
     {
 	menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,(yyvsp[(2) - (5)].symbol), (yyvsp[(3) - (5)].symbol)), (yyvsp[(4) - (5)].expr));
@@ -1732,7 +1740,7 @@ yyreduce:
 ;}
     break;
 
-  case 45:
+  case 47:
 
     {
 	struct kconf_id *id = kconf_id_lookup((yyvsp[(2) - (3)].string), strlen((yyvsp[(2) - (3)].string)));
@@ -1744,17 +1752,17 @@ yyreduce:
 ;}
     break;
 
-  case 46:
+  case 48:
 
     { (yyval.string) = NULL; ;}
     break;
 
-  case 47:
+  case 49:
 
     { (yyval.string) = (yyvsp[(2) - (2)].string); ;}
     break;
 
-  case 48:
+  case 50:
 
     {
 	struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), SYMBOL_CHOICE);
@@ -1765,14 +1773,14 @@ yyreduce:
 ;}
     break;
 
-  case 49:
+  case 51:
 
     {
 	(yyval.menu) = menu_add_menu();
 ;}
     break;
 
-  case 50:
+  case 52:
 
     {
 	if (zconf_endtoken((yyvsp[(1) - (1)].id), T_CHOICE, T_ENDCHOICE)) {
@@ -1782,7 +1790,7 @@ yyreduce:
 ;}
     break;
 
-  case 58:
+  case 60:
 
     {
 	menu_add_prompt(P_PROMPT, (yyvsp[(2) - (4)].string), (yyvsp[(3) - (4)].expr));
@@ -1790,7 +1798,7 @@ yyreduce:
 ;}
     break;
 
-  case 59:
+  case 61:
 
     {
 	if ((yyvsp[(1) - (3)].id)->stype == S_BOOLEAN || (yyvsp[(1) - (3)].id)->stype == S_TRISTATE) {
@@ -1803,7 +1811,7 @@ yyreduce:
 ;}
     break;
 
-  case 60:
+  case 62:
 
     {
 	current_entry->sym->flags |= SYMBOL_OPTIONAL;
@@ -1811,7 +1819,7 @@ yyreduce:
 ;}
     break;
 
-  case 61:
+  case 63:
 
     {
 	if ((yyvsp[(1) - (4)].id)->stype == S_UNKNOWN) {
@@ -1823,7 +1831,7 @@ yyreduce:
 ;}
     break;
 
-  case 64:
+  case 66:
 
     {
 	printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno());
@@ -1833,7 +1841,7 @@ yyreduce:
 ;}
     break;
 
-  case 65:
+  case 67:
 
     {
 	if (zconf_endtoken((yyvsp[(1) - (1)].id), T_IF, T_ENDIF)) {
@@ -1843,7 +1851,14 @@ yyreduce:
 ;}
     break;
 
-  case 71:
+  case 73:
+
+    {
+	menu_add_prompt(P_MENU, (yyvsp[(2) - (3)].string), NULL);
+;}
+    break;
+
+  case 74:
 
     {
 	menu_add_entry(NULL);
@@ -1852,14 +1867,14 @@ yyreduce:
 ;}
     break;
 
-  case 72:
+  case 75:
 
     {
 	(yyval.menu) = menu_add_menu();
 ;}
     break;
 
-  case 73:
+  case 76:
 
     {
 	if (zconf_endtoken((yyvsp[(1) - (1)].id), T_MENU, T_ENDMENU)) {
@@ -1869,7 +1884,7 @@ yyreduce:
 ;}
     break;
 
-  case 79:
+  case 82:
 
     {
 	printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), (yyvsp[(2) - (3)].string));
@@ -1877,7 +1892,7 @@ yyreduce:
 ;}
     break;
 
-  case 80:
+  case 83:
 
     {
 	menu_add_entry(NULL);
@@ -1886,14 +1901,14 @@ yyreduce:
 ;}
     break;
 
-  case 81:
+  case 84:
 
     {
 	menu_end_entry();
 ;}
     break;
 
-  case 82:
+  case 85:
 
     {
 	printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno());
@@ -1901,14 +1916,14 @@ yyreduce:
 ;}
     break;
 
-  case 83:
+  case 86:
 
     {
 	current_entry->help = (yyvsp[(2) - (2)].string);
 ;}
     break;
 
-  case 88:
+  case 91:
 
     {
 	menu_add_dep((yyvsp[(3) - (4)].expr));
@@ -1916,84 +1931,84 @@ yyreduce:
 ;}
     break;
 
-  case 90:
+  case 93:
 
     {
 	menu_add_prompt(P_PROMPT, (yyvsp[(1) - (2)].string), (yyvsp[(2) - (2)].expr));
 ;}
     break;
 
-  case 93:
+  case 96:
 
     { (yyval.id) = (yyvsp[(1) - (2)].id); ;}
     break;
 
-  case 94:
+  case 97:
 
     { (yyval.id) = (yyvsp[(1) - (2)].id); ;}
     break;
 
-  case 95:
+  case 98:
 
     { (yyval.id) = (yyvsp[(1) - (2)].id); ;}
     break;
 
-  case 98:
+  case 101:
 
     { (yyval.expr) = NULL; ;}
     break;
 
-  case 99:
+  case 102:
 
     { (yyval.expr) = (yyvsp[(2) - (2)].expr); ;}
     break;
 
-  case 100:
+  case 103:
 
     { (yyval.expr) = expr_alloc_symbol((yyvsp[(1) - (1)].symbol)); ;}
     break;
 
-  case 101:
+  case 104:
 
     { (yyval.expr) = expr_alloc_comp(E_EQUAL, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); ;}
     break;
 
-  case 102:
+  case 105:
 
     { (yyval.expr) = expr_alloc_comp(E_UNEQUAL, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); ;}
     break;
 
-  case 103:
+  case 106:
 
     { (yyval.expr) = (yyvsp[(2) - (3)].expr); ;}
     break;
 
-  case 104:
+  case 107:
 
     { (yyval.expr) = expr_alloc_one(E_NOT, (yyvsp[(2) - (2)].expr)); ;}
     break;
 
-  case 105:
+  case 108:
 
     { (yyval.expr) = expr_alloc_two(E_OR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
     break;
 
-  case 106:
+  case 109:
 
     { (yyval.expr) = expr_alloc_two(E_AND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
     break;
 
-  case 107:
+  case 110:
 
     { (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), 0); free((yyvsp[(1) - (1)].string)); ;}
     break;
 
-  case 108:
+  case 111:
 
     { (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), SYMBOL_CONST); free((yyvsp[(1) - (1)].string)); ;}
     break;
 
-  case 109:
+  case 112:
 
     { (yyval.string) = NULL; ;}
     break;
@@ -2239,6 +2254,10 @@ void conf_parse(const char *name)
 		prop = prop_alloc(P_DEFAULT, modules_sym);
 		prop->expr = expr_alloc_symbol(sym_lookup("MODULES", 0));
 	}
+
+	rootmenu.prompt->text = strdup(_(rootmenu.prompt->text));
+	rootmenu.prompt->text = sym_expand_string_value(rootmenu.prompt->text);
+
 	menu_finalize(&rootmenu);
 	for_all_symbols(i, sym) {
 		if (sym_check_deps(sym))
-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH 15/15] kbuild: migrate all arch to the kconfig mainmenu upgrade
  2010-09-11 15:51 [PATCH 00/15] Kconfig generalization Arnaud Lacombe
                   ` (13 preceding siblings ...)
  2010-09-11 15:51 ` [PATCH 14/15] kconfig: regen parser Arnaud Lacombe
@ 2010-09-11 15:51 ` Arnaud Lacombe
  2010-09-12  4:12 ` [DIFF] kbuild-generic-v5 -> kbuild-generic-v6 Arnaud Lacombe
                   ` (2 subsequent siblings)
  17 siblings, 0 replies; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-11 15:51 UTC (permalink / raw)
  To: Sam Ravnborg, Michal Marek; +Cc: linux-kbuild, Arnaud Lacombe

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
---
 Kconfig                  |   11 +++++++++++
 arch/alpha/Kconfig       |    4 ----
 arch/arm/Kconfig         |    7 -------
 arch/avr32/Kconfig       |    7 -------
 arch/blackfin/Kconfig    |    7 -------
 arch/cris/Kconfig        |    7 -------
 arch/frv/Kconfig         |    6 ------
 arch/h8300/Kconfig       |    7 -------
 arch/ia64/Kconfig        |    7 -------
 arch/m32r/Kconfig        |    7 -------
 arch/m68k/Kconfig        |    6 ------
 arch/m68knommu/Kconfig   |    7 -------
 arch/microblaze/Kconfig  |    5 -----
 arch/mips/Kconfig        |    2 --
 arch/mn10300/Kconfig     |    9 ---------
 arch/parisc/Kconfig      |    7 -------
 arch/powerpc/Kconfig     |    6 ------
 arch/s390/Kconfig        |    7 -------
 arch/score/Kconfig       |    5 -----
 arch/sh/Kconfig          |    7 -------
 arch/sparc/Kconfig       |    6 ------
 arch/tile/Kconfig        |    2 --
 arch/um/Kconfig.common   |    2 --
 arch/x86/Kconfig         |    3 ---
 arch/xtensa/Kconfig      |    5 -----
 scripts/kconfig/Makefile |    2 +-
 26 files changed, 12 insertions(+), 139 deletions(-)
 create mode 100644 Kconfig

diff --git a/Kconfig b/Kconfig
new file mode 100644
index 0000000..c13f48d
--- /dev/null
+++ b/Kconfig
@@ -0,0 +1,11 @@
+#
+# For a description of the syntax of this configuration file,
+# see Documentation/kbuild/kconfig-language.txt.
+#
+mainmenu "Linux/$ARCH $KERNELVERSION Kernel Configuration"
+
+config SRCARCH
+	string
+	option env="SRCARCH"
+
+source "arch/$SRCARCH/Kconfig"
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig
index b9647bb..f706a88 100644
--- a/arch/alpha/Kconfig
+++ b/arch/alpha/Kconfig
@@ -1,7 +1,3 @@
-#
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-#
 config ALPHA
 	bool
 	default y
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 9295110..26ad598 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1,10 +1,3 @@
-#
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-#
-
-mainmenu "Linux Kernel Configuration"
-
 config ARM
 	bool
 	default y
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig
index f515727..1b5d36a 100644
--- a/arch/avr32/Kconfig
+++ b/arch/avr32/Kconfig
@@ -1,10 +1,3 @@
-#
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-#
-
-mainmenu "Linux Kernel Configuration"
-
 config AVR32
 	def_bool y
 	# With EMBEDDED=n, we get lots of stuff automatically selected
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index 5a3152b..45f5186 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -1,10 +1,3 @@
-#
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-#
-
-mainmenu "Blackfin Kernel Configuration"
-
 config SYMBOL_PREFIX
 	string
 	default "_"
diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig
index aefe3b1..613e628 100644
--- a/arch/cris/Kconfig
+++ b/arch/cris/Kconfig
@@ -1,10 +1,3 @@
-#
-# For a description of the syntax of this configuration file,
-# see the Configure script.
-#
-
-mainmenu "Linux/CRIS Kernel Configuration"
-
 config MMU
 	bool
 	default y
diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig
index 16399bd..a57951f 100644
--- a/arch/frv/Kconfig
+++ b/arch/frv/Kconfig
@@ -1,7 +1,3 @@
-#
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-#
 config FRV
 	bool
 	default y
@@ -60,8 +56,6 @@ config HZ
 	int
 	default 1000
 
-mainmenu "Fujitsu FR-V Kernel Configuration"
-
 source "init/Kconfig"
 
 source "kernel/Kconfig.freezer"
diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig
index 988b6ff..65f897d8 100644
--- a/arch/h8300/Kconfig
+++ b/arch/h8300/Kconfig
@@ -1,10 +1,3 @@
-#
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-#
-
-mainmenu "uClinux/h8300 (w/o MMU) Kernel Configuration"
-
 config H8300
 	bool
 	default y
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index ba22849..464ba66 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -1,10 +1,3 @@
-#
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-#
-
-mainmenu "IA-64 Linux Kernel Configuration"
-
 source "init/Kconfig"
 
 source "kernel/Kconfig.freezer"
diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig
index 836abbb..3ffb886 100644
--- a/arch/m32r/Kconfig
+++ b/arch/m32r/Kconfig
@@ -1,10 +1,3 @@
-#
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-#
-
-mainmenu "Linux/M32R Kernel Configuration"
-
 config M32R
 	bool
 	default y
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig
index 8030e24..723f8f5 100644
--- a/arch/m68k/Kconfig
+++ b/arch/m68k/Kconfig
@@ -1,7 +1,3 @@
-#
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-#
 config M68K
 	bool
 	default y
@@ -62,8 +58,6 @@ config HZ
 config ARCH_USES_GETTIMEOFFSET
 	def_bool y
 
-mainmenu "Linux/68k Kernel Configuration"
-
 source "init/Kconfig"
 
 source "kernel/Kconfig.freezer"
diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig
index 2609c39..8c062df 100644
--- a/arch/m68knommu/Kconfig
+++ b/arch/m68knommu/Kconfig
@@ -1,10 +1,3 @@
-#
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-#
-
-mainmenu "uClinux/68k (w/o MMU) Kernel Configuration"
-
 config M68K
 	bool
 	default y
diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig
index 692fdfc..44b4b76 100644
--- a/arch/microblaze/Kconfig
+++ b/arch/microblaze/Kconfig
@@ -1,8 +1,3 @@
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-
-mainmenu "Linux/Microblaze Kernel Configuration"
-
 config MICROBLAZE
 	def_bool y
 	select HAVE_MEMBLOCK
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 3ad59dd..9f61741 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -14,8 +14,6 @@ config MIPS
 	select HAVE_KRETPROBES
 	select RTC_LIB if !MACH_LOONGSON
 
-mainmenu "Linux/MIPS Kernel Configuration"
-
 menu "Machine selection"
 
 config ZONE_DMA
diff --git a/arch/mn10300/Kconfig b/arch/mn10300/Kconfig
index 444b9f9..ba8bd66 100644
--- a/arch/mn10300/Kconfig
+++ b/arch/mn10300/Kconfig
@@ -1,10 +1,3 @@
-#
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-#
-
-mainmenu "Linux Kernel Configuration"
-
 config MN10300
 	def_bool y
 	select HAVE_OPROFILE
@@ -66,8 +59,6 @@ config HZ
 	int
 	default 1000
 
-mainmenu "Matsushita MN10300/AM33 Kernel Configuration"
-
 source "init/Kconfig"
 
 source "kernel/Kconfig.freezer"
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
index 907417d..33c0214 100644
--- a/arch/parisc/Kconfig
+++ b/arch/parisc/Kconfig
@@ -1,10 +1,3 @@
-#
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-#
-
-mainmenu "Linux/PA-RISC Kernel Configuration"
-
 config PARISC
 	def_bool y
 	select HAVE_IDE
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 631e5a0..209557c 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -1,9 +1,3 @@
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-#
-
-mainmenu "Linux/PowerPC Kernel Configuration"
-
 source "arch/powerpc/platforms/Kconfig.cputype"
 
 config PPC32
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index f0777a4..147d3b5 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -1,8 +1,3 @@
-#
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-#
-
 config SCHED_MC
 	def_bool y
 	depends on SMP
@@ -75,8 +70,6 @@ config VIRT_CPU_ACCOUNTING
 config ARCH_SUPPORTS_DEBUG_PAGEALLOC
 	def_bool y
 
-mainmenu "Linux Kernel Configuration"
-
 config S390
 	def_bool y
 	select USE_GENERIC_SMP_HELPERS if SMP
diff --git a/arch/score/Kconfig b/arch/score/Kconfig
index be4a155..4293fdcb 100644
--- a/arch/score/Kconfig
+++ b/arch/score/Kconfig
@@ -1,8 +1,3 @@
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-
-mainmenu "Linux/SCORE Kernel Configuration"
-
 menu "Machine selection"
 
 choice
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index 33990fa..3689c04 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -1,10 +1,3 @@
-#
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-#
-
-mainmenu "Linux/SuperH Kernel Configuration"
-
 config SUPERH
 	def_bool y
 	select EMBEDDED
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index 491e9d6..093a6d3 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -1,9 +1,3 @@
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-#
-
-mainmenu "Linux/SPARC Kernel Configuration"
-
 config 64BIT
 	bool "64-bit kernel" if ARCH = "sparc"
 	default ARCH = "sparc64"
diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig
index 1eb308c..d0cc5b4 100644
--- a/arch/tile/Kconfig
+++ b/arch/tile/Kconfig
@@ -113,8 +113,6 @@ config TILE
 #       config HUGETLB_PAGE_SIZE_VARIABLE
 
 
-mainmenu "Linux/TILE Kernel Configuration"
-
 # Please note: TILE-Gx support is not yet finalized; this is
 # the preliminary support.  TILE-Gx drivers are only provided
 # with the alpha or beta test versions for Tilera customers.
diff --git a/arch/um/Kconfig.common b/arch/um/Kconfig.common
index 7c8e277..049d048 100644
--- a/arch/um/Kconfig.common
+++ b/arch/um/Kconfig.common
@@ -19,8 +19,6 @@ config MMU
 config NO_IOMEM
 	def_bool y
 
-mainmenu "Linux/Usermode Kernel Configuration"
-
 config ISA
 	bool
 
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index a84fc34..4742ddf 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1,6 +1,3 @@
-# x86 configuration
-mainmenu "Linux Kernel Configuration for x86"
-
 # Select 32 or 64 bit
 config 64BIT
 	bool "64-bit kernel" if ARCH = "x86"
diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig
index 0859bfd..d373d15 100644
--- a/arch/xtensa/Kconfig
+++ b/arch/xtensa/Kconfig
@@ -1,8 +1,3 @@
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-
-mainmenu "Linux/Xtensa Kernel Configuration"
-
 config FRAME_POINTER
 	def_bool n
 
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index cef3f75..52c34b9 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -8,7 +8,7 @@ PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-c
 ifdef KBUILD_KCONFIG
 Kconfig := $(KBUILD_KCONFIG)
 else
-Kconfig := arch/$(SRCARCH)/Kconfig
+Kconfig := Kconfig
 endif
 
 xconfig: $(obj)/qconf
-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* Re: [PATCH 08/15] kconfig: expand by default the rootmenu's prompt
  2010-09-11 15:51 ` [PATCH 08/15] kconfig: expand by default the rootmenu's prompt Arnaud Lacombe
@ 2010-09-11 15:57   ` Arnaud Lacombe
  0 siblings, 0 replies; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-11 15:57 UTC (permalink / raw)
  To: Sam Ravnborg, Michal Marek; +Cc: linux-kbuild

Hi,

On Sat, Sep 11, 2010 at 11:51 AM, Arnaud Lacombe <lacombar@gmail.com> wrote:
> Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
> ---
>  scripts/kconfig/zconf.y |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y
> index e9b14efd..c95e67e 100644
> --- a/scripts/kconfig/zconf.y
> +++ b/scripts/kconfig/zconf.y
> @@ -502,6 +502,10 @@ void conf_parse(const char *name)
>                prop = prop_alloc(P_DEFAULT, modules_sym);
>                prop->expr = expr_alloc_symbol(sym_lookup("MODULES", 0));
>        }
> +
> +       rootmenu.prompt->text = strdup(_(rootmenu.prompt->text));
> +       rootmenu.prompt->text = sym_expand_string_value(rootmenu.prompt->text);
> +
actually, this strdup(3) is useless as it will be performed by
sym_expand_string_value().

 - Arnaud

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 09/15] kconfig: replace KERNELVERSION usage by the mainmenu's prompt
  2010-09-11 15:51 ` [PATCH 09/15] kconfig: replace KERNELVERSION usage by the mainmenu's prompt Arnaud Lacombe
@ 2010-09-11 16:05   ` Arnaud Lacombe
  2010-09-17 22:02   ` Michal Marek
  2010-09-17 22:16   ` Arnaud Lacombe
  2 siblings, 0 replies; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-11 16:05 UTC (permalink / raw)
  To: Sam Ravnborg, Michal Marek; +Cc: linux-kbuild, Arnaud Lacombe

Hi,

On Sat, Sep 11, 2010 at 11:51 AM, Arnaud Lacombe <lacombar@gmail.com> wrote:
> @@ -797,15 +795,13 @@ int conf_write_autoconf(void)
>                return 1;
>        }
>
> -       sym = sym_lookup("KERNELVERSION", 0);
> -       sym_calc_value(sym);
>        time(&now);
>        fprintf(out, "#\n"
>                     "# Automatically generated make config: don't edit\n"
> -                    "# Linux kernel version: %s\n"
> +                    "# %s\n"
>                     "# %s"
>                     "#\n",
> -                    sym_get_string_value(sym), ctime(&now));
> +                    rootmenu.prompt->text, ctime(&now));
>        fprintf(tristate, "#\n"
>                          "# Automatically generated - do not edit\n"
>                          "\n");
d'oh! I missed one occurence of "Linux kernel version:..." right below
that one :(

Fixed in the `kbuild-generic-v6' branch of the github repo, as is the
extra strdup().

 - Arnaud

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 04/15] kconfig: rephrase help texts/comments not to include the package name
  2010-09-11 15:51 ` [PATCH 04/15] kconfig: rephrase help texts/comments not to include the package name Arnaud Lacombe
@ 2010-09-11 20:22   ` Randy Dunlap
  2010-09-12  4:04     ` Arnaud Lacombe
  2010-10-21  2:40     ` Arnaud Lacombe
  2010-09-17 21:59   ` Michal Marek
  1 sibling, 2 replies; 33+ messages in thread
From: Randy Dunlap @ 2010-09-11 20:22 UTC (permalink / raw)
  To: Arnaud Lacombe; +Cc: Sam Ravnborg, Michal Marek, linux-kbuild

On Sat, 11 Sep 2010 11:51:11 -0400 Arnaud Lacombe wrote:

> Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
> ---
>  scripts/kconfig/conf.c   |   11 +++++------
>  scripts/kconfig/gconf.c  |    3 +--
>  scripts/kconfig/mconf.c  |   38 ++++++++++++++++++--------------------
>  scripts/kconfig/nconf.c  |   43 +++++++++++++++++++------------------------
>  scripts/kconfig/qconf.cc |    2 +-
>  5 files changed, 44 insertions(+), 53 deletions(-)
> 
> diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
> index b62d020..5459a38 100644
> --- a/scripts/kconfig/conf.c
> +++ b/scripts/kconfig/conf.c
> @@ -508,8 +508,7 @@ int main(int ac, char **av)
>  		name = conf_get_configname();
>  		if (stat(name, &tmpstat)) {
>  			fprintf(stderr, _("***\n"
> -				"*** You have not yet configured your kernel!\n"
> -				"*** (missing kernel config file \"%s\")\n"
> +				"*** Configuration file \"%s\" not found!\n"
>  				"***\n"
>  				"*** Please run some configurator (e.g. \"make oldconfig\" or\n"
>  				"*** \"make menuconfig\" or \"make xconfig\").\n"

but these *config program names are OK?

> diff --git a/scripts/kconfig/gconf.c b/scripts/kconfig/gconf.c
> index d669882..1636213 100644
> --- a/scripts/kconfig/gconf.c
> +++ b/scripts/kconfig/gconf.c
> @@ -671,8 +671,7 @@ void on_introduction1_activate(GtkMenuItem * menuitem, gpointer user_data)
>  {
>  	GtkWidget *dialog;
>  	const gchar *intro_text = _(
> -	    "Welcome to gkc, the GTK+ graphical kernel configuration tool\n"
> -	    "for Linux.\n"
> +	    "Welcome to gkc, the GTK+ graphical configuration tool\n"

Should be "gconfig".  It's never been called "gkc" AFAIK.

>  	    "For each option, a blank box indicates the feature is disabled, a\n"
>  	    "check indicates it is enabled, and a dot indicates that it is to\n"
>  	    "be compiled as a module.  Clicking on the box will cycle through the three states.\n"
> diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c
> index 17ba222..037443b 100644
> --- a/scripts/kconfig/mconf.c
> +++ b/scripts/kconfig/mconf.c
> @@ -25,11 +25,9 @@
>  static const char mconf_readme[] = N_(
>  "Overview\n"
>  "--------\n"
> -"Some kernel features may be built directly into the kernel.\n"
> -"Some may be made into loadable runtime modules.  Some features\n"
> -"may be completely removed altogether.  There are also certain\n"
> -"kernel parameters which are not really features, but must be\n"
> -"entered in as decimal or hexadecimal numbers or possibly text.\n"
> +"This interface let you select features and parameters for the build\n"

end above sentence with period.

> +"Features can either be built-in, modularized, or ignored. Parameters\n"
> +"must be entered in as decimal or hexadecimal numbers or text.\n"
>  "\n"
>  "Menu items beginning with following braces represent features that\n"
>  "  [ ] can be built in or removed\n"
> diff --git a/scripts/kconfig/nconf.c b/scripts/kconfig/nconf.c
> index da5e45d..6cc3a6e 100644
> --- a/scripts/kconfig/nconf.c
> +++ b/scripts/kconfig/nconf.c
> @@ -15,11 +15,9 @@
>  static const char nconf_readme[] = N_(
>  "Overview\n"
>  "--------\n"
> -"Some kernel features may be built directly into the kernel.\n"
> -"Some may be made into loadable runtime modules.  Some features\n"
> -"may be completely removed altogether.  There are also certain\n"
> -"kernel parameters which are not really features, but must be\n"
> -"entered in as decimal or hexadecimal numbers or possibly text.\n"
> +"This interface let you select features and parameters for the build\n"

end sentence above with a period.

> +"Features can either be built-in, modularized, or ignored. Parameters\n"
> +"must be entered in as decimal or hexadecimal numbers or text.\n"
>  "\n"
>  "Menu items beginning with following braces represent features that\n"
>  "  [ ] can be built in or removed\n"
> @@ -128,9 +126,9 @@ static const char nconf_readme[] = N_(
>  "\n"
>  "Optional personality available\n"
>  "------------------------------\n"
> -"If you prefer to have all of the kernel options listed in a single\n"
> -"menu, rather than the default multimenu hierarchy, run the nconfig\n"
> -"with NCONFIG_MODE environment variable set to single_menu. Example:\n"
> +"If you prefer to have all of the options listed in a single menu, rather\n"
> +"than the default multimenu hierarchy, run the menuconfig with\n"

s/menuconfig/nconfig/

> +"NCONFIG_MODE environment variable set to single_menu. Example:\n"
>  "\n"
>  "make NCONFIG_MODE=single_menu nconfig\n"
>  "\n"
> diff --git a/scripts/kconfig/qconf.cc b/scripts/kconfig/qconf.cc
> index a04e451..fe18f7e 100644
> --- a/scripts/kconfig/qconf.cc
> +++ b/scripts/kconfig/qconf.cc
> @@ -1655,7 +1655,7 @@ void ConfigMainWindow::closeEvent(QCloseEvent* e)
>  
>  void ConfigMainWindow::showIntro(void)
>  {
> -	static const QString str = _("Welcome to the qconf graphical kernel configuration tool for Linux.\n\n"
> +	static const QString str = _("Welcome to the qconf graphical configuration tool.\n\n"

s/qconf/xconfig/

>  		"For each option, a blank box indicates the feature is disabled, a check\n"
>  		"indicates it is enabled, and a dot indicates that it is to be compiled\n"
>  		"as a module.  Clicking on the box will cycle through the three states.\n\n"
> -- 


---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 04/15] kconfig: rephrase help texts/comments not to include the package name
  2010-09-11 20:22   ` Randy Dunlap
@ 2010-09-12  4:04     ` Arnaud Lacombe
  2010-10-21  2:40     ` Arnaud Lacombe
  1 sibling, 0 replies; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-12  4:04 UTC (permalink / raw)
  To: Randy Dunlap; +Cc: Sam Ravnborg, Michal Marek, linux-kbuild

Hi,

On Sat, Sep 11, 2010 at 4:22 PM, Randy Dunlap <rdunlap@xenotime.net> wrote:
> On Sat, 11 Sep 2010 11:51:11 -0400 Arnaud Lacombe wrote:
>>               if (stat(name, &tmpstat)) {
>>                       fprintf(stderr, _("***\n"
>> -                             "*** You have not yet configured your kernel!\n"
>> -                             "*** (missing kernel config file \"%s\")\n"
>> +                             "*** Configuration file \"%s\" not found!\n"
>>                               "***\n"
>>                               "*** Please run some configurator (e.g. \"make oldconfig\" or\n"
>>                               "*** \"make menuconfig\" or \"make xconfig\").\n"
>
> but these *config program names are OK?
>
I'm not aware of all use cases of `conf'. That said, this case is only
relevant if the expected configuration file does not exist which can
be overridden trivially before running `conf'.

Beside that, typos have been addressed in the updated version of the
branch (I'll send a diff-to-previous shortly) as well as a couple of
other nits I noticed today (mostly compiler warnings). I will not
address the "gkc"/"qconf" issue as they're beyond the scope of this
changeset. I also amended the commit log adding a "Reviewed-by" you.

Thanks for the comments!
 - Arnaud

^ permalink raw reply	[flat|nested] 33+ messages in thread

* [DIFF] kbuild-generic-v5 -> kbuild-generic-v6
  2010-09-11 15:51 [PATCH 00/15] Kconfig generalization Arnaud Lacombe
                   ` (14 preceding siblings ...)
  2010-09-11 15:51 ` [PATCH 15/15] kbuild: migrate all arch to the kconfig mainmenu upgrade Arnaud Lacombe
@ 2010-09-12  4:12 ` Arnaud Lacombe
  2010-09-22 17:07   ` [DIFF] kbuild-generic-v6 -> kbuild/kconfig/kbuild-generic-v7 Arnaud Lacombe
  2010-09-17 22:16 ` [PATCH 00/15] Kconfig generalization Michal Marek
  2010-09-19  9:50 ` Sam Ravnborg
  17 siblings, 1 reply; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-12  4:12 UTC (permalink / raw)
  To: Sam Ravnborg, Michal Marek; +Cc: linux-kbuild, Arnaud Lacombe

Hi,

Changes since branch `kbuild-generic-v5' are:
 - Randy's comments about typos and copy/paste mistake
 - fix in the autoconf.h header generation
 - extra strdup() removal
 - const updates

The updated series is available in the git repository at:

 git://github.com/lacombar/linux-2.6.git kbuild-generic-v6

Thanks,
 - Arnaud

---
 scripts/kconfig/confdata.c          |    4 ++--
 scripts/kconfig/lex.zconf.c_shipped |    2 +-
 scripts/kconfig/lkc.h               |    2 +-
 scripts/kconfig/mconf.c             |    2 +-
 scripts/kconfig/menu.c              |    2 +-
 scripts/kconfig/nconf.c             |    6 +++---
 scripts/kconfig/util.c              |    2 +-
 scripts/kconfig/zconf.l             |    2 +-
 scripts/kconfig/zconf.tab.c_shipped |    2 +-
 scripts/kconfig/zconf.y             |    2 +-
 10 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index fbe571a..f7d89d7 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -807,11 +807,11 @@ int conf_write_autoconf(void)
 			  "\n");
 	fprintf(out_h, "/*\n"
 		       " * Automatically generated C config: don't edit\n"
-		       " * Linux kernel version: %s\n"
+		       " * %s\n"
 		       " * %s"
 		       " */\n"
 		       "#define AUTOCONF_INCLUDED\n",
-		       sym_get_string_value(sym), ctime(&now));
+		       rootmenu.prompt->text, ctime(&now));
 
 	for_all_symbols(i, sym) {
 		sym_calc_value(sym);
diff --git a/scripts/kconfig/lex.zconf.c_shipped b/scripts/kconfig/lex.zconf.c_shipped
index 73608a6..6eb0397 100644
--- a/scripts/kconfig/lex.zconf.c_shipped
+++ b/scripts/kconfig/lex.zconf.c_shipped
@@ -2423,7 +2423,7 @@ int zconf_lineno(void)
 	return current_pos.lineno;
 }
 
-char *zconf_curname(void)
+const char *zconf_curname(void)
 {
 	return current_pos.file ? current_pos.file->name : "<none>";
 }
diff --git a/scripts/kconfig/lkc.h b/scripts/kconfig/lkc.h
index 5d5f187..753cdbd 100644
--- a/scripts/kconfig/lkc.h
+++ b/scripts/kconfig/lkc.h
@@ -76,7 +76,7 @@ FILE *zconf_fopen(const char *name);
 void zconf_initscan(const char *name);
 void zconf_nextfile(const char *name);
 int zconf_lineno(void);
-char *zconf_curname(void);
+const char *zconf_curname(void);
 
 /* conf.c */
 void xfgets(char *str, int size, FILE *in);
diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c
index 09d7a23..d433c7a 100644
--- a/scripts/kconfig/mconf.c
+++ b/scripts/kconfig/mconf.c
@@ -25,7 +25,7 @@
 static const char mconf_readme[] = N_(
 "Overview\n"
 "--------\n"
-"This interface let you select features and parameters for the build\n"
+"This interface let you select features and parameters for the build.\n"
 "Features can either be built-in, modularized, or ignored. Parameters\n"
 "must be entered in as decimal or hexadecimal numbers or text.\n"
 "\n"
diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
index d629ffd..23acbdb 100644
--- a/scripts/kconfig/menu.c
+++ b/scripts/kconfig/menu.c
@@ -10,7 +10,7 @@
 #include "lkc.h"
 
 static const char nohelp_text[] = N_(
-	"There is no help available for this kernel option.\n");
+	"There is no help available for this option.\n");
 
 struct menu rootmenu;
 static struct menu **last_entry_ptr;
diff --git a/scripts/kconfig/nconf.c b/scripts/kconfig/nconf.c
index c7fe9f0..ed93dd0 100644
--- a/scripts/kconfig/nconf.c
+++ b/scripts/kconfig/nconf.c
@@ -15,7 +15,7 @@
 static const char nconf_readme[] = N_(
 "Overview\n"
 "--------\n"
-"This interface let you select features and parameters for the build\n"
+"This interface let you select features and parameters for the build.\n"
 "Features can either be built-in, modularized, or ignored. Parameters\n"
 "must be entered in as decimal or hexadecimal numbers or text.\n"
 "\n"
@@ -127,8 +127,8 @@ static const char nconf_readme[] = N_(
 "Optional personality available\n"
 "------------------------------\n"
 "If you prefer to have all of the options listed in a single menu, rather\n"
-"than the default multimenu hierarchy, run the menuconfig with\n"
-"NCONFIG_MODE environment variable set to single_menu. Example:\n"
+"than the default multimenu hierarchy, run the nconfig with NCONFIG_MODE\n"
+"environment variable set to single_menu. Example:\n"
 "\n"
 "make NCONFIG_MODE=single_menu nconfig\n"
 "\n"
diff --git a/scripts/kconfig/util.c b/scripts/kconfig/util.c
index 584390d..6330cc8 100644
--- a/scripts/kconfig/util.c
+++ b/scripts/kconfig/util.c
@@ -16,7 +16,7 @@ struct file *file_lookup(const char *name)
 
 	for (file = file_list; file; file = file->next) {
 		if (!strcmp(name, file->name)) {
-			free(file_name);
+			free((void *)file_name);
 			return file;
 		}
 	}
diff --git a/scripts/kconfig/zconf.l b/scripts/kconfig/zconf.l
index e0cbf8e..3dbaec1 100644
--- a/scripts/kconfig/zconf.l
+++ b/scripts/kconfig/zconf.l
@@ -354,7 +354,7 @@ int zconf_lineno(void)
 	return current_pos.lineno;
 }
 
-char *zconf_curname(void)
+const char *zconf_curname(void)
 {
 	return current_pos.file ? current_pos.file->name : "<none>";
 }
diff --git a/scripts/kconfig/zconf.tab.c_shipped b/scripts/kconfig/zconf.tab.c_shipped
index fd8e9d8..699d4b2 100644
--- a/scripts/kconfig/zconf.tab.c_shipped
+++ b/scripts/kconfig/zconf.tab.c_shipped
@@ -2255,7 +2255,7 @@ void conf_parse(const char *name)
 		prop->expr = expr_alloc_symbol(sym_lookup("MODULES", 0));
 	}
 
-	rootmenu.prompt->text = strdup(_(rootmenu.prompt->text));
+	rootmenu.prompt->text = _(rootmenu.prompt->text);
 	rootmenu.prompt->text = sym_expand_string_value(rootmenu.prompt->text);
 
 	menu_finalize(&rootmenu);
diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y
index c95e67e..2abd3c7 100644
--- a/scripts/kconfig/zconf.y
+++ b/scripts/kconfig/zconf.y
@@ -503,7 +503,7 @@ void conf_parse(const char *name)
 		prop->expr = expr_alloc_symbol(sym_lookup("MODULES", 0));
 	}
 
-	rootmenu.prompt->text = strdup(_(rootmenu.prompt->text));
+	rootmenu.prompt->text = _(rootmenu.prompt->text);
 	rootmenu.prompt->text = sym_expand_string_value(rootmenu.prompt->text);
 
 	menu_finalize(&rootmenu);
-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* Re: [PATCH 04/15] kconfig: rephrase help texts/comments not to include the package name
  2010-09-11 15:51 ` [PATCH 04/15] kconfig: rephrase help texts/comments not to include the package name Arnaud Lacombe
  2010-09-11 20:22   ` Randy Dunlap
@ 2010-09-17 21:59   ` Michal Marek
  1 sibling, 0 replies; 33+ messages in thread
From: Michal Marek @ 2010-09-17 21:59 UTC (permalink / raw)
  To: Arnaud Lacombe; +Cc: Sam Ravnborg, linux-kbuild

Dne 11.9.2010 17:51, Arnaud Lacombe napsal(a):
> diff --git a/scripts/kconfig/nconf.c b/scripts/kconfig/nconf.c
> index da5e45d..6cc3a6e 100644
> --- a/scripts/kconfig/nconf.c
> +++ b/scripts/kconfig/nconf.c
[...]
> +				  "End of the configuration.\n":
                                   You have a stray colon here ^

> +				  "Execute 'make' to start the build or try"
>  				  " 'make help'."), filename);

Michal

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 09/15] kconfig: replace KERNELVERSION usage by the mainmenu's prompt
  2010-09-11 15:51 ` [PATCH 09/15] kconfig: replace KERNELVERSION usage by the mainmenu's prompt Arnaud Lacombe
  2010-09-11 16:05   ` Arnaud Lacombe
@ 2010-09-17 22:02   ` Michal Marek
  2010-09-17 22:16   ` Arnaud Lacombe
  2 siblings, 0 replies; 33+ messages in thread
From: Michal Marek @ 2010-09-17 22:02 UTC (permalink / raw)
  To: Arnaud Lacombe; +Cc: Sam Ravnborg, linux-kbuild

Dne 11.9.2010 17:51, Arnaud Lacombe napsal(a):
>  	QDesktopWidget *d = configApp->desktop();
> -	snprintf(title, sizeof(title), _("Linux Kernel v%s Configuration%s"),
> -		getenv("KERNELVERSION"),
> +	snprintf(title, sizeof(title), "%s%s"),
                                             ^
The closing paren should not be there.

Michal

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 14/15] kconfig: regen parser
  2010-09-11 15:51 ` [PATCH 14/15] kconfig: regen parser Arnaud Lacombe
@ 2010-09-17 22:10   ` Michal Marek
  0 siblings, 0 replies; 33+ messages in thread
From: Michal Marek @ 2010-09-17 22:10 UTC (permalink / raw)
  To: Arnaud Lacombe; +Cc: Sam Ravnborg, linux-kbuild

Dne 11.9.2010 17:51, Arnaud Lacombe napsal(a):
> Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
> ---
>  scripts/kconfig/lex.zconf.c_shipped |    5 +-
>  scripts/kconfig/zconf.tab.c_shipped |  547 ++++++++++++++++++-----------------
>  2 files changed, 286 insertions(+), 266 deletions(-)

The grammar was changed in "[PATCH 06/15] kconfig: implement the
`mainmenu' directive", so it would be easier to understand the history
if the update was done right after that patch. The later changes do not
change any of the flex/bison tables, so I would simply fold them into
the respective patches.

Michal

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 00/15] Kconfig generalization
  2010-09-11 15:51 [PATCH 00/15] Kconfig generalization Arnaud Lacombe
                   ` (15 preceding siblings ...)
  2010-09-12  4:12 ` [DIFF] kbuild-generic-v5 -> kbuild-generic-v6 Arnaud Lacombe
@ 2010-09-17 22:16 ` Michal Marek
  2010-09-19  9:50 ` Sam Ravnborg
  17 siblings, 0 replies; 33+ messages in thread
From: Michal Marek @ 2010-09-17 22:16 UTC (permalink / raw)
  To: Arnaud Lacombe; +Cc: Sam Ravnborg, linux-kbuild

Dne 11.9.2010 17:51, Arnaud Lacombe napsal(a):
> Hi Sam, Michal,
> 
> You'll find hereafter the series for kconfig generalization and interfaces
> changes with the rest of the kernel.
> 
> A quick summary of the serie is:
>  - patch 1 -> 3: handles the CONFIG_ prefix, its build time definition and its
> mention in help text.
>  - patch 4: handles the reference to the 'kernel' keyword in various strings.
>  - patch 5: takes care of the "linux" domain name used to get translation
>    informations.
>  - patch 6 -> 15 handles the mainmenu syntax changes and related.
> 
> This series is available in the git repository at:
> 
>  git://github.com/lacombar/linux-2.6.git kbuild-generic-v5

Hi Arnaud,

sorry for the delay, I have the bad habit of shifting more complex
things away :(. Except the comments I sent as replies to the three
patches, I have only one thing: Publishing the git branch makes it much
more convenient for me to review it, but could you please base the next
version on either the kconfig branch of kbuild-2.6.git or on some tagged
release of Linus' tree? That way I can directly merge it into the
kconfig branch, which I can't if you base on the for-next branch (see
http://git.kernel.org/?p=linux/kernel/git/mmarek/kbuild-2.6.git;a=blob;h=refs/tags/README-KBUILD
for explanaton).

Thanks,
Michal

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 09/15] kconfig: replace KERNELVERSION usage by the mainmenu's prompt
  2010-09-11 15:51 ` [PATCH 09/15] kconfig: replace KERNELVERSION usage by the mainmenu's prompt Arnaud Lacombe
  2010-09-11 16:05   ` Arnaud Lacombe
  2010-09-17 22:02   ` Michal Marek
@ 2010-09-17 22:16   ` Arnaud Lacombe
  2 siblings, 0 replies; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-17 22:16 UTC (permalink / raw)
  To: Sam Ravnborg, Michal Marek; +Cc: linux-kbuild, Arnaud Lacombe

Hi,

On Sat, Sep 11, 2010 at 11:51 AM, Arnaud Lacombe <lacombar@gmail.com> wrote:
> Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
> ---
>  scripts/kconfig/confdata.c |   12 ++++--------
>  scripts/kconfig/gconf.c    |    5 +----
>  scripts/kconfig/mconf.c    |    6 +-----
>  scripts/kconfig/nconf.c    |    6 +-----
>  scripts/kconfig/qconf.cc   |    4 ++--
>  5 files changed, 9 insertions(+), 24 deletions(-)
>
> diff --git a/scripts/kconfig/gconf.c b/scripts/kconfig/gconf.c
> index 1636213..7d48a51 100644
> --- a/scripts/kconfig/gconf.c
> +++ b/scripts/kconfig/gconf.c
> @@ -133,7 +133,6 @@ void init_main_window(const gchar * glade_file)
>        GladeXML *xml;
>        GtkWidget *widget;
>        GtkTextBuffer *txtbuf;
> -       char title[256];
>        GtkStyle *style;
>
>        xml = glade_xml_new(glade_file, "window1", NULL);
> @@ -210,9 +209,7 @@ void init_main_window(const gchar * glade_file)
>                                          /*"style", PANGO_STYLE_OBLIQUE, */
>                                          NULL);
>
> -       sprintf(title, _("Linux Kernel v%s Configuration"),
> -               getenv("KERNELVERSION"));
> -       gtk_window_set_title(GTK_WINDOW(main_wnd), title);
> +       gtk_window_set_title(GTK_WINDOW(main_wnd), rootmenu.prompt->text);
>
>        gtk_widget_show(main_wnd);
>  }
This breaks `gconfig' because init_main_window() is being called
before conf_parse(). Would it be ok to delay the window initialization
after the parsing ? Completely untested as I don't have access to a
$DISPLAY yet:


@@ -1527,12 +1535,6 @@ int main(int ac, char *av[])
        else
                glade_file = g_strconcat(g_get_current_dir(), "/",
av[0], ".glade", NULL);

-       /* Load the interface and connect signals */
-       init_main_window(glade_file);
-       init_tree_model();
-       init_left_tree();
-       init_right_tree();
-
        /* Conf stuffs */
        if (ac > 1 && av[1][0] == '-') {
                switch (av[1][1]) {
@@ -1552,6 +1554,12 @@ int main(int ac, char *av[])
        fixup_rootmenu(&rootmenu);
        conf_read(NULL);

+       /* Load the interface and connect signals */
+       init_main_window(glade_file);
+       init_tree_model();
+       init_left_tree();
+       init_right_tree();
+

 - Arnaud

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 06/15] kconfig: implement the `mainmenu' directive
  2010-09-11 15:51 ` [PATCH 06/15] kconfig: implement the `mainmenu' directive Arnaud Lacombe
@ 2010-09-19  9:42   ` Sam Ravnborg
  2010-09-19 14:53     ` Arnaud Lacombe
  0 siblings, 1 reply; 33+ messages in thread
From: Sam Ravnborg @ 2010-09-19  9:42 UTC (permalink / raw)
  To: Arnaud Lacombe; +Cc: Michal Marek, linux-kbuild

On Sat, Sep 11, 2010 at 11:51:13AM -0400, Arnaud Lacombe wrote:
> If specified, the directive must be placed at the top of the Kconfig file.
> 
> We need to change the grammar to make the mainmenu directive set the
> `rootmenu' prompt. This reflect how menu_add_prompt() works internally, ie.
> set the prompt of the `current_entry', pointing originally to `rootmenu'.
> 
> Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
> ---
>  Documentation/kbuild/kconfig-language.txt |    3 ++-
>  scripts/kconfig/zconf.y                   |   14 +++++++++++---
>  2 files changed, 13 insertions(+), 4 deletions(-)
> 
> diff --git a/Documentation/kbuild/kconfig-language.txt b/Documentation/kbuild/kconfig-language.txt
> index b472e4e..2fe93ca 100644
> --- a/Documentation/kbuild/kconfig-language.txt
> +++ b/Documentation/kbuild/kconfig-language.txt
> @@ -322,7 +322,8 @@ mainmenu:
>  	"mainmenu" <prompt>
>  
>  This sets the config program's title bar if the config program chooses
> -to use it.
> +to use it. It should be placed at the top of the configuration, before any
> +other statement.
>  
>  
>  Kconfig hints
> diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y
> index 23dfd3b..e9b14efd 100644
> --- a/scripts/kconfig/zconf.y
> +++ b/scripts/kconfig/zconf.y
> @@ -36,7 +36,7 @@ static struct menu *current_menu, *current_entry;
>  #define YYERROR_VERBOSE
>  #endif
>  %}
> -%expect 26
> +%expect 28
>  
>  %union
>  {
> @@ -104,14 +104,15 @@ static struct menu *current_menu, *current_entry;
>  %}
>  
>  %%
> -input: stmt_list;
> +input: nl start | start;
> +
> +start: mainmenu_stmt stmt_list | stmt_list;
>  
>  stmt_list:
>  	  /* empty */
>  	| stmt_list common_stmt
>  	| stmt_list choice_stmt
>  	| stmt_list menu_stmt
> -	| stmt_list T_MAINMENU prompt nl
>  	| stmt_list end			{ zconf_error("unexpected end statement"); }
>  	| stmt_list T_WORD error T_EOL	{ zconf_error("unknown statement \"%s\"", $2); }
>  	| stmt_list option_name error T_EOL
> @@ -342,6 +343,13 @@ if_block:
>  	| if_block choice_stmt
>  ;
>  
> +/* mainmenu entry */
> +
> +mainmenu_stmt: T_MAINMENU prompt nl
> +{
> +	menu_add_prompt(P_MENU, $2, NULL);
> +};
> +
>  /* menu entry */
>  
>  menu: T_MENU prompt T_EOL

With the above the mainmenu is mandatory.
So there is no longer a need to explicit give it a promt as
is done in conf_parse:

        modules_sym->flags |= SYMBOL_AUTO;
        rootmenu.prompt = menu_add_prompt(P_MENU, "Linux Kernel Configuration", NULL);


And if we delete this (now not needed) assignment, we no longer requre
the patch that silence warning about redefinition of rootmeny prompt.

	Sam

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 00/15] Kconfig generalization
  2010-09-11 15:51 [PATCH 00/15] Kconfig generalization Arnaud Lacombe
                   ` (16 preceding siblings ...)
  2010-09-17 22:16 ` [PATCH 00/15] Kconfig generalization Michal Marek
@ 2010-09-19  9:50 ` Sam Ravnborg
  17 siblings, 0 replies; 33+ messages in thread
From: Sam Ravnborg @ 2010-09-19  9:50 UTC (permalink / raw)
  To: Arnaud Lacombe; +Cc: Michal Marek, linux-kbuild

On Sat, Sep 11, 2010 at 11:51:07AM -0400, Arnaud Lacombe wrote:
> Hi Sam, Michal,
> 
> You'll find hereafter the series for kconfig generalization and interfaces
> changes with the rest of the kernel.

Hi Arnaud.

Looks good.

Feel free to add:
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>

on all patches.

I had one comment related to mainmenu - see separate mail.

	Sam

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 06/15] kconfig: implement the `mainmenu' directive
  2010-09-19  9:42   ` Sam Ravnborg
@ 2010-09-19 14:53     ` Arnaud Lacombe
  0 siblings, 0 replies; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-19 14:53 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Michal Marek, linux-kbuild

Hi,

On Sun, Sep 19, 2010 at 5:42 AM, Sam Ravnborg <sam@ravnborg.org> wrote:
> On Sat, Sep 11, 2010 at 11:51:13AM -0400, Arnaud Lacombe wrote:
>> [...]
>>  %%
>> -input: stmt_list;
>> +input: nl start | start;
>> +
>> +start: mainmenu_stmt stmt_list | stmt_list;
>>
>
> With the above the mainmenu is mandatory.
> So there is no longer a need to explicit give it a promt as
> is done in conf_parse:
>
>        modules_sym->flags |= SYMBOL_AUTO;
>        rootmenu.prompt = menu_add_prompt(P_MENU, "Linux Kernel Configuration", NULL);
>
>
> And if we delete this (now not needed) assignment, we no longer requre
> the patch that silence warning about redefinition of rootmeny prompt.
>
No, it is not mandatory. My first implementation made it mandatory,
but I loosen the requirement after you asked me that it would be nice
not to have it mandatory for simple Kconfig file. Making it that way
also save some trouble on UML, but I'll come back on that later on.

 - Arnaud

^ permalink raw reply	[flat|nested] 33+ messages in thread

* [DIFF] kbuild-generic-v6 -> kbuild/kconfig/kbuild-generic-v7
  2010-09-12  4:12 ` [DIFF] kbuild-generic-v5 -> kbuild-generic-v6 Arnaud Lacombe
@ 2010-09-22 17:07   ` Arnaud Lacombe
  2010-09-27 21:25     ` Michal Marek
  0 siblings, 1 reply; 33+ messages in thread
From: Arnaud Lacombe @ 2010-09-22 17:07 UTC (permalink / raw)
  To: Sam Ravnborg, Michal Marek; +Cc: linux-kbuild, Arnaud Lacombe

Hi,

Changes since branch `kbuild-generic-v6' are:
 - rebase against `kbuild/kconfig'
 - extra parens/column fixes after Michal's comments
 - delayed window initialization for gconf in order to wait for rootmenu
   initialization.
 - commit tagging

Note that I kept the grammar change and parser regeneration in two separate
commits, one after the other.

This branch merge without conflict with 2.6.36-rc5 and the next-20100921 tree.
Tested with {x,n,menu}config on i386, sh and um.

The updated series is available in the git repository at:

 git://github.com/lacombar/linux-2.6.git kbuild/kconfig/kbuild-generic-v7

Thanks,
 - Arnaud

---
 scripts/kconfig/gconf.c  |   12 ++++++------
 scripts/kconfig/nconf.c  |    2 +-
 scripts/kconfig/qconf.cc |    2 +-
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/scripts/kconfig/gconf.c b/scripts/kconfig/gconf.c
index 7d48a51..4558961 100644
--- a/scripts/kconfig/gconf.c
+++ b/scripts/kconfig/gconf.c
@@ -1527,12 +1527,6 @@ int main(int ac, char *av[])
 	else
 		glade_file = g_strconcat(g_get_current_dir(), "/", av[0], ".glade", NULL);
 
-	/* Load the interface and connect signals */
-	init_main_window(glade_file);
-	init_tree_model();
-	init_left_tree();
-	init_right_tree();
-
 	/* Conf stuffs */
 	if (ac > 1 && av[1][0] == '-') {
 		switch (av[1][1]) {
@@ -1552,6 +1546,12 @@ int main(int ac, char *av[])
 	fixup_rootmenu(&rootmenu);
 	conf_read(NULL);
 
+	/* Load the interface and connect signals */
+	init_main_window(glade_file);
+	init_tree_model();
+	init_left_tree();
+	init_right_tree();
+
 	switch (view_mode) {
 	case SINGLE_VIEW:
 		display_tree_part();
diff --git a/scripts/kconfig/nconf.c b/scripts/kconfig/nconf.c
index ed93dd0..545e1af 100644
--- a/scripts/kconfig/nconf.c
+++ b/scripts/kconfig/nconf.c
@@ -702,7 +702,7 @@ static int do_exit(void)
 			char buf[1024];
 			snprintf(buf, 1024,
 				_("Configuration written to %s\n"
-				  "End of the configuration.\n":
+				  "End of the configuration.\n"
 				  "Execute 'make' to start the build or try"
 				  " 'make help'."), filename);
 			btn_dialog(
diff --git a/scripts/kconfig/qconf.cc b/scripts/kconfig/qconf.cc
index 902086f..06dd2e3 100644
--- a/scripts/kconfig/qconf.cc
+++ b/scripts/kconfig/qconf.cc
@@ -1274,7 +1274,7 @@ ConfigMainWindow::ConfigMainWindow(void)
 	char title[256];
 
 	QDesktopWidget *d = configApp->desktop();
-	snprintf(title, sizeof(title), "%s%s"),
+	snprintf(title, sizeof(title), "%s%s",
 		rootmenu.prompt->text,
 #if QT_VERSION < 0x040000
 		" (Qt3)"
-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* Re: [DIFF] kbuild-generic-v6 -> kbuild/kconfig/kbuild-generic-v7
  2010-09-22 17:07   ` [DIFF] kbuild-generic-v6 -> kbuild/kconfig/kbuild-generic-v7 Arnaud Lacombe
@ 2010-09-27 21:25     ` Michal Marek
  0 siblings, 0 replies; 33+ messages in thread
From: Michal Marek @ 2010-09-27 21:25 UTC (permalink / raw)
  To: Arnaud Lacombe; +Cc: Sam Ravnborg, linux-kbuild

On 22.9.2010 19:07, Arnaud Lacombe wrote:
> Hi,
> 
> Changes since branch `kbuild-generic-v6' are:
>  - rebase against `kbuild/kconfig'
>  - extra parens/column fixes after Michal's comments
>  - delayed window initialization for gconf in order to wait for rootmenu
>    initialization.
>  - commit tagging
> 
> Note that I kept the grammar change and parser regeneration in two separate
> commits, one after the other.
> 
> This branch merge without conflict with 2.6.36-rc5 and the next-20100921 tree.
> Tested with {x,n,menu}config on i386, sh and um.
> 
> The updated series is available in the git repository at:
> 
>  git://github.com/lacombar/linux-2.6.git kbuild/kconfig/kbuild-generic-v7

Pulled, thanks.

Michal

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 04/15] kconfig: rephrase help texts/comments not to include the package name
  2010-09-11 20:22   ` Randy Dunlap
  2010-09-12  4:04     ` Arnaud Lacombe
@ 2010-10-21  2:40     ` Arnaud Lacombe
  2010-10-21  3:44       ` Randy Dunlap
  1 sibling, 1 reply; 33+ messages in thread
From: Arnaud Lacombe @ 2010-10-21  2:40 UTC (permalink / raw)
  To: Randy Dunlap; +Cc: Sam Ravnborg, Michal Marek, linux-kbuild

Hi,

I'm revisiting this. Would that make sense to rename "gkc" and "qconf"
to respectively "gconfig" and "xconfig" ? There is copyright from
their respective author associated with each one, so that would have
to be updated also.

Thanks,
 - Arnaud

On Sat, Sep 11, 2010 at 4:22 PM, Randy Dunlap <rdunlap@xenotime.net> wrote:
> On Sat, 11 Sep 2010 11:51:11 -0400 Arnaud Lacombe wrote:
>> diff --git a/scripts/kconfig/gconf.c b/scripts/kconfig/gconf.c
>> index d669882..1636213 100644
>> --- a/scripts/kconfig/gconf.c
>> +++ b/scripts/kconfig/gconf.c
>> @@ -671,8 +671,7 @@ void on_introduction1_activate(GtkMenuItem * menuitem, gpointer user_data)
>>  {
>>       GtkWidget *dialog;
>>       const gchar *intro_text = _(
>> -         "Welcome to gkc, the GTK+ graphical kernel configuration tool\n"
>> -         "for Linux.\n"
>> +         "Welcome to gkc, the GTK+ graphical configuration tool\n"
>
> Should be "gconfig".  It's never been called "gkc" AFAIK.
>
[...]
>> diff --git a/scripts/kconfig/qconf.cc b/scripts/kconfig/qconf.cc
>> index a04e451..fe18f7e 100644
>> --- a/scripts/kconfig/qconf.cc
>> +++ b/scripts/kconfig/qconf.cc
>> @@ -1655,7 +1655,7 @@ void ConfigMainWindow::closeEvent(QCloseEvent* e)
>>
>>  void ConfigMainWindow::showIntro(void)
>>  {
>> -     static const QString str = _("Welcome to the qconf graphical kernel configuration tool for Linux.\n\n"
>> +     static const QString str = _("Welcome to the qconf graphical configuration tool.\n\n"
>
> s/qconf/xconfig/
>
>>               "For each option, a blank box indicates the feature is disabled, a check\n"
>>               "indicates it is enabled, and a dot indicates that it is to be compiled\n"
>>               "as a module.  Clicking on the box will cycle through the three states.\n\n"
>> --
>
>
> ---
> ~Randy
> *** Remember to use Documentation/SubmitChecklist when testing your code ***
>

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 04/15] kconfig: rephrase help texts/comments not to include the package name
  2010-10-21  2:40     ` Arnaud Lacombe
@ 2010-10-21  3:44       ` Randy Dunlap
  0 siblings, 0 replies; 33+ messages in thread
From: Randy Dunlap @ 2010-10-21  3:44 UTC (permalink / raw)
  To: Arnaud Lacombe; +Cc: Sam Ravnborg, Michal Marek, linux-kbuild

On Wed, 20 Oct 2010 22:40:30 -0400 Arnaud Lacombe wrote:

> Hi,
> 
> I'm revisiting this. Would that make sense to rename "gkc" and "qconf"
> to respectively "gconfig" and "xconfig" ? There is copyright from
> their respective author associated with each one, so that would have
> to be updated also.

I would say yes.  We always refer to gconfig, xconfig, nconfig, menuconfig...
and not to gkc nor qconf.


> Thanks,
>  - Arnaud
> 
> On Sat, Sep 11, 2010 at 4:22 PM, Randy Dunlap <rdunlap@xenotime.net> wrote:
> > On Sat, 11 Sep 2010 11:51:11 -0400 Arnaud Lacombe wrote:
> >> diff --git a/scripts/kconfig/gconf.c b/scripts/kconfig/gconf.c
> >> index d669882..1636213 100644
> >> --- a/scripts/kconfig/gconf.c
> >> +++ b/scripts/kconfig/gconf.c
> >> @@ -671,8 +671,7 @@ void on_introduction1_activate(GtkMenuItem * menuitem, gpointer user_data)
> >>  {
> >>       GtkWidget *dialog;
> >>       const gchar *intro_text = _(
> >> -         "Welcome to gkc, the GTK+ graphical kernel configuration tool\n"
> >> -         "for Linux.\n"
> >> +         "Welcome to gkc, the GTK+ graphical configuration tool\n"
> >
> > Should be "gconfig".  It's never been called "gkc" AFAIK.
> >
> [...]
> >> diff --git a/scripts/kconfig/qconf.cc b/scripts/kconfig/qconf.cc
> >> index a04e451..fe18f7e 100644
> >> --- a/scripts/kconfig/qconf.cc
> >> +++ b/scripts/kconfig/qconf.cc
> >> @@ -1655,7 +1655,7 @@ void ConfigMainWindow::closeEvent(QCloseEvent* e)
> >>
> >>  void ConfigMainWindow::showIntro(void)
> >>  {
> >> -     static const QString str = _("Welcome to the qconf graphical kernel configuration tool for Linux.\n\n"
> >> +     static const QString str = _("Welcome to the qconf graphical configuration tool.\n\n"
> >
> > s/qconf/xconfig/
> >
> >>               "For each option, a blank box indicates the feature is disabled, a check\n"
> >>               "indicates it is enabled, and a dot indicates that it is to be compiled\n"
> >>               "as a module.  Clicking on the box will cycle through the three states.\n\n"
> >> --
> >
> >
> > ---
> > ~Randy
> > *** Remember to use Documentation/SubmitChecklist when testing your code ***
> >
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2010-10-21  3:44 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-09-11 15:51 [PATCH 00/15] Kconfig generalization Arnaud Lacombe
2010-09-11 15:51 ` [PATCH 01/15] kconfig: replace a `switch()' statement by a more flexible `if()' statement Arnaud Lacombe
2010-09-11 15:51 ` [PATCH 02/15] kconfig: rephrase help text not to mention the internal prefix Arnaud Lacombe
2010-09-11 15:51 ` [PATCH 03/15] kconfig: allow build-time definition of the internal config prefix Arnaud Lacombe
2010-09-11 15:51 ` [PATCH 04/15] kconfig: rephrase help texts/comments not to include the package name Arnaud Lacombe
2010-09-11 20:22   ` Randy Dunlap
2010-09-12  4:04     ` Arnaud Lacombe
2010-10-21  2:40     ` Arnaud Lacombe
2010-10-21  3:44       ` Randy Dunlap
2010-09-17 21:59   ` Michal Marek
2010-09-11 15:51 ` [PATCH 05/15] kconfig: allow PACKAGE to be defined on the compiler's command-line Arnaud Lacombe
2010-09-11 15:51 ` [PATCH 06/15] kconfig: implement the `mainmenu' directive Arnaud Lacombe
2010-09-19  9:42   ` Sam Ravnborg
2010-09-19 14:53     ` Arnaud Lacombe
2010-09-11 15:51 ` [PATCH 07/15] kconfig: add a symbol string expansion helper Arnaud Lacombe
2010-09-11 15:51 ` [PATCH 08/15] kconfig: expand by default the rootmenu's prompt Arnaud Lacombe
2010-09-11 15:57   ` Arnaud Lacombe
2010-09-11 15:51 ` [PATCH 09/15] kconfig: replace KERNELVERSION usage by the mainmenu's prompt Arnaud Lacombe
2010-09-11 16:05   ` Arnaud Lacombe
2010-09-17 22:02   ` Michal Marek
2010-09-17 22:16   ` Arnaud Lacombe
2010-09-11 15:51 ` [PATCH 10/15] kconfig: don't emit warning upon rootmenu's prompt redefinition Arnaud Lacombe
2010-09-11 15:51 ` [PATCH 11/15] kconfig: constify file name Arnaud Lacombe
2010-09-11 15:51 ` [PATCH 12/15] kconfig: use the file's name of sourced file Arnaud Lacombe
2010-09-11 15:51 ` [PATCH 13/15] kconfig: expand file names Arnaud Lacombe
2010-09-11 15:51 ` [PATCH 14/15] kconfig: regen parser Arnaud Lacombe
2010-09-17 22:10   ` Michal Marek
2010-09-11 15:51 ` [PATCH 15/15] kbuild: migrate all arch to the kconfig mainmenu upgrade Arnaud Lacombe
2010-09-12  4:12 ` [DIFF] kbuild-generic-v5 -> kbuild-generic-v6 Arnaud Lacombe
2010-09-22 17:07   ` [DIFF] kbuild-generic-v6 -> kbuild/kconfig/kbuild-generic-v7 Arnaud Lacombe
2010-09-27 21:25     ` Michal Marek
2010-09-17 22:16 ` [PATCH 00/15] Kconfig generalization Michal Marek
2010-09-19  9:50 ` Sam Ravnborg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.