Maintainer : Dries Pruimboom  (dries[at]irssystems.nl)

Disclaimer : I can not be blamed for anything that goes wrong caused by the 
             use of this program, use at your own risk !!
             
Copyrights : This is improve-ware.
             Improve-ware licence : you can copy change etc. this program
             you MUST however mail any improvements you make to this program
             to the maintainer of the program.
             
This set of programs consist of 'usage' that can be used to see which routines
in a c-project are used and how often and what other routines they call.
Then there is the CallTree program, this program uses output of the 'usage' 
program to make a call-tree of the c-project.

Compile/Make instructions :

   I think make files are a bit over the top for these little projects, so
   i create a simple batchfile called 'compile' to make the projects.
   
   just change to the directory of the program and type 'compile'. 
   If it doesn't work it will be easy to edit the batchfile.

   the CallTree program is in the call_tree sub directory.


Usage of usage :

   usage -c      >> generate a simple call tree
   usage -u      >> don't show unused routines
   usage -f file >> use a file list containing all 'C' files of a project
   usage -d      >> show undefined functions list
   usage -o      >> mark only as used if used in an other file than where
                    it is defined in.
   usage -n      >> show use count list
   
   
In order to skip each listing of c-lib routines a file is read at startup.
This file is '/etc/usage.lst'.  This file contains all routines that we don't
want showing up in our usage output. (an example file is added). Copy this
file to /etc and make sure it is readable by everyone.

Example 1 : show all not-used routines of test.c
               
               usage test.c
               
            show the usage of all routines in test.c
               
               usage -c test.c

            show the usage of all routines in test.c and show how
            often they are used :
               
               usage -c -n test.c

            show all functions that are used but not defined in test.c
            
               usage -d test.c

More complex :

Example 2 : Generate a call tree that can be used by CallTree to make a 
            detailed call tree. then use call tree to output the calltree.
          
          the project contains 3 files : file1.c file2.c file3.c
          
    Do it like this :
       make a file containing 3 lines with on each line then name of a c-file
          >> file content <<
          file1.c
          file2.c
          file3.c
          >> end of file content <<
           
       run usage using this file list and generating a call list (and keep 
       output in a hlp file for processing by CallTree)
       
          usage -u -c -f filelist >> hlp
          
       run CallTree to generate a nice looking call-graph
       
          CallTree hlp
          
          
Warning : if you are using CallTree on big projects it will take quite a while
          CallTree is not really efficient in its workings (it is however 
          simple to see how it works. If you improve CallTree please mail me
           
           
           
       