blob: 25f6bdab176b83763389739de486be8d16e95794 [file] [log] [blame]
#!/bin/sh
# This file illustrates how to generate a useful TAGS file via etags
# for emacs. This should be invoked from the src directory i.e.:
# > helpers/MakeEtags
# and will create a TAGS file in the src directory.
# This script falls under the Apache License.
# See http://www.apache.org/docs/LICENSE
# Once you have created src/TAGS in emacs you'll need to setup
# tag-table-alist with an entry to assure it finds the single src/TAGS
# file from the many source directories. Something along these lines:
# (setq tag-table-alist
# '(("/home/me/work/apache-1.3/src/"
# . "/home/me/work/apache-1.3/src/")
# ))
# This requires a special version of etags, i.e. the
# one called "Exuberant ctags" available at:
# http://fly.hiwaay.net/~darren/ctags/
# Once that is setup you'll need to point to the
# executable here:
etags=~/local/bin/etags
# Exuberant etags is necessary since it can ignore some defined symbols
# that obscure the function signatures.
ignore=API_EXPORT,API_EXPORT_NONSTD,__declspec
# Create an etags file at the root of the source
# tree, then create symbol links to it from each
# directory in the source tree. By passing etags
# absolute pathnames we get a tag file that is
# NOT portable when we move the directory tree.
find . -name '*.[ch]' -print | $etags -I "$ignore" -L -