52 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/bin/sh
 | |
| # Copyright (c) 2016 Google, Inc
 | |
| # Written by Simon Glass <sjg@chromium.org>
 | |
| #
 | |
| 
 | |
| # This script creates the configuration whitelist file. This file contains
 | |
| # all the config options which are allowed to be used outside Kconfig.
 | |
| # Please do not add things to the whitelist. Instead, add your new option
 | |
| # to Kconfig.
 | |
| #
 | |
| export LC_ALL=C LC_COLLATE=C
 | |
| 
 | |
| # There are two independent greps. The first pulls out the component parts
 | |
| # of CONFIG_SYS_EXTRA_OPTIONS. An example is:
 | |
| #
 | |
| #	SUNXI_GMAC,AHCI,SATAPWR=SUNXI_GPB(8)
 | |
| #
 | |
| # We want this to produce:
 | |
| #	CONFIG_SUNXI_GMAC
 | |
| #	CONFIG_AHCI
 | |
| #	CONFIG_SATAPWR
 | |
| #
 | |
| # The second looks for the rest of the CONFIG options, but excludes those in
 | |
| # Kconfig and defconfig files.
 | |
| #
 | |
| (
 | |
| git grep CONFIG_SYS_EXTRA_OPTIONS |sed -n \
 | |
| 	's/.*CONFIG_SYS_EXTRA_OPTIONS="\(.*\)"/\1/ p' \
 | |
| 	| tr , '\n' \
 | |
| 	| sed 's/ *\([A-Za-z0-9_]*\).*/CONFIG_\1/'
 | |
| 
 | |
| git grep CONFIG_ | \
 | |
| 	egrep -vi "(Kconfig:|defconfig:|README|\.py|\.pl:)" \
 | |
| 	| tr ' \t' '\n\n' \
 | |
| 	| sed -n 's/^\(CONFIG_[A-Za-z0-9_]*\).*/\1/p'
 | |
| ) \
 | |
| 	|sort |uniq >scripts/config_whitelist.txt.tmp1;
 | |
| 
 | |
| # Finally, we need a list of the valid Kconfig options to exclude these from
 | |
| # the whitelist.
 | |
| cat `find . -name "Kconfig*"` |sed -n \
 | |
| 	-e 's/^config *\([A-Za-z0-9_]*\).*$/CONFIG_\1/p' \
 | |
| 	-e 's/^menuconfig *\([A-Za-z0-9_]*\).*$/CONFIG_\1/p' \
 | |
| 	|sort |uniq >scripts/config_whitelist.txt.tmp2
 | |
| 
 | |
| # Use only the options that are present in the first file but not the second.
 | |
| comm -23 scripts/config_whitelist.txt.tmp1 scripts/config_whitelist.txt.tmp2 \
 | |
| 	|sort |uniq >scripts/config_whitelist.txt
 | |
| rm scripts/config_whitelist.txt.tmp1 scripts/config_whitelist.txt.tmp2
 | |
| 
 | |
| unset LC_ALL LC_COLLATE
 |