Makefile: fix error when gen TAGS
PATCH 1/1 Makefile: fix error when gen TAGS
scripts/tags.sh has a problem that it does not
test which kind of tags we are generating and
assumes tags. So when gen TAGS it shows:
GEN TAGS
sed: can't read tags: No such file or directory
make: *** [TAGS] Error 2
--- scripts/tags.sh | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
scripts/tags.sh +5 -1
@@ -168,7 +168,11 @@ exuberant() --regex-dotconfig='/^#?[[:blank:]]*(CONFIG_[[:alnum:]_]+)/\1/' # Remove structure forward declarations. - LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' tags + if [[ -e tags ]]; then + LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' tags + else + LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' TAGS + fi } emacs()
Signature · 1 line
1.7.9.1
Quoted 18 lines · Yang Bai
scripts/tags.shhas a problem that it does not test which kind of tags we are generating and assumes tags. So when gen TAGS it shows:
GEN TAGS
sed: can't read tags: No such file or directory
make: *** [TAGS] Error 2Signed-off-by Yang Bai<[email protected]>--- scripts/tags.sh | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)scripts/tags.sh +0
-0@@ -168,7 +168,11 @@ exuberant() --regex-dotconfig='/^#?[[:blank:]]*(CONFIG_[[:alnum:]_]+)/\1/'
scripts/tags.sh exuberant() · line 177
Quoted 10 lines
scripts/tags.sh +5
-1# Remove structure forward declarations. - LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' tags + if [[ -e tags ]]; then + LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' tags + else + LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' TAGS + fi }
What does ctags --version print out for you? I'm not aware of exuberant tags outputting files called TAGS (although etags would do that and then this patch wouldn't make sense).
It would be nice if etags was updated to take care of this forward declaration removal. Care to send that patch?
Signature · 2 lines
Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
Quoted 5 lines · Stephen Boyd
What does ctags --version print out for you? I'm not aware of exuberant tags outputting files called TAGS (although etags would do that and then this patch wouldn't make sense).
hamo@trinity ~ $ ctags --version
Exuberant Ctags 5.9~svn20110310, Copyright (C) 1996-2009 Darren Hiebert
Compiled: Nov 9 2011, 03:17:31
Addresses: <[email protected]>, http://ctags.sourceforge.net
Optional compiled features: +wildcards, +regex
hamo@trinity ~ $ etags --version
Exuberant Ctags 5.9~svn20110310, Copyright (C) 1996-2009 Darren Hiebert
Compiled: Nov 9 2011, 03:17:31
Addresses: <[email protected]>, http://ctags.sourceforge.net
Optional compiled features: +wildcards, +regex
hamo@trinity ~ $ ls -l /usr/bin/etags
lrwxrwxrwx 1 root root 23 Feb 8 17:48 /usr/bin/etags -> /etc/alternatives/etags hamo@trinity ~ $ ls -l /etc/alternatives/etags
lrwxrwxrwx 1 root root 24 Feb 15 10:06 /etc/alternatives/etags -> /usr/bin/ctags-exuberant
So I think which kind of name Exuberant Ctags generates depends on argv[0].
Quoted 4 lines
It would be nice if etags was updated to take care of this forward declaration removal. Care to send that patch?
Yes. I will send this patch soon.
Quoted 17 lines · Yang Bai
Quoted 4 lines · Stephen Boyd
What does ctags --version print out for you? I'm not aware of exuberant tags outputting files called TAGS (although etags would do that and then this patch wouldn't make sense).
hamo@trinity ~ $ ctags --version
Exuberant Ctags 5.9~svn20110310, Copyright (C) 1996-2009 Darren Hiebert
Compiled: Nov 9 2011, 03:17:31 Addresses:<[email protected]>, http://ctags.sourceforge.net
Optional compiled features: +wildcards, +regexhamo@trinity ~ $ etags --version
Exuberant Ctags 5.9~svn20110310, Copyright (C) 1996-2009 Darren Hiebert
Compiled: Nov 9 2011, 03:17:31 Addresses:<[email protected]>, http://ctags.sourceforge.net
Optional compiled features: +wildcards, +regex
Quoted 8 lines
hamo@trinity ~ $ ls -l
/usr/bin/etags
lrwxrwxrwx 1 root root 23 Feb 8 17:48/usr/bin/etags->/etc/alternatives/etagshamo@trinity ~ $ ls -l/etc/alternatives/etags
lrwxrwxrwx 1 root root 24 Feb 15 10:06/etc/alternatives/etags->/usr/bin/ctags-exuberantSo I think which kind of name Exuberant Ctags generates depends on argv[0].
Ah ok. How about this patch instead? Then we don't duplicate the sed statement.
---->8-------
scripts/tags.sh +5 -5
@@ -168,7 +168,7 @@ exuberant() --regex-dotconfig='/^#?[[:blank:]]*(CONFIG_[[:alnum:]_]+)/\1/' # Remove structure forward declarations. - LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' tags + LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' $2 } emacs()
@@ -213,9 +213,9 @@ emacs() xtags() { if $1 --version 2>&1 | grep -iq exuberant; then - exuberant $1 + exuberant $1 $2 elif $1 --version 2>&1 | grep -iq emacs; then - emacs $1 + emacs $1 $2 else all_sources | xargs $1 -a fi
@@ -244,11 +244,11 @@ case "$1" in "tags") rm -f tags - xtags ctags + xtags ctags $1 ;; "TAGS") rm -f TAGS - xtags etags + xtags etags $1 ;; esac
But then with your next patch maybe it would be better to just have a flag?
----8<-----
scripts/tags.sh +10 -5
@@ -166,9 +166,6 @@ exuberant() all_defconfigs | xargs -r $1 -a \ --langdef=dotconfig --language-force=dotconfig \ --regex-dotconfig='/^#?[[:blank:]]*(CONFIG_[[:alnum:]_]+)/\1/' - - # Remove structure forward declarations. - LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' tags } emacs()
@@ -233,6 +230,7 @@ if [ "${ARCH}" = "um" ]; then fi fi +remove_structs= case "$1" in "cscope") docscope
@@ -244,11 +242,18 @@ case "$1" in "tags") rm -f tags - xtags ctags + xtags ctags $1 + remove_structs=y ;; "TAGS") rm -f TAGS - xtags etags + xtags etags $1 + remove_structs=y ;; esac + +# Remove structure forward declarations. +if [ -n $remove_structs ]; then + LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' $1 +fi
Signature · 2 lines
Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
Quoted 82 lines · Stephen Boyd
Ah ok. How about this patch instead? Then we don't duplicate the sed statement.
---->8-------
scripts/tags.sh +0
-0@@ -168,7 +168,7 @@ exuberant()--regex-dotconfig='/^#?[[:blank:]]*(CONFIG_[[:alnum:]_]+)/\1/'
# Remove structure forward declarations.
- LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' tags
+ LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' $2
}emacs()
scripts/tags.sh +0
-0@@ -213,9 +213,9 @@ emacs() xtags() {if $1 --version 2>&1 | grep -iq exuberant; then
- exuberant $1
+ exuberant $1 $2
elif $1 --version 2>&1 | grep -iq emacs; then
- emacs $1
+ emacs $1 $2
else
all_sources | xargs $1 -a
fiscripts/tags.sh +0
-0@@ -244,11 +244,11 @@ case "$1" in "tags")rm -f tags
- xtags ctags
+ xtags ctags $1
;;"TAGS")
rm -f TAGS
- xtags etags
+ xtags etags $1
;;
esacBut then with your next patch maybe it would be better to just have a flag?
----8<-----
scripts/tags.sh +0
-0@@ -166,9 +166,6 @@ exuberant() all_defconfigs | xargs -r $1 -a \ --langdef=dotconfig --language-force=dotconfig \--regex-dotconfig='/^#?[[:blank:]]*(CONFIG_[[:alnum:]_]+)/\1/' -
- # Remove structure forward declarations.- LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' tags
}emacs()
scripts/tags.sh +0
-0@@ -233,6 +230,7 @@ if [ "${ARCH}" = "um" ]; thenfi
fi+remove_structs=
case "$1" in
"cscope")
docscopescripts/tags.sh +0
-0@@ -244,11 +242,18 @@ case "$1" in "tags")
Quoted 3 lines
rm -f tags
- xtags ctags
+ xtags ctags $1
Why we need a $1 here??
Quoted 7 lines
+ remove_structs=y
;;"TAGS")
rm -f TAGS
- xtags etags
+ xtags etags $1
The same.
Quoted 10 lines
+ remove_structs=y
;;
esacscripts/tags.sh +4
-0+ +# Remove structure forward declarations. +if [ -n $remove_structs ]; then + LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct\1;.*\$\/;"\tx$/d' $1
+fi
This way is better but I don't understand why a $1 is there.
I think it is useless and if you agree with me, i will send a fine patch to you.
Quoted 94 lines · Yang Bai
Quoted 79 lines · Stephen Boyd
Ah ok. How about this patch instead? Then we don't duplicate the sed statement.
---->8-------
scripts/tags.sh +0
-1@@ -168,7 +168,7 @@ exuberant() --regex-dotconfig='/^#?[[:blank:]]*(CONFIG_[[:alnum:]_]+)/\1/' # Remove structure forward declarations. - LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct\1;.*\$\/;"\tx$/d' tags
+ LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct
\1;.*\$\/;"\tx$/d' $2
}
emacs()scripts/tags.sh +4
-4@@ -213,9 +213,9 @@ emacs() xtags() { if $1 --version 2>&1 | grep -iq exuberant; then - exuberant $1 + exuberant $1 $2 elif $1 --version 2>&1 | grep -iq emacs; then - emacs $1 + emacs $1 $2 else all_sources | xargs $1 -a fi@@ -244,11 +244,11 @@ case "$1" in "tags") rm -f tags - xtags ctags + xtags ctags $1 ;; "TAGS") rm -f TAGS - xtags etags + xtags etags $1 ;; esacBut then with your next patch maybe it would be better to just have a flag?
----8<-----
scripts/tags.sh +0
-3@@ -166,9 +166,6 @@ exuberant() all_defconfigs | xargs -r $1 -a \ --langdef=dotconfig --language-force=dotconfig \ --regex-dotconfig='/^#?[[:blank:]]*(CONFIG_[[:alnum:]_]+)/\1/' - - # Remove structure forward declarations. - LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct\1;.*\$\/;"\tx$/d' tags
}
emacs()scripts/tags.sh +1
-0@@ -233,6 +230,7 @@ if [ "${ARCH}" = "um" ]; then fi fi +remove_structs= case "$1" in "cscope") docscopescripts/tags.sh case "$1" in · line 245
Quoted 5 lines
scripts/tags.sh +1
-1@@ -244,11 +242,18 @@ case "$1" in "tags") rm -f tags - xtags ctags + xtags ctags $1Why we need a $1 here??
scripts/tags.sh case "$1" in · line 251
Quoted 7 lines
scripts/tags.sh +2
-1+ remove_structs=y ;; "TAGS") rm -f TAGS - xtags etags + xtags etags $1The same.
Quoted 12 lines
Quoted 10 lines
scripts/tags.sh +5
-0+ remove_structs=y ;; esac + +# Remove structure forward declarations. +if [ -n $remove_structs ]; then + LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct\1;.*\$\/;"\tx$/d' $1
+fiThis way is better but I don't understand why a $1 is there.
I think it is useless and if you agree with me, i will send a fine patch to you.
It's a holdover from the previous patch. Thanks for spotting/removing it.
Signature · 2 lines
Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.