diff options
Diffstat (limited to 'build/MakeEtags')
-rwxr-xr-x | build/MakeEtags | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/build/MakeEtags b/build/MakeEtags new file mode 100755 index 0000000..cf1a486 --- /dev/null +++ b/build/MakeEtags @@ -0,0 +1,41 @@ +#!/bin/sh + +# This file illustrates how to generate a useful TAGS file via etags +# for emacs. This should be invoked from the top source directory i.e.: +# > build/MakeEtags +# and will create a TAGS file in the top source directory. + +# This script falls under the Apache License. +# See http://www.apache.org/docs/LICENSE + +# Once you have created ./TAGS in emacs you'll need to setup +# tag-table-alist with an entry to assure it finds the single ./TAGS +# file from the many source directories. Something along these lines: +# (setq tag-table-alist +# '(("/home/me/work/apr-x.y/" . "/home/me/work/apr-x.y/") +# ("/home/me/work/apr-util-x.y/" . "/home/me/work/apr-util-x.y/") +# ("/home/me/work/httpd-x.y/" . "/home/me/work/httpd-x.y/") +# )) + +# This requires a special version of etags, i.e. the +# one called "Exuberant ctags" available at: +# http://ctags.sourceforge.net/ +# Once that is setup you'll need to point to the +# executable here: + +etags=${ETAGS-etags} + +# Exuberant etags is necessary since it can ignore some defined symbols +# that obscure the function signatures. + +ignore=AP_DECLARE,AP_DECLARE_NONSTD,__declspec,APR_DECLARE,APR_DECLARE_NONSTD +ignore=$ignore,APU_DECLARE,APU_DECLARE_NONSTD + +# 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 - + |