harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gregory Shimansky <gshiman...@apache.org>
Subject Re: [build] managing external dependencies
Date Wed, 09 Jan 2008 13:23:22 GMT
Alexey Varlamov said the following on 09.01.2008 16:07:
> Folks,
> We did a few iterations refactoring the subject - let's have one more access ;).
> Why? There was a desire to have the following:
> 1) More fine-grained control over dependencies to empower modularity;
> 2) Unified approach and shared scripts across Harmony modules - VMs,
> classlib, jdktools;
> 3) Reduce duplication of resources (traffic, space, etc) between
> modules within the same workspace;
> I'd also add 4) If possible, reuse resources in different workspaces.
> This would be quite handy for committing purposes and for
> multi-platform development.
> Geir once introduced "common_resources" module, which IMO was a step
> in the right direction, but it was not fully adapted thus not used
> properly. Now the new build for DRLVM is a good stimulus and
> opportunity to accomplish the task.
> I suggest this time we deprive the classlib of it's state of Harmony
> umbilicus and make the "common_resources" a "primordial" module ;)
> The idea is to move all shared properties, definitions, tasks and
> files to the single location. Besides, the same module should be used
> as a central repository for downloading and storing external files.
> So, each module would "request" needed resources via standard
> facilities (ant tasks), automatically reusing duplicates. And the same
> "common_resources" instance can be imported to several workspaces and
> even shared between developers.

Yes I think it would be very nice to have, especially for creating 
source packages integrated into Linux distributions. Then files may be 
reused from the already installed on the system.

One thing I wonder about, if an external dependency is downloaded in 
source form, then common_resources would have to build it as well. E.g. 
drlvm build needs APR (actually it also patches it) and LOG4CXX. Do you 
think common_resources should contain only sources for APR or the 
already compiled binary?

> How?
> 1) Roughly, the following files need to be moved from classlib to
> common_resources:
> make/properties.xml
> make/depends.properties               # ? move only shared items to
> simplify maintenance
> depends/** except depends/files/    # ? there are several libs/zips +
> make definitions being shared
> Closer comparison of other make/build-*.xml ant scripts in classlib
> and jdktools may give more candidates.
> 2) Implement tasks or macros for fetching resources, storing them and
> providing uniform access: common_resources/download.xml svn.xml etc
> 3) Refactor make/depends.xml in respective modules to resolve bullet #1.
> Surely the plan is very sketchy, we need to agree on general direction first.
> Waiting for your comments/objections impatiently :)

I think that the change is good. Thank you very much for your effort in 
improving current build situation!


View raw message