提交 4edc7e32 编写于 作者: Y Yann E. MORIN 提交者: Michal Marek

scripts/config: add option to not upper-case symbols

Currently, scripts/config mangles the config option symbols to always
be upper-case.

While the Linux kernel almost exclusively uses upper-case symbols, there
are still a few symbols with lower-case which this script can not handle:

  $ grep -r -E '^[[:space:]]*config[[:space:]]+[^[:space:]]*[[:lower:]][^[:space:]=.]*$' . |wc -l
  173
(that's roughly 1.3% of the symbols in 3.5-rc1)

Eg.:
  ./arch/arm/Kconfig:config VFPv3
  ./arch/powerpc/platforms/Kconfig.cputype:config 40x
  ./arch/x86/Kconfig:config SCx200HR_TIMER
  ./drivers/video/console/Kconfig:config FONT_8x8
  ./drivers/video/Kconfig:config NTSC_640x480

Also, other projects that use kconfig may allow for lower- or mixed-case
symbols, and may find easier to reuse this script than implement each
their own (potentially flawed) logic. For such a use-case, see:
    http://marc.info/?l=linux-kbuild&m=133409932115848&w=2

This patch adds a new option to keep the given case, and keep the current
default to upper-case the symbols.
Signed-off-by: N"Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: NMichal Marek <mmarek@suse.cz>
上级 f8f5701b
...@@ -26,10 +26,14 @@ commands: ...@@ -26,10 +26,14 @@ commands:
commands can be repeated multiple times commands can be repeated multiple times
options: options:
--file .config file to change (default .config) --file config-file .config file to change (default .config)
--keep-case|-k Keep next symbols' case (dont' upper-case it)
config doesn't check the validity of the .config file. This is done at next config doesn't check the validity of the .config file. This is done at next
make time. make time.
By default, config will upper-case the given symbol. Use --keep-case to keep
the case of all following symbols unchanged.
EOL EOL
exit 1 exit 1
} }
...@@ -44,7 +48,9 @@ checkarg() { ...@@ -44,7 +48,9 @@ checkarg() {
ARG="${ARG/CONFIG_/}" ARG="${ARG/CONFIG_/}"
;; ;;
esac esac
ARG="`echo $ARG | tr a-z A-Z`" if [ "$MUNGE_CASE" = "yes" ] ; then
ARG="`echo $ARG | tr a-z A-Z`"
fi
} }
set_var() { set_var() {
...@@ -75,10 +81,16 @@ if [ "$1" = "" ] ; then ...@@ -75,10 +81,16 @@ if [ "$1" = "" ] ; then
usage usage
fi fi
MUNGE_CASE=yes
while [ "$1" != "" ] ; do while [ "$1" != "" ] ; do
CMD="$1" CMD="$1"
shift shift
case "$CMD" in case "$CMD" in
--keep-case|-k)
MUNGE_CASE=no
shift
continue
;;
--refresh) --refresh)
;; ;;
--*-after) --*-after)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册