| # | 
 | # 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/; | 
 | 	# 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 | 
 | } |