This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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')

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]