harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oliver Deakin <oliver.dea...@googlemail.com>
Subject Re: [classlib][build] Improvements to build system
Date Mon, 02 Oct 2006 07:56:12 GMT
Mark Hindess wrote:
> On 29 September 2006 at 13:14, Oliver Deakin <oliver.deakin@googlemail.com> 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: harmony-dev-unsubscribe@incubator.apache.org
> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>
>
>   

-- 
Oliver Deakin
IBM United Kingdom Limited


---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org


Mime
View raw message