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
Mime
View raw message