On 7/11/06, Mark Hindess <[EMAIL PROTECTED]> wrote:

On 11 July 2006 at 14:46, Mark Hindess <[EMAIL PROTECTED]> wrote:
>
> On 11 July 2006 at 13:56, Mark Hindess <[EMAIL PROTECTED]> wrote:
> >
> > On 11 July 2006 at 16:42, "Ivan Volosyuk" <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to