Ben Widawsky <b...@bwidawsk.net> writes:
> On 21-01-08 22:30:59, Alex Bennée wrote: >> >> Ben Widawsky <b...@bwidawsk.net> writes: >> >> > On 21-01-08 12:19:35, Alex Bennée wrote: >> >> GNU Global is another tags engine which is more like cscope in being >> >> able to support finding both references and definitions. You will be >> >> un-surprised to know it also integrates well with Emacs. >> >> >> >> The main benefit of integrating it into find-src-path is it takes less >> >> time to rebuild the database from scratch when you have a lot of build >> >> directories under your source tree. >> >> >> >> Signed-off-by: Alex Bennée <alex.ben...@linaro.org> >> > >> > It might be worth mentioning that the Linux kernel has supported this for >> > a long >> > time now (10+ years). >> > >> > Having switched to gtags about 3 years ago, I think it's summarily better >> > and >> > would really like this to get merged. >> >> So I take it that's a reviewed-by and a tested-by tag from you? >> > > It doesn't actually work correctly for me, I just like the idea :-) > > make gtags 2>&1 | grep ignored | wc -l > 6266 > > Warning: '/home/bwidawsk/work/clk/qemu/accel/qtest/qtest.c' is out of > source tree. ignored. Did you run this in the build directory by any chance? I tested in the source directory because that's generally where you want the tags. I wonder what the best solution is to this? Always force ourselves to be in the source dir? Or error out when we are not in the source tree? > >> > >> >> --- >> >> Makefile | 9 ++++++++- >> >> .gitignore | 3 +++ >> >> 2 files changed, 11 insertions(+), 1 deletion(-) >> >> >> >> diff --git a/Makefile b/Makefile >> >> index fb9923ff22..66eec99685 100644 >> >> --- a/Makefile >> >> +++ b/Makefile >> >> @@ -253,6 +253,13 @@ ctags: >> >> rm -f "$(SRC_PATH)/"tags >> >> $(find-src-path) -exec ctags -f "$(SRC_PATH)/"tags --append {} + >> >> >> >> +.PHONY: gtags >> >> +gtags: >> >> + rm -f "$(SRC_PATH)/"GTAGS >> >> + rm -f "$(SRC_PATH)/"GRTAGS >> >> + rm -f "$(SRC_PATH)/"GPATH >> >> + $(find-src-path) | gtags -f - >> >> + >> >> .PHONY: TAGS >> >> TAGS: >> >> rm -f "$(SRC_PATH)/"TAGS >> >> @@ -279,7 +286,7 @@ help: >> >> $(call print-help,all,Build all) >> >> $(call print-help,dir/file.o,Build specified target only) >> >> $(call print-help,install,Install QEMU, documentation and tools) >> >> - $(call print-help,ctags/TAGS,Generate tags file for editors) >> >> + $(call print-help,ctags/gtags/TAGS,Generate tags file for editors) >> >> $(call print-help,cscope,Generate cscope index) >> >> $(call print-help,sparse,Run sparse on the QEMU source) >> >> @echo '' >> >> diff --git a/.gitignore b/.gitignore >> >> index b32bca1315..75a4be0724 100644 >> >> --- a/.gitignore >> >> +++ b/.gitignore >> >> @@ -7,6 +7,9 @@ >> >> cscope.* >> >> tags >> >> TAGS >> >> +GPATH >> >> +GRTAGS >> >> +GTAGS >> >> *~ >> >> *.ast_raw >> >> *.depend_raw >> >> -- >> >> 2.20.1 >> >> >> >> >> >> >> -- >> Alex Bennée -- Alex Bennée