#!/bin/sh
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# 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 -

