summaryrefslogtreecommitdiff
path: root/defs
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2023-02-08 17:12:43 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2023-02-08 18:00:05 +0900
commit63e1769b16b4359b905ee6e6a5de3d0eab82bc0c (patch)
tree4bed1b2738e0545e086fc89db113a65b98177ac4 /defs
parent8ce2fb9bbbaea14737c84385b1573f743a30f773 (diff)
downloadruby-63e1769b16b4359b905ee6e6a5de3d0eab82bc0c.tar.gz
Add TAGS rule [ci skip]
Diffstat (limited to 'defs')
-rw-r--r--defs/gmake.mk4
-rw-r--r--defs/tags.mk18
2 files changed, 22 insertions, 0 deletions
diff --git a/defs/gmake.mk b/defs/gmake.mk
index 2b3d46e25c..c610eff283 100644
--- a/defs/gmake.mk
+++ b/defs/gmake.mk
@@ -269,6 +269,7 @@ HELP_EXTRA_TASKS = \
" checkout-github: checkout GitHub Pull Request [PR=1234]" \
" pull-github: rebase GitHub Pull Request to new worktree [PR=1234]" \
" update-github: merge master branch and push it to Pull Request [PR=1234]" \
+ " tags: generate TAGS file" \
""
# 1. squeeze spaces
@@ -505,3 +506,6 @@ matz: up
-e "s/^\(#define RUBY_ABI_VERSION\) .*/\1 0/" \
$(files:%=$(srcdir)/%)
$(GIT) -C $(srcdir) commit -m "$(message)" $(files)
+
+tags:
+ $(MAKE) GIT="$(GIT)" -C "$(srcdir)" -f defs/tags.mk
diff --git a/defs/tags.mk b/defs/tags.mk
new file mode 100644
index 0000000000..d29260c294
--- /dev/null
+++ b/defs/tags.mk
@@ -0,0 +1,18 @@
+# -*- mode: makefile-gmake; indent-tabs-mode: t -*-
+
+SRCS := $(shell $(GIT) ls-files \
+ *.[chy] *.def *.inc *.rb \
+ ccan/ coroutine/ include/ internal/ missing/ \
+ 'enc/**/*.[ch]' 'win32/**/*.[ch]' \
+ )
+
+TAGS: $(SRCS)
+ @echo updating $@
+ @tmp=$$(mktemp); \
+ trap 'rm -f "$$tmp"' 0; \
+ { \
+ $(GIT) grep -h --no-line-number -o '^ *# *define *RBIMPL_ATTR_[A-Z_]*(*' -- include | \
+ sed 's/^ *# *define *//;/_H$$/d;y/(/+/' | sort -u && \
+ echo 'NORETURN+'; \
+ } > "$$tmp" && \
+ ctags -e -I@"$$tmp" -h .def.inc --langmap=c:+.y.def.inc $(^)