[cc'ing rmk and linux-arm-kernel]
On Mon, Jul 12, 2010 at 7:43 PM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
Oops, I hadn't seen this patch when I wrote mine this afternoon[1].
:-) A few minor differences, but essentially the same solution.
[1] http://patchwork.ozlabs.org/patch/58823/
I chose to use -D /dev/null (defconfig from an empty file) instead of
-n (allnoconfig) so that default values in Kconfig would get
respected. For the benefit of everyone else, here's an excerpt from
our IRC conversation this afternoon:
19:49 < gcl> sfr: [...] Your patch and my patch are
essentially doing exactly the same thing, except that I used '-d'
and you used '-n'.
19:50 < gcl> s/-d/-D/
19:55 < sfr> right
19:55 < sfr> Linus wanted us to use -n
19:55 < sfr> because that way you get what you asked for, not what the defaults
say ...
19:58 < gcl> I suppose we don't currently have a way to say "select FOO=n", so
I suppose that makes sense
19:58 < gcl> although I think using the defaults unless told not to is a better
approach in the long run
19:59 < gcl> most of the time I *don't want* to ask for something in the
defconfig. :-)
20:00 < gcl> I just want TheBestOrCorrectAnswer to be chosen for me
20:04 < sfr> gcl: go read Linus' vision :-)
For both of the above problems, what if we added syntax like the
following to Kconfig?
config FOO
bool
select BAR = n
select FOO_VALUE = 54
If the trimmed configs are merged, then there is no rush on this. We
can keep them around and switch them over as people want to make
changes.
Ah, I didn't know that change was being merged. That indeed makes
things easier, and eliminates the post-test that I do to make sure
that the resulting config is actually valid.
Ugh. My first impression is that all this shouldn't be necessary, and
it should be okay to just make the two following rules include a
pattern dependency for the source file. However, as I play with it, I
cannot seem to get the rules right to handle the sub directories. The
$(defconfigs) patsubst at least could be done solely with dependencies
on the target rule if the files were named *.Kconfig instead of
Kconfig.* (because subdirectories are not handled in that case). For
example:
%_defconfig: $(obj)/conf arch/$(SRCARCH)/configs/%.Kconfig
$(Q)$< -n arch/$(SRCARCH)/configs/$*.Kconfig
Cheers,
g.
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
--