Norman,
If component A declares a build dependency on component B, then
component A has an implicit dependency on the build dependencies of B.
But should not A also have an implicit dependency on all the *link*
dependencies of B? At least if A is an application and B is a library...
I tried some experiments poking about in GenerateDependencies. In
getCompleteDependencies, I modified (but obviously didn't commit!):
} else {
cdeps = c.getCompleteDependencies
(type,
(type == Dependency.LINK ? false : true),
recurseLevel+1);
}
to be
} else {
cdeps = c.getCompleteDependencies
(type,
(type == Dependency.LINK ? false : true),
recurseLevel+1);
if( type == Dependency.BUILD ) {
Set cdeps2 = c.getCompleteDependencies(
Dependency.LINK, true,
recurseLevel+1);
if( cdeps2 != null ) cdeps.addAll(cdeps2);
}
}
and then re-made Makefile.dependencies. The new version includes the link
dependencies of kaplibs in the total list of atools dependencies as
expected. I'm not continuing with "make world" using this new
Makefile.dependancies. Let's see what happens...
David
|