harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrey Chernyshev <a.y.chernys...@gmail.com>
Subject Re: Building choices (was: Re: Code contribution to harmony)
Date Wed, 30 Nov 2005 12:53:24 GMT
On 11/23/05, Graeme Johnson <Graeme_Johnson@ca.ibm.com> wrote:
> 'make' also simplifies the bootstrapping issue.  When you are doing the
> initial port of the VM to a new platform, and you don't have java
> running yet, having your build instructions encoded in Ant is problematic.

Well, good point. However, as it was suggested earlier in the thread,
let's separate the building platforms and the target platforms. I
would expect that one most likely will choose some conventional
platform for the development and building. Hence, there is a high
probability that Java is already available there. Bootstraping for
"Javaless" platforms can be solved with C cross compiler. GCC does
exactly the same to bootstrap.

> Relying on the availability of a previous java port to get the Harmony
> VM building seems like a questionable porting story.  'make' of one flavor
> or another is pretty much universally available, and seems like the
> pragmatic choice for building C code.

I would agree that make is the preferred choice for any Unix
developers. The problem actually comes when we start to develop on
Windows (I believe, there still be a plenty of such developers). Let's
consider the specific example – I'm building on Windows. I can use
nmake, but, it is MSVC specific and is not available on Linux, hence
it can't be our choice. Next, I'll try to use gmake – this, however,
requires me to install cygwin in addition to MSVC. Note that I already
have Java installed since I'm building the java sources with ant. Then
the question comes, why do I have to install something else?

The problem is that C development toolset isn't necessarily associated
with the make toolset, and the make toolsets are not always compatible
with each other. Make-based builds sometimes tend to do not work even
between the different Linux distributions, if not specially hacked.
Java luckily conforms to a single standard, hence works everywhere
similarly, if only available.

I'm currently working on preparing a prototype of a full ant-based
build system which would allow to build the provided class libraries
contributions. Perhaps it would make sense to return to this talk some
time later if I get the prototype working.

Thank you,
Andrey Chernyshev
Intel Managed Runtime Division
View raw message