On 1 August 2015 at 07:14, Masahiro Yamada <yamada.masah...@socionext.com> wrote: > Commit e02ee2548afe ("kconfig: switch to single .config > configuration") made the configuration itself pretty simple, > instead, we lost the way to systematically enable/disable config > options for each image independently. > > Our current strategy is, put entries into Makefile.spl for options > we need separate enabling, or once enable the options globally in > Kconfig and then undef them in Makefile.uncmd_spl if we do not want > to compile the features for SPL at all. Things are getting really > messy. Besides, "ifdef CONFIG_SPL_BUILD" are sprinkled everywhere > in makefiles. > > This commit adds a variable to help describe makefile simpler. > > $(SPL_) evaluates to "SPL_" during the SPL build, while to an empty > string during building U-boot proper. > > So, you can write > > obj-$(CONFIG_$(SPL_)FOO) += foo.o > > instead of > > ifdef CONFIG_SPL_BUILD > obj-$(CONFIG_SPL_FOO) += foo.o > else > obj-$(CONFIG_FOO) += foo.o > endif > > If CONFIG_SPL_FOO does not exist in Kconfig, it is equivalent to > > ifndef CONFIG_SPL_BUILD > obj-$(CONFIG_SPL_FOO) += foo.o > endif > > This is the pattern we often see in our current makefiles. > > To take advantage of this macro, we should prefix SPL_ for the SPL > version of the option when we need independent control between > U-boot and SPL. With this naming scheme, I hope our makefiles will > be much simplified. > > It means we want to rename existing config options as follows > in the long run: > > CONFIG_SPL_SERIAL_SUPPORT -> CONFIG_SPL_SERIAL > CONFIG_SPL_I2C_SUPPORT -> CONFIG_SPL_I2C > CONFIG_SPL_GPIO_SUPPORT -> CONFIG_SPL_GPIO > CONFIG_SPL_SPI_SUPPORT -> CONFIG_SPL_SPI > CONFIG_SPL_DISABLE_OF_CONTROL -> CONFIG_SPL_OF_CONTROL > (inverting the logic) > > Then drivers/Makefile would be re-worked as follows: > > obj-$(CONFIG_$(SPL_)SERIAL) += serial/ > obj-$(CONFIG_$(SPL_)I2C) += i2c/ > obj-$(CONFIG_$(SPL_)GPIO) += gpio/ > obj-$(CONFIG_$(SPL_)SPI) += spi/ > ... > > Eventually, SPL-specialized entries in Makefile.spl would go away. > > Signed-off-by: Masahiro Yamada <yamada.masah...@socionext.com> > --- > > Changes in v2: None > > scripts/Kbuild.include | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include > index f02eb37..98e09ce 100644 > --- a/scripts/Kbuild.include > +++ b/scripts/Kbuild.include > @@ -309,3 +309,9 @@ why = > \ > > echo-why = $(call escsq, $(strip $(why))) > endif > + > +ifdef CONFIG_SPL_BUILD > +SPL_ := SPL_ > +else > +SPL_ := > +endif > -- > 1.9.1 >
Reviewed-by: Simon Glass <s...@chromium.org> _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot