Hi Branden,

"G. Branden Robinson" <[email protected]> writes:

> Nope.
>
> $ make -C build TAGS
> make: Entering directory '/home/branden/src/GIT/groff/build'
> make[1]: Entering directory '/home/branden/src/GIT/groff/build'
> make[1]: *** No rule to make target 'src/utils/pfbtops/dummy.cpp', needed by 
> 'tags-am'.  Stop.
> make[1]: Leaving directory '/home/branden/src/GIT/groff/build'
> make: *** [Makefile:13257: tags-recursive] Error 1
> make: Leaving directory '/home/branden/src/GIT/groff/build'
>
> Is seems like there is _some_ sort of infrastructure there; I didn't ask
> for no "tags-am" prerequisite.  Is this a bug?

"tags-am" is an internal target used by Automake. The "TAGS" target
conditionally depends on "tags-am" or another target if SUBDIRS are
used.

Looking at this comment:

    $ grep -FB2 dummy.cpp src/utils/pfbtops/pfbtops.am 
    # We use the following trick to force the use of C++ compiler
    # See the Automake manual, "Libtool Convenience Libraries"
    nodist_EXTRA_pfbtops_SOURCES = src/utils/pfbtops/dummy.cpp

It looks like this trick also breaks all of the different tags targets,
since it adds a non-existent file to $(am__tagged_files).

You can probably fix it by creating an empty file
src/utils/pfbtops/dummy.cpp.

>> I like GNU global. :)
>
> You're the first person I've heard mention it beyond GNU release
> announcements, which I generally file away for later investigation and
> then never get around to.  Give me the elevator pitch, as it applies to
> you.  :)

Truthfully, I probably use 'grep -r' a bit more. But global is nice when
that catches too many irrelevant matches.

In coreutils:

    $ $ make GTAGS
    here=`CDPATH="${ZSH_VERSION+.}:" && cd . && pwd` \
      && CDPATH="${ZSH_VERSION+.}:" && cd . \
      && gtags -i  "$here"

Finding references to the find_mount_point function:

    $ global -rx find_mount_point
    find_mount_point 1426 src/df.c               char *mp = find_mount_point 
(point, statp);
    find_mount_point   19 src/find-mount-point.h extern char *find_mount_point 
(char const *, struct stat const *)
    find_mount_point 1020 src/stat.c         if ((mp = find_mount_point 
(filename, statp)))

Finding the definition:

    $ global -dx find_mount_point
    find_mount_point   30 src/find-mount-point.c find_mount_point (char const 
*file, struct stat const *file_stat)

That is all I need 99% of the time. There are integrations for Emacs and
other editors, but typing them in a terminal isn't slow enough for me to
be motivated enough to figure out keybinds for them. :)

Collin

Reply via email to