[U-Boot] [RFC PATCH 1/2] kbuild: add a makefile macro useful with per-image config options
Tom Rini
trini at konsulko.com
Mon Jul 27 17:08:39 CEST 2015
On Thu, Jul 23, 2015 at 08:31:55PM +0900, Masahiro Yamada 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 macro to help describe makefile simpler, allowing
> separate switch for U-boot main and SPL.
>
> This macro takes a config option without the prefix CONFIG_.
> $(call CONFIG,FOO) evaluates to
> $(CONFIG_FOO) if CONFIG_SPL_BUILD is undefined (U-boot build),
> $(CONFIG_SPL_FOO) if CONFIG_SPL_BUILD is defined (SPL_BUILD).
>
> That is,
>
> $(call CONFIG,FOO) += foo.o
>
> is a shorthand for
>
> 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 that we need independent control between
> U-boot and SPL. With this naming scheme, we only have to add a
> single line in a Makefile for each config option.
>
> 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-$(call CONFIG,SERIAL) += serial/
> obj-$(call CONFIG,I2C) += i2c/
> obj-$(call CONFIG,GPIO) += gpio/
> obj-$(call CONFIG,SPI) += spi/
> ...
>
> Eventually, SPL-specialized entries in Makefile.spl would go away.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro at socionext.com>
Reviewed-by: Tom Rini <trini at konsulko.com>
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150727/584c2063/attachment.sig>
More information about the U-Boot
mailing list