mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-16 16:23:14 +00:00
2979b26323
Give more flexibility to define configs that can be interpreted by make, e.g. to define fallback values of configs like in the example below. Before this change, the config lines: #define CONFIG_SPL_MAX_SIZE 2048 #define CONFIG_SPL_PAD_TO CONFIG_SPL_MAX_SIZE would have been changed in autoconfig.mk into: CONFIG_SPL_MAX_SIZE=2048 CONFIG_SPL_PAD_TO="CONFIG_SPL_MAX_SIZE" Hence, a make recipe using as an argument to $(OBJCOPY): --pad-to=$(CONFIG_SPL_PAD_TO) would have issued: --pad-to="CONFIG_SPL_MAX_SIZE" which means nothing for $(OBJCOPY) and makes it fail. Thanks to this change, the config lines above are changed in autoconfig.mk into: CONFIG_SPL_MAX_SIZE=2048 CONFIG_SPL_PAD_TO=$(CONFIG_SPL_MAX_SIZE) Hence, the make recipe above now issues: --pad-to=2048 as expected from the defined config. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Reviewed-by: Tom Rini <trini@ti.com>
35 lines
1 KiB
Sed
35 lines
1 KiB
Sed
#
|
|
# Sed script to parse CPP macros and generate output usable by make
|
|
#
|
|
# It is expected that this script is fed the output of 'gpp -dM'
|
|
# which preprocesses the common.h header files and outputs the final
|
|
# list of CPP macros (and whitespace is sanitized)
|
|
#
|
|
|
|
# Only process values prefixed with #define CONFIG_
|
|
/^#define CONFIG_[A-Za-z0-9_][A-Za-z0-9_]*/ {
|
|
# Strip the #define prefix
|
|
s/#define *//;
|
|
# Change to form CONFIG_*=VALUE
|
|
s/ */=/;
|
|
# Drop trailing spaces
|
|
s/ *$//;
|
|
# drop quotes around string values
|
|
s/="\(.*\)"$/=\1/;
|
|
# Concatenate string values
|
|
s/" *"//g;
|
|
# Assume strings as default - add quotes around values
|
|
s/=\(..*\)/="\1"/;
|
|
# but remove again from decimal numbers
|
|
s/="\([0-9][0-9]*\)"/=\1/;
|
|
# ... and from hex numbers
|
|
s/="\(0[Xx][0-9a-fA-F][0-9a-fA-F]*\)"/=\1/;
|
|
# ... and from configs defined from other configs
|
|
s/="\(CONFIG_[A-Za-z0-9_][A-Za-z0-9_]*\)"/=$(\1)/;
|
|
# Change '1' and empty values to "y" (not perfect, but
|
|
# supports conditional compilation in the makefiles
|
|
s/=$/=y/;
|
|
s/=1$/=y/;
|
|
# print the line
|
|
p
|
|
}
|