# harmony-dev mailing list archives

##### Site index · List index
Message view
Top
From "Nathan Beyer" <nbe...@kc.rr.com>
Subject RE: [app] ant with ecj
Date Mon, 28 Aug 2006 03:52:14 GMT
```The current build scripts should be doing this already. For example, this is
a snippet from the 'luni' module's build script.

<javac sourcepath=""
srcdir="\${hy.luni.src.main.java}"
destdir="\${hy.build}"
source="\${hy.javac.source}"
target="\${hy.javac.target}"
debug="\${hy.javac.debug}">
<bootclasspath>
<fileset dir="\${hy.jdk}/jre/lib/boot">
<include name="**/*.jar" />
</fileset>
</bootclasspath>
</javac>

It points to luni's source directory and puts everything in the deploy
(JDK)/jre/lib/boot folder on the bootclasspath to compile against. In the
case of "java.lang.Object", this should be in the "luni-kernel-stubs.jar".
If you're doing a full compile, then "java.lang.Object" should be included
in the source files.

I just ran the build using the Eclipse compiler and it worked fine. Here's
what I did.
1. Check out all of the code from the classlib trunk [1] down. You need
everything from the folder down.
2. From the 'trunk' folder, run 'ant fetch-depends', which downloads all of
the dependencies for the build.
3. Grab the ecj_3.2.jar from the 'trunk/depends/jars/ecj_3.2' and copied it
into my ANT_HOME/lib folder. This puts ECJ on Ant's classpath.
4. From the 'trunk' folder, run 'ant build
federated build runs.

Is this similar to what you're doing? Note, I'm running Ant with JAVA_HOME
pointing to Sun's 5.0_7 JDK.

-Nathan

[1]
https://svn.apache.org/repos/asf/incubator/harmony/enhanced/classlib/trunk/

> -----Original Message-----
> From: Jordan Justen [mailto:jljusten@gmail.com]
> Sent: Sunday, August 27, 2006 10:31 PM
> To: harmony-dev@incubator.apache.org
> Subject: Re: [app] ant with ecj
>
> Nathan,
>
> Is there a way to have the javac/ecj task include all of standard harmony
> jars without including them in the CLASSPATH environment variable?
>
> Thanks,
>
> -Jordan
>
> On 8/27/06, Nathan Beyer <nbeyer@kc.rr.com> wrote:
> >
> > Keep in mind that the execution of the Ant scripts and the compilation
> are
> > two separate things, which means they are using two different
> classpaths.
> > If
> > the compilation task is complaining about a missing class, then this
> means
> > the class is missing from the classpath of the compiler, not the
> classpath
> > of the executing Ant. You'll need the Eclipse compiler JAR on Ant's
> > execution classpath to execute the javac task.
> >
> > This can be confusing when using the Eclipse compiler, since it doesn't
> > have
> > any "default" classpath. Normally when you're using 'javac' from a JDK,
> > the
> > classpath of the underlying JRE (all of the java.*, etc classes) is
> > automatically on the classpath. The Eclipse compiler is not part of a
> JDK,
> > so there is nothing on the classpath by default.
> >
> > -Nathan
> >
> > > -----Original Message-----
> > > From: Jordan Justen [mailto:jljusten@gmail.com]
> > > Sent: Sunday, August 27, 2006 8:49 PM
> > > To: harmony-dev@incubator.apache.org
> > > Subject: Re: [app] ant with ecj
> > >
> > > Richard,
> > >
> > > Yes, I also added ecj_3.2.jar to the CLASSPATH.
> > >
> > > Ant works fine, but the first time a javac task is encountered, the
> > > compiler
> > > jdk/jre/lib/boot/kernel.jar to CLASSPATH.  Now, I see an error that
> etc...
> > >
> > all
> > > seem to work), I think the harmony jvm is loading these "boot" jars,
> but
> > > it
> > > seems like when the javac task uses ecj, those jars are not visible.
> > >
> > > I'm using windows xp, ant 1.6.5, and the latest harmony jdk snapshot.
> > >
> > > Thanks again,
> > >
> > > -Jordan
> > >
> > > On 8/27/06, Richard Liang <richard.liangyx@gmail.com> wrote:
> > > >
> > > >
> > > >
> > > > Jordan Justen wrote:
> > > > > Hi all.
> > > > >
> > > > > I'm trying to use ant with the ecj compiler.  I override the
> > compiler
> > > in
> > > > > build.xml like this:
> > > > >  <property name="build.compiler" value="
> > > > > org.eclipse.jdt.core.JDTCompilerAdapter" />
> > > > >
> > > > > This will execute the compiler, but I find I have to add each jar
> > from
> > > > > jdk/jre/lib/boot to CLASSPATH or else ecj won't find the standard
> > > > classes
> > > > > during compilation.
> > > > >
> > > > > This is probably user error, and not related to harmony. :)  Does
> > > anyone
> > > > > know what I might be improperly configuring?
> > > > Hello Jordan,
> > > >
> > > > Do you mean the "build.compiler" property in make/build_java.xml? I
> > just
> > > > give it a try by 1) overriding the compiler as what you have done 2)
> > > > adding C:\harmony\workspace\trunk\depends\jars\ecj_3.2\ecj_3.2.jar
> > into
> > > > classpath.
> > > >
> > > > Everything works OK. :-) Could you give more detailed information
> > > > this issue? Thanks a lot.
> > > >
> > > > Best regards,
> > > > Richard
> > > > >
> > > > > Thanks,
> > > > >
> > > > > -Jordan
> > > > >
> > > >
> > > > --
> > > > Richard Liang
> > > > China Software Development Lab, IBM
> > > >
> > > >
> > > >
> > > > --------------------------------------------------------------------
> -
> > > > To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> > > > For additional commands, e-mail: harmony-dev-
> help@incubator.apache.org
> > > >
> > > >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> > For additional commands, e-mail: harmony-dev-help@incubator.apache.org
> >
> >

---------------------------------------------------------------------