Reshaping the src directory.

Kurt Stirewalt ([email protected])
Fri, 30 Jun 1995 09:05:17 -0400

Hi -

In the past week I have been working with Pedro trying to get Mastermind
to build on the HP's at ISI, and have noticed that the structure of the
source tree is beginning to get a bit unwieldy. The problem is that a plethora
of different sorts of builds are performed in the directory $MMHOME/src.
Some of these builds create executables that are needed by other subdirectories
(for example the MRL compiler) whereas others can not be built until all other
subdirectories are compiled and archived (for example the MTF parser). The
net effect of this is that our source "tree" has some dependencies that
are not very "tree-like". In particular, sibling subtrees in the hierarchy
have dependencies between each other that are not resolvable under the
current recursive tree walk that we implement to build the system.
It seems then that we should think about "reshaping" the source tree
somewhat in order to facilitate the natural satisfaction of these
dependencies. Most of the reshaping will go on within the top-level
subdirectory src, but will also include the top-level subdirectory lib.
Here is what I propose:
src/Tools --> Contains tools that are needed to compile the
model ontologies, so the MRL parser would go here.
src/Model --> Contains the individual model ontologies, so
would contain the current directories Appl, Task,
Pres, and Comm.
src/Object --> Contains the object system.
src/Lib --> Contains what was in the old system $MMHOME/lib.
The rationale for this is twofold:
1) nothing in the top-level directory lib is
used for anything other than what is
compiled in src, and
2) The directory src/Server depends upon these
libraries being built.
src/Server --> Contains the MTF parser and model server linkage
code.

The nice thing about this schema is that if we visit them in the order
presented doing a 'make all' in each one, all of the dependencies between
subdirectories will be satisfied. This greatly simplifies the construction
of the Imakefiles for the whole system and I think it is more suggestive
of the system architecture as well. I would like to do this today or maybe
some time this weekend if noone has any objections. Please let me know how
you feel about it, and if you think now is a good time to do it.
Thanks.
-- kurt.