All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konrad Eisele <konrad@gaisler.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 0/2] intro
Date: Fri, 18 Nov 2011 10:30:47 +0100	[thread overview]
Message-ID: <4EC625C7.9030408@gaisler.com> (raw)
In-Reply-To: <201111172336.18958.arnout@mind.be>

I just sent a new patch
[PATCH 1/1] kconfig: Add a configuration subtree command to kconfig
that splits the execute and subtree patch. The "subsource" tag is
activated by "-s" option to mconfig,qconfig, nconfig and gconfig now.


Arnout Vandecappelle wrote:
>  Hoi,
> 
>  I'm not very enthousiastic about either of these two features.

subtrees are for convenience only. Still everything can be done the
way it is now.

> 
> On Thursday 17 November 2011 14:18:07 Konrad Eisele wrote:
>> The aim of patch-1 is to make it possible to have configuration subtrees.
>> This makes it possible to have a structure like this:
>>
>> buildroot-kconfigs
>> + linux-kconfigs
>> + busybox-kconfigs
>> + uclibc-kconfigs
>> + crosstools-kconfigs
>>
>> Where all configuration appear in one xconfig screen. Currently I have focues on
>> qconfig only, I think however adding support for gconfig and mconfig is possible
>> easily. The subtree feature is enabled with the -s option to qconfig: "qconfig -s <kconf>"
> 
> - The subtree that has to be included depends on your buildroot configuration. 
> So you have to include all possible linux, busybox, uclibc, ... configs and
> protect them with IFs.  I can hardly imagine that Kconfig can deal with such 
> huge configurations.
I have added rudiment support so that you can specify
subsource "kconfig.in" "path" "$(var)/config" ...
where "$(var) is substituted by the symbol-value of "var". I did it only
for the ".config" entry of "subsource" but it acn be done
for "kconfig.in" element as well, i.e. you could
subsource "linux-$(lversion)/arch/$(arch)/kconfig.in" "path" "$(var)/config" ...
The function to use is resolve_vars() in support/kconfig/util.c of the patch.

> 
> - I don't like the size explosion of the buildroot tree that we would see
> if all these configs are included.

You could define a subtree that point to the kconfig root of the package _after_
download and install. Then you can add a check weather a subtree exists by
adding support/kconfig/zconf.y:

/* subsource $2:"sub-kconfig" $3:"sub-chdir" $4:"sub-.config" $5:"Title" $6:"subdomainprefix" $7:"confprefix" */
subsource_stmt: T_SUBSOURCE prompt prompt prompt prompt T_WORD word_opt T_EOL
{
	if (dosubsource) {
+                FILE *f = zconf_fopen($2);
+                if (f) {
+                fclose(f);
		printd(DEBUG_PARSE, "%s:%d:subsource %s\n", zconf_curname(), zconf_lineno(), $2);
		zconf_nextconf($2, $3, $4, $5, $6, $7);
+                }
	}
}


If the subtree doesnt exists the statement is ignored...


> 
> - The packages which have kconfigs are the ones that are most likely to need 
> board-specific modifications, which may define additional config options.  This
> means that copying the config tree into buildroot isn't going to cut it.
> 
> - Running configs for these things is a bit of an expert step.  In particular
> because the configs have to be post-processed by buildroot and because
> you have to save them explicitly afterwards in a place different from the 
> output directory.  I think that part should be smoothed out first.  Until
> then, I consider it a good thing that the normal user runs 'make xconfig' 
> while the expert user runs 'make {,linux-,busybox-}menuconfig'.
Can still be done.
> 
> - I don't know what it will look like visually because the patch failed to
> compile for me (current_conf_level is undefined), but I wonder if there is a
> significant advantage compared to just menus.  At least in menuconfig
> it wouldn't really make a difference.


please try the patch I sent a hour ago to the list.
[PATCH 1/1] kconfig: Add a configuration subtree command to kconfig
It also includes the bison, flex, gperf outputs. it is diffed against
master of one hour ago...

> 
> 
>> The other feature that patch-1 adds is a config-entry type "execute: It is
>> like a string, however when doubleclicking (trying to edit) in qconfig
>> (only in qconfig currently) then the string is executed using "system(<str>)".
>> The goal is to be able to execute "make" from inside the gui, without having
>> to exit.
> 
>  Here I simply don't see the benefit.  Whatever needs to be executed there
> can just be done with the normal make after the config finishes.  If people
> want to push a button to run make, give them Eclipse with a buildroot
> plugin :-)

Still, you have to exit. Running it with a press on a button is more intuitive...
-- Konrad

> 
> 
>  Regards,
>  Arnout
> 
> 

  reply	other threads:[~2011-11-18  9:30 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-17 14:18 [Buildroot] [PATCH 0/2] intro Konrad Eisele
2011-11-17 14:18 ` [Buildroot] [PATCH 1/2] Add a configuration subtree and an execution command to kconfig: Konrad Eisele
2011-11-17 14:18 ` [Buildroot] [PATCH 2/2] Example of how to define a subtree using kconfig tag "subsource": package/busybox/busybox-1.19.x.in is a flattend version of busybox-1.19.3's kconfig scripts (all-in-one). package/busybox/Config.in adds this Kconfig as a subtree to the main configuration tree: subsource "package/busybox/busybox-1.19.x.in" "package/busybox/" "package/busybox/busybox-1.19.x.config" "Busybox 1.19.x configuration" BUSYBOX_ CONFIG_ package/busybox/busybox-1.19.x.config is used as the .config for this subtree. config BR2_BUSYBOX_VERSION_1_19_X has to be selected for the subtree to show up Konrad Eisele
2011-11-17 14:20 ` [Buildroot] [PATCH 1/2] Add a configuration subtree and an execution command to kconfig: Konrad Eisele
2011-11-17 20:09   ` Thomas De Schampheleire
2011-11-18  7:42     ` [Buildroot] [PATCH 1/1] kconfig: Add a configuration subtree command to kconfig Konrad Eisele
2011-11-18  7:49       ` Konrad Eisele
2011-11-18  9:04     ` [Buildroot] [PATCH 1/1] kconfig: Add "execute" config-type Konrad Eisele
2011-11-17 23:36 ` [Buildroot] [PATCH 0/2] intro Arnout Vandecappelle
2011-11-18  9:30   ` Konrad Eisele [this message]
2011-11-18  9:38   ` Thomas De Schampheleire
2011-11-18 10:39     ` Konrad Eisele
2011-11-18 10:46     ` Konrad Eisele

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4EC625C7.9030408@gaisler.com \
    --to=konrad@gaisler.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.