public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Tom Rini <trini@konsulko.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [U-Boot, v3, 03/15] linux/kconfig.h: add CPP macros useful for per-image config options
Date: Tue, 18 Aug 2015 13:52:39 -0400	[thread overview]
Message-ID: <20150818175239.GV25532@bill-the-cat> (raw)
In-Reply-To: <1439332317-727-4-git-send-email-yamada.masahiro@socionext.com>

On Wed, Aug 12, 2015 at 07:31:43AM +0900, Masahiro Yamada wrote:

> The previous commit introduced a useful macro used in makefiles,
> in order to reference to different variables (CONFIG_... or
> CONFIG_SPL_...) depending on the build context.
> 
> Per-image config option control is a PITA in C sources, too.
> Here are some macros useful in C/CPP expressions.
> 
> CONFIG_IS_ENABLED(FOO) can be used as a shorthand for
> 
>   (!defined(CONFIG_SPL_BUILD) && defined(CONFIG_FOO)) || \
>    (defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_FOO))
> 
> For example, it is useful to describe C code as follows,
> 
>   #if CONFIG_IS_ENABLED(OF_CONTROL)
>       (device tree code)
>   #else
>       (board file code)
>   #endif
> 
> The ifdef conditional above is switched by CONFIG_OF_CONTROL during
> the U-Boot proper building (CONFIG_SPL_BUILD is not defined), and by
> CONFIG_SPL_OF_CONTROL during SPL building (CONFIG_SPL_BUILD is
> defined).
> 
> The macro can be used in C context as well, so you can also write the
> equivalent code as follows:
> 
>   if (CONFIG_IS_ENABLED(OF_CONTROL)) {
>       (device tree code)
>   } else {
>       (board file code)
>   }
> 
> Another useful macro is CONFIG_VALUE().
> CONFIG_VALUE(FOO) is expanded into CONFIG_FOO if CONFIG_SPL_BUILD is
> undefined, and into CONFIG_SPL_FOO if CONFIG_SPL_BUILD is defined.
> 
> You can write as follows:
> 
>   text_base = CONFIG_VALUE(TEXT_BASE);
> 
> instead of:
> 
>   #ifdef CONFIG_SPL_BUILD
>       text_base = CONFIG_SPL_TEXT_BASE;
>   #else
>       text_base = CONFIG_TEXT_BASE;
>   #endif
> 
> This commit also adds slight hacking on fixdep so that it can
> output a correct list of fixed dependencies.
> 
> If the fixdep finds CONFIG_IS_ENABLED(FOO) in a source file,
> we want
>     $(wildcard include/config/foo.h)
> in the U-boot proper building context, while we want
>     $(wildcard include/config/spl/foo.h)
> in the SPL build context.
> 
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> Reviewed-by: Tom Rini <trini@konsulko.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>

Applied to u-boot/master, thanks!

-- 
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/20150818/04961367/attachment.sig>

  reply	other threads:[~2015-08-18 17:52 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-11 22:31 [U-Boot] [PATCH v3 00/15] Add macros to ease our life with independent CONFIGs between U-Boot and SPL Masahiro Yamada
2015-08-11 22:31 ` [U-Boot] [PATCH v3 01/15] kbuild: fixdep: optimize code slightly Masahiro Yamada
2015-08-18 17:52   ` [U-Boot] [U-Boot, v3, " Tom Rini
2015-08-11 22:31 ` [U-Boot] [PATCH v3 02/15] kbuild: add a makefile macro useful with per-image config options Masahiro Yamada
2015-08-18 17:52   ` [U-Boot] [U-Boot, v3, " Tom Rini
2015-08-11 22:31 ` [U-Boot] [PATCH v3 03/15] linux/kconfig.h: add CPP macros useful for " Masahiro Yamada
2015-08-18 17:52   ` Tom Rini [this message]
2015-08-11 22:31 ` [U-Boot] [PATCH v3 04/15] spl: move SPL driver entries to driver/Makefile Masahiro Yamada
2015-08-18 17:16   ` [U-Boot] [U-Boot, v3, " Tom Rini
2015-08-11 22:31 ` [U-Boot] [PATCH v3 05/15] dm: unify obj-$(CONFIG_DM) and obj-$(CONFIG_SPL_DM) entries Masahiro Yamada
2015-08-18 17:52   ` [U-Boot] [U-Boot, v3, " Tom Rini
2015-08-11 22:31 ` [U-Boot] [PATCH v3 06/15] clk: rename CONFIG_SPL_CLK_SUPPORT to CONFIG_SPL_CLK Masahiro Yamada
2015-08-18 17:52   ` [U-Boot] [U-Boot, v3, " Tom Rini
2015-08-11 22:31 ` [U-Boot] [PATCH v3 07/15] clk: unify obj-$(CONFIG_CLK) and obj-$(CONFIG_SPL_CLK) entries Masahiro Yamada
2015-08-18 17:52   ` [U-Boot] [U-Boot, v3, " Tom Rini
2015-08-11 22:31 ` [U-Boot] [PATCH v3 08/15] ram: rename CONFIG_SPL_RAM_SUPPORT to CONFIG_SPL_RAM Masahiro Yamada
2015-08-18 17:52   ` [U-Boot] [U-Boot, v3, " Tom Rini
2015-08-11 22:31 ` [U-Boot] [PATCH v3 09/15] ram: unify obj-$(CONFIG_RAM) and obj-$(CONFIG_SPL_RAM) entries Masahiro Yamada
2015-08-18 17:52   ` [U-Boot] [U-Boot, v3, " Tom Rini
2015-08-11 22:31 ` [U-Boot] [PATCH v3 10/15] led: rename CONFIG_SPL_LED_SUPPORT to CONFIG_SPL_LED Masahiro Yamada
2015-08-18 17:53   ` [U-Boot] [U-Boot, v3, " Tom Rini
2015-08-11 22:31 ` [U-Boot] [PATCH v3 11/15] led: unify obj-$(CONFIG_LED) and obj-$(CONFIG_SPL_LED) entries Masahiro Yamada
2015-08-18 17:53   ` [U-Boot] [U-Boot, v3, " Tom Rini
2015-08-11 22:31 ` [U-Boot] [PATCH v3 12/15] dm: drop CONFIG_DM_DEVICE_REMOVE from uncmd list Masahiro Yamada
2015-08-18 17:53   ` [U-Boot] [U-Boot, v3, " Tom Rini
2015-08-11 22:31 ` [U-Boot] [PATCH v3 13/15] fdtdec: fix OF_CONTROL switch Masahiro Yamada
2015-08-18 17:53   ` [U-Boot] [U-Boot,v3,13/15] " Tom Rini
2015-08-11 22:31 ` [U-Boot] [PATCH v3 14/15] of: flip CONFIG_SPL_DISABLE_OF_CONTROL into CONFIG_SPL_OF_CONTROL Masahiro Yamada
2015-08-11 22:47   ` Marek Vasut
2015-08-11 23:38     ` Masahiro Yamada
2015-08-11 23:47       ` Marek Vasut
2015-08-18 17:53   ` [U-Boot] [U-Boot, v3, " Tom Rini
2015-08-11 22:31 ` [U-Boot] [PATCH v3 15/15] of: clean up OF_CONTROL ifdef conditionals Masahiro Yamada
2015-08-17  3:09   ` Masahiro Yamada
2015-08-18 17:53   ` [U-Boot] [U-Boot, v3, " Tom Rini
2015-08-19  4:39     ` Marek Vasut
2015-08-19 12:02       ` Tom Rini
2015-08-19 21:15         ` Marek Vasut
2015-08-21  7:55           ` Masahiro Yamada
2015-08-21  8:16             ` Marek Vasut
2015-08-21 11:57               ` Michal Simek

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=20150818175239.GV25532@bill-the-cat \
    --to=trini@konsulko.com \
    --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