harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ivan Volosyuk" <ivan.volos...@gmail.com>
Subject Re: [classlib] debug compilation as default
Date Tue, 11 Jul 2006 15:18:16 GMT
On 7/11/06, Mark Hindess <mark.hindess@googlemail.com> wrote:
>
> On 11 July 2006 at 14:46, Mark Hindess <mark.hindess@googlemail.com> wrote:
> >
> > On 11 July 2006 at 13:56, Mark Hindess <mark.hindess@googlemail.com> wrote:
> > >
> > > On 11 July 2006 at 16:42, "Ivan Volosyuk" <ivan.volosyuk@gmail.com> wrote:
> > > >
> > > > [snip]
> > > >
> > > > Working on it. Not sure I like the way make is called from ant build.
> > > > Here is an example:
> > > >
> > > > (from modules/luni/build.xml)
> > > >
> > > >     <target name="clean.native" if="is.windows">
> > > >         <exec failonerror="true"
> > > >               executable="${make.command}"
> > > >               dir="${hy.luni.src.main.native}/vmi/${hy.os}">
> > > >             <env key="HY_HDK" value="${hy.hdk}" />
> > > >                     <arg line="clean" />
> > > >         </exec>
> > > >         <exec failonerror="true"
> > > >               executable="${make.command}"
> > > >               dir="${hy.luni.src.main.native}/luni/${hy.os}">
> > > >             <env key="HY_HDK" value="${hy.hdk}" />
> > > >                     <arg line="clean" />
> > > >         </exec>
> > > >                 <exec failonerror="true"
> > > >               executable="${make.command}"
> > > >               dir="${hy.luni.src.main.native}/launcher/${hy.os}">
> > > >             <env key="HY_HDK" value="${hy.hdk}" />
> > > >                     <arg line="clean" />
> > > >         </exec>
> > > >         <exec failonerror="true"
> > > >               executable="${make.command}"
> > > >               dir="${hy.luni.src.main.native}/vmls/${hy.os}">
> > > >             <env key="HY_HDK" value="${hy.hdk}" />
> > > >                     <arg line="clean" />
> > > >         </exec>
> > > >     </target>
> > > >
> > > > This means that I should copy paste the environment variable from ant
> > > > variable conversion code in dozen of places. BTW, why the clean up is
> > > > just windows specific? What about Linux?
> > >
> > > Good question.  I look forward to Oliver's answer. ;-)
> > >
> > > > I'm going to create some kind of macro command which will include all
> > > > common settings for make execution. (/me is reading manuals)
> > >
> > > Excellent idea.  Something like (untested):
> > >
> > >   <make dir="${hy.luni.src.main.native}/vmls/${hy.os}" target="clean" />
> > >
> > > and:
> > >
> > >   <macrodef name="make">
> > >     <attribute name="dir" />
> > >     <attribute name="target" default="" />
> > >     <sequential>
> > >       <exec failonerror="true"
> > >             executable="${make.command}"
> > >             dir="@{dir}">
> > >         <env key="HY_HDK" value="${hy.hdk}" />
> > >         <arg line="@{target}" />
> > >       </exec>
> > >     <sequential>
> > >   </macrodef>
> > >
> > > (You might have to make the default for target "all".)
> > >
> > > At the moment the only common file you could put this in is
> > > properties.xml which isn't elegant but it might be okay for now.  We
> > > really need to have a common file that gets moved to the deploy tree -
> > > like the make fragments.
> >
> > Ivan,
> >
> > I'm going to add something like this to svn shortly.  I decided I should
> > fix the windows only clean in luni.  And a couple of other issues.
>
> The make macro is in r420855.
>
> Regards,
>  Mark.

You have bit me. Here is my macro I was working on:
	<macrodef name="make">
		<attribute name="dir"/>
		<attribute name="args" default=""/>
		<sequential>
			<echo message="hy.cfg=${hy.cfg}"/>
			<exec failonerror="true"
				executable="${make.command}"
				dir="${make.basedir}/@{dir}/${hy.os}">
				<env key="HY_HDK" value="${hy.hdk}" />
				<env key="HY_CFG" value="${hy.cfg}" />
				<arg line="@{args}" />
			</exec>
		</sequential>
	</macrodef>

This macro I decided to use has one difference in usage I wanted to push:
	<property name="make.basedir" location="${hy.luni.src.main.native}"/>
        <make dir="vmi" args="clean"/>
        <make dir="luni" args="clean"/>
        <make dir="launcher" args="clean"/>
        <make dir="vmls" args="clean"/>

In this notation it looks a bit more readable.

-- 
Ivan
Intel Middleware Products Division

---------------------------------------------------------------------
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