Automake will generate rules to generate TAGS files for use with GNU Emacs under some circumstances.
If any C, C++ or Fortran 77 source code or headers are present, then
tags
and TAGS
rules will be generated for the directory.
All files listed using the _SOURCES
, _HEADERS
, and
_LISP
primaries will be used to generate tags. Note that
generated source files that are not distributed must be declared in
variables like nodist_noinst_HEADERS
or
nodist_
prog_SOURCES
or they will be ignored.
A tags
rule will be output at the topmost directory of a
multi-directory package. When run from this topmost directory,
‘make tags’ will generate a TAGS file that includes by
reference all TAGS files from subdirectories.
The tags
rule will also be generated if the variable
ETAGS_ARGS
is defined. This variable is intended for use in
directories that contain taggable source that etags does
not understand. The user can use the ETAGSFLAGS
to pass
additional flags to etags; AM_ETAGSFLAGS
is also
available for use in Makefile.am.
Here is how Automake generates tags for its source, and for nodes in its
Texinfo file:
ETAGS_ARGS = automake.in --lang=none \ --regex='/^@node[ \t]+\([^,]+\)/\1/' automake.texi
If you add file names to ETAGS_ARGS
, you will probably also
want to define TAGS_DEPENDENCIES
. The contents of this variable
are added directly to the dependencies for the tags
rule.
Automake also generates a ctags
rule that can be used to
build vi-style tags files. The variable CTAGS
is the name of the program to invoke (by default ctags);
CTAGSFLAGS
can be used by the user to pass additional flags,
and AM_CTAGSFLAGS
can be used by the Makefile.am.
Automake will also generate an ID
rule that will run
mkid on the source. This is only supported on a
directory-by-directory basis.
Similarly, the cscope
rule will create a list of all the source
files in the tree and run cscope to build an inverted index
database. The variable CSCOPE
is the name of the program to invoke
(by default cscope); CSCOPEFLAGS
and
CSCOPE_ARGS
can be used by the user to pass additional flags and
file names respectively, while AM_CSCOPEFLAGS
can be used by the
Makefile.am. Note that, currently, the Automake-provided
cscope
support, when used in a VPATH build, might not work well
with non-GNU make implementations (especially with make implementations
performing VPATH rewrites).
Finally, Automake also emits rules to support the
GNU Global Tags program.
The GTAGS
rule runs Global Tags and puts the
result in the top build directory. The variable GTAGS_ARGS
holds arguments that are passed to gtags.