libs/parser/?conf.c
libs/*/.libs
+utils/tweak
utils/gettext
utils/*-gettext
utils/.libs
scripts/kconfig/symbol.c --> libs/parser/symbol.c
scripts/kconfig/util.c --> libs/parser/util.c
scripts/kconfig/zconf.y --> libs/parser/yconf.y
-scripts/config --> utils/tweak
+scripts/config --> utils/tweak.in
scripts/diffconfig --> utils/diff
scripts/kconfig/merge_config.sh --> utils/merge
scripts/kconfig/streamline_config.pl --> utils/streamline
-dist_bin_SCRIPTS = tweak diff merge
-dist_bin_SCRIPTS += streamline
+bin_SCRIPTS = tweak
+dist_bin_SCRIPTS = diff merge streamline
if COND_utils_gettext
MAYBE_utils_gettext = gettext
gettext_CFLAGS = $(AM_CFLAGS) $(kf_CFLAGS)
gettext_LDADD = $(top_builddir)/libs/parser/libkconfig-parser.la \
$(intl_LIBS)
+CLEANFILES = tweak
+EXTRA_DIST = tweak.in tweak.in.patch
+
+tweak: tweak.in
+ $(AM_V_GEN)$(SED) -r -e "s/@CONFIG_@/$(config_prefix)/g" \
+ $< >$@
+ @chmod +x $@
+++ /dev/null
-#!/bin/bash
-# Manipulate options in a .config file from the command line
-
-usage() {
- cat >&2 <<EOL
-Manipulate options in a .config file from the command line.
-Usage:
-config options command ...
-commands:
- --enable|-e option Enable option
- --disable|-d option Disable option
- --module|-m option Turn option into a module
- --set-str option string
- Set option to "string"
- --set-val option value
- Set option to value
- --state|-s option Print state of option (n,y,m,undef)
-
- --enable-after|-E beforeopt option
- Enable option directly after other option
- --disable-after|-D beforeopt option
- Disable option directly after other option
- --module-after|-M beforeopt option
- Turn option into module directly after other option
-
- commands can be repeated multiple times
-
-options:
- --file .config file to change (default .config)
-
-config doesn't check the validity of the .config file. This is done at next
- make time.
-EOL
- exit 1
-}
-
-checkarg() {
- ARG="$1"
- if [ "$ARG" = "" ] ; then
- usage
- fi
- case "$ARG" in
- CONFIG_*)
- ARG="${ARG/CONFIG_/}"
- ;;
- esac
-}
-
-set_var() {
- local name=$1 new=$2 before=$3
-
- name_re="^($name=|# $name is not set)"
- before_re="^($before=|# $before is not set)"
- if test -n "$before" && grep -Eq "$before_re" "$FN"; then
- sed -ri "/$before_re/a $new" "$FN"
- elif grep -Eq "$name_re" "$FN"; then
- sed -ri "s:$name_re.*:$new:" "$FN"
- else
- echo "$new" >>"$FN"
- fi
-}
-
-if [ "$1" = "--file" ]; then
- FN="$2"
- if [ "$FN" = "" ] ; then
- usage
- fi
- shift 2
-else
- FN=.config
-fi
-
-if [ "$1" = "" ] ; then
- usage
-fi
-
-while [ "$1" != "" ] ; do
- CMD="$1"
- shift
- case "$CMD" in
- --refresh)
- ;;
- --*-after)
- checkarg "$1"
- A=$ARG
- checkarg "$2"
- B=$ARG
- shift 2
- ;;
- -*)
- checkarg "$1"
- shift
- ;;
- esac
- case "$CMD" in
- --enable|-e)
- set_var "CONFIG_$ARG" "CONFIG_$ARG=y"
- ;;
-
- --disable|-d)
- set_var "CONFIG_$ARG" "# CONFIG_$ARG is not set"
- ;;
-
- --module|-m)
- set_var "CONFIG_$ARG" "CONFIG_$ARG=m"
- ;;
-
- --set-str)
- # sed swallows one level of escaping, so we need double-escaping
- set_var "CONFIG_$ARG" "CONFIG_$ARG=\"${1//\"/\\\\\"}\""
- shift
- ;;
-
- --set-val)
- set_var "CONFIG_$ARG" "CONFIG_$ARG=$1"
- shift
- ;;
-
- --state|-s)
- if grep -q "# CONFIG_$ARG is not set" $FN ; then
- echo n
- else
- V="$(grep "^CONFIG_$ARG=" $FN)"
- if [ $? != 0 ] ; then
- echo undef
- else
- V="${V/#CONFIG_$ARG=/}"
- V="${V/#\"/}"
- V="${V/%\"/}"
- V="${V/\\\"/\"}"
- echo "${V}"
- fi
- fi
- ;;
-
- --enable-after|-E)
- set_var "CONFIG_$B" "CONFIG_$B=y" "CONFIG_$A"
- ;;
-
- --disable-after|-D)
- set_var "CONFIG_$B" "# CONFIG_$B is not set" "CONFIG_$A"
- ;;
-
- --module-after|-M)
- set_var "CONFIG_$B" "CONFIG_$B=m" "CONFIG_$A"
- ;;
-
- # undocumented because it ignores --file (fixme)
- --refresh)
- yes "" | make oldconfig
- ;;
-
- *)
- usage
- ;;
- esac
-done
-
--- /dev/null
+#!/bin/bash
+# Manipulate options in a .config file from the command line
+
+CONFIG_="@CONFIG_@"
+
+usage() {
+ cat >&2 <<EOL
+Manipulate options in a .config file from the command line.
+Usage:
+config options command ...
+commands:
+ --enable|-e option Enable option
+ --disable|-d option Disable option
+ --module|-m option Turn option into a module
+ --set-str option string
+ Set option to "string"
+ --set-val option value
+ Set option to value
+ --state|-s option Print state of option (n,y,m,undef)
+
+ --enable-after|-E beforeopt option
+ Enable option directly after other option
+ --disable-after|-D beforeopt option
+ Disable option directly after other option
+ --module-after|-M beforeopt option
+ Turn option into module directly after other option
+
+ commands can be repeated multiple times
+
+options:
+ --file .config file to change (default .config)
+
+config doesn't check the validity of the .config file. This is done at next
+ make time.
+EOL
+ exit 1
+}
+
+checkarg() {
+ ARG="$1"
+ if [ "$ARG" = "" ] ; then
+ usage
+ fi
+ case "$ARG" in
+ ${CONFIG_}*)
+ ARG="${ARG/${CONFIG_}/}"
+ ;;
+ esac
+}
+
+set_var() {
+ local name=$1 new=$2 before=$3
+
+ name_re="^($name=|# $name is not set)"
+ before_re="^($before=|# $before is not set)"
+ if test -n "$before" && grep -Eq "$before_re" "$FN"; then
+ sed -ri "/$before_re/a $new" "$FN"
+ elif grep -Eq "$name_re" "$FN"; then
+ sed -ri "s:$name_re.*:$new:" "$FN"
+ else
+ echo "$new" >>"$FN"
+ fi
+}
+
+if [ "$1" = "--file" ]; then
+ FN="$2"
+ if [ "$FN" = "" ] ; then
+ usage
+ fi
+ shift 2
+else
+ FN=.config
+fi
+
+if [ "$1" = "" ] ; then
+ usage
+fi
+
+while [ "$1" != "" ] ; do
+ CMD="$1"
+ shift
+ case "$CMD" in
+ --refresh)
+ ;;
+ --*-after)
+ checkarg "$1"
+ A=$ARG
+ checkarg "$2"
+ B=$ARG
+ shift 2
+ ;;
+ -*)
+ checkarg "$1"
+ shift
+ ;;
+ esac
+ case "$CMD" in
+ --enable|-e)
+ set_var "${CONFIG_}$ARG" "${CONFIG_}$ARG=y"
+ ;;
+
+ --disable|-d)
+ set_var "${CONFIG_}$ARG" "# ${CONFIG_}$ARG is not set"
+ ;;
+
+ --module|-m)
+ set_var "${CONFIG_}$ARG" "${CONFIG_}$ARG=m"
+ ;;
+
+ --set-str)
+ # sed swallows one level of escaping, so we need double-escaping
+ set_var "${CONFIG_}$ARG" "${CONFIG_}$ARG=\"${1//\"/\\\\\"}\""
+ shift
+ ;;
+
+ --set-val)
+ set_var "${CONFIG_}$ARG" "${CONFIG_}$ARG=$1"
+ shift
+ ;;
+
+ --state|-s)
+ if grep -q "# ${CONFIG_}$ARG is not set" $FN ; then
+ echo n
+ else
+ V="$(grep "^${CONFIG_}$ARG=" $FN)"
+ if [ $? != 0 ] ; then
+ echo undef
+ else
+ V="${V/#${CONFIG_}$ARG=/}"
+ V="${V/#\"/}"
+ V="${V/%\"/}"
+ V="${V/\\\"/\"}"
+ echo "${V}"
+ fi
+ fi
+ ;;
+
+ --enable-after|-E)
+ set_var "${CONFIG_}$B" "${CONFIG_}$B=y" "${CONFIG_}$A"
+ ;;
+
+ --disable-after|-D)
+ set_var "${CONFIG_}$B" "# ${CONFIG_}$B is not set" "${CONFIG_}$A"
+ ;;
+
+ --module-after|-M)
+ set_var "${CONFIG_}$B" "${CONFIG_}$B=m" "${CONFIG_}$A"
+ ;;
+
+ # undocumented because it ignores --file (fixme)
+ --refresh)
+ yes "" | make oldconfig
+ ;;
+
+ *)
+ usage
+ ;;
+ esac
+done
+
--- /dev/null
+--- a/utils/tweak.in 2012-06-03 22:13:16.901125538 +0200
++++ b/utils/tweak.in 2012-06-03 22:12:59.024523108 +0200
+@@ -1,6 +1,8 @@
+ #!/bin/bash
+ # Manipulate options in a .config file from the command line
+
++CONFIG_="@CONFIG_@"
++
+ usage() {
+ cat >&2 <<EOL
+ Manipulate options in a .config file from the command line.
+@@ -40,11 +43,10 @@
+ usage
+ fi
+ case "$ARG" in
+- CONFIG_*)
+- ARG="${ARG/CONFIG_/}"
++ ${CONFIG_}*)
++ ARG="${ARG/${CONFIG_}/}"
+ ;;
+ esac
+- ARG="`echo $ARG | tr a-z A-Z`"
+ }
+
+ set_var() {
+@@ -95,37 +97,37 @@
+ esac
+ case "$CMD" in
+ --enable|-e)
+- set_var "CONFIG_$ARG" "CONFIG_$ARG=y"
++ set_var "${CONFIG_}$ARG" "${CONFIG_}$ARG=y"
+ ;;
+
+ --disable|-d)
+- set_var "CONFIG_$ARG" "# CONFIG_$ARG is not set"
++ set_var "${CONFIG_}$ARG" "# ${CONFIG_}$ARG is not set"
+ ;;
+
+ --module|-m)
+- set_var "CONFIG_$ARG" "CONFIG_$ARG=m"
++ set_var "${CONFIG_}$ARG" "${CONFIG_}$ARG=m"
+ ;;
+
+ --set-str)
+ # sed swallows one level of escaping, so we need double-escaping
+- set_var "CONFIG_$ARG" "CONFIG_$ARG=\"${1//\"/\\\\\"}\""
++ set_var "${CONFIG_}$ARG" "${CONFIG_}$ARG=\"${1//\"/\\\\\"}\""
+ shift
+ ;;
+
+ --set-val)
+- set_var "CONFIG_$ARG" "CONFIG_$ARG=$1"
++ set_var "${CONFIG_}$ARG" "${CONFIG_}$ARG=$1"
+ shift
+ ;;
+
+ --state|-s)
+- if grep -q "# CONFIG_$ARG is not set" $FN ; then
++ if grep -q "# ${CONFIG_}$ARG is not set" $FN ; then
+ echo n
+ else
+- V="$(grep "^CONFIG_$ARG=" $FN)"
++ V="$(grep "^${CONFIG_}$ARG=" $FN)"
+ if [ $? != 0 ] ; then
+ echo undef
+ else
+- V="${V/#CONFIG_$ARG=/}"
++ V="${V/#${CONFIG_}$ARG=/}"
+ V="${V/#\"/}"
+ V="${V/%\"/}"
+ V="${V/\\\"/\"}"
+@@ -135,15 +137,15 @@
+ ;;
+
+ --enable-after|-E)
+- set_var "CONFIG_$B" "CONFIG_$B=y" "CONFIG_$A"
++ set_var "${CONFIG_}$B" "${CONFIG_}$B=y" "${CONFIG_}$A"
+ ;;
+
+ --disable-after|-D)
+- set_var "CONFIG_$B" "# CONFIG_$B is not set" "CONFIG_$A"
++ set_var "${CONFIG_}$B" "# ${CONFIG_}$B is not set" "${CONFIG_}$A"
+ ;;
+
+ --module-after|-M)
+- set_var "CONFIG_$B" "CONFIG_$B=m" "CONFIG_$A"
++ set_var "${CONFIG_}$B" "${CONFIG_}$B=m" "${CONFIG_}$A"
+ ;;
+
+ # undocumented because it ignores --file (fixme)
+++ /dev/null
-diff --git a/utils/tweak b/utils/tweak
---- a/utils/tweak
-+++ b/utils/tweak
-@@ -44,7 +44,6 @@
- ARG="${ARG/CONFIG_/}"
- ;;
- esac
-- ARG="`echo $ARG | tr a-z A-Z`"
- }
-
- set_var() {