I can generate the search files for a large source tree only if I have to.
The first file I make is the update.sh script:
>------------------------------------ Start of Contents ------------------------------------<
#!/bin/bash
# Remove all existing files that we use to search
rm -rf *.files *.out tags
# Build all the tags
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q ../.
# find all files for cscope to process
find ../. -name "*.c" -o -name "*.cpp" -o -name "*.s" -o -name "*.h" > cscope.files
# Generate lookup and reverse lookup databases
cscope -b -q -k
>------------------------------------ End of Contents ------------------------------------<
Then I make the search.sh script:
>------------------------------------ Start of Contents ------------------------------------<
#!/bin/bash
# Tell Cscope to use gvim ( this will allow multiple files to be open )
export EDITOR=gvim
# Search with the just built databases
cscope -d
>------------------------------------ End of Contents ------------------------------------<
I keep these scripts in their own directory in a source tree, and work from that directory.
The directory tree is set up like this:
These scripts are setup to go up one directory from cscope directory, and then recursively build a list of .c,.cpp,.s and .h files so that they can be used by cscope to build a lookup database file and a reverse lookup database file. This speeds up the searching on larger code bases (like the one I use at work).
Hopefully, this will help someone besides myself. Have fun.