* [PATCH 1/3] kbuild: handle non-existing options in scripts/config
[not found] <cover.1243262102.git.mmarek@suse.cz>
@ 2009-05-25 14:43 ` Michal Marek
2009-05-25 14:43 ` [PATCH 2/3] kbuild: simplify argument loop " Michal Marek
2009-05-25 14:43 ` [PATCH 3/3] kbuild: add generic --set-str option to scripts/config Michal Marek
2 siblings, 0 replies; 3+ messages in thread
From: Michal Marek @ 2009-05-25 14:43 UTC (permalink / raw)
To: Andi Kleen; +Cc: Sam Ravnborg, linux-kernel
If an option does not exist in .config, set it at the end of the file.
Signed-off-by: Michal Marek <mmarek@suse.cz>
---
scripts/config | 46 ++++++++++++++++++++++++++++------------------
1 files changed, 28 insertions(+), 18 deletions(-)
diff --git a/scripts/config b/scripts/config
index db6084b..22cceff 100755
--- a/scripts/config
+++ b/scripts/config
@@ -26,8 +26,6 @@ options:
config doesn't check the validity of the .config file. This is done at next
make time.
-The options need to be already in the file before they can be changed,
-but sometimes you can cheat with the --*-after options.
EOL
exit 1
}
@@ -45,8 +43,28 @@ checkarg() {
ARG="`echo $ARG | tr a-z A-Z`"
}
-replace() {
- sed -i -e "$@" $FN
+# set_var name value [before-var]
+set_var() {
+ awk -vnew="$2" "
+ /^# $1 is not set|^$1=/ {
+ if (new)
+ print new;
+ new = 0;
+ next;
+ }
+ \"$3\" && /^# $3 is not set|^$3=/ {
+ print;
+ if (new)
+ print new;
+ new = 0;
+ next;
+ }
+ { print }
+ END {
+ if (new)
+ print new;
+ }
+ " "$FN" >"$FN.tmp" && mv -f "$FN.tmp" "$FN"
}
if [ "$1" = "--file" ]; then
@@ -70,20 +88,19 @@ while [ "$1" != "" ] ; do
case "$CMD" in
--enable|-e)
checkarg "$1"
- replace "s/# CONFIG_$ARG is not set/CONFIG_$ARG=y/"
+ set_var "CONFIG_$ARG" "CONFIG_$ARG=y"
shift
;;
--disable|-d)
checkarg "$1"
- replace "s/CONFIG_$ARG=[my]/# CONFIG_$ARG is not set/"
+ set_var "CONFIG_$ARG" "# CONFIG_$ARG is not set"
shift
;;
--module|-m)
checkarg "$1"
- replace "s/CONFIG_$ARG=y/CONFIG_$ARG=m/" \
- -e "s/# CONFIG_$ARG is not set/CONFIG_$ARG=m/"
+ set_var "CONFIG_$ARG" "CONFIG_$ARG=m"
shift
;;
@@ -109,9 +126,7 @@ while [ "$1" != "" ] ; do
A=$ARG
checkarg "$2"
B=$ARG
- replace "/CONFIG_$A=[my]/aCONFIG_$B=y" \
- -e "/# CONFIG_$ARG is not set/a/CONFIG_$ARG=y" \
- -e "s/# CONFIG_$ARG is not set/CONFIG_$ARG=y/"
+ set_var "CONFIG_$B" "CONFIG_$B=y" "CONFIG_$A"
shift
shift
;;
@@ -121,9 +136,7 @@ while [ "$1" != "" ] ; do
A=$ARG
checkarg "$2"
B=$ARG
- replace "/CONFIG_$A=[my]/a# CONFIG_$B is not set" \
- -e "/# CONFIG_$ARG is not set/a/# CONFIG_$ARG is not set" \
- -e "s/CONFIG_$ARG=[my]/# CONFIG_$ARG is not set/"
+ set_var "CONFIG_$B" "# CONFIG_$B is not set" "CONFIG_$A"
shift
shift
;;
@@ -133,10 +146,7 @@ while [ "$1" != "" ] ; do
A=$ARG
checkarg "$2"
B=$ARG
- replace "/CONFIG_$A=[my]/aCONFIG_$B=m" \
- -e "/# CONFIG_$ARG is not set/a/CONFIG_$ARG=m" \
- -e "s/CONFIG_$ARG=y/CONFIG_$ARG=m/" \
- -e "s/# CONFIG_$ARG is not set/CONFIG_$ARG=m/"
+ set_var "CONFIG_$B" "CONFIG_$B=m" "CONFIG_$A"
shift
shift
;;
--
1.6.3
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 2/3] kbuild: simplify argument loop in scripts/config
[not found] <cover.1243262102.git.mmarek@suse.cz>
2009-05-25 14:43 ` [PATCH 1/3] kbuild: handle non-existing options in scripts/config Michal Marek
@ 2009-05-25 14:43 ` Michal Marek
2009-05-25 14:43 ` [PATCH 3/3] kbuild: add generic --set-str option to scripts/config Michal Marek
2 siblings, 0 replies; 3+ messages in thread
From: Michal Marek @ 2009-05-25 14:43 UTC (permalink / raw)
To: Andi Kleen; +Cc: Sam Ravnborg, linux-kernel
Signed-off-by: Michal Marek <mmarek@suse.cz>
---
scripts/config | 44 ++++++++++++++++----------------------------
1 files changed, 16 insertions(+), 28 deletions(-)
diff --git a/scripts/config b/scripts/config
index 22cceff..d3576e5 100755
--- a/scripts/config
+++ b/scripts/config
@@ -72,8 +72,7 @@ if [ "$1" = "--file" ]; then
if [ "$FN" = "" ] ; then
usage
fi
- shift
- shift
+ shift 2
else
FN=.config
fi
@@ -86,26 +85,34 @@ while [ "$1" != "" ] ; do
CMD="$1"
shift
case "$CMD" in
- --enable|-e)
+ --refresh)
+ ;;
+ --*-after)
+ checkarg "$1"
+ A=$ARG
+ checkarg "$2"
+ B=$ARG
+ shift 2
+ ;;
+ --*)
checkarg "$1"
- set_var "CONFIG_$ARG" "CONFIG_$ARG=y"
shift
;;
+ esac
+ case "$CMD" in
+ --enable|-e)
+ set_var "CONFIG_$ARG" "CONFIG_$ARG=y"
+ ;;
--disable|-d)
- checkarg "$1"
set_var "CONFIG_$ARG" "# CONFIG_$ARG is not set"
- shift
;;
--module|-m)
- checkarg "$1"
set_var "CONFIG_$ARG" "CONFIG_$ARG=m"
- shift
;;
--state|-s)
- checkarg "$1"
if grep -q "# CONFIG_$ARG is not set" $FN ; then
echo n
else
@@ -118,37 +125,18 @@ while [ "$1" != "" ] ; do
echo "$V"
fi
fi
- shift
;;
--enable-after|-E)
- checkarg "$1"
- A=$ARG
- checkarg "$2"
- B=$ARG
set_var "CONFIG_$B" "CONFIG_$B=y" "CONFIG_$A"
- shift
- shift
;;
--disable-after|-D)
- checkarg "$1"
- A=$ARG
- checkarg "$2"
- B=$ARG
set_var "CONFIG_$B" "# CONFIG_$B is not set" "CONFIG_$A"
- shift
- shift
;;
--module-after|-M)
- checkarg "$1"
- A=$ARG
- checkarg "$2"
- B=$ARG
set_var "CONFIG_$B" "CONFIG_$B=m" "CONFIG_$A"
- shift
- shift
;;
# undocumented because it ignores --file (fixme)
--
1.6.3
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 3/3] kbuild: add generic --set-str option to scripts/config
[not found] <cover.1243262102.git.mmarek@suse.cz>
2009-05-25 14:43 ` [PATCH 1/3] kbuild: handle non-existing options in scripts/config Michal Marek
2009-05-25 14:43 ` [PATCH 2/3] kbuild: simplify argument loop " Michal Marek
@ 2009-05-25 14:43 ` Michal Marek
2 siblings, 0 replies; 3+ messages in thread
From: Michal Marek @ 2009-05-25 14:43 UTC (permalink / raw)
To: Andi Kleen; +Cc: Sam Ravnborg, linux-kernel
Signed-off-by: Michal Marek <mmarek@suse.cz>
---
scripts/config | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/scripts/config b/scripts/config
index d3576e5..b4e56c9 100755
--- a/scripts/config
+++ b/scripts/config
@@ -9,8 +9,10 @@ config options command ...
commands:
--enable|-e option Enable option
--disable|-d option Disable option
- --module|-m option Turn option into a module
- --state|-s option Print state of option (n,y,m,undef)
+ --module|-m option Turn option into a module
+ --set-str 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
@@ -112,6 +114,11 @@ while [ "$1" != "" ] ; do
set_var "CONFIG_$ARG" "CONFIG_$ARG=m"
;;
+ --set-str)
+ set_var "CONFIG_$ARG" "CONFIG_$ARG=\"$1\""
+ shift
+ ;;
+
--state|-s)
if grep -q "# CONFIG_$ARG is not set" $FN ; then
echo n
--
1.6.3
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-05-25 14:44 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <cover.1243262102.git.mmarek@suse.cz>
2009-05-25 14:43 ` [PATCH 1/3] kbuild: handle non-existing options in scripts/config Michal Marek
2009-05-25 14:43 ` [PATCH 2/3] kbuild: simplify argument loop " Michal Marek
2009-05-25 14:43 ` [PATCH 3/3] kbuild: add generic --set-str option to scripts/config Michal Marek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®