This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Patch: better etags support
- From: Tom Tromey <tromey at redhat dot com>
- To: Gcc Patch List <gcc-patches at gcc dot gnu dot org>
- Date: 14 Feb 2003 11:52:29 -0700
- Subject: Patch: better etags support
- Reply-to: tromey at redhat dot com
This patch enhances the TAGS target in two ways.
First, it lets language subdirectories create their own TAGS files.
It does this by adding a new <lang>.tags target to each Make-lang.in.
Second, it then includes these language-specific tags files, by
reference, in the top-level tags file.
Ok for trunk?
Tom
Index: ChangeLog
from Tom Tromey <tromey@redhat.com>
* configure: Rebuilt.
* configure.in (target_list): Added tags.
* Makefile.in (TAGS): Depend on lang.clean. Include subdirectory
TAGS files by reference.
* objc/Make-lang.in (objc.tags): New target.
Index: Makefile.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Makefile.in,v
retrieving revision 1.993
diff -u -r1.993 Makefile.in
--- Makefile.in 12 Feb 2003 21:48:56 -0000 1.993
+++ Makefile.in 14 Feb 2003 18:58:02 -0000
@@ -3366,12 +3366,18 @@
# These exist for maintenance purposes.
# Update the tags table.
-TAGS: force
- (cd $(srcdir); \
- mkdir tmp-tags; \
- mv -f c-parse.[ch] =*.[chy] tmp-tags; \
- etags *.y *.h *.c; \
- mv tmp-tags/* .; \
+TAGS: lang.tags
+ (cd $(srcdir); \
+ incs= ; \
+ list='$(SUBDIRS)'; for dir in $$list; do \
+ if test -f $$dir/TAGS; then \
+ incs="$$incs --include $$dir/TAGS"; \
+ fi; \
+ done; \
+ mkdir tmp-tags; \
+ mv -f c-parse.[ch] =*.[chy] tmp-tags; \
+ etags *.y *.h *.c $$incs; \
+ mv tmp-tags/* .; \
rmdir tmp-tags)
# A list of files to be destroyed during "lean" builds.
Index: configure.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/configure.in,v
retrieving revision 1.641
diff -u -r1.641 configure.in
--- configure.in 6 Feb 2003 01:47:55 -0000 1.641
+++ configure.in 14 Feb 2003 18:58:06 -0000
@@ -2710,7 +2710,7 @@
rm -f Make-hooks
touch Make-hooks
-target_list="all.build all.cross start.encap rest.encap \
+target_list="all.build all.cross start.encap rest.encap tags \
info dvi generated-manpages \
install-normal install-common install-info install-man \
uninstall \
Index: ada/ChangeLog
from Tom Tromey <tromey@redhat.com>
* Make-lang.in (ada.tags): New target.
Index: ada/Make-lang.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/Make-lang.in,v
retrieving revision 1.25
diff -u -r1.25 Make-lang.in
--- ada/Make-lang.in 3 Feb 2003 00:55:32 -0000 1.25
+++ ada/Make-lang.in 14 Feb 2003 18:58:08 -0000
@@ -341,6 +341,9 @@
ada.start.encap:
ada.rest.encap:
+
+ada.tags: force
+ cd $(srcdir)/ada; etags *.c *.h *.ads *.adb
# Generate documentation.
#
Index: cp/ChangeLog
from Tom Tromey <tromey@redhat.com>
* Make-lang.in (c++.tags): New target.
Index: cp/Make-lang.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/Make-lang.in,v
retrieving revision 1.134
diff -u -r1.134 Make-lang.in
--- cp/Make-lang.in 13 Feb 2003 04:57:20 -0000 1.134
+++ cp/Make-lang.in 14 Feb 2003 18:58:15 -0000
@@ -113,6 +113,9 @@
c++.start.encap: g++$(exeext)
c++.rest.encap:
+c++.tags: force
+ cd $(srcdir)/cp; etags *.c *.h
+
c++.info:
c++.dvi:
c++.generated-manpages:
Index: f/ChangeLog
from Tom Tromey <tromey@redhat.com>
* Make-lang.in (f77.tags): New target.
Index: f/Make-lang.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/f/Make-lang.in,v
retrieving revision 1.119
diff -u -r1.119 Make-lang.in
--- f/Make-lang.in 21 Jan 2003 13:45:14 -0000 1.119
+++ f/Make-lang.in 14 Feb 2003 18:58:18 -0000
@@ -145,6 +145,9 @@
f77.start.encap: g77$(exeext)
f77.rest.encap:
+f77.tags: force
+ cd $(srcdir)/f; etags *.c *.h
+
f77.info: $(srcdir)/f/g77.info
f77.dvi: f/g77.dvi
f77.generated-manpages: $(srcdir)/f/g77.1
Index: java/ChangeLog
from Tom Tromey <tromey@redhat.com>
* Make-lang.in (java.tags): New target.
Index: java/Make-lang.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/Make-lang.in,v
retrieving revision 1.103
diff -u -r1.103 Make-lang.in
--- java/Make-lang.in 30 Jan 2003 05:19:31 -0000 1.103
+++ java/Make-lang.in 14 Feb 2003 18:58:25 -0000
@@ -156,6 +156,10 @@
java.start.encap: $(GCJ)$(exeext)
java.rest.encap:
+
+java.tags: force
+ cd $(srcdir)/java; etags *.y *.c *.h --language=none --regex='/DEFTREECODE [(]\([A-Z_]+\)/\1/' java-tree.def
+
java.info: $(srcdir)/java/gcj.info
java.dvi: java/gcj.dvi
java.generated-manpages: $(srcdir)/java/gcj.1 $(srcdir)/java/gcjh.1 \
Index: objc/Make-lang.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/objc/Make-lang.in,v
retrieving revision 1.55
diff -u -r1.55 Make-lang.in
--- objc/Make-lang.in 30 Jan 2003 05:17:55 -0000 1.55
+++ objc/Make-lang.in 14 Feb 2003 18:58:25 -0000
@@ -101,6 +101,9 @@
objc.start.encap:
objc.rest.encap:
+objc.tags: force
+ cd $(srcdir)/objc; etags *.y *.c *.h
+
objc.info:
objc.dvi:
objc.generated-manpages:
Index: treelang/ChangeLog
from Tom Tromey <tromey@redhat.com>
* Make-lang.in (treelang.tags): New target.
Index: treelang/Make-lang.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/treelang/Make-lang.in,v
retrieving revision 1.12
diff -u -r1.12 Make-lang.in
--- treelang/Make-lang.in 26 Jan 2003 10:17:17 -0000 1.12
+++ treelang/Make-lang.in 14 Feb 2003 18:58:27 -0000
@@ -131,6 +131,9 @@
treelang.start.encap:
treelang.rest.encap:
+treelang.tags: force
+ cd $(srcdir)/treelang; etags *.y *.l *.c *.h
+
.phony:treelang.info
treelang.info: $(srcdir)/treelang/treelang.info