On Mon, 11 Feb 2008 18:38:15 -0500 Mike Frysinger wrote:

> This was discussed some time ago, but I don't really follow kconfig closely
> and the current source still doesn't do what I need, so I just banged it out.
> This moves the string "Linux kernel" out of hardcoded kconfig sources and into
> a Kconfig option.  This allows the projects that utilize kconfig as their
> build system to better integrate the menusystem into their project.  Rather
> than having to edit the sources all over the place, they only need to update
> the new "KERNELPACKAGE" setting to whatever represents their project.
> Feedback welcome! :)
> 
> Signed-off-by: Mike Frysinger <[EMAIL PROTECTED]>
> ---
>  Makefile                   |    3 ++-
>  init/Kconfig               |    4 ++++
>  scripts/kconfig/conf.c     |   10 +++++-----
>  scripts/kconfig/confdata.c |   17 ++++++++++++-----
>  scripts/kconfig/gconf.c    |    4 ++--
>  scripts/kconfig/mconf.c    |   21 ++++++++++++---------
>  scripts/kconfig/qconf.cc   |    4 ++--
>  7 files changed, 39 insertions(+), 24 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index c162370..5dac0d2 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -338,8 +338,9 @@ KBUILD_AFLAGS   := -D__ASSEMBLY__
>  # Read KERNELRELEASE from include/config/kernel.release (if it exists)
>  KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
>  KERNELVERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
> +KERNELPACKAGE = Linux Kernel

Doesn't need quotes?

> -export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION
> +export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION KERNELPACKAGE
>  export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC
>  export CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE
>  export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
> diff --git a/init/Kconfig b/init/Kconfig
> index 824d48c..418f972 100644
> --- a/init/Kconfig
> +++ b/init/Kconfig
> @@ -6,6 +6,10 @@ config KERNELVERSION
>       string
>       option env="KERNELVERSION"
>  
> +config KERNELPACKAGE
> +     string
> +     option env="KERNELPACKAGE"
> +

Each arch/$ARCH/Kconfig can have (and most do) a "mainmenu" entry
that could be useful here, either alone or combined with 'KERNELPACKAGE'.

>  config DEFCONFIG_LIST
>       string
>       depends on !UML
> diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
> index fda6313..aea2d3f 100644
> --- a/scripts/kconfig/conf.c
> +++ b/scripts/kconfig/conf.c
> @@ -563,8 +563,8 @@ int main(int ac, char **av)
>       case ask_silent:
>               if (stat(".config", &tmpstat)) {
>                       printf(_("***\n"
> -                             "*** You have not yet configured your kernel!\n"
> -                             "*** (missing kernel .config file)\n"
> +                             "*** You have not yet configured things!\n"

s/things/$KERNELPACKAGE/ ?

> +                             "*** (missing .config file)\n"
>                               "***\n"
>                               "*** Please run some configurator (e.g. \"make 
> oldconfig\" or\n"
>                               "*** \"make menuconfig\" or \"make 
> xconfig\").\n"
> @@ -610,7 +610,7 @@ int main(int ac, char **av)
>       } else if (conf_get_changed()) {
>               name = getenv("KCONFIG_NOSILENTUPDATE");
>               if (name && *name) {
> -                     fprintf(stderr, _("\n*** Kernel configuration requires 
> explicit update.\n\n"));
> +                     fprintf(stderr, _("\n*** Configuration requires 
> explicit update.\n\n"));

s/Configuration/$KERNELPACKAGE configuration/

>                       return 1;
>               }
>       } else
> @@ -621,12 +621,12 @@ int main(int ac, char **av)
>               check_conf(&rootmenu);
>       } while (conf_cnt);
>       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"));

insert $KERNELPACKAGE where "kernel" was.

>               return 1;
>       }
>  skip_check:
>       if (input_mode == ask_silent && conf_write_autoconf()) {
> -             fprintf(stderr, _("\n*** Error during writing of the kernel 
> configuration.\n\n"));
> +             fprintf(stderr, _("\n*** Error during writing of the 
> configuration.\n\n"));

ditto.

>               return 1;
>       }
>  
> diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
> index ee5fe94..01796b8 100644
> --- a/scripts/kconfig/confdata.c
> +++ b/scripts/kconfig/confdata.c
> @@ -392,7 +392,7 @@ int conf_read(const char *name)
>  int conf_write(const char *name)
>  {
>       FILE *out;
> -     struct symbol *sym;
> +     struct symbol *sym, *pkg_sym;
>       struct menu *menu;
>       const char *basename;
>       char dirname[128], tmpname[128], newname[128];
> @@ -438,6 +438,8 @@ int conf_write(const char *name)
>  
>       sym = sym_lookup("KERNELVERSION", 0);
>       sym_calc_value(sym);
> +     pkg_sym = sym_lookup("KERNELPACKAGE", 0);
> +     sym_calc_value(pkg_sym);
>       time(&now);
>       env = getenv("KCONFIG_NOTIMESTAMP");
>       if (env && *env)
> @@ -445,9 +447,10 @@ int conf_write(const char *name)
>  
>       fprintf(out, _("#\n"
>                      "# Automatically generated make config: don't edit\n"
> -                    "# Linux kernel version: %s\n"
> +                    "# %s version: %s\n"
>                      "%s%s"
>                      "#\n"),
> +                  sym_get_string_value(pkg_sym),
>                    sym_get_string_value(sym),

Why drop the "version: "?  I.e., must KERNELVERSION contain that
word if it is desired?


>                    use_timestamp ? "# " : "",
>                    use_timestamp ? ctime(&now) : "");
> @@ -668,7 +671,7 @@ out:
>  
>  int conf_write_autoconf(void)
>  {
> -     struct symbol *sym;
> +     struct symbol *sym, *pkg_sym;
>       const char *str;
>       char *name;
>       FILE *out, *out_h;
> @@ -694,19 +697,23 @@ int conf_write_autoconf(void)
>  
>       sym = sym_lookup("KERNELVERSION", 0);
>       sym_calc_value(sym);
> +     pkg_sym = sym_lookup("KERNELPACKAGE", 0);
> +     sym_calc_value(pkg_sym);
>       time(&now);
>       fprintf(out, "#\n"
>                    "# Automatically generated make config: don't edit\n"
> -                  "# Linux kernel version: %s\n"
> +                  "# %s version: %s\n"
>                    "# %s"
>                    "#\n",
> +                  sym_get_string_value(pkg_sym),
>                    sym_get_string_value(sym), ctime(&now));

Ditto.

>       fprintf(out_h, "/*\n"
>                      " * Automatically generated C config: don't edit\n"
> -                    " * Linux kernel version: %s\n"
> +                    " * %s version: %s\n"
>                      " * %s"
>                      " */\n"
>                      "#define AUTOCONF_INCLUDED\n",
> +                    sym_get_string_value(pkg_sym),
>                      sym_get_string_value(sym), ctime(&now));

Ditto.

>  
>       for_all_symbols(i, sym) {
> diff --git a/scripts/kconfig/gconf.c b/scripts/kconfig/gconf.c
> index 199b22b..fcf80b5 100644
> --- a/scripts/kconfig/gconf.c
> +++ b/scripts/kconfig/gconf.c
> @@ -266,8 +266,8 @@ void init_main_window(const gchar * glade_file)
>                                         /*"style", PANGO_STYLE_OBLIQUE, */
>                                         NULL);
>  
> -     sprintf(title, _("Linux Kernel v%s Configuration"),
> -             getenv("KERNELVERSION"));
> +     sprintf(title, _("%s v%s Configuration"),
> +             getenv("KERNELPACKAGE"), getenv("KERNELVERSION"));

But here at least a 'v' is added... (inconsistent)

>       gtk_window_set_title(GTK_WINDOW(main_wnd), title);
>  
>       gtk_widget_show(main_wnd);
> diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c
> index 734cf4f..cb5f1ee 100644
> --- a/scripts/kconfig/mconf.c
> +++ b/scripts/kconfig/mconf.c
> @@ -362,13 +362,16 @@ static void set_config_filename(const char 
> *config_filename)
>  {
>       static char menu_backtitle[PATH_MAX+128];
>       int size;
> -     struct symbol *sym;
> +     struct symbol *sym, *pkg_sym;
>  
>       sym = sym_lookup("KERNELVERSION", 0);
>       sym_calc_value(sym);
> +     pkg_sym = sym_lookup("KERNELPACKAGE", 0);
> +     sym_calc_value(pkg_sym);
>       size = snprintf(menu_backtitle, sizeof(menu_backtitle),
> -                     _("%s - Linux Kernel v%s Configuration"),
> -                     config_filename, sym_get_string_value(sym));
> +                     _("%s - %s v%s Configuration"),
> +                     config_filename, sym_get_string_value(pkg_sym),
> +                     sym_get_string_value(sym));

Ditto.

>       if (size >= sizeof(menu_backtitle))
>               menu_backtitle[sizeof(menu_backtitle)-1] = '\0';
>       set_dialog_backtitle(menu_backtitle);
> @@ -894,7 +897,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
> @@ -906,20 +909,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 during writing of the configuration.\n"
> +                             "Your configuration changes were NOT saved."

Insert $KERNELPACKAGE where "kernel" was.

>                               "\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 source configuration.\n"
> +                     "*** Execute 'make' to build the source 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/qconf.cc b/scripts/kconfig/qconf.cc
> index 5d0fd38..babf34a 100644
> --- a/scripts/kconfig/qconf.cc
> +++ b/scripts/kconfig/qconf.cc
> @@ -1276,8 +1276,8 @@ ConfigMainWindow::ConfigMainWindow(void)
>       char title[256];
>  
>       QWidget *d = configApp->desktop();
> -     snprintf(title, sizeof(title), _("Linux Kernel v%s Configuration"),
> -             getenv("KERNELVERSION"));
> +     snprintf(title, sizeof(title), _("%s v%s Configuration"),
> +             getenv("KERNELPACKAGE"), getenv("KERNELVERSION"));

'v' is added...

>       setCaption(title);
>  
>       width = configSettings->readNumEntry("/window width", d->width() - 64);
> -

---
~Randy
-
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to