[comp.lang.c] C call-graph

jacques@geovision.UUCP (Jacques Carette) (08/05/87)

Could anybody tell me how to make cflow work on sources that are stored
in different directories without actually giving it ALL the sources
to process?
What we have here are programs stored in this form:

xfi_displ_proc.c and xfi_poly_flush.c would be in
	xfi/displ_proc.c and
	xfi/poly_flush.c .
However, both these routines call dbi_act_quer.c, which is stored in
	dbi/act_quer.c.

This is just scratching the surface, since we have some source stored
at different directory levels, etc. However, when doing a call graph of one
of the programs that call these modules, we do not want to give cflow all
the source since there are (as of today) 3044 modules out there, and our
average program only references 1000-1500 of them.

I was thinking of doing some recursive routine that identifies the source
code it needs to look at next by parsing the output of cflow on
the top-level routine, and then feeding those to cflow, until I
have no more new entries. Anybody out there ever encounter a
problem like this before?

We need such a call graph because all of our source is stored in
libraries, and we have one library for each sub-directory. However,
we have routines in xfi/ that call dbi/ that call xfi/ (never referenced
before routines, so need another pass through libxfi) that call
qsr/ that call su/ that call dbi/ (new ones), etc. And once we have
the call graph of this mess (that works, mind you), we can then
go through it and generate a (close to uptimal) sequence of
libraries that will let us link our particular utility with the
least number of library references.

Any suggestions welcome. 
-- 
 Jacques Carette Jr. UUCP: ...!utzoo!dciem!nrcaer!cognos!geovision!jacques

Imaginez: Gaston Lagaffe, programmeur. Ca serait chouette, non?