OSDN Git Service

Makefile: add GNU global tags support
authorAlex Bennée <alex.bennee@linaro.org>
Thu, 14 Jan 2021 16:57:20 +0000 (16:57 +0000)
committerAlex Bennée <alex.bennee@linaro.org>
Mon, 18 Jan 2021 10:04:31 +0000 (10:04 +0000)
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.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20210114165730.31607-3-alex.bennee@linaro.org>

.gitignore
Makefile

index b32bca1..75a4be0 100644 (file)
@@ -7,6 +7,9 @@
 cscope.*
 tags
 TAGS
+GPATH
+GRTAGS
+GTAGS
 *~
 *.ast_raw
 *.depend_raw
index fb9923f..0c509a7 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -253,6 +253,18 @@ ctags:
        rm -f "$(SRC_PATH)/"tags
        $(find-src-path) -exec ctags -f "$(SRC_PATH)/"tags --append {} +
 
+.PHONY: gtags
+gtags:
+       $(call quiet-command,                   \
+               rm -f "$(SRC_PATH)/"GTAGS;      \
+               rm -f "$(SRC_PATH)/"GRTAGS;     \
+               rm -f "$(SRC_PATH)/"GPATH,      \
+               "GTAGS", "Remove old $@ files")
+       $(call quiet-command,                           \
+               (cd $(SRC_PATH) &&                      \
+                $(find-src-path) | gtags -f -),        \
+               "GTAGS", "Re-index $(SRC_PATH)")
+
 .PHONY: TAGS
 TAGS:
        rm -f "$(SRC_PATH)/"TAGS
@@ -279,7 +291,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  ''