mirror of
https://git.codelinaro.org/clo/qsdk/oss/boot/u-boot-2016.git
synced 2026-01-28 01:47:24 +01:00
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>
|
||
|---|---|---|
| .. | ||
| byteorder | ||
| mtd | ||
| unaligned | ||
| usb | ||
| apm_bios.h | ||
| bch.h | ||
| bitops.h | ||
| bitrev.h | ||
| compat.h | ||
| compiler-clang.h | ||
| compiler-gcc.h | ||
| compiler-gcc3.h | ||
| compiler-gcc4.h | ||
| compiler-gcc5.h | ||
| compiler-intel.h | ||
| compiler.h | ||
| crc7.h | ||
| crc8.h | ||
| crc32.h | ||
| ctype.h | ||
| drm_dp_helper.h | ||
| edd.h | ||
| err.h | ||
| ethtool.h | ||
| fb.h | ||
| immap_qe.h | ||
| input.h | ||
| io.h | ||
| ioctl.h | ||
| ioport.h | ||
| kbuild.h | ||
| kconfig.h | ||
| kernel.h | ||
| linkage.h | ||
| linux_string.h | ||
| list.h | ||
| list_sort.h | ||
| lzo.h | ||
| math64.h | ||
| mbus.h | ||
| mc146818rtc.h | ||
| mdio.h | ||
| mii.h | ||
| netdevice.h | ||
| poison.h | ||
| posix_types.h | ||
| rbtree.h | ||
| rbtree_augmented.h | ||
| screen_info.h | ||
| serial_reg.h | ||
| sizes.h | ||
| stat.h | ||
| stddef.h | ||
| string.h | ||
| stringify.h | ||
| time.h | ||
| types.h | ||