From: Stephen Warren <swarren@wwwdotorg.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 03/11] kconfig: add board Kconfig and defconfig files
Date: Fri, 02 May 2014 12:39:55 -0600 [thread overview]
Message-ID: <5363E67B.4090601@wwwdotorg.org> (raw)
In-Reply-To: <1398984496.15726.41.camel@snotra.buserror.net>
On 05/01/2014 04:48 PM, Scott Wood wrote:
> On Mon, 2014-04-28 at 11:47 -0600, Stephen Warren wrote:
>> I guess the main issue I see here is that all the HW-configuration needs
>> to be repeated in seaboard_defconfig and spl/seaboard_defconfig.
>>
>> (As an aside, if there's nothing special about SPL-vs-not and they're
>> just different builds of U-Boot, why put the SPL configurations into a
>> special-case sub-directory, why not name them seaboard_spl_defconfig and
>> seaboard_defconfig, and put them in the same configs directory).
>
> It's special in that both configs are built and assembled into what
> looks to the user like one output image.
>
>> Can we allow one defconfig to include or inherit from another? I know
>> that ChromeOS stores kernel defconfigs in "split configs" that build
>> upon each-other. Probably, this feature comes from elsewhere, and we
>> could just crib the config split/combine script for U-Boot's use.
>
> Yes, that'd be nice.
>
>> To make this work, we'd probably need the user to run something like:
>>
>> ./build-u-boot seaboard
>> or:
>> ./build-u-boot seaboard_spl
>>
>> ... rather than running make directly, so that script could generate the
>> .config from a set of defconfigs, and then invoke make.
>
> Why couldn't the makefile do this when asked to use a board's defconfig?
Indeed, it should. Really, ./build-u-boot for seaboard should do
something like:
* Detect that Seaboard uses SPL (or TPL or ...)
* Build SPL
* Build main U-Boot
* Blend all the build results together
> The user shouldn't need to know about the details of SPL or that there
> are separate sub-builds. Both seaboard and seaboard_spl would need to
> be built, not one or the other.
Indeed.
>> (as an aside, having the user run a script to build rather than make
>> directly gives us a huge amount more flexibility to add run arbitrary
>> code to set up the build process before invoking make. I've found this
>> kind of thing extremely useful in the past on other projects).
>
> What arbitrary code do you want to run that can't be run in the config
> makefile target? There is MAKEALL for users that want a one-step build.
It seems a bit redundant to have the user run make just so that make can
execute some kind of script, when we could simply have the user run the
script directly as the "entry point" into the build process.
Most of these don't apply to U-Boot at all, but I've seen such wrapper
scripts do things like:
* Building multiple targets, and combining them into the overall build
result. This is relevant to SPL/TPL/main U-Boot builds. Admittedly you
can do this with sub-invocations of make, but it often feels cleaner to
me to do the top-level build logic outside make.
* Set up the build environment, e.g. setting CROSS_COMPILE. This would
mainly apply to a more corporate(?) build environment where compilers or
other tools were checked into source control at a known location
relative to the source tree.
* Set up a chroot to perform the build inside of. This isolates the
build process from the host system, allows using standard compilers,
etc. This builds on (sorry for the pun) the above point.
* Set things up to build just the "module" starting at the sub-directory
of `pwd`, rather than the whole directory tree.
next prev parent reply other threads:[~2014-05-02 18:39 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-24 5:04 [U-Boot] [PATCH 0/11] Kconfig for U-Boot Masahiro Yamada
2014-04-24 5:04 ` [U-Boot] [PATCH 01/11] kconfig: import Kconfig files from Linux v3.14 tag Masahiro Yamada
2014-04-26 22:48 ` Simon Glass
2014-04-24 5:04 ` [U-Boot] [PATCH 02/11] Do not apply: tools: add genkconfig Masahiro Yamada
2014-04-26 23:03 ` Simon Glass
2014-04-28 5:12 ` Masahiro Yamada
2014-04-24 5:04 ` [U-Boot] [PATCH 03/11] kconfig: add board Kconfig and defconfig files Masahiro Yamada
2014-04-24 20:36 ` Stephen Warren
2014-04-28 9:39 ` Masahiro Yamada
2014-04-28 17:47 ` Stephen Warren
2014-05-01 22:48 ` Scott Wood
2014-05-02 18:39 ` Stephen Warren [this message]
2014-05-16 18:55 ` Tom Rini
2014-05-16 19:48 ` Stephen Warren
2014-05-02 15:05 ` Timur Tabi
2014-04-24 5:04 ` [U-Boot] [PATCH 04/11] kconfig: add basic Kconfig files Masahiro Yamada
2014-04-28 17:21 ` Simon Glass
2014-04-30 4:22 ` Masahiro Yamada
2014-04-30 19:16 ` Simon Glass
2014-05-01 18:18 ` Scott Wood
2014-05-01 18:21 ` Scott Wood
2014-05-07 6:23 ` Masahiro Yamada
2014-04-24 5:04 ` [U-Boot] [PATCH 05/11] include: define CONFIG_SPL and CONFIG_TPL as 1 Masahiro Yamada
2014-04-28 17:30 ` Simon Glass
2014-04-24 5:04 ` [U-Boot] [PATCH 06/11] kconfig: switch to Kconfig Masahiro Yamada
2014-04-28 17:37 ` Simon Glass
2014-04-24 5:04 ` [U-Boot] [PATCH 07/11] MAKEALL: adjust for Kconfig Masahiro Yamada
2014-04-24 5:04 ` [U-Boot] [PATCH 08/11] buildman: " Masahiro Yamada
2014-04-24 5:04 ` [U-Boot] [PATCH 09/11] kconfig: delete redundant CONFIG_${ARCH} definition Masahiro Yamada
2014-04-28 17:40 ` Simon Glass
2014-04-24 5:04 ` [U-Boot] [PATCH 10/11] kbuild: remove CONFIG_SPL/CONFIG_TPL definition in config headers Masahiro Yamada
2014-04-28 17:41 ` Simon Glass
2014-04-24 5:04 ` [U-Boot] [PATCH 11/11] kconfig: remove old script Masahiro Yamada
2014-04-28 17:41 ` Simon Glass
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=5363E67B.4090601@wwwdotorg.org \
--to=swarren@wwwdotorg.org \
--cc=u-boot@lists.denx.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox