                        Cxref 1.5 - Miscellaneous files
                        ===============================

These are some miscellaneous files that are useful with cxref but do not form
part of the program itself.


cxref.el
--------

An Emacs lisp file that will add comments into C source files in the correct
format for cxref to understand.


cflow.el
--------

(By Paul Barham Paul.Barham@cl.cam.ac.uk)

An Emacs lisp file that can be used to convert the cxref.function file into a
hierarchy of function calls that can be browsed.


fixheader
---------

A Perl script that can be used to find the header files that are missing from a
header file that cxref cannot parse or remove unneeded header files from source
files.

Usage: fixheader filename [filename ...] [-v] [-o]
                 [-Odirname] [-Nbasename] [-Rdirname]
                 [-Ddefine] [-Udefine] [-Iinclude]

The -v flag gives a verbose output showing what it is doing (recommended).
The -o flag produces an output file from the input file with modifications.
The other flags are the same as for cxref itself.

This should be considered as experimental at the moment, it works on the cxref
source code, but has not been tested very extensively beyond that.


cxref_includes
--------------

A perl script that will run cxref on all of the include files that are
referenced in the cxref.include file that was written out by running cxref on
the source files.

Usage: cxref_includes cxref.include


knr2ansi.pl
-----------

A perl script to be run on a C source file that will produce a set of function
prototypes for the functions in the file.


xrefgraph.py
------------

(By Tom Holroyd <tomh@po.crl.go.jp>)

> I've been making neat call graphs using cxref and AT&T's recently
> OpenSourced Graphviz package.  It's great for getting the idea of a
> program's structure (works best for small to medium sized programs,
> though, unless you print it on BIG paper).

> Two notes. First, this is very simple, and several things could be done
> with it, especially in the area of node and edge labels.  But you might
> enjoy playing with it and possibly making cxref output the .dot files
> directly (although postprocessing the -raw output may have some
> advantages).  Second, the -k option gets rid of unknown functions since
> lots of stdio stuff can clutter the graph.  But it's nice to include
> *some* of them, like malloc() and free() -- so to make the graph I
> attached, I also included a dummy file with black definitions of those
> functions.  That's sort of a hack, and some sort of switch to
> include/exclude functions or classes of function might work too (in cxref
> or in the script).


daVinci_include.pl & daVinci_function.pl
----------------------------------------

Perl scripts that will generate call graphs and file include graphs for the
daVinci graph drawing package.

The daVinci webpage is http://www.informatik.uni-bremen.de/~davinci/ and it
describes the program as:

: daVinci is a X-Window visualization tool for drawing directed graphs
: automatically in high quality.  daVinci is developed by Michael Frhlich (until
: November 1997) and Mattias Werner from the Group of Prof. Dr. Bernd
: Krieg-Brckner at University of Bremen, Germany.


tree.pl
-------

(By Ian Gilmour <ian.gilmour@ffei.co.uk>)

> Here's a simple perl script I've knocked up to give a v. simple call tree
> diagram on a simple terminal.

> Usage: $0 cxref_function_file root_function max_level
> max_level +ve for functions called by specified function
> max_level -ve for functions that call specified function
