[comp.software-eng] Tools for building a system

sommar@enea.se (Erland Sommarskog) (01/15/89)

When you build your system, or part of it, you have a good help
of a tool like MMS or some other "make" clone. However, MMS,
requires that you know all your dependencies. Since they may
change during development maintaining the MMS files becomes
an important task that is boring and error prone. At the place
I'm currently located we have a tool to automatically generate MMS
files. Unfortunately, it doesn't work very well, since the
analysis is made on the list file, thus the tool must compile
to find out the dependencies. This is a fatal mistake, since
some of the files required for the compilation is maybe out of 
date or non-existent, causing the compilation to fail. 

What I have been thinking of is to first get dependency information
which concerns compilation from the source file and then iterating
back, until I don't depend on anything, compile in the correct
order, gather all external references(*) from the list file (or the
object file) until all is compiled and I can construct the link 
dependencies for my executable(s). The external references must
have been put in a database of some sort, so I can check that the 
corresponding modules are up to date.

(*) External reference: A variable/procedure/function that is not
defined in the referencing module or any of the modules it imports
from. E.g. a routine in another langauge.

I have two questions, one of just general curiousity and one to
possibly save some work.
1) Have such tools been built? And for what langauges and OS:s?
   I know of something similar for C/Unix but that is a fairly
   trivial case, since C only have an include facility. All Ada 
   system must have something of the like. 
2) Is there anything we could use? We have the combination VMS,  
   VAX-Pascal, Cobol, CDD, RDB and CMS. Any ideas to avoid work 
   that already has been done are appreciated.

-- 
Erland Sommarskog
ENEA Data, Stockholm              This signature is not to be quoted.
sommar@enea.se