Use cpp and sed to postprocess config.h and import the defined values into include/autoconf.mk. autoconf.mk is then included by config.mk to give 'make' access to the board configuration. Doing this enables conditional compilation at the Makefile level instead of by wrapping every .c file with #ifdef/#endif wrappers. Signed-off-by: Grant Likely <grant.likely@secretlab.ca>master
parent
f92edbd8a0
commit
2f155f6c0a
@ -0,0 +1,29 @@ |
||||
# |
||||
# 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_]\+/ { |
||||
# 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; |
||||
# Wrap non-numeral values with quotes |
||||
s/=\(.*\?[^0-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 |
||||
} |
Loading…
Reference in new issue