This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
PATCH to TAGS handling
- From: Jason Merrill <jason at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Sun, 16 Nov 2003 01:11:54 -0500
- Subject: PATCH to TAGS handling
A few months back, the generation of TAGS files in gcc changed to use
--include. It also changed from having one TAGS file per front end to
having one for all of gcc. If you want to look through all of gcc, that's
great, but I'm usually looking for something in the C++ front end, so the
change made the TAGS less useful for me.
This patch takes that change one step further: now as an alternative to the
gcc/TAGS file which continues to include information about all front ends,
people can choose to use, say, cp/TAGS, which only includes information
about that front end and the main source directory.
Applied to trunk.
2003-11-16 Jason Merrill <jason@redhat.com>
* Makefile.in, objc/Make-lang.in, ada/Make-lang.in, cp/Make-lang.in,
java/Make-lang.in, f/Make-lang.in: Create TAGS.sub files in each
directory and TAGS files that include them for each front end.
*** ./ada/Make-lang.in.~1~ 2003-11-11 17:55:12.000000000 -0500
--- ./ada/Make-lang.in 2003-11-16 00:36:46.000000000 -0500
***************
*** 1,4 ****
! # Top level makefile fragment for GNU Ada (GNAT).
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
# Free Software Foundation, Inc.
--- 1,4 ----
! # Top level -*- makefile -*- fragment for GNU Ada (GNAT).
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
# Free Software Foundation, Inc.
*************** ada.start.encap:
*** 432,438 ****
ada.rest.encap:
ada.tags: force
! cd $(srcdir)/ada; etags *.c *.h *.ads *.adb
ada.generated-manpages:
# Generate documentation.
--- 432,440 ----
ada.rest.encap:
ada.tags: force
! cd $(srcdir)/ada; etags -o TAGS.sub *.c *.h *.ads *.adb; \
! etags --include TAGS.sub --include ../TAGS.sub
!
ada.generated-manpages:
# Generate documentation.
*** ./cp/Make-lang.in.~1~ 2003-10-21 11:10:26.000000000 -0400
--- ./cp/Make-lang.in 2003-11-16 00:36:05.000000000 -0500
*************** c++.start.encap: g++$(exeext)
*** 114,120 ****
c++.rest.encap:
c++.tags: force
! cd $(srcdir)/cp; etags *.c *.h
generated-manpages:: cp/g++.1
--- 114,122 ----
c++.rest.encap:
c++.tags: force
! cd $(srcdir)/cp; etags -o TAGS.sub *.c *.h --language=none \
! --regex='/DEFTREECODE [(]\([A-Z_]+\)/\1/' cp-tree.def; \
! etags --include TAGS.sub --include ../TAGS.sub
generated-manpages:: cp/g++.1
*** ./f/Make-lang.in.~1~ 2003-11-11 17:55:33.000000000 -0500
--- ./f/Make-lang.in 2003-11-16 00:36:05.000000000 -0500
***************
*** 1,4 ****
! # Top level makefile fragment for GNU Fortran. -*-makefile-*-
# Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
#This file is part of GNU Fortran.
--- 1,4 ----
! # Top level -*- makefile -*- fragment for GNU Fortran.
# Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
#This file is part of GNU Fortran.
*************** f77.start.encap: g77$(exeext)
*** 146,152 ****
f77.rest.encap:
f77.tags: force
! cd $(srcdir)/f; etags *.c *.h
info:: $(docobjdir)/g77.info
dvi:: $(docobjdir)/g77.dvi
--- 146,153 ----
f77.rest.encap:
f77.tags: force
! cd $(srcdir)/f; etags -o TAGS.sub *.c *.h; \
! etags --include TAGS.sub --include ../TAGS.sub
info:: $(docobjdir)/g77.info
dvi:: $(docobjdir)/g77.dvi
*************** f77.distclean:
*** 311,317 ****
-rm -f f/Makefile
f77.extraclean:
f77.maintainer-clean:
! -rm -f f/g77.info* f/g77.*aux f/TAGS f/BUGS f/NEWS f/intdoc.texi
#
# Stage hooks:
# The main makefile has already created stage?/f.
--- 312,318 ----
-rm -f f/Makefile
f77.extraclean:
f77.maintainer-clean:
! -rm -f f/g77.info* f/g77.*aux f/TAGS f/TAGS.sub f/BUGS f/NEWS f/intdoc.texi
#
# Stage hooks:
# The main makefile has already created stage?/f.
*** ./java/Make-lang.in.~1~ 2003-11-11 17:55:34.000000000 -0500
--- ./java/Make-lang.in 2003-11-16 00:36:05.000000000 -0500
***************
*** 1,4 ****
! # Top level makefile fragment for the GNU compiler for the Java(TM)
# language.
# Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
--- 1,4 ----
! # Top level -*- makefile -*- fragment for the GNU compiler for the Java(TM)
# language.
# Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
*************** java.rest.encap:
*** 158,164 ****
java.tags: force
! cd $(srcdir)/java; etags *.y *.c *.h --language=none --regex='/DEFTREECODE [(]\([A-Z_]+\)/\1/' java-tree.def
info:: $(docobjdir)/gcj.info
dvi:: $(docobjdir)/gcj.dvi
--- 158,167 ----
java.tags: force
! cd $(srcdir)/java; etags -o TAGS.sub *.y *.c *.h --language=none \
! --regex='/DEFTREECODE [(]\([A-Z_]+\)/\1/' java-tree.def; \
! etags --include TAGS.sub --include ../TAGS.sub
!
info:: $(docobjdir)/gcj.info
dvi:: $(docobjdir)/gcj.dvi
*** ./objc/Make-lang.in.~1~ 2003-10-21 11:10:36.000000000 -0400
--- ./objc/Make-lang.in 2003-11-16 00:36:05.000000000 -0500
*************** objc.start.encap:
*** 104,110 ****
objc.rest.encap:
objc.tags: force
! cd $(srcdir)/objc; etags *.y *.c *.h
#
# Install hooks:
--- 104,111 ----
objc.rest.encap:
objc.tags: force
! cd $(srcdir)/objc; etags -o TAGS.sub *.y *.c *.h; \
! etags --include TAGS.sub --include ../TAGS.sub
#
# Install hooks:
*** ./treelang/Make-lang.in.~1~ 2003-11-11 17:55:36.000000000 -0500
--- ./treelang/Make-lang.in 2003-11-16 00:36:05.000000000 -0500
*************** GCC_EXTRAS = -B./ -B$(build_tooldir)/bin
*** 59,65 ****
TREE_GENERATED = $(parsedir)/treelang/lex.c $(parsedir)/treelang/parse.c \
$(parsedir)/treelang/parse.h $(parsedir)/treelang/parse.output \
! $(parsedir)/treelang/TAGS
TREE_EXES = tree1
--- 59,65 ----
TREE_GENERATED = $(parsedir)/treelang/lex.c $(parsedir)/treelang/parse.c \
$(parsedir)/treelang/parse.h $(parsedir)/treelang/parse.output \
! $(parsedir)/treelang/TAGS $(parsedir)/treelang/TAGS.sub
TREE_EXES = tree1
*************** treelang.start.encap:
*** 147,153 ****
treelang.rest.encap:
treelang.tags: force
! cd $(srcdir)/treelang; etags *.y *.l *.c *.h
info:: $(docobjdir)/treelang.info
dvi:: $(docobjdir)/treelang.dvi
--- 147,154 ----
treelang.rest.encap:
treelang.tags: force
! cd $(srcdir)/treelang; etags -o TAGS.sub *.y *.l *.c *.h; \
! etags --include TAGS.sub --include ../TAGS.sub
info:: $(docobjdir)/treelang.info
dvi:: $(docobjdir)/treelang.dvi
*** ./Makefile.in.~1~ 2003-11-11 17:55:08.000000000 -0500
--- ./Makefile.in 2003-11-16 00:36:05.000000000 -0500
*************** paranoia: paranoia.o real.o $(LIBIBERTY)
*** 3364,3381 ****
# Update the tags table.
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] tmp-tags; \
! etags *.y *.h *.c $$incs; \
! mv tmp-tags/* .; \
! rmdir tmp-tags)
# ------------------------------------------------------
# Bootstrap-related targets (not used during 'make all')
--- 3364,3382 ----
# Update the tags table.
TAGS: lang.tags
! (cd $(srcdir); \
! incs= ; \
! list='$(SUBDIRS)'; for dir in $$list; do \
! if test -f $$dir/TAGS; then \
! incs="$$incs --include $$dir/TAGS.sub"; \
! fi; \
! done; \
! mkdir tmp-tags; \
! mv -f c-parse.[ch] tmp-tags; \
! etags -o TAGS.sub *.y *.h *.c; \
! mv tmp-tags/* .; \
! rmdir tmp-tags; \
! etags --include TAGS.sub $$incs)
# ------------------------------------------------------
# Bootstrap-related targets (not used during 'make all')