Mark Hindess wrote:
On 29 September 2006 at 13:14, Oliver Deakin <[EMAIL PROTECTED]> wrote:
Hi all - Ive been away from the list this week, so sorry if Ive missed a few
mails. Ill try and get back to them as soon as possible.

In the meantime Ive been thinking about the classlib build system,
and spotted a couple of things that Id like to fix/cleanup:

1) Although we can build a specific module with -Dbuild.module, currently
we cannot just clean or rebuild a single module. I'd like to be able to
run "ant -Dbuild.module=luni rebuild" and have it clean only the luni
java and native binaries and rebuild them. Currently this call results in
a total clean of all modules, and then all the native code being rebuilt,
but only the java code for luni (so you end up with only luni.jar in
lib/boot)! It would also be nice to be able to use the new rebuild-java
and rebuild-native targets on a per module basis.

2) In the top level build script we have a number of "public" and
"private" targets (the "private" ones are prefixed by a hyphen so
that they cannot be run from the command line). However at the
modular level the build scripts do not have this separation of
external and internal targets, even though it is expected that developers
may run these scripts directly. I would like to setup these scripts in the
same way as the top level build.xml- with build, build-java, build-native
etc. external targets and all others as internal and prefixed with
a hyphen.

I notice that Mark has done some cleanup of the build scripts under
make recently, but I think the modular scripts still require tidying up.
Does anyone have any objections to these? Any ideas of other
relevant activities I can carry out while Im in there?

The other things I was thinking about were:

1) Replacing antcall tasks with task dependencies

ok, Ill look out for these and replace them where I can.

2) Moving stuff out of the make/build-java.xml file to a module where
   there is an obvious module that these files should be associated
   with.  For instance, the ant for moving the ecj.jar really belongs
   with the tools module - since if you aren't building the tools module
   you would not need that jar.

yup, that sounds right - most of the modules already take care of their dependencies
individually, tools should be no different.

3) Fixing the way we build the test support jar too frequently - i.e. the fact that we delete it before we test even if it hasn't changed.

4) Whether we can make make/build-native.xml derive some information
   from the modules - which ones need calling in which order - rather
   than hard coding this information

Do you have any ideas about how we could do this? We have the added complication of the luni module having two native build targets that need to be called at different stages during
the build.
I had imagined a system where each module has knowledge of the dependencies for it's native code (luni would have two sets of deps). The top level build.xml would call each module in turn, and if that module finds that it's dependencies have already been built, it will go ahead and compile it's libraries. The top level build.xml would make multiple cycles through the set of modules until all have completed building, or the build has failed. However, I'm not sure
this is possible in Ant. Ideas?

5) Modular building and testing with an hdk?

Once (1) is complete this should be possible with an HDK placed into the deploy directory. i.e. you should be able to unpack an hdk into the deploy directory, and then build, rebuild and
test in a modular fashion using -Dbuild.module.

I still have the build target work (described at the bottom of [1]) in my todo list - I think this
will be more useful once (1) is finished.

Regards,
Oliver

[1] http://incubator.apache.org/harmony/subcomponents/classlibrary/hdk.html

As usual, I'm sure I'll find more work when I start looking more closely.

-Mark.



---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



--
Oliver Deakin
IBM United Kingdom Limited


---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to