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.masah...@socionext.com> > Reviewed-by: Tom Rini <tr...@konsulko.com> > Reviewed-by: Simon Glass <s...@chromium.org>
Applied to u-boot/master, thanks! -- Tom
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot