Re: [U-Boot] [PATCH v2 02/15] kbuild: add a makefile macro useful with per-image config options

2015-08-03 Thread Simon Glass
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


Re: [U-Boot] [PATCH v2 02/15] kbuild: add a makefile macro useful with per-image config options

2015-08-01 Thread Tom Rini
On Sat, Aug 01, 2015 at 10:14:32PM +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 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

Reviewed-by: Tom Rini tr...@konsulko.com

-- 
Tom


signature.asc
Description: Digital signature
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH v2 02/15] kbuild: add a makefile macro useful with per-image config options

2015-08-01 Thread Masahiro Yamada
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

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot